@reusa/ngx-reusa-app-lib 0.0.1322 → 0.0.1324

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +196 -132
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +29 -24
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +45 -31
  4. package/esm2022/lib/components/address/address.component.mjs +97 -46
  5. package/esm2022/lib/components/bank-details/bank-details.component.mjs +139 -75
  6. package/esm2022/lib/components/contact-us/contact-us.component.mjs +42 -28
  7. package/esm2022/lib/components/email-update/email-update.component.mjs +119 -62
  8. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +165 -84
  9. package/esm2022/lib/components/footer/footer.component.mjs +23 -11
  10. package/esm2022/lib/components/header/header.component.mjs +163 -109
  11. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +29 -18
  12. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +22 -16
  13. package/esm2022/lib/components/job-title/job-title.component.mjs +20 -16
  14. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +389 -208
  15. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +83 -21
  16. package/esm2022/lib/components/menu/menu.component.mjs +63 -25
  17. package/esm2022/lib/components/mfa/mfa.component.mjs +155 -98
  18. package/esm2022/lib/components/mfa2/mfa2.component.mjs +54 -30
  19. package/esm2022/lib/components/money-expect/money-expect.component.mjs +31 -23
  20. package/esm2022/lib/components/profile/profile.component.mjs +34 -14
  21. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +17 -10
  22. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +80 -27
  23. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +29 -8
  24. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +172 -119
  25. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +122 -41
  26. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +7 -7
  27. package/esm2022/lib/components/search-employer/search-employer.component.mjs +10 -7
  28. package/esm2022/lib/components/security-question/security-question.component.mjs +19 -9
  29. package/esm2022/lib/components/select/select.component.mjs +10 -5
  30. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +72 -52
  31. package/esm2022/lib/components/user-login/user-login.component.mjs +116 -82
  32. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +69 -47
  33. package/esm2022/lib/models/questionnaire/ComboModel.mjs +480 -1
  34. package/esm2022/lib/pages/common/login/login.component.mjs +7 -2
  35. package/esm2022/lib/pages/popovers/language/language.page.mjs +2 -1
  36. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  37. package/esm2022/lib/validations/AppValidators.mjs +9 -9
  38. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +3103 -1492
  39. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  40. package/lib/components/add-employer/add-employer.component.d.ts +22 -73
  41. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  42. package/lib/components/add-participant/add-participant.component.d.ts +4 -1
  43. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  44. package/lib/components/add-payment/add-payment.component.d.ts +1 -2
  45. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  46. package/lib/components/address/address.component.d.ts +10 -1
  47. package/lib/components/address/address.component.d.ts.map +1 -1
  48. package/lib/components/bank-details/bank-details.component.d.ts +17 -1
  49. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  50. package/lib/components/contact-us/contact-us.component.d.ts +4 -1
  51. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  52. package/lib/components/email-update/email-update.component.d.ts +6 -1
  53. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  54. package/lib/components/employer-grid/employer-grid.component.d.ts +6 -24
  55. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  56. package/lib/components/footer/footer.component.d.ts.map +1 -1
  57. package/lib/components/header/header.component.d.ts +3 -0
  58. package/lib/components/header/header.component.d.ts.map +1 -1
  59. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +3 -1
  60. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  61. package/lib/components/job-title/job-title.component.d.ts +3 -1
  62. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  63. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +5 -1
  64. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  65. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -1
  66. package/lib/components/menu/menu.component.d.ts +11 -1
  67. package/lib/components/menu/menu.component.d.ts.map +1 -1
  68. package/lib/components/mfa/mfa.component.d.ts +6 -1
  69. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  70. package/lib/components/profile/profile.component.d.ts.map +1 -1
  71. package/lib/components/questionnaire/common-success/common-success.page.d.ts +1 -0
  72. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  73. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  74. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  75. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +5 -1
  76. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  77. package/lib/components/user-login/user-login.component.d.ts +7 -1
  78. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  79. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +7 -1
  80. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  81. package/lib/models/questionnaire/ComboModel.d.ts +80 -0
  82. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  83. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  84. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  85. package/lib/validations/AppValidators.d.ts +8 -8
  86. package/lib/validations/AppValidators.d.ts.map +1 -1
  87. package/package.json +1 -1
@@ -14,22 +14,22 @@ import * as i6 from "@angular/platform-browser";
14
14
  import * as i7 from "../../services/claims/claims.service";
15
15
  import * as i8 from "../../services/login/login.service";
16
16
  import * as i9 from "@angular/router";
17
- import * as i10 from "@ionic/angular";
18
- import * as i11 from "@angular/common";
19
- import * as i12 from "@angular/material/form-field";
20
- import * as i13 from "primeng/dialog";
21
- import * as i14 from "primeng/table";
22
- import * as i15 from "primeng/inputtext";
23
- import * as i16 from "primeng/inputmask";
24
- import * as i17 from "primeng/calendar";
25
- import * as i18 from "primeng/selectbutton";
26
- import * as i19 from "primeng/inputnumber";
27
- import * as i20 from "primeng/dropdown";
28
- import * as i21 from "../error/error.component";
29
- import * as i22 from "../overlay-info/overlay-info.component";
30
- import * as i23 from "../search-employer/search-employer.component";
31
- import * as i24 from "../address/address.component";
32
- import * as i25 from "@ngx-translate/core";
17
+ import * as i10 from "@ngx-translate/core";
18
+ import * as i11 from "@ionic/angular";
19
+ import * as i12 from "@angular/common";
20
+ import * as i13 from "@angular/material/form-field";
21
+ import * as i14 from "primeng/dialog";
22
+ import * as i15 from "primeng/table";
23
+ import * as i16 from "primeng/inputtext";
24
+ import * as i17 from "primeng/inputmask";
25
+ import * as i18 from "primeng/calendar";
26
+ import * as i19 from "primeng/selectbutton";
27
+ import * as i20 from "primeng/inputnumber";
28
+ import * as i21 from "primeng/dropdown";
29
+ import * as i22 from "../error/error.component";
30
+ import * as i23 from "../overlay-info/overlay-info.component";
31
+ import * as i24 from "../search-employer/search-employer.component";
32
+ import * as i25 from "../address/address.component";
33
33
  const _c0 = ["address1"];
34
34
  const _c1 = ["address2"];
35
35
  const _c2 = ["employerForm"];
@@ -132,7 +132,7 @@ function AddEmployerComponent_ion_grid_6_div_5_Template(rf, ctx) { if (rf & 1) {
132
132
  i0.ɵɵadvance(4);
133
133
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 4, "induction.confirm.employment.workflag.no.line2"), "");
134
134
  } }
135
- const _c3 = () => ({ required: "required" });
135
+ const _c3 = a0 => ({ required: a0 });
136
136
  function AddEmployerComponent_ion_grid_6_div_6_Template(rf, ctx) { if (rf & 1) {
137
137
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 19);
138
138
  i0.ɵɵtext(2);
@@ -150,7 +150,7 @@ function AddEmployerComponent_ion_grid_6_div_6_Template(rf, ctx) { if (rf & 1) {
150
150
  i0.ɵɵproperty("options", ctx_r4.employerTypeOptions)("formControl", ctx_r4.employerType);
151
151
  i0.ɵɵadvance(1);
152
152
  i0.ɵɵclassMap("app-grid");
153
- i0.ɵɵproperty("form", ctx_r4.isFormSubmitted)("field", ctx_r4.employerType)("errDef", i0.ɵɵpureFunction0(12, _c3));
153
+ i0.ɵɵproperty("form", ctx_r4.isFormSubmitted)("field", ctx_r4.employerType)("errDef", i0.ɵɵpureFunction1(12, _c3, ctx_r4.required));
154
154
  } }
155
155
  function AddEmployerComponent_ion_grid_6_div_7_Template(rf, ctx) { if (rf & 1) {
156
156
  const _r68 = i0.ɵɵgetCurrentView();
@@ -172,7 +172,7 @@ function AddEmployerComponent_ion_grid_6_div_7_Template(rf, ctx) { if (rf & 1) {
172
172
  i0.ɵɵproperty("options", ctx_r5.prevWorkedStateOptions)("formControl", ctx_r5.prevWorkedState);
173
173
  i0.ɵɵadvance(1);
174
174
  i0.ɵɵclassMap("app-grid");
175
- i0.ɵɵproperty("form", ctx_r5.isFormSubmitted)("field", ctx_r5.prevWorkedState)("errDef", i0.ɵɵpureFunction0(12, _c3));
175
+ i0.ɵɵproperty("form", ctx_r5.isFormSubmitted)("field", ctx_r5.prevWorkedState)("errDef", i0.ɵɵpureFunction1(12, _c3, ctx_r5.required));
176
176
  } }
177
177
  function AddEmployerComponent_ion_grid_6_div_8_div_4_Template(rf, ctx) { if (rf & 1) {
178
178
  const _r73 = i0.ɵɵgetCurrentView();
@@ -187,7 +187,7 @@ function AddEmployerComponent_ion_grid_6_div_8_div_4_Template(rf, ctx) { if (rf
187
187
  i0.ɵɵproperty("formControl", ctx_r69.employerName);
188
188
  i0.ɵɵadvance(1);
189
189
  i0.ɵɵclassMap("app-grid");
190
- i0.ɵɵproperty("form", ctx_r69.isFormSubmitted)("field", ctx_r69.employerName)("errDef", i0.ɵɵpureFunction0(6, _c3));
190
+ i0.ɵɵproperty("form", ctx_r69.isFormSubmitted)("field", ctx_r69.employerName)("errDef", i0.ɵɵpureFunction1(6, _c3, ctx_r69.required));
191
191
  } }
192
192
  function AddEmployerComponent_ion_grid_6_div_8_ng_template_5_Template(rf, ctx) { if (rf & 1) {
193
193
  i0.ɵɵelementStart(0, "div", 14);
@@ -199,14 +199,14 @@ function AddEmployerComponent_ion_grid_6_div_8_ng_template_5_Template(rf, ctx) {
199
199
  i0.ɵɵproperty("formControl", ctx_r70.othStateEmpName);
200
200
  i0.ɵɵadvance(1);
201
201
  i0.ɵɵclassMap("app-grid");
202
- i0.ɵɵproperty("form", ctx_r70.isFormSubmitted)("field", ctx_r70.othStateEmpName)("errDef", i0.ɵɵpureFunction0(6, _c3));
202
+ i0.ɵɵproperty("form", ctx_r70.isFormSubmitted)("field", ctx_r70.othStateEmpName)("errDef", i0.ɵɵpureFunction1(6, _c3, ctx_r70.required));
203
203
  } }
204
204
  function AddEmployerComponent_ion_grid_6_div_8_Template(rf, ctx) { if (rf & 1) {
205
205
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 25);
206
206
  i0.ɵɵtext(2);
207
207
  i0.ɵɵpipe(3, "translate");
208
208
  i0.ɵɵelementEnd();
209
- i0.ɵɵtemplate(4, AddEmployerComponent_ion_grid_6_div_8_div_4_Template, 3, 7, "div", 26)(5, AddEmployerComponent_ion_grid_6_div_8_ng_template_5_Template, 3, 7, "ng-template", null, 27, i0.ɵɵtemplateRefExtractor);
209
+ i0.ɵɵtemplate(4, AddEmployerComponent_ion_grid_6_div_8_div_4_Template, 3, 8, "div", 26)(5, AddEmployerComponent_ion_grid_6_div_8_ng_template_5_Template, 3, 8, "ng-template", null, 27, i0.ɵɵtemplateRefExtractor);
210
210
  i0.ɵɵelementEnd();
211
211
  } if (rf & 2) {
212
212
  const _r71 = i0.ɵɵreference(6);
@@ -235,7 +235,7 @@ function AddEmployerComponent_ion_grid_6_div_9_Template(rf, ctx) { if (rf & 1) {
235
235
  i0.ɵɵproperty("formControl", ctx_r7.fedEmployerName);
236
236
  i0.ɵɵadvance(1);
237
237
  i0.ɵɵclassMap("app-grid");
238
- i0.ɵɵproperty("form", ctx_r7.isFormSubmitted)("field", ctx_r7.fedEmployerName)("errDef", i0.ɵɵpureFunction0(9, _c3));
238
+ i0.ɵɵproperty("form", ctx_r7.isFormSubmitted)("field", ctx_r7.fedEmployerName)("errDef", i0.ɵɵpureFunction1(9, _c3, ctx_r7.required));
239
239
  } }
240
240
  function AddEmployerComponent_ion_grid_6_div_10_Template(rf, ctx) { if (rf & 1) {
241
241
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 33);
@@ -252,22 +252,24 @@ function AddEmployerComponent_ion_grid_6_div_10_Template(rf, ctx) { if (rf & 1)
252
252
  i0.ɵɵproperty("options", ctx_r8.militaryServiceOptions)("formControl", ctx_r8.serviceBranch)("autoDisplayFirst", false);
253
253
  i0.ɵɵadvance(1);
254
254
  i0.ɵɵclassMap("app-grid");
255
- i0.ɵɵproperty("form", ctx_r8.isFormSubmitted)("field", ctx_r8.serviceBranch)("errDef", i0.ɵɵpureFunction0(11, _c3));
255
+ i0.ɵɵproperty("form", ctx_r8.isFormSubmitted)("field", ctx_r8.serviceBranch)("errDef", i0.ɵɵpureFunction1(11, _c3, ctx_r8.required));
256
256
  } }
257
- const _c4 = "Based on some of your responses you need to call the KDOL Call Center to file your claim.";
258
- const _c5 = () => ({ required: "required", requiredKansas: _c4 });
257
+ const _c4 = (a0, a1) => ({ required: a0, requiredKansas: a1 });
259
258
  function AddEmployerComponent_ion_grid_6_div_11_Template(rf, ctx) { if (rf & 1) {
260
259
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 35);
261
- i0.ɵɵtext(2, " Where are you physically located at this time? ");
260
+ i0.ɵɵtext(2);
261
+ i0.ɵɵpipe(3, "translate");
262
262
  i0.ɵɵelementEnd();
263
- i0.ɵɵelement(3, "p-dropdown", 36)(4, "app-error", 37);
263
+ i0.ɵɵelement(4, "p-dropdown", 36)(5, "app-error", 37);
264
264
  i0.ɵɵelementEnd();
265
265
  } if (rf & 2) {
266
266
  const ctx_r9 = i0.ɵɵnextContext(2);
267
- i0.ɵɵadvance(3);
267
+ i0.ɵɵadvance(2);
268
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 6, "induction.add.employment.physical.location"), " ");
269
+ i0.ɵɵadvance(2);
268
270
  i0.ɵɵproperty("formControl", ctx_r9.milState)("options", ctx_r9.statesOptions);
269
271
  i0.ɵɵadvance(1);
270
- i0.ɵɵproperty("form", ctx_r9.isFormSubmitted)("field", ctx_r9.milState)("errDef", i0.ɵɵpureFunction0(5, _c5));
272
+ i0.ɵɵproperty("form", ctx_r9.isFormSubmitted)("field", ctx_r9.milState)("errDef", i0.ɵɵpureFunction2(8, _c4, ctx_r9.required, ctx_r9.requiredKansas));
271
273
  } }
272
274
  function AddEmployerComponent_ion_grid_6_ion_row_12_Template(rf, ctx) { if (rf & 1) {
273
275
  const _r79 = i0.ɵɵgetCurrentView();
@@ -298,14 +300,14 @@ function AddEmployerComponent_ion_grid_6_ion_row_12_Template(rf, ctx) { if (rf &
298
300
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r10.startDateMil)("maxDate", ctx_r10.dateTime)("yearNavigator", true)("showOnFocus", false)("minDate", ctx_r10.minWorkStartDate);
299
301
  i0.ɵɵadvance(1);
300
302
  i0.ɵɵclassMap("app-grid");
301
- i0.ɵɵproperty("form", ctx_r10.isFormSubmitted)("field", ctx_r10.startDateMil)("errDef", i0.ɵɵpureFunction0(28, _c3));
303
+ i0.ɵɵproperty("form", ctx_r10.isFormSubmitted)("field", ctx_r10.startDateMil)("errDef", i0.ɵɵpureFunction1(28, _c3, ctx_r10.required));
302
304
  i0.ɵɵadvance(5);
303
305
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 26, "induction.add.employment.mil.enddate"));
304
306
  i0.ɵɵadvance(2);
305
307
  i0.ɵɵproperty("showIcon", true)("maxDate", ctx_r10.dateTime)("minDate", ctx_r10.minDate)("yearNavigator", true)("formControl", ctx_r10.endDateMil)("showOnFocus", false);
306
308
  i0.ɵɵadvance(1);
307
309
  i0.ɵɵclassMap("app-grid");
308
- i0.ɵɵproperty("form", ctx_r10.isFormSubmitted)("field", ctx_r10.endDateMil)("errDef", i0.ɵɵpureFunction0(29, _c3));
310
+ i0.ɵɵproperty("form", ctx_r10.isFormSubmitted)("field", ctx_r10.endDateMil)("errDef", i0.ɵɵpureFunction1(30, _c3, ctx_r10.required));
309
311
  } }
310
312
  function AddEmployerComponent_ion_grid_6_ion_row_13_Template(rf, ctx) { if (rf & 1) {
311
313
  i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 38)(2, "div", 14)(3, "label", 44);
@@ -329,14 +331,14 @@ function AddEmployerComponent_ion_grid_6_ion_row_13_Template(rf, ctx) { if (rf &
329
331
  i0.ɵɵproperty("formControl", ctx_r11.ficCode);
330
332
  i0.ɵɵadvance(1);
331
333
  i0.ɵɵclassMap("app-grid");
332
- i0.ɵɵproperty("form", ctx_r11.isFormSubmitted)("field", ctx_r11.ficCode)("errDef", i0.ɵɵpureFunction0(18, _c3));
334
+ i0.ɵɵproperty("form", ctx_r11.isFormSubmitted)("field", ctx_r11.ficCode)("errDef", i0.ɵɵpureFunction1(18, _c3, ctx_r11.required));
333
335
  i0.ɵɵadvance(5);
334
336
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 16, "induction.add.employment.fed.fic.destination"));
335
337
  i0.ɵɵadvance(2);
336
338
  i0.ɵɵproperty("formControl", ctx_r11.ficDestinationName);
337
339
  i0.ɵɵadvance(1);
338
340
  i0.ɵɵclassMap("app-grid");
339
- i0.ɵɵproperty("form", ctx_r11.isFormSubmitted)("field", ctx_r11.ficDestinationName)("errDef", i0.ɵɵpureFunction0(19, _c3));
341
+ i0.ɵɵproperty("form", ctx_r11.isFormSubmitted)("field", ctx_r11.ficDestinationName)("errDef", i0.ɵɵpureFunction1(20, _c3, ctx_r11.required));
340
342
  } }
341
343
  function AddEmployerComponent_ion_grid_6_ion_row_14_Template(rf, ctx) { if (rf & 1) {
342
344
  i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 48);
@@ -349,13 +351,17 @@ function AddEmployerComponent_ion_grid_6_ion_row_14_Template(rf, ctx) { if (rf &
349
351
  } }
350
352
  function AddEmployerComponent_ion_grid_6_div_15_mat_error_4_Template(rf, ctx) { if (rf & 1) {
351
353
  i0.ɵɵelementStart(0, "mat-error", 54);
352
- i0.ɵɵtext(1, " Please provide a valid address. ");
354
+ i0.ɵɵtext(1);
355
+ i0.ɵɵpipe(2, "translate");
353
356
  i0.ɵɵelementEnd();
357
+ } if (rf & 2) {
358
+ i0.ɵɵadvance(1);
359
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "common.valid.address"), " ");
354
360
  } }
355
361
  function AddEmployerComponent_ion_grid_6_div_15_Template(rf, ctx) { if (rf & 1) {
356
362
  i0.ɵɵelementStart(0, "div", 14);
357
363
  i0.ɵɵelement(1, "app-address", 51, 52)(3, "app-error", 9);
358
- i0.ɵɵtemplate(4, AddEmployerComponent_ion_grid_6_div_15_mat_error_4_Template, 2, 0, "mat-error", 53);
364
+ i0.ɵɵtemplate(4, AddEmployerComponent_ion_grid_6_div_15_mat_error_4_Template, 3, 3, "mat-error", 53);
359
365
  i0.ɵɵelementEnd();
360
366
  } if (rf & 2) {
361
367
  const ctx_r13 = i0.ɵɵnextContext(2);
@@ -363,7 +369,7 @@ function AddEmployerComponent_ion_grid_6_div_15_Template(rf, ctx) { if (rf & 1)
363
369
  i0.ɵɵproperty("formControl", ctx_r13.address)("countyRequired", false)("fromPopup", true);
364
370
  i0.ɵɵadvance(2);
365
371
  i0.ɵɵclassMap("app-grid");
366
- i0.ɵɵproperty("form", ctx_r13.isFormSubmitted)("field", ctx_r13.address)("errDef", i0.ɵɵpureFunction0(9, _c3));
372
+ i0.ɵɵproperty("form", ctx_r13.isFormSubmitted)("field", ctx_r13.address)("errDef", i0.ɵɵpureFunction1(9, _c3, ctx_r13.required));
367
373
  i0.ɵɵadvance(1);
368
374
  i0.ɵɵproperty("ngIf", (ctx_r13.address == null ? null : ctx_r13.address.errors == null ? null : ctx_r13.address.errors.addressValidationFlag) && ctx_r13.isFormSubmitted.submitted);
369
375
  } }
@@ -393,14 +399,14 @@ function AddEmployerComponent_ion_grid_6_ion_row_16_Template(rf, ctx) { if (rf &
393
399
  i0.ɵɵproperty("formControl", ctx_r14.workCity);
394
400
  i0.ɵɵadvance(1);
395
401
  i0.ɵɵclassMap("app-grid");
396
- i0.ɵɵproperty("form", ctx_r14.isFormSubmitted)("field", ctx_r14.workCity)("errDef", i0.ɵɵpureFunction0(20, _c3));
402
+ i0.ɵɵproperty("form", ctx_r14.isFormSubmitted)("field", ctx_r14.workCity)("errDef", i0.ɵɵpureFunction1(20, _c3, ctx_r14.required));
397
403
  i0.ɵɵadvance(5);
398
404
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 18, "induction.add.employment.work.location.state"));
399
405
  i0.ɵɵadvance(2);
400
406
  i0.ɵɵproperty("options", ctx_r14.prevWorkedState.value === "KS" ? ctx_r14.statesOptions : ctx_r14.nonKSStatesOptions)("formControl", ctx_r14.workState)("autoDisplayFirst", false);
401
407
  i0.ɵɵadvance(1);
402
408
  i0.ɵɵclassMap("app-grid");
403
- i0.ɵɵproperty("form", ctx_r14.isFormSubmitted)("field", ctx_r14.workState)("errDef", i0.ɵɵpureFunction0(21, _c3));
409
+ i0.ɵɵproperty("form", ctx_r14.isFormSubmitted)("field", ctx_r14.workState)("errDef", i0.ɵɵpureFunction1(22, _c3, ctx_r14.required));
404
410
  } }
405
411
  function AddEmployerComponent_ion_grid_6_div_17_Template(rf, ctx) { if (rf & 1) {
406
412
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 59);
@@ -417,7 +423,7 @@ function AddEmployerComponent_ion_grid_6_div_17_Template(rf, ctx) { if (rf & 1)
417
423
  i0.ɵɵproperty("options", ctx_r15.workCountryOptions)("formControl", ctx_r15.fedWorkCountry)("autoDisplayFirst", false);
418
424
  i0.ɵɵadvance(1);
419
425
  i0.ɵɵclassMap("app-grid");
420
- i0.ɵɵproperty("form", ctx_r15.isFormSubmitted)("field", ctx_r15.fedWorkCountry)("errDef", i0.ɵɵpureFunction0(11, _c3));
426
+ i0.ɵɵproperty("form", ctx_r15.isFormSubmitted)("field", ctx_r15.fedWorkCountry)("errDef", i0.ɵɵpureFunction1(11, _c3, ctx_r15.required));
421
427
  } }
422
428
  function AddEmployerComponent_ion_grid_6_ion_row_18_ion_col_9_Template(rf, ctx) { if (rf & 1) {
423
429
  i0.ɵɵelementStart(0, "ion-col", 38)(1, "div", 14)(2, "label", 64);
@@ -434,7 +440,7 @@ function AddEmployerComponent_ion_grid_6_ion_row_18_ion_col_9_Template(rf, ctx)
434
440
  i0.ɵɵproperty("options", ctx_r88.statesOptions)("formControl", ctx_r88.fedWorkState)("autoDisplayFirst", false);
435
441
  i0.ɵɵadvance(1);
436
442
  i0.ɵɵclassMap("app-grid");
437
- i0.ɵɵproperty("form", ctx_r88.isFormSubmitted)("field", ctx_r88.fedWorkState)("errDef", i0.ɵɵpureFunction0(11, _c3));
443
+ i0.ɵɵproperty("form", ctx_r88.isFormSubmitted)("field", ctx_r88.fedWorkState)("errDef", i0.ɵɵpureFunction1(11, _c3, ctx_r88.required));
438
444
  } }
439
445
  function AddEmployerComponent_ion_grid_6_ion_row_18_Template(rf, ctx) { if (rf & 1) {
440
446
  i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 38)(2, "div", 14)(3, "label", 61);
@@ -444,7 +450,7 @@ function AddEmployerComponent_ion_grid_6_ion_row_18_Template(rf, ctx) { if (rf &
444
450
  i0.ɵɵelement(6, "input", 62)(7, "app-error", 9);
445
451
  i0.ɵɵelementEnd()();
446
452
  i0.ɵɵelement(8, "ion-col", 41);
447
- i0.ɵɵtemplate(9, AddEmployerComponent_ion_grid_6_ion_row_18_ion_col_9_Template, 7, 12, "ion-col", 63);
453
+ i0.ɵɵtemplate(9, AddEmployerComponent_ion_grid_6_ion_row_18_ion_col_9_Template, 7, 13, "ion-col", 63);
448
454
  i0.ɵɵelementEnd();
449
455
  } if (rf & 2) {
450
456
  const ctx_r16 = i0.ɵɵnextContext(2);
@@ -454,7 +460,7 @@ function AddEmployerComponent_ion_grid_6_ion_row_18_Template(rf, ctx) { if (rf &
454
460
  i0.ɵɵproperty("formControl", ctx_r16.fedWorkCity);
455
461
  i0.ɵɵadvance(1);
456
462
  i0.ɵɵclassMap("app-grid");
457
- i0.ɵɵproperty("form", ctx_r16.isFormSubmitted)("field", ctx_r16.fedWorkCity)("errDef", i0.ɵɵpureFunction0(10, _c3));
463
+ i0.ɵɵproperty("form", ctx_r16.isFormSubmitted)("field", ctx_r16.fedWorkCity)("errDef", i0.ɵɵpureFunction1(10, _c3, ctx_r16.required));
458
464
  i0.ɵɵadvance(2);
459
465
  i0.ɵɵproperty("ngIf", ctx_r16.showWorkState === true);
460
466
  } }
@@ -487,14 +493,14 @@ function AddEmployerComponent_ion_grid_6_ion_row_19_Template(rf, ctx) { if (rf &
487
493
  i0.ɵɵproperty("showIcon", true)("maxDate", ctx_r17.dateTime)("formControl", ctx_r17.startDateFed)("yearNavigator", true)("showOnFocus", false)("minDate", ctx_r17.minWorkStartDate);
488
494
  i0.ɵɵadvance(1);
489
495
  i0.ɵɵclassMap("app-grid");
490
- i0.ɵɵproperty("form", ctx_r17.isFormSubmitted)("field", ctx_r17.startDateFed)("errDef", i0.ɵɵpureFunction0(28, _c3));
496
+ i0.ɵɵproperty("form", ctx_r17.isFormSubmitted)("field", ctx_r17.startDateFed)("errDef", i0.ɵɵpureFunction1(28, _c3, ctx_r17.required));
491
497
  i0.ɵɵadvance(5);
492
498
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 26, "induction.add.employment.fed.enddate"));
493
499
  i0.ɵɵadvance(2);
494
500
  i0.ɵɵproperty("showIcon", true)("maxDate", ctx_r17.dateTime)("minDate", ctx_r17.minDate)("yearNavigator", true)("formControl", ctx_r17.endDateFed)("showOnFocus", false);
495
501
  i0.ɵɵadvance(1);
496
502
  i0.ɵɵclassMap("app-grid");
497
- i0.ɵɵproperty("form", ctx_r17.isFormSubmitted)("field", ctx_r17.endDateFed)("errDef", i0.ɵɵpureFunction0(29, _c3));
503
+ i0.ɵɵproperty("form", ctx_r17.isFormSubmitted)("field", ctx_r17.endDateFed)("errDef", i0.ɵɵpureFunction1(30, _c3, ctx_r17.required));
498
504
  } }
499
505
  function AddEmployerComponent_ion_grid_6_div_20_Template(rf, ctx) { if (rf & 1) {
500
506
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 70);
@@ -511,7 +517,7 @@ function AddEmployerComponent_ion_grid_6_div_20_Template(rf, ctx) { if (rf & 1)
511
517
  i0.ɵɵproperty("formControl", ctx_r18.fedJobTileOrPosition);
512
518
  i0.ɵɵadvance(1);
513
519
  i0.ɵɵclassMap("app-grid");
514
- i0.ɵɵproperty("form", ctx_r18.isFormSubmitted)("field", ctx_r18.fedJobTileOrPosition)("errDef", i0.ɵɵpureFunction0(9, _c3));
520
+ i0.ɵɵproperty("form", ctx_r18.isFormSubmitted)("field", ctx_r18.fedJobTileOrPosition)("errDef", i0.ɵɵpureFunction1(9, _c3, ctx_r18.required));
515
521
  } }
516
522
  function AddEmployerComponent_ion_grid_6_div_21_Template(rf, ctx) { if (rf & 1) {
517
523
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 72);
@@ -531,7 +537,7 @@ function AddEmployerComponent_ion_grid_6_div_21_Template(rf, ctx) { if (rf & 1)
531
537
  i0.ɵɵproperty("options", ctx_r19.radioOptions)("formControl", ctx_r19.sfEightflag);
532
538
  i0.ɵɵadvance(1);
533
539
  i0.ɵɵclassMap("app-grid");
534
- i0.ɵɵproperty("form", ctx_r19.isFormSubmitted)("field", ctx_r19.sfEightflag)("errDef", i0.ɵɵpureFunction0(10, _c3));
540
+ i0.ɵɵproperty("form", ctx_r19.isFormSubmitted)("field", ctx_r19.sfEightflag)("errDef", i0.ɵɵpureFunction1(10, _c3, ctx_r19.required));
535
541
  } }
536
542
  function AddEmployerComponent_ion_grid_6_ion_row_22_Template(rf, ctx) { if (rf & 1) {
537
543
  const _r95 = i0.ɵɵgetCurrentView();
@@ -562,14 +568,14 @@ function AddEmployerComponent_ion_grid_6_ion_row_22_Template(rf, ctx) { if (rf &
562
568
  i0.ɵɵproperty("showIcon", true)("maxDate", ctx_r20.dateTime)("formControl", ctx_r20.startDate)("yearNavigator", true)("minDate", ctx_r20.minWorkStartDate)("showOnFocus", false);
563
569
  i0.ɵɵadvance(1);
564
570
  i0.ɵɵclassMap("app-grid");
565
- i0.ɵɵproperty("form", ctx_r20.isFormSubmitted)("field", ctx_r20.startDate)("errDef", i0.ɵɵpureFunction0(28, _c3));
571
+ i0.ɵɵproperty("form", ctx_r20.isFormSubmitted)("field", ctx_r20.startDate)("errDef", i0.ɵɵpureFunction1(28, _c3, ctx_r20.required));
566
572
  i0.ɵɵadvance(5);
567
573
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 26, "induction.confirm.employment.enddate"));
568
574
  i0.ɵɵadvance(2);
569
575
  i0.ɵɵproperty("showIcon", true)("minDate", ctx_r20.minDate)("maxDate", ctx_r20.dateTime)("yearNavigator", true)("formControl", ctx_r20.endDate)("showOnFocus", false);
570
576
  i0.ɵɵadvance(1);
571
577
  i0.ɵɵclassMap("app-grid");
572
- i0.ɵɵproperty("form", ctx_r20.isFormSubmitted)("field", ctx_r20.endDate)("errDef", i0.ɵɵpureFunction0(29, _c3));
578
+ i0.ɵɵproperty("form", ctx_r20.isFormSubmitted)("field", ctx_r20.endDate)("errDef", i0.ɵɵpureFunction1(30, _c3, ctx_r20.required));
573
579
  } }
574
580
  function AddEmployerComponent_ion_grid_6_ion_row_23_Template(rf, ctx) { if (rf & 1) {
575
581
  i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 38)(2, "div", 14)(3, "label", 78);
@@ -586,7 +592,7 @@ function AddEmployerComponent_ion_grid_6_ion_row_23_Template(rf, ctx) { if (rf &
586
592
  i0.ɵɵproperty("formControl", ctx_r21.workType);
587
593
  i0.ɵɵadvance(1);
588
594
  i0.ɵɵclassMap("app-grid");
589
- i0.ɵɵproperty("form", ctx_r21.isFormSubmitted)("field", ctx_r21.workType)("errDef", i0.ɵɵpureFunction0(9, _c3));
595
+ i0.ɵɵproperty("form", ctx_r21.isFormSubmitted)("field", ctx_r21.workType)("errDef", i0.ɵɵpureFunction1(9, _c3, ctx_r21.required));
590
596
  } }
591
597
  function AddEmployerComponent_ion_grid_6_div_24_Template(rf, ctx) { if (rf & 1) {
592
598
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 80);
@@ -604,7 +610,7 @@ function AddEmployerComponent_ion_grid_6_div_24_Template(rf, ctx) { if (rf & 1)
604
610
  i0.ɵɵproperty("options", ctx_r22.radioOptions)("formControl", ctx_r22.performedService);
605
611
  i0.ɵɵadvance(1);
606
612
  i0.ɵɵclassMap("app-grid");
607
- i0.ɵɵproperty("form", ctx_r22.isFormSubmitted)("field", ctx_r22.performedService)("errDef", i0.ɵɵpureFunction0(10, _c3));
613
+ i0.ɵɵproperty("form", ctx_r22.isFormSubmitted)("field", ctx_r22.performedService)("errDef", i0.ɵɵpureFunction1(10, _c3, ctx_r22.required));
608
614
  } }
609
615
  function AddEmployerComponent_ion_grid_6_div_25_Template(rf, ctx) { if (rf & 1) {
610
616
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 82);
@@ -621,7 +627,7 @@ function AddEmployerComponent_ion_grid_6_div_25_Template(rf, ctx) { if (rf & 1)
621
627
  i0.ɵɵproperty("formControl", ctx_r23.jobTileOrPosition);
622
628
  i0.ɵɵadvance(1);
623
629
  i0.ɵɵclassMap("app-grid");
624
- i0.ɵɵproperty("form", ctx_r23.isFormSubmitted)("field", ctx_r23.jobTileOrPosition)("errDef", i0.ɵɵpureFunction0(9, _c3));
630
+ i0.ɵɵproperty("form", ctx_r23.isFormSubmitted)("field", ctx_r23.jobTileOrPosition)("errDef", i0.ɵɵpureFunction1(9, _c3, ctx_r23.required));
625
631
  } }
626
632
  function AddEmployerComponent_ion_grid_6_ion_row_26_Template(rf, ctx) { if (rf & 1) {
627
633
  i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 84)(2, "div", 14)(3, "label", 85);
@@ -644,14 +650,14 @@ function AddEmployerComponent_ion_grid_6_ion_row_26_Template(rf, ctx) { if (rf &
644
650
  i0.ɵɵproperty("formControl", ctx_r24.payRate)("max", 999999.99);
645
651
  i0.ɵɵadvance(1);
646
652
  i0.ɵɵclassMap("app-grid");
647
- i0.ɵɵproperty("form", ctx_r24.isFormSubmitted)("field", ctx_r24.payRate)("errDef", i0.ɵɵpureFunction0(21, _c3));
653
+ i0.ɵɵproperty("form", ctx_r24.isFormSubmitted)("field", ctx_r24.payRate)("errDef", i0.ɵɵpureFunction1(21, _c3, ctx_r24.required));
648
654
  i0.ɵɵadvance(4);
649
655
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 19, "induction.confirm.employment.per"));
650
656
  i0.ɵɵadvance(2);
651
657
  i0.ɵɵproperty("options", ctx_r24.payRateOptions)("formControl", ctx_r24.payRateFrequency)("autoDisplayFirst", false);
652
658
  i0.ɵɵadvance(1);
653
659
  i0.ɵɵclassMap("app-grid");
654
- i0.ɵɵproperty("form", ctx_r24.isFormSubmitted)("field", ctx_r24.payRateFrequency)("errDef", i0.ɵɵpureFunction0(22, _c3));
660
+ i0.ɵɵproperty("form", ctx_r24.isFormSubmitted)("field", ctx_r24.payRateFrequency)("errDef", i0.ɵɵpureFunction1(23, _c3, ctx_r24.required));
655
661
  } }
656
662
  function AddEmployerComponent_ion_grid_6_div_27_Template(rf, ctx) { if (rf & 1) {
657
663
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 89);
@@ -668,7 +674,7 @@ function AddEmployerComponent_ion_grid_6_div_27_Template(rf, ctx) { if (rf & 1)
668
674
  i0.ɵɵproperty("formControl", ctx_r25.employerTelephoneNumber);
669
675
  i0.ɵɵadvance(1);
670
676
  i0.ɵɵclassMap("app-grid");
671
- i0.ɵɵproperty("form", ctx_r25.isFormSubmitted)("field", ctx_r25.employerTelephoneNumber)("errDef", i0.ɵɵpureFunction0(9, _c3));
677
+ i0.ɵɵproperty("form", ctx_r25.isFormSubmitted)("field", ctx_r25.employerTelephoneNumber)("errDef", i0.ɵɵpureFunction1(9, _c3, ctx_r25.required));
672
678
  } }
673
679
  function AddEmployerComponent_ion_grid_6_div_28_label_1_Template(rf, ctx) { if (rf & 1) {
674
680
  i0.ɵɵelementStart(0, "label", 93);
@@ -703,7 +709,7 @@ function AddEmployerComponent_ion_grid_6_div_28_Template(rf, ctx) { if (rf & 1)
703
709
  i0.ɵɵproperty("options", ctx_r26.employmentStatusOptionsAll)("formControl", ctx_r26.reasonSeparation)("autoDisplayFirst", false);
704
710
  i0.ɵɵadvance(1);
705
711
  i0.ɵɵclassMap("app-grid");
706
- i0.ɵɵproperty("form", ctx_r26.isFormSubmitted)("field", ctx_r26.reasonSeparation)("errDef", i0.ɵɵpureFunction0(10, _c3));
712
+ i0.ɵɵproperty("form", ctx_r26.isFormSubmitted)("field", ctx_r26.reasonSeparation)("errDef", i0.ɵɵpureFunction1(10, _c3, ctx_r26.required));
707
713
  } }
708
714
  function AddEmployerComponent_ion_grid_6_div_29_Template(rf, ctx) { if (rf & 1) {
709
715
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 94);
@@ -720,7 +726,7 @@ function AddEmployerComponent_ion_grid_6_div_29_Template(rf, ctx) { if (rf & 1)
720
726
  i0.ɵɵproperty("options", ctx_r27.dischargeReasonOptionsAll)("formControl", ctx_r27.dischargeDetail)("autoDisplayFirst", false);
721
727
  i0.ɵɵadvance(1);
722
728
  i0.ɵɵclassMap("app-grid");
723
- i0.ɵɵproperty("form", ctx_r27.isFormSubmitted)("field", ctx_r27.dischargeDetail)("errDef", i0.ɵɵpureFunction0(11, _c3));
729
+ i0.ɵɵproperty("form", ctx_r27.isFormSubmitted)("field", ctx_r27.dischargeDetail)("errDef", i0.ɵɵpureFunction1(11, _c3, ctx_r27.required));
724
730
  } }
725
731
  function AddEmployerComponent_ion_grid_6_div_30_Template(rf, ctx) { if (rf & 1) {
726
732
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 96);
@@ -737,7 +743,7 @@ function AddEmployerComponent_ion_grid_6_div_30_Template(rf, ctx) { if (rf & 1)
737
743
  i0.ɵɵproperty("options", ctx_r28.volQuitReasonOptionsAll)("formControl", ctx_r28.volQuitDetails)("autoDisplayFirst", false);
738
744
  i0.ɵɵadvance(1);
739
745
  i0.ɵɵclassMap("app-grid");
740
- i0.ɵɵproperty("form", ctx_r28.isFormSubmitted)("field", ctx_r28.volQuitDetails)("errDef", i0.ɵɵpureFunction0(11, _c3));
746
+ i0.ɵɵproperty("form", ctx_r28.isFormSubmitted)("field", ctx_r28.volQuitDetails)("errDef", i0.ɵɵpureFunction1(11, _c3, ctx_r28.required));
741
747
  } }
742
748
  function AddEmployerComponent_ion_grid_6_div_31_Template(rf, ctx) { if (rf & 1) {
743
749
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 98);
@@ -760,7 +766,7 @@ function AddEmployerComponent_ion_grid_6_div_31_Template(rf, ctx) { if (rf & 1)
760
766
  i0.ɵɵproperty("options", ctx_r29.radioOptions)("formControl", ctx_r29.milPensionFlag);
761
767
  i0.ɵɵadvance(1);
762
768
  i0.ɵɵclassMap("app-grid");
763
- i0.ɵɵproperty("form", ctx_r29.isFormSubmitted)("field", ctx_r29.milPensionFlag)("errDef", i0.ɵɵpureFunction0(13, _c3));
769
+ i0.ɵɵproperty("form", ctx_r29.isFormSubmitted)("field", ctx_r29.milPensionFlag)("errDef", i0.ɵɵpureFunction1(13, _c3, ctx_r29.required));
764
770
  } }
765
771
  function AddEmployerComponent_ion_grid_6_div_32_Template(rf, ctx) { if (rf & 1) {
766
772
  const _r104 = i0.ɵɵgetCurrentView();
@@ -781,7 +787,7 @@ function AddEmployerComponent_ion_grid_6_div_32_Template(rf, ctx) { if (rf & 1)
781
787
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r30.milPensionRecvDate)("yearNavigator", true)("showOnFocus", false);
782
788
  i0.ɵɵadvance(1);
783
789
  i0.ɵɵclassMap("app-grid");
784
- i0.ɵɵproperty("form", ctx_r30.isFormSubmitted)("field", ctx_r30.milPensionRecvDate)("errDef", i0.ɵɵpureFunction0(12, _c3));
790
+ i0.ɵɵproperty("form", ctx_r30.isFormSubmitted)("field", ctx_r30.milPensionRecvDate)("errDef", i0.ɵɵpureFunction1(12, _c3, ctx_r30.required));
785
791
  } }
786
792
  function AddEmployerComponent_ion_grid_6_div_33_Template(rf, ctx) { if (rf & 1) {
787
793
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 102);
@@ -884,17 +890,20 @@ function AddEmployerComponent_ion_grid_6_ion_row_43_Template(rf, ctx) { if (rf &
884
890
  } }
885
891
  function AddEmployerComponent_ion_grid_6_ion_row_44_Template(rf, ctx) { if (rf & 1) {
886
892
  i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 110)(2, "div", 14)(3, "label", 111);
887
- i0.ɵɵtext(4, "Total Wages Earned");
893
+ i0.ɵɵtext(4);
894
+ i0.ɵɵpipe(5, "translate");
888
895
  i0.ɵɵelementEnd();
889
- i0.ɵɵelement(5, "p-inputNumber", 112)(6, "app-error", 9);
896
+ i0.ɵɵelement(6, "p-inputNumber", 112)(7, "app-error", 9);
890
897
  i0.ɵɵelementEnd()()();
891
898
  } if (rf & 2) {
892
899
  const ctx_r39 = i0.ɵɵnextContext(2);
893
- i0.ɵɵadvance(5);
900
+ i0.ɵɵadvance(4);
901
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 8, "induction.add.employment.total.wages.earned"), " ");
902
+ i0.ɵɵadvance(2);
894
903
  i0.ɵɵproperty("formControl", ctx_r39.grossWages)("max", 999999.99);
895
904
  i0.ɵɵadvance(1);
896
905
  i0.ɵɵclassMap("app-grid");
897
- i0.ɵɵproperty("form", ctx_r39.isFormSubmitted)("field", ctx_r39.grossWages)("errDef", i0.ɵɵpureFunction0(7, _c3));
906
+ i0.ɵɵproperty("form", ctx_r39.isFormSubmitted)("field", ctx_r39.grossWages)("errDef", i0.ɵɵpureFunction1(10, _c3, ctx_r39.required));
898
907
  } }
899
908
  function AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_1_Template(rf, ctx) { if (rf & 1) {
900
909
  i0.ɵɵelementStart(0, "ion-col", 116)(1, "div", 14)(2, "label", 85);
@@ -911,7 +920,7 @@ function AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_1_Template(rf, ctx)
911
920
  i0.ɵɵproperty("formControl", ctx_r105.payRate)("max", 999999.99);
912
921
  i0.ɵɵadvance(1);
913
922
  i0.ɵɵclassMap("app-grid");
914
- i0.ɵɵproperty("form", ctx_r105.isFormSubmitted)("field", ctx_r105.payRate)("errDef", i0.ɵɵpureFunction0(10, _c3));
923
+ i0.ɵɵproperty("form", ctx_r105.isFormSubmitted)("field", ctx_r105.payRate)("errDef", i0.ɵɵpureFunction1(10, _c3, ctx_r105.required));
915
924
  } }
916
925
  function AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_2_Template(rf, ctx) { if (rf & 1) {
917
926
  i0.ɵɵelementStart(0, "ion-col", 117)(1, "div", 14)(2, "label", 87);
@@ -928,25 +937,28 @@ function AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_2_Template(rf, ctx)
928
937
  i0.ɵɵproperty("options", ctx_r106.payRateOptions)("formControl", ctx_r106.payRateFrequency)("autoDisplayFirst", false);
929
938
  i0.ɵɵadvance(1);
930
939
  i0.ɵɵclassMap("app-grid");
931
- i0.ɵɵproperty("form", ctx_r106.isFormSubmitted)("field", ctx_r106.payRateFrequency)("errDef", i0.ɵɵpureFunction0(11, _c3));
940
+ i0.ɵɵproperty("form", ctx_r106.isFormSubmitted)("field", ctx_r106.payRateFrequency)("errDef", i0.ɵɵpureFunction1(11, _c3, ctx_r106.required));
932
941
  } }
933
942
  function AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_3_Template(rf, ctx) { if (rf & 1) {
934
943
  i0.ɵɵelementStart(0, "ion-col", 110)(1, "div", 14)(2, "label", 111);
935
- i0.ɵɵtext(3, "Total Wages Earned");
944
+ i0.ɵɵtext(3);
945
+ i0.ɵɵpipe(4, "translate");
936
946
  i0.ɵɵelementEnd();
937
- i0.ɵɵelement(4, "p-inputNumber", 112)(5, "app-error", 9);
947
+ i0.ɵɵelement(5, "p-inputNumber", 112)(6, "app-error", 9);
938
948
  i0.ɵɵelementEnd()();
939
949
  } if (rf & 2) {
940
950
  const ctx_r107 = i0.ɵɵnextContext(3);
941
- i0.ɵɵadvance(4);
951
+ i0.ɵɵadvance(3);
952
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 8, "induction.add.employment.total.wages.earned"));
953
+ i0.ɵɵadvance(2);
942
954
  i0.ɵɵproperty("formControl", ctx_r107.grossWages)("max", 999999.99);
943
955
  i0.ɵɵadvance(1);
944
956
  i0.ɵɵclassMap("app-grid");
945
- i0.ɵɵproperty("form", ctx_r107.isFormSubmitted)("field", ctx_r107.grossWages)("errDef", i0.ɵɵpureFunction0(7, _c3));
957
+ i0.ɵɵproperty("form", ctx_r107.isFormSubmitted)("field", ctx_r107.grossWages)("errDef", i0.ɵɵpureFunction1(10, _c3, ctx_r107.required));
946
958
  } }
947
959
  function AddEmployerComponent_ion_grid_6_ion_row_45_Template(rf, ctx) { if (rf & 1) {
948
960
  i0.ɵɵelementStart(0, "ion-row");
949
- i0.ɵɵtemplate(1, AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_1_Template, 7, 11, "ion-col", 113)(2, AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_2_Template, 7, 12, "ion-col", 114)(3, AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_3_Template, 6, 8, "ion-col", 115);
961
+ i0.ɵɵtemplate(1, AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_1_Template, 7, 12, "ion-col", 113)(2, AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_2_Template, 7, 13, "ion-col", 114)(3, AddEmployerComponent_ion_grid_6_ion_row_45_ion_col_3_Template, 7, 12, "ion-col", 115);
950
962
  i0.ɵɵelementEnd();
951
963
  } if (rf & 2) {
952
964
  const ctx_r40 = i0.ɵɵnextContext(2);
@@ -983,7 +995,7 @@ function AddEmployerComponent_ion_grid_6_div_46_Template(rf, ctx) { if (rf & 1)
983
995
  i0.ɵɵpropertyInterpolate("overlayText", i0.ɵɵpipeBind1(10, 14, "induction.add.employment.fed.pension.info"));
984
996
  i0.ɵɵadvance(2);
985
997
  i0.ɵɵclassMap("app-grid");
986
- i0.ɵɵproperty("form", ctx_r41.isFormSubmitted)("field", ctx_r41.fedPensionFlag)("errDef", i0.ɵɵpureFunction0(16, _c3));
998
+ i0.ɵɵproperty("form", ctx_r41.isFormSubmitted)("field", ctx_r41.fedPensionFlag)("errDef", i0.ɵɵpureFunction1(16, _c3, ctx_r41.required));
987
999
  } }
988
1000
  function AddEmployerComponent_ion_grid_6_div_47_Template(rf, ctx) { if (rf & 1) {
989
1001
  const _r109 = i0.ɵɵgetCurrentView();
@@ -1004,7 +1016,7 @@ function AddEmployerComponent_ion_grid_6_div_47_Template(rf, ctx) { if (rf & 1)
1004
1016
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r42.fedPensionRecvDate)("yearNavigator", true)("showOnFocus", false);
1005
1017
  i0.ɵɵadvance(1);
1006
1018
  i0.ɵɵclassMap("app-grid");
1007
- i0.ɵɵproperty("form", ctx_r42.isFormSubmitted)("field", ctx_r42.fedPensionRecvDate)("errDef", i0.ɵɵpureFunction0(12, _c3));
1019
+ i0.ɵɵproperty("form", ctx_r42.isFormSubmitted)("field", ctx_r42.fedPensionRecvDate)("errDef", i0.ɵɵpureFunction1(12, _c3, ctx_r42.required));
1008
1020
  } }
1009
1021
  function AddEmployerComponent_ion_grid_6_div_48_Template(rf, ctx) { if (rf & 1) {
1010
1022
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 124);
@@ -1022,7 +1034,7 @@ function AddEmployerComponent_ion_grid_6_div_48_Template(rf, ctx) { if (rf & 1)
1022
1034
  i0.ɵɵproperty("options", ctx_r43.radioOptions)("formControl", ctx_r43.sevPayFlag);
1023
1035
  i0.ɵɵadvance(1);
1024
1036
  i0.ɵɵclassMap("app-grid");
1025
- i0.ɵɵproperty("form", ctx_r43.isFormSubmitted)("field", ctx_r43.sevPayFlag)("errDef", i0.ɵɵpureFunction0(10, _c3));
1037
+ i0.ɵɵproperty("form", ctx_r43.isFormSubmitted)("field", ctx_r43.sevPayFlag)("errDef", i0.ɵɵpureFunction1(10, _c3, ctx_r43.required));
1026
1038
  } }
1027
1039
  function AddEmployerComponent_ion_grid_6_ion_row_49_Template(rf, ctx) { if (rf & 1) {
1028
1040
  i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 126)(2, "div", 14)(3, "label", 127);
@@ -1051,21 +1063,21 @@ function AddEmployerComponent_ion_grid_6_ion_row_49_Template(rf, ctx) { if (rf &
1051
1063
  i0.ɵɵproperty("formControl", ctx_r44.weeklyAmount)("max", 999999.99);
1052
1064
  i0.ɵɵadvance(1);
1053
1065
  i0.ɵɵclassMap("app-grid");
1054
- i0.ɵɵproperty("form", ctx_r44.isFormSubmitted)("field", ctx_r44.weeklyAmount)("errDef", i0.ɵɵpureFunction0(30, _c3));
1066
+ i0.ɵɵproperty("form", ctx_r44.isFormSubmitted)("field", ctx_r44.weeklyAmount)("errDef", i0.ɵɵpureFunction1(30, _c3, ctx_r44.required));
1055
1067
  i0.ɵɵadvance(4);
1056
1068
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 26, "induction.add.employment.fed.severance.weeks"));
1057
1069
  i0.ɵɵadvance(2);
1058
1070
  i0.ɵɵproperty("useGrouping", false)("formControl", ctx_r44.numberOfWeeks);
1059
1071
  i0.ɵɵadvance(1);
1060
1072
  i0.ɵɵclassMap("app-grid");
1061
- i0.ɵɵproperty("form", ctx_r44.isFormSubmitted)("field", ctx_r44.numberOfWeeks)("errDef", i0.ɵɵpureFunction0(31, _c3));
1073
+ i0.ɵɵproperty("form", ctx_r44.isFormSubmitted)("field", ctx_r44.numberOfWeeks)("errDef", i0.ɵɵpureFunction1(32, _c3, ctx_r44.required));
1062
1074
  i0.ɵɵadvance(4);
1063
1075
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(19, 28, "induction.add.employment.fed.severance.entitlement"));
1064
1076
  i0.ɵɵadvance(2);
1065
1077
  i0.ɵɵproperty("formControl", ctx_r44.sevPayAmount)("max", 999999.99);
1066
1078
  i0.ɵɵadvance(1);
1067
1079
  i0.ɵɵclassMap("app-grid");
1068
- i0.ɵɵproperty("form", ctx_r44.isFormSubmitted)("field", ctx_r44.sevPayAmount)("errDef", i0.ɵɵpureFunction0(32, _c3));
1080
+ i0.ɵɵproperty("form", ctx_r44.isFormSubmitted)("field", ctx_r44.sevPayAmount)("errDef", i0.ɵɵpureFunction1(34, _c3, ctx_r44.required));
1069
1081
  } }
1070
1082
  function AddEmployerComponent_ion_grid_6_ion_row_50_Template(rf, ctx) { if (rf & 1) {
1071
1083
  const _r111 = i0.ɵɵgetCurrentView();
@@ -1104,21 +1116,21 @@ function AddEmployerComponent_ion_grid_6_ion_row_50_Template(rf, ctx) { if (rf &
1104
1116
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r45.sevPayStartDate)("yearNavigator", true)("showOnFocus", false);
1105
1117
  i0.ɵɵadvance(1);
1106
1118
  i0.ɵɵclassMap("app-grid");
1107
- i0.ɵɵproperty("form", ctx_r45.isFormSubmitted)("field", ctx_r45.sevPayStartDate)("errDef", i0.ɵɵpureFunction0(37, _c3));
1119
+ i0.ɵɵproperty("form", ctx_r45.isFormSubmitted)("field", ctx_r45.sevPayStartDate)("errDef", i0.ɵɵpureFunction1(37, _c3, ctx_r45.required));
1108
1120
  i0.ɵɵadvance(4);
1109
1121
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 33, "induction.add.employment.fed.severance.end.date"));
1110
1122
  i0.ɵɵadvance(2);
1111
1123
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r45.sevPayEndDate)("yearNavigator", true)("minDate", ctx_r45.minDate)("showOnFocus", false);
1112
1124
  i0.ɵɵadvance(1);
1113
1125
  i0.ɵɵclassMap("app-grid");
1114
- i0.ɵɵproperty("form", ctx_r45.isFormSubmitted)("field", ctx_r45.sevPayEndDate)("errDef", i0.ɵɵpureFunction0(38, _c3));
1126
+ i0.ɵɵproperty("form", ctx_r45.isFormSubmitted)("field", ctx_r45.sevPayEndDate)("errDef", i0.ɵɵpureFunction1(39, _c3, ctx_r45.required));
1115
1127
  i0.ɵɵadvance(4);
1116
1128
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(19, 35, "induction.add.employment.fed.severance.pay.date"));
1117
1129
  i0.ɵɵadvance(2);
1118
1130
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r45.sevPayPaymentStartDate)("yearNavigator", true)("showOnFocus", false);
1119
1131
  i0.ɵɵadvance(1);
1120
1132
  i0.ɵɵclassMap("app-grid");
1121
- i0.ɵɵproperty("form", ctx_r45.isFormSubmitted)("field", ctx_r45.sevPayPaymentStartDate)("errDef", i0.ɵɵpureFunction0(39, _c3));
1133
+ i0.ɵɵproperty("form", ctx_r45.isFormSubmitted)("field", ctx_r45.sevPayPaymentStartDate)("errDef", i0.ɵɵpureFunction1(41, _c3, ctx_r45.required));
1122
1134
  } }
1123
1135
  function AddEmployerComponent_ion_grid_6_div_51_Template(rf, ctx) { if (rf & 1) {
1124
1136
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 139);
@@ -1136,7 +1148,7 @@ function AddEmployerComponent_ion_grid_6_div_51_Template(rf, ctx) { if (rf & 1)
1136
1148
  i0.ɵɵproperty("options", ctx_r46.radioOptions)("formControl", ctx_r46.pensionFlag);
1137
1149
  i0.ɵɵadvance(1);
1138
1150
  i0.ɵɵclassMap("app-grid");
1139
- i0.ɵɵproperty("form", ctx_r46.isFormSubmitted)("field", ctx_r46.pensionFlag)("errDef", i0.ɵɵpureFunction0(10, _c3));
1151
+ i0.ɵɵproperty("form", ctx_r46.isFormSubmitted)("field", ctx_r46.pensionFlag)("errDef", i0.ɵɵpureFunction1(10, _c3, ctx_r46.required));
1140
1152
  } }
1141
1153
  function AddEmployerComponent_ion_grid_6_div_52_Template(rf, ctx) { if (rf & 1) {
1142
1154
  const _r117 = i0.ɵɵgetCurrentView();
@@ -1157,7 +1169,7 @@ function AddEmployerComponent_ion_grid_6_div_52_Template(rf, ctx) { if (rf & 1)
1157
1169
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r47.pensionRecvDate)("yearNavigator", true)("showOnFocus", false);
1158
1170
  i0.ɵɵadvance(1);
1159
1171
  i0.ɵɵclassMap("app-grid");
1160
- i0.ɵɵproperty("form", ctx_r47.isFormSubmitted)("field", ctx_r47.pensionRecvDate)("errDef", i0.ɵɵpureFunction0(12, _c3));
1172
+ i0.ɵɵproperty("form", ctx_r47.isFormSubmitted)("field", ctx_r47.pensionRecvDate)("errDef", i0.ɵɵpureFunction1(12, _c3, ctx_r47.required));
1161
1173
  } }
1162
1174
  function AddEmployerComponent_ion_grid_6_div_53_Template(rf, ctx) { if (rf & 1) {
1163
1175
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 143);
@@ -1185,7 +1197,7 @@ function AddEmployerComponent_ion_grid_6_div_53_Template(rf, ctx) { if (rf & 1)
1185
1197
  i0.ɵɵpropertyInterpolate("overlayText", i0.ɵɵpipeBind1(10, 14, "induction.add.employment.reg.pension.info"));
1186
1198
  i0.ɵɵadvance(2);
1187
1199
  i0.ɵɵclassMap("app-grid");
1188
- i0.ɵɵproperty("form", ctx_r48.isFormSubmitted)("field", ctx_r48.regPensionFlag)("errDef", i0.ɵɵpureFunction0(16, _c3));
1200
+ i0.ɵɵproperty("form", ctx_r48.isFormSubmitted)("field", ctx_r48.regPensionFlag)("errDef", i0.ɵɵpureFunction1(16, _c3, ctx_r48.required));
1189
1201
  } }
1190
1202
  function AddEmployerComponent_ion_grid_6_div_54_Template(rf, ctx) { if (rf & 1) {
1191
1203
  const _r119 = i0.ɵɵgetCurrentView();
@@ -1206,7 +1218,7 @@ function AddEmployerComponent_ion_grid_6_div_54_Template(rf, ctx) { if (rf & 1)
1206
1218
  i0.ɵɵproperty("showIcon", true)("formControl", ctx_r49.regPensionRecvDate)("yearNavigator", true)("showOnFocus", false);
1207
1219
  i0.ɵɵadvance(1);
1208
1220
  i0.ɵɵclassMap("app-grid");
1209
- i0.ɵɵproperty("form", ctx_r49.isFormSubmitted)("field", ctx_r49.regPensionRecvDate)("errDef", i0.ɵɵpureFunction0(12, _c3));
1221
+ i0.ɵɵproperty("form", ctx_r49.isFormSubmitted)("field", ctx_r49.regPensionRecvDate)("errDef", i0.ɵɵpureFunction1(12, _c3, ctx_r49.required));
1210
1222
  } }
1211
1223
  function AddEmployerComponent_ion_grid_6_div_55_div_28_Template(rf, ctx) { if (rf & 1) {
1212
1224
  i0.ɵɵelementStart(0, "div", 14)(1, "label", 153);
@@ -1223,7 +1235,7 @@ function AddEmployerComponent_ion_grid_6_div_55_div_28_Template(rf, ctx) { if (r
1223
1235
  i0.ɵɵproperty("formControl", ctx_r120.otherSSN);
1224
1236
  i0.ɵɵadvance(1);
1225
1237
  i0.ɵɵclassMap("app-grid");
1226
- i0.ɵɵproperty("form", ctx_r120.isFormSubmitted)("field", ctx_r120.otherSSN)("errDef", i0.ɵɵpureFunction0(9, _c3));
1238
+ i0.ɵɵproperty("form", ctx_r120.isFormSubmitted)("field", ctx_r120.otherSSN)("errDef", i0.ɵɵpureFunction1(9, _c3, ctx_r120.required));
1227
1239
  } }
1228
1240
  function AddEmployerComponent_ion_grid_6_div_55_Template(rf, ctx) { if (rf & 1) {
1229
1241
  i0.ɵɵelementStart(0, "div")(1, "div", 14)(2, "h4");
@@ -1253,7 +1265,7 @@ function AddEmployerComponent_ion_grid_6_div_55_Template(rf, ctx) { if (rf & 1)
1253
1265
  i0.ɵɵelementStart(25, "div", 23);
1254
1266
  i0.ɵɵelement(26, "p-selectButton", 152)(27, "app-error", 9);
1255
1267
  i0.ɵɵelementEnd()();
1256
- i0.ɵɵtemplate(28, AddEmployerComponent_ion_grid_6_div_55_div_28_Template, 6, 10, "div", 7);
1268
+ i0.ɵɵtemplate(28, AddEmployerComponent_ion_grid_6_div_55_div_28_Template, 6, 11, "div", 7);
1257
1269
  i0.ɵɵelementEnd();
1258
1270
  } if (rf & 2) {
1259
1271
  const ctx_r50 = i0.ɵɵnextContext(2);
@@ -1267,21 +1279,21 @@ function AddEmployerComponent_ion_grid_6_div_55_Template(rf, ctx) { if (rf & 1)
1267
1279
  i0.ɵɵproperty("options", ctx_r50.payMethodOptions)("formControl", ctx_r50.paymentType);
1268
1280
  i0.ɵɵadvance(1);
1269
1281
  i0.ɵɵclassMap("app-grid");
1270
- i0.ɵɵproperty("form", ctx_r50.isFormSubmitted)("field", ctx_r50.paymentType)("errDef", i0.ɵɵpureFunction0(37, _c3));
1282
+ i0.ɵɵproperty("form", ctx_r50.isFormSubmitted)("field", ctx_r50.paymentType)("errDef", i0.ɵɵpureFunction1(37, _c3, ctx_r50.required));
1271
1283
  i0.ɵɵadvance(3);
1272
1284
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(18, 33, "induction.add.employment.reg.verification.wages.docs"));
1273
1285
  i0.ɵɵadvance(2);
1274
1286
  i0.ɵɵproperty("options", ctx_r50.wageProofOptions)("formControl", ctx_r50.docsReceived);
1275
1287
  i0.ɵɵadvance(1);
1276
1288
  i0.ɵɵclassMap("app-grid");
1277
- i0.ɵɵproperty("form", ctx_r50.isFormSubmitted)("field", ctx_r50.docsReceived)("errDef", i0.ɵɵpureFunction0(38, _c3));
1289
+ i0.ɵɵproperty("form", ctx_r50.isFormSubmitted)("field", ctx_r50.docsReceived)("errDef", i0.ɵɵpureFunction1(39, _c3, ctx_r50.required));
1278
1290
  i0.ɵɵadvance(3);
1279
1291
  i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(24, 35, "induction.add.employment.reg.verification.wages.other.ssn.flag"), " ");
1280
1292
  i0.ɵɵadvance(3);
1281
1293
  i0.ɵɵproperty("options", ctx_r50.radioOptions)("formControl", ctx_r50.otherSSNFlag);
1282
1294
  i0.ɵɵadvance(1);
1283
1295
  i0.ɵɵclassMap("app-grid");
1284
- i0.ɵɵproperty("form", ctx_r50.isFormSubmitted)("field", ctx_r50.otherSSNFlag)("errDef", i0.ɵɵpureFunction0(39, _c3));
1296
+ i0.ɵɵproperty("form", ctx_r50.isFormSubmitted)("field", ctx_r50.otherSSNFlag)("errDef", i0.ɵɵpureFunction1(41, _c3, ctx_r50.required));
1285
1297
  i0.ɵɵadvance(1);
1286
1298
  i0.ɵɵproperty("ngIf", ctx_r50.otherSSNFlag.value === "Y");
1287
1299
  } }
@@ -1300,7 +1312,7 @@ function AddEmployerComponent_ion_grid_6_ion_row_56_div_9_Template(rf, ctx) { if
1300
1312
  i0.ɵɵproperty("formControl", ctx_r121.otherName);
1301
1313
  i0.ɵɵadvance(1);
1302
1314
  i0.ɵɵclassMap("app-grid");
1303
- i0.ɵɵproperty("form", ctx_r121.isFormSubmitted)("field", ctx_r121.otherName)("errDef", i0.ɵɵpureFunction0(9, _c3));
1315
+ i0.ɵɵproperty("form", ctx_r121.isFormSubmitted)("field", ctx_r121.otherName)("errDef", i0.ɵɵpureFunction1(9, _c3, ctx_r121.required));
1304
1316
  } }
1305
1317
  function AddEmployerComponent_ion_grid_6_ion_row_56_Template(rf, ctx) { if (rf & 1) {
1306
1318
  i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 38)(2, "div", 14)(3, "label", 155);
@@ -1310,7 +1322,7 @@ function AddEmployerComponent_ion_grid_6_ion_row_56_Template(rf, ctx) { if (rf &
1310
1322
  i0.ɵɵelementStart(6, "div", 23);
1311
1323
  i0.ɵɵelement(7, "p-selectButton", 156)(8, "app-error", 9);
1312
1324
  i0.ɵɵelementEnd()();
1313
- i0.ɵɵtemplate(9, AddEmployerComponent_ion_grid_6_ion_row_56_div_9_Template, 6, 10, "div", 7);
1325
+ i0.ɵɵtemplate(9, AddEmployerComponent_ion_grid_6_ion_row_56_div_9_Template, 6, 11, "div", 7);
1314
1326
  i0.ɵɵelementEnd()();
1315
1327
  } if (rf & 2) {
1316
1328
  const ctx_r51 = i0.ɵɵnextContext(2);
@@ -1320,7 +1332,7 @@ function AddEmployerComponent_ion_grid_6_ion_row_56_Template(rf, ctx) { if (rf &
1320
1332
  i0.ɵɵproperty("options", ctx_r51.radioOptions)("formControl", ctx_r51.otherNameFlag);
1321
1333
  i0.ɵɵadvance(1);
1322
1334
  i0.ɵɵclassMap("app-grid");
1323
- i0.ɵɵproperty("form", ctx_r51.isFormSubmitted)("field", ctx_r51.otherNameFlag)("errDef", i0.ɵɵpureFunction0(11, _c3));
1335
+ i0.ɵɵproperty("form", ctx_r51.isFormSubmitted)("field", ctx_r51.otherNameFlag)("errDef", i0.ɵɵpureFunction1(11, _c3, ctx_r51.required));
1324
1336
  i0.ɵɵadvance(1);
1325
1337
  i0.ɵɵproperty("ngIf", ctx_r51.otherNameFlag.value === "Y");
1326
1338
  } }
@@ -1339,7 +1351,7 @@ function AddEmployerComponent_ion_grid_6_ion_row_57_Template(rf, ctx) { if (rf &
1339
1351
  i0.ɵɵproperty("formControl", ctx_r52.businessNature);
1340
1352
  i0.ɵɵadvance(1);
1341
1353
  i0.ɵɵclassMap("app-grid");
1342
- i0.ɵɵproperty("form", ctx_r52.isFormSubmitted)("field", ctx_r52.businessNature)("errDef", i0.ɵɵpureFunction0(9, _c3));
1354
+ i0.ɵɵproperty("form", ctx_r52.isFormSubmitted)("field", ctx_r52.businessNature)("errDef", i0.ɵɵpureFunction1(9, _c3, ctx_r52.required));
1343
1355
  } }
1344
1356
  function AddEmployerComponent_ion_grid_6_div_58_Template(rf, ctx) { if (rf & 1) {
1345
1357
  i0.ɵɵelementStart(0, "div", 14)(1, "label");
@@ -1380,7 +1392,7 @@ function AddEmployerComponent_ion_grid_6_div_59_ng_container_13_Template(rf, ctx
1380
1392
  i0.ɵɵadvance(1);
1381
1393
  i0.ɵɵproperty("ngIf", ctx_r122.employerType.value === "FED" || ctx_r122.employerType.value === "REG" && wageAmountForm_r124.value.displayForAll === true);
1382
1394
  } }
1383
- const _c6 = () => ({ requireCheckboxToBeChecked: "at least one amount must be greater than zero" });
1395
+ const _c5 = () => ({ requireCheckboxToBeChecked: "at least one amount must be greater than zero" });
1384
1396
  function AddEmployerComponent_ion_grid_6_div_59_tr_14_Template(rf, ctx) { if (rf & 1) {
1385
1397
  i0.ɵɵelementStart(0, "tr")(1, "td", 168);
1386
1398
  i0.ɵɵelement(2, "app-error", 169);
@@ -1389,7 +1401,7 @@ function AddEmployerComponent_ion_grid_6_div_59_tr_14_Template(rf, ctx) { if (rf
1389
1401
  const ctx_r123 = i0.ɵɵnextContext(3);
1390
1402
  i0.ɵɵadvance(2);
1391
1403
  i0.ɵɵclassMap("app-grid");
1392
- i0.ɵɵproperty("field", ctx_r123.wageAmountArray)("form", ctx_r123.isFormSubmitted)("errDef", i0.ɵɵpureFunction0(5, _c6));
1404
+ i0.ɵɵproperty("field", ctx_r123.wageAmountArray)("form", ctx_r123.isFormSubmitted)("errDef", i0.ɵɵpureFunction0(5, _c5));
1393
1405
  } }
1394
1406
  function AddEmployerComponent_ion_grid_6_div_59_Template(rf, ctx) { if (rf & 1) {
1395
1407
  i0.ɵɵelementStart(0, "div", 14)(1, "label");
@@ -1439,7 +1451,7 @@ function AddEmployerComponent_ion_grid_6_div_60_Template(rf, ctx) { if (rf & 1)
1439
1451
  i0.ɵɵproperty("options", ctx_r55.radioOptions)("formControl", ctx_r55.severance);
1440
1452
  i0.ɵɵadvance(1);
1441
1453
  i0.ɵɵclassMap("app-grid");
1442
- i0.ɵɵproperty("form", ctx_r55.isFormSubmitted)("field", ctx_r55.severance)("errDef", i0.ɵɵpureFunction0(10, _c3));
1454
+ i0.ɵɵproperty("form", ctx_r55.isFormSubmitted)("field", ctx_r55.severance)("errDef", i0.ɵɵpureFunction1(10, _c3, ctx_r55.required));
1443
1455
  } }
1444
1456
  function AddEmployerComponent_ion_grid_6_ion_button_66_Template(rf, ctx) { if (rf & 1) {
1445
1457
  const _r129 = i0.ɵɵgetCurrentView();
@@ -1468,13 +1480,13 @@ function AddEmployerComponent_ion_grid_6_ion_button_67_Template(rf, ctx) { if (r
1468
1480
  function AddEmployerComponent_ion_grid_6_Template(rf, ctx) { if (rf & 1) {
1469
1481
  const _r137 = i0.ɵɵgetCurrentView();
1470
1482
  i0.ɵɵelementStart(0, "ion-grid")(1, "ion-row")(2, "ion-col", 5)(3, "div", 6);
1471
- i0.ɵɵtemplate(4, AddEmployerComponent_ion_grid_6_div_4_Template, 8, 5, "div", 7)(5, AddEmployerComponent_ion_grid_6_div_5_Template, 8, 6, "div", 7)(6, AddEmployerComponent_ion_grid_6_div_6_Template, 7, 13, "div", 7)(7, AddEmployerComponent_ion_grid_6_div_7_Template, 7, 13, "div", 7)(8, AddEmployerComponent_ion_grid_6_div_8_Template, 7, 5, "div", 7)(9, AddEmployerComponent_ion_grid_6_div_9_Template, 6, 10, "div", 8)(10, AddEmployerComponent_ion_grid_6_div_10_Template, 6, 12, "div", 7)(11, AddEmployerComponent_ion_grid_6_div_11_Template, 5, 6, "div", 7)(12, AddEmployerComponent_ion_grid_6_ion_row_12_Template, 16, 30, "ion-row", 4)(13, AddEmployerComponent_ion_grid_6_ion_row_13_Template, 16, 20, "ion-row", 4)(14, AddEmployerComponent_ion_grid_6_ion_row_14_Template, 4, 3, "ion-row", 4)(15, AddEmployerComponent_ion_grid_6_div_15_Template, 5, 10, "div", 7)(16, AddEmployerComponent_ion_grid_6_ion_row_16_Template, 16, 22, "ion-row", 4)(17, AddEmployerComponent_ion_grid_6_div_17_Template, 6, 12, "div", 7)(18, AddEmployerComponent_ion_grid_6_ion_row_18_Template, 10, 11, "ion-row", 4)(19, AddEmployerComponent_ion_grid_6_ion_row_19_Template, 16, 30, "ion-row", 4)(20, AddEmployerComponent_ion_grid_6_div_20_Template, 6, 10, "div", 7)(21, AddEmployerComponent_ion_grid_6_div_21_Template, 7, 11, "div", 7)(22, AddEmployerComponent_ion_grid_6_ion_row_22_Template, 16, 30, "ion-row", 4)(23, AddEmployerComponent_ion_grid_6_ion_row_23_Template, 8, 10, "ion-row", 4)(24, AddEmployerComponent_ion_grid_6_div_24_Template, 7, 11, "div", 7)(25, AddEmployerComponent_ion_grid_6_div_25_Template, 6, 10, "div", 7)(26, AddEmployerComponent_ion_grid_6_ion_row_26_Template, 15, 23, "ion-row", 4)(27, AddEmployerComponent_ion_grid_6_div_27_Template, 6, 10, "div", 7)(28, AddEmployerComponent_ion_grid_6_div_28_Template, 5, 11, "div", 7)(29, AddEmployerComponent_ion_grid_6_div_29_Template, 6, 12, "div", 7)(30, AddEmployerComponent_ion_grid_6_div_30_Template, 6, 12, "div", 7)(31, AddEmployerComponent_ion_grid_6_div_31_Template, 10, 14, "div", 7)(32, AddEmployerComponent_ion_grid_6_div_32_Template, 7, 13, "div", 7)(33, AddEmployerComponent_ion_grid_6_div_33_Template, 8, 6, "div", 7);
1483
+ i0.ɵɵtemplate(4, AddEmployerComponent_ion_grid_6_div_4_Template, 8, 5, "div", 7)(5, AddEmployerComponent_ion_grid_6_div_5_Template, 8, 6, "div", 7)(6, AddEmployerComponent_ion_grid_6_div_6_Template, 7, 14, "div", 7)(7, AddEmployerComponent_ion_grid_6_div_7_Template, 7, 14, "div", 7)(8, AddEmployerComponent_ion_grid_6_div_8_Template, 7, 5, "div", 7)(9, AddEmployerComponent_ion_grid_6_div_9_Template, 6, 11, "div", 8)(10, AddEmployerComponent_ion_grid_6_div_10_Template, 6, 13, "div", 7)(11, AddEmployerComponent_ion_grid_6_div_11_Template, 6, 11, "div", 7)(12, AddEmployerComponent_ion_grid_6_ion_row_12_Template, 16, 32, "ion-row", 4)(13, AddEmployerComponent_ion_grid_6_ion_row_13_Template, 16, 22, "ion-row", 4)(14, AddEmployerComponent_ion_grid_6_ion_row_14_Template, 4, 3, "ion-row", 4)(15, AddEmployerComponent_ion_grid_6_div_15_Template, 5, 11, "div", 7)(16, AddEmployerComponent_ion_grid_6_ion_row_16_Template, 16, 24, "ion-row", 4)(17, AddEmployerComponent_ion_grid_6_div_17_Template, 6, 13, "div", 7)(18, AddEmployerComponent_ion_grid_6_ion_row_18_Template, 10, 12, "ion-row", 4)(19, AddEmployerComponent_ion_grid_6_ion_row_19_Template, 16, 32, "ion-row", 4)(20, AddEmployerComponent_ion_grid_6_div_20_Template, 6, 11, "div", 7)(21, AddEmployerComponent_ion_grid_6_div_21_Template, 7, 12, "div", 7)(22, AddEmployerComponent_ion_grid_6_ion_row_22_Template, 16, 32, "ion-row", 4)(23, AddEmployerComponent_ion_grid_6_ion_row_23_Template, 8, 11, "ion-row", 4)(24, AddEmployerComponent_ion_grid_6_div_24_Template, 7, 12, "div", 7)(25, AddEmployerComponent_ion_grid_6_div_25_Template, 6, 11, "div", 7)(26, AddEmployerComponent_ion_grid_6_ion_row_26_Template, 15, 25, "ion-row", 4)(27, AddEmployerComponent_ion_grid_6_div_27_Template, 6, 11, "div", 7)(28, AddEmployerComponent_ion_grid_6_div_28_Template, 5, 12, "div", 7)(29, AddEmployerComponent_ion_grid_6_div_29_Template, 6, 13, "div", 7)(30, AddEmployerComponent_ion_grid_6_div_30_Template, 6, 13, "div", 7)(31, AddEmployerComponent_ion_grid_6_div_31_Template, 10, 15, "div", 7)(32, AddEmployerComponent_ion_grid_6_div_32_Template, 7, 14, "div", 7)(33, AddEmployerComponent_ion_grid_6_div_33_Template, 8, 6, "div", 7);
1472
1484
  i0.ɵɵelement(34, "app-error", 9);
1473
1485
  i0.ɵɵelementEnd()();
1474
1486
  i0.ɵɵelementStart(35, "ion-col", 5)(36, "div", 6);
1475
- i0.ɵɵtemplate(37, AddEmployerComponent_ion_grid_6_ion_row_37_Template, 3, 0, "ion-row", 10)(38, AddEmployerComponent_ion_grid_6_ion_row_38_Template, 3, 0, "ion-row", 10)(39, AddEmployerComponent_ion_grid_6_ion_row_39_Template, 3, 0, "ion-row", 10)(40, AddEmployerComponent_ion_grid_6_ion_row_40_Template, 3, 0, "ion-row", 10)(41, AddEmployerComponent_ion_grid_6_ion_row_41_Template, 3, 0, "ion-row", 10)(42, AddEmployerComponent_ion_grid_6_ion_row_42_Template, 14, 18, "ion-row", 4)(43, AddEmployerComponent_ion_grid_6_ion_row_43_Template, 12, 15, "ion-row", 4)(44, AddEmployerComponent_ion_grid_6_ion_row_44_Template, 7, 8, "ion-row", 4)(45, AddEmployerComponent_ion_grid_6_ion_row_45_Template, 4, 3, "ion-row", 4)(46, AddEmployerComponent_ion_grid_6_div_46_Template, 12, 17, "div", 7)(47, AddEmployerComponent_ion_grid_6_div_47_Template, 7, 13, "div", 7)(48, AddEmployerComponent_ion_grid_6_div_48_Template, 7, 11, "div", 7)(49, AddEmployerComponent_ion_grid_6_ion_row_49_Template, 22, 33, "ion-row", 4)(50, AddEmployerComponent_ion_grid_6_ion_row_50_Template, 22, 40, "ion-row", 4)(51, AddEmployerComponent_ion_grid_6_div_51_Template, 7, 11, "div", 7)(52, AddEmployerComponent_ion_grid_6_div_52_Template, 7, 13, "div", 7)(53, AddEmployerComponent_ion_grid_6_div_53_Template, 12, 17, "div", 7)(54, AddEmployerComponent_ion_grid_6_div_54_Template, 7, 13, "div", 7)(55, AddEmployerComponent_ion_grid_6_div_55_Template, 29, 40, "div", 4)(56, AddEmployerComponent_ion_grid_6_ion_row_56_Template, 10, 12, "ion-row", 4)(57, AddEmployerComponent_ion_grid_6_ion_row_57_Template, 8, 10, "ion-row", 4)(58, AddEmployerComponent_ion_grid_6_div_58_Template, 4, 3, "div", 7)(59, AddEmployerComponent_ion_grid_6_div_59_Template, 15, 11, "div", 7);
1487
+ i0.ɵɵtemplate(37, AddEmployerComponent_ion_grid_6_ion_row_37_Template, 3, 0, "ion-row", 10)(38, AddEmployerComponent_ion_grid_6_ion_row_38_Template, 3, 0, "ion-row", 10)(39, AddEmployerComponent_ion_grid_6_ion_row_39_Template, 3, 0, "ion-row", 10)(40, AddEmployerComponent_ion_grid_6_ion_row_40_Template, 3, 0, "ion-row", 10)(41, AddEmployerComponent_ion_grid_6_ion_row_41_Template, 3, 0, "ion-row", 10)(42, AddEmployerComponent_ion_grid_6_ion_row_42_Template, 14, 18, "ion-row", 4)(43, AddEmployerComponent_ion_grid_6_ion_row_43_Template, 12, 15, "ion-row", 4)(44, AddEmployerComponent_ion_grid_6_ion_row_44_Template, 8, 12, "ion-row", 4)(45, AddEmployerComponent_ion_grid_6_ion_row_45_Template, 4, 3, "ion-row", 4)(46, AddEmployerComponent_ion_grid_6_div_46_Template, 12, 18, "div", 7)(47, AddEmployerComponent_ion_grid_6_div_47_Template, 7, 14, "div", 7)(48, AddEmployerComponent_ion_grid_6_div_48_Template, 7, 12, "div", 7)(49, AddEmployerComponent_ion_grid_6_ion_row_49_Template, 22, 36, "ion-row", 4)(50, AddEmployerComponent_ion_grid_6_ion_row_50_Template, 22, 43, "ion-row", 4)(51, AddEmployerComponent_ion_grid_6_div_51_Template, 7, 12, "div", 7)(52, AddEmployerComponent_ion_grid_6_div_52_Template, 7, 14, "div", 7)(53, AddEmployerComponent_ion_grid_6_div_53_Template, 12, 18, "div", 7)(54, AddEmployerComponent_ion_grid_6_div_54_Template, 7, 14, "div", 7)(55, AddEmployerComponent_ion_grid_6_div_55_Template, 29, 43, "div", 4)(56, AddEmployerComponent_ion_grid_6_ion_row_56_Template, 10, 13, "ion-row", 4)(57, AddEmployerComponent_ion_grid_6_ion_row_57_Template, 8, 11, "ion-row", 4)(58, AddEmployerComponent_ion_grid_6_div_58_Template, 4, 3, "div", 7)(59, AddEmployerComponent_ion_grid_6_div_59_Template, 15, 11, "div", 7);
1476
1488
  i0.ɵɵelementEnd();
1477
- i0.ɵɵtemplate(60, AddEmployerComponent_ion_grid_6_div_60_Template, 7, 11, "div", 7);
1489
+ i0.ɵɵtemplate(60, AddEmployerComponent_ion_grid_6_div_60_Template, 7, 12, "div", 7);
1478
1490
  i0.ɵɵelementEnd()();
1479
1491
  i0.ɵɵelementStart(61, "ion-row")(62, "ion-col", 11)(63, "ion-button", 12);
1480
1492
  i0.ɵɵlistener("click", function AddEmployerComponent_ion_grid_6_Template_ion_button_click_63_listener() { i0.ɵɵrestoreView(_r137); const ctx_r136 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r136.onModelCancel(false)); })("keyup.space", function AddEmployerComponent_ion_grid_6_Template_ion_button_keyup_space_63_listener() { i0.ɵɵrestoreView(_r137); const ctx_r138 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r138.onModelCancel(false)); })("keyup.enter", function AddEmployerComponent_ion_grid_6_Template_ion_button_keyup_enter_63_listener() { i0.ɵɵrestoreView(_r137); const ctx_r139 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r139.onModelCancel(false)); });
@@ -1547,7 +1559,7 @@ function AddEmployerComponent_ion_grid_6_Template(rf, ctx) { if (rf & 1) {
1547
1559
  i0.ɵɵproperty("ngIf", ctx_r1.employerType.value === "MIL");
1548
1560
  i0.ɵɵadvance(1);
1549
1561
  i0.ɵɵclassMap("app-grid");
1550
- i0.ɵɵproperty("form", ctx_r1.isFormSubmitted)("field", ctx_r1.dd214Flag)("errDef", i0.ɵɵpureFunction0(65, _c3));
1562
+ i0.ɵɵproperty("form", ctx_r1.isFormSubmitted)("field", ctx_r1.dd214Flag)("errDef", i0.ɵɵpureFunction1(65, _c3, ctx_r1.required));
1551
1563
  i0.ɵɵadvance(3);
1552
1564
  i0.ɵɵproperty("ngIf", !ctx_r1.isBasePeriodEmployer);
1553
1565
  i0.ɵɵadvance(1);
@@ -1605,10 +1617,10 @@ function AddEmployerComponent_ion_grid_6_Template(rf, ctx) { if (rf & 1) {
1605
1617
  i0.ɵɵadvance(1);
1606
1618
  i0.ɵɵproperty("ngIf", !ctx_r1.isBasePeriodEmployer);
1607
1619
  } }
1608
- const _c7 = () => ({ width: "60vw" });
1609
- const _c8 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
1620
+ const _c6 = () => ({ width: "60vw" });
1621
+ const _c7 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
1610
1622
  export class AddEmployerComponent {
1611
- constructor(formBuilder, validationService, util, filterService, logger, sanitizer, claimsService, ls, el, ar) {
1623
+ constructor(formBuilder, validationService, util, filterService, logger, sanitizer, claimsService, ls, el, ar, translateService) {
1612
1624
  this.formBuilder = formBuilder;
1613
1625
  this.validationService = validationService;
1614
1626
  this.util = util;
@@ -1619,31 +1631,32 @@ export class AddEmployerComponent {
1619
1631
  this.ls = ls;
1620
1632
  this.el = el;
1621
1633
  this.ar = ar;
1622
- this.employerTypeOptions = ComboOption.EMPLOYER_TYPE;
1623
- this.countryOptions = ComboOption.COUNTRY;
1624
- this.countryFedOptions = ComboOption.COUNTRY;
1625
- this.payRateOptions = ComboOption.PAY_PERIOD;
1634
+ this.translateService = translateService;
1635
+ this.employerTypeOptions = [];
1636
+ this.countryOptions = [];
1637
+ this.countryFedOptions = [];
1638
+ this.payRateOptions = [];
1626
1639
  this.stateOptions = [];
1627
1640
  this.fedStateOptions = [];
1628
1641
  this.jobTileOrPositionOptions = [];
1629
1642
  this.fedJobTileOptions = [];
1630
- this.radioOptions = ComboOption.YES_NO;
1631
- this.workOptions = ComboOption.WORK_FOR_EMPL;
1632
- this.yesNoNaOptions = ComboOption.YES_NO_NA;
1633
- this.payMethodOptions = ComboOption.PAYMENT_METHOD;
1634
- this.wageProofOptions = ComboOption.WAGE_PROOF;
1643
+ this.radioOptions = [];
1644
+ this.workOptions = [];
1645
+ this.yesNoNaOptions = [];
1646
+ this.payMethodOptions = [];
1647
+ this.wageProofOptions = [];
1635
1648
  this.dischargeReasonOptions = [];
1636
1649
  this.volQuitReasonOptions = [];
1637
- this.statesOptions = ComboOption.US_STATES;
1638
- this.nonKSStatesOptions = ComboOption.NON_KS_STATES;
1639
- this.payPeriod = ComboOption.PAY_PERIOD;
1650
+ this.statesOptions = [];
1651
+ this.nonKSStatesOptions = [];
1652
+ this.payPeriod = [];
1640
1653
  this.employmentStatusOptions = [];
1641
- this.workCountryOptions = ComboOption.WORK_COUNTRY;
1642
- this.militaryServiceOptions = ComboOption.MILITARY_SERVICE;
1643
- this.remunerationTypeOptions = ComboOption.REMUNERATION_TYPES;
1654
+ this.workCountryOptions = [];
1655
+ this.militaryServiceOptions = [];
1656
+ this.remunerationTypeOptions = [];
1644
1657
  this.dateTime = new Date();
1645
- this.groupedReasons = ComboOption.GROUP_REASONS;
1646
- this.prevWorkedStateOptions = ComboOption.WORKED_STATE;
1658
+ this.groupedReasons = [];
1659
+ this.prevWorkedStateOptions = [];
1647
1660
  this.dischargeReasonOptionsAll = [];
1648
1661
  this.volQuitReasonOptionsAll = [];
1649
1662
  this.employmentStatusOptionsAll = [];
@@ -1674,8 +1687,48 @@ export class AddEmployerComponent {
1674
1687
  ngOnInit() {
1675
1688
  this.setWorkStartDate();
1676
1689
  this.loadMasterData();
1677
- const currentState = ComboOption.US_STATES.find(state => state.value == this.util.getState());
1678
- this.statesOptions = [currentState, ...ComboOption.US_STATES.filter(state => state.value != this.util.getState())];
1690
+ if (localStorage.getItem("language") === "es") {
1691
+ this.employerTypeOptions = ComboOption.EMPLOYER_TYPE_ES;
1692
+ this.countryOptions = ComboOption.COUNTRY_ES;
1693
+ this.countryFedOptions = ComboOption.COUNTRY_ES;
1694
+ this.payRateOptions = ComboOption.PAY_PERIOD_ES;
1695
+ this.radioOptions = ComboOption.YES_NO_ES;
1696
+ this.workOptions = ComboOption.WORK_FOR_EMPL_ES;
1697
+ this.yesNoNaOptions = ComboOption.YES_NO_NA_ES;
1698
+ this.payMethodOptions = ComboOption.PAYMENT_METHOD_ES;
1699
+ this.wageProofOptions = ComboOption.WAGE_PROOF_ES;
1700
+ this.statesOptions = ComboOption.US_STATES_ES;
1701
+ this.nonKSStatesOptions = ComboOption.NON_KS_STATES_ES;
1702
+ this.payPeriod = ComboOption.PAY_PERIOD_ES;
1703
+ this.workCountryOptions = ComboOption.WORK_COUNTRY_ES;
1704
+ this.militaryServiceOptions = ComboOption.MILITARY_SERVICE_ES;
1705
+ this.remunerationTypeOptions = ComboOption.REMUNERATION_TYPES_ES;
1706
+ this.groupedReasons = ComboOption.GROUP_REASONS_ES;
1707
+ this.prevWorkedStateOptions = ComboOption.WORKED_STATE_ES;
1708
+ const currentState = ComboOption.US_STATES_ES.find(state => state.value == this.util.getState());
1709
+ this.statesOptions = [currentState, ...ComboOption.US_STATES_ES.filter(state => state.value != this.util.getState())];
1710
+ }
1711
+ else {
1712
+ this.employerTypeOptions = ComboOption.EMPLOYER_TYPE;
1713
+ this.countryOptions = ComboOption.COUNTRY;
1714
+ this.countryFedOptions = ComboOption.COUNTRY;
1715
+ this.payRateOptions = ComboOption.PAY_PERIOD;
1716
+ this.radioOptions = ComboOption.YES_NO;
1717
+ this.workOptions = ComboOption.WORK_FOR_EMPL;
1718
+ this.yesNoNaOptions = ComboOption.YES_NO_NA;
1719
+ this.payMethodOptions = ComboOption.PAYMENT_METHOD;
1720
+ this.wageProofOptions = ComboOption.WAGE_PROOF;
1721
+ this.statesOptions = ComboOption.US_STATES;
1722
+ this.nonKSStatesOptions = ComboOption.NON_KS_STATES;
1723
+ this.payPeriod = ComboOption.PAY_PERIOD;
1724
+ this.workCountryOptions = ComboOption.WORK_COUNTRY;
1725
+ this.militaryServiceOptions = ComboOption.MILITARY_SERVICE;
1726
+ this.remunerationTypeOptions = ComboOption.REMUNERATION_TYPES;
1727
+ this.groupedReasons = ComboOption.GROUP_REASONS;
1728
+ this.prevWorkedStateOptions = ComboOption.WORKED_STATE;
1729
+ const currentState = ComboOption.US_STATES.find(state => state.value == this.util.getState());
1730
+ this.statesOptions = [currentState, ...ComboOption.US_STATES.filter(state => state.value != this.util.getState())];
1731
+ }
1679
1732
  this.logger.debug('isBasePeriodEmployer is = ', this.isBasePeriodEmployer, this.statesOptions);
1680
1733
  this.logger.debug('isNewClaim = ', this.isNewClaim);
1681
1734
  this.currentState = this.util.getState();
@@ -2500,7 +2553,12 @@ export class AddEmployerComponent {
2500
2553
  let query = event.query;
2501
2554
  this.logger.debug('query', query);
2502
2555
  let filteredGroups = [];
2503
- this.groupedReasons = ComboOption.GROUP_REASONS;
2556
+ if (localStorage.getItem("language") === "es") {
2557
+ this.groupedReasons = ComboOption.GROUP_REASONS_ES;
2558
+ }
2559
+ else {
2560
+ this.groupedReasons = ComboOption.GROUP_REASONS;
2561
+ }
2504
2562
  for (let optgroup of this.groupedReasons) {
2505
2563
  this.logger.debug('optgroup.items', optgroup.items);
2506
2564
  let filteredSubOptions = this.filterService.filter(optgroup.items, ["label"], query, "contains");
@@ -2529,7 +2587,13 @@ export class AddEmployerComponent {
2529
2587
  }
2530
2588
  }
2531
2589
  }
2532
- static { this.ɵfac = function AddEmployerComponent_Factory(t) { return new (t || AddEmployerComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.ValidationService), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.FilterService), i0.ɵɵdirectiveInject(i5.LoggerService), i0.ɵɵdirectiveInject(i6.DomSanitizer), i0.ɵɵdirectiveInject(i7.ClaimService), i0.ɵɵdirectiveInject(i8.LoginService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i9.ActivatedRoute)); }; }
2590
+ get required() {
2591
+ return this.translateService.instant('common.required');
2592
+ }
2593
+ get requiredKansas() {
2594
+ return this.translateService.instant('induction.add.employment.required.kansas');
2595
+ }
2596
+ static { this.ɵfac = function AddEmployerComponent_Factory(t) { return new (t || AddEmployerComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.ValidationService), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.FilterService), i0.ɵɵdirectiveInject(i5.LoggerService), i0.ɵɵdirectiveInject(i6.DomSanitizer), i0.ɵɵdirectiveInject(i7.ClaimService), i0.ɵɵdirectiveInject(i8.LoginService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i9.ActivatedRoute), i0.ɵɵdirectiveInject(i10.TranslateService)); }; }
2533
2597
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddEmployerComponent, selectors: [["app-add-employer"]], viewQuery: function AddEmployerComponent_Query(rf, ctx) { if (rf & 1) {
2534
2598
  i0.ɵɵviewQuery(_c0, 5);
2535
2599
  i0.ɵɵviewQuery(_c1, 5);
@@ -2545,23 +2609,23 @@ export class AddEmployerComponent {
2545
2609
  i0.ɵɵpipe(3, "translate");
2546
2610
  i0.ɵɵelementEnd();
2547
2611
  i0.ɵɵelementStart(4, "form", 2, 3);
2548
- i0.ɵɵtemplate(6, AddEmployerComponent_ion_grid_6_Template, 68, 66, "ion-grid", 4);
2612
+ i0.ɵɵtemplate(6, AddEmployerComponent_ion_grid_6_Template, 68, 67, "ion-grid", 4);
2549
2613
  i0.ɵɵelementEnd()();
2550
2614
  } if (rf & 2) {
2551
- i0.ɵɵstyleMap(i0.ɵɵpureFunction0(11, _c7));
2552
- i0.ɵɵproperty("showHeader", false)("draggable", false)("resizable", false)("breakpoints", i0.ɵɵpureFunction0(12, _c8));
2615
+ i0.ɵɵstyleMap(i0.ɵɵpureFunction0(11, _c6));
2616
+ i0.ɵɵproperty("showHeader", false)("draggable", false)("resizable", false)("breakpoints", i0.ɵɵpureFunction0(12, _c7));
2553
2617
  i0.ɵɵadvance(2);
2554
2618
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 9, "induction.confirm.employment.heading"), " ");
2555
2619
  i0.ɵɵadvance(2);
2556
2620
  i0.ɵɵproperty("formGroup", ctx.addEmployerForm);
2557
2621
  i0.ɵɵadvance(2);
2558
2622
  i0.ɵɵproperty("ngIf", ctx.addEmployerForm == null ? null : ctx.addEmployerForm.controls);
2559
- } }, dependencies: [i10.IonButton, i10.IonCol, i10.IonGrid, i10.IonRow, i11.NgForOf, i11.NgIf, i4.PrimeTemplate, i12.MatError, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.MaxLengthValidator, i1.FormControlDirective, i1.FormGroupDirective, i1.FormControlName, i1.FormGroupName, i1.FormArrayName, i13.Dialog, i14.Table, i15.InputText, i16.InputMask, i17.Calendar, i18.SelectButton, i19.InputNumber, i20.Dropdown, i21.ErrorComponent, i22.OverlayInfoComponent, i23.SearchEmployerComponent, i24.AddressComponent, i11.CurrencyPipe, i25.TranslatePipe], styles: [".p-fluid[_ngcontent-%COMP%] .p-buttonset[_ngcontent-%COMP%]{display:flex}.p-selectbutton[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]{width:50px!important}.disabled[_ngcontent-%COMP%]{cursor:not-allowed;pointer-events:none}.disabled[_ngcontent-%COMP%] *{color:gray;border-color:gray}table[_ngcontent-%COMP%], th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{border-collapse:collapse;padding:5px}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background-color:#f1f1f1}table[_ngcontent-%COMP%]{width:100%}.app-grid[_ngcontent-%COMP%]{color:red}"] }); }
2623
+ } }, dependencies: [i11.IonButton, i11.IonCol, i11.IonGrid, i11.IonRow, i12.NgForOf, i12.NgIf, i4.PrimeTemplate, i13.MatError, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.MaxLengthValidator, i1.FormControlDirective, i1.FormGroupDirective, i1.FormControlName, i1.FormGroupName, i1.FormArrayName, i14.Dialog, i15.Table, i16.InputText, i17.InputMask, i18.Calendar, i19.SelectButton, i20.InputNumber, i21.Dropdown, i22.ErrorComponent, i23.OverlayInfoComponent, i24.SearchEmployerComponent, i25.AddressComponent, i12.CurrencyPipe, i10.TranslatePipe], styles: [".p-fluid[_ngcontent-%COMP%] .p-buttonset[_ngcontent-%COMP%]{display:flex}.p-selectbutton[_ngcontent-%COMP%] .p-button[_ngcontent-%COMP%]{width:50px!important}.disabled[_ngcontent-%COMP%]{cursor:not-allowed;pointer-events:none}.disabled[_ngcontent-%COMP%] *{color:gray;border-color:gray}table[_ngcontent-%COMP%], th[_ngcontent-%COMP%], td[_ngcontent-%COMP%]{border-collapse:collapse;padding:5px}table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background-color:#f1f1f1}table[_ngcontent-%COMP%]{width:100%}.app-grid[_ngcontent-%COMP%]{color:red}"] }); }
2560
2624
  }
2561
2625
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddEmployerComponent, [{
2562
2626
  type: Component,
2563
- args: [{ selector: 'app-add-employer', template: "<p-dialog visible=\"true\" position=\"top\" appendTo=\"body\" [showHeader]=\"false\" [draggable]=\"false\"\r\n [resizable]=\"false\" [style]=\"{width: '60vw'}\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\"> {{\"induction.confirm.employment.heading\"|translate}}\r\n </h4>\r\n <form #employerForm [formGroup]=\"addEmployerForm\">\r\n <ion-grid *ngIf=\"addEmployerForm?.controls\"> <!--To Review-->\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\" *ngIf=\"isBasePeriodEmployer\">\r\n {{customerName}}\r\n <div *ngIf=\"aliasName != null\">\r\n {{\"induction.confirm.employment.dba\"|translate}} {{aliasName}}</div>\r\n <br>\r\n <span style=\"font-size: 12px;\"> {{mailingAddressDisplay}}\r\n </span>\r\n <div *ngIf=\"isCSR\">\r\n <br>\r\n {{\"induction.confirm.employment.employer.wages\"|translate}}\r\n </div>\r\n <div class=\"field\" *ngIf=\"isCSR\">\r\n <p-table [value]=\"employerProvidedWages\" styleClass=\"p-datatable-striped app-datatable ion-padding-top\"\r\n [columns]=\"employerProvidedWages\">\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n <b>{{ col.qtrYearDisplayString }}</b>\r\n </th>\r\n </tr>\r\n <tr>\r\n <td *ngFor=\"let col of columns\">\r\n {{col.wageAmount | currency}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"workFlag?.value == 'Y'\">\r\n <label>{{\"induction.confirm.employment.workflag.no\"|translate}}<br /> <br />\r\n {{\"induction.confirm.employment.workflag.no.line2\"|translate}}</label>\r\n </div> \r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer\">\r\n <label for=\"employerType\">{{\"induction.add.employment.employer.type\"|translate}}</label>\r\n <div style=\"inline-size: inherit;\">\r\n <p-selectButton inputId=\"employerType\" [options]=\"employerTypeOptions\" optionLabel=\"text\" optionValue=\"value\"\r\n [formControl]=\"employerType\" [class.disabled]=\"noEditMode\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerType' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG' \">\r\n <label for=\"prevWorkedState\">{{\"induction.add.employment.work.state\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"prevWorkedState\" [options]=\"prevWorkedStateOptions\" [formControl]=\"prevWorkedState\" optionLabel=\"text\"\r\n optionValue=\"value\" [class.disabled]=\"noEditMode\"\r\n (onOptionClick)=\"onToggleChangePrevWorkedState($event)\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='prevWorkedState' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG' \">\r\n <label for=\"employerName\">{{\"induction.add.employment.employer.name\"|translate}}</label>\r\n <div *ngIf=\"prevWorkedState.value==='KS'; else elseBlock\">\r\n <app-search-employer inputId=\"employerName\" [formControl]=\"employerName\" empType=\"REG\" (onFound)=\"setEmployer($event)\"\r\n (onEmpty)=\"resetEmployer($event)\"></app-search-employer>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerName' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <ng-template #elseBlock>\r\n <div class=\"field\">\r\n <input id=\"employerName\" type=\"input\" pInputText [formControl]=\"othStateEmpName\" maxlength=\"50\">\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='othStateEmpName' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"field\" style=\"width: inherit !important;\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedEmployerName\">{{\"induction.add.employment.employer.fed.name\"|translate}}</label>\r\n <app-search-employer [formControl]=\"fedEmployerName\" empType=\"FED\" (onFound)=\"setFedEmployer($event)\"\r\n (onEmpty)=\"resetFedEmployer($event)\"></app-search-employer>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedEmployerName' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL'\">\r\n <label id=\"serviceBranch-label\" for=\"serviceBranch\">{{\"induction.add.employment.mil.service.branch\"|translate}}</label>\r\n <p-dropdown [options]=\"militaryServiceOptions\" [formControl]=\"serviceBranch\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"serviceBranch\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='serviceBranch' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL'\">\r\n <label id=\"mil-state-label\" for=\"mil-state\">\r\n Where are you physically located at this time?\r\n </label>\r\n <p-dropdown [formControl]=\"milState\" [options]=\"statesOptions\" optionLabel=\"text\" inputId=\"mil-state\" appendTo=\"body\">\r\n\r\n </p-dropdown>\r\n <app-error class=\"app-grid\" [form]=\"isFormSubmitted\" [field]=\"milState\" [errDef]=\"{\r\n required: 'required',\r\n requiredKansas: 'Based on some of your responses you need to call the KDOL Call Center to file your claim.'\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='MIL'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateMil\">{{\"induction.add.employment.mil.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateMil\" [showIcon]=\"true\" inputId=\"startDateMil\"\r\n [formControl]=\"startDateMil\" [maxDate]=\"dateTime\" [yearNavigator]=\"true\" yearRange=\"1901:2050\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDateMil' [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=\"endDateMil\">{{\"induction.add.employment.mil.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateMil\" [showIcon]=\"true\" inputId=\"endDateMil\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateMil\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDateMil' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='FED' && hideFicCode\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"ficCode\">{{\"induction.add.employment.fed.fic.code\"|translate}}</label>\r\n <input id=\"ficCode\" type=\"input\" pInputText [formControl]=\"ficCode\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='ficCode' [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=\"ficDestinationName\">{{\"induction.add.employment.fed.fic.destination\"|translate}}</label>\r\n <input id=\"ficDestinationName\" type=\"input\" pInputText [formControl]=\"ficDestinationName\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='ficDestinationName' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding-left: 0px; padding-right: 0px;\">\r\n <app-address #address1 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\">\r\n </app-address>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <app-address readonly=\"true\" #address2 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\"> </app-address>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]=\"address\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n <mat-error class=\"app-grid\" *ngIf=\"address?.errors?.addressValidationFlag && isFormSubmitted.submitted\">\r\n Please provide a valid address.\r\n </mat-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workCity\">{{\"induction.add.employment.work.location.city\"|translate}} </label>\r\n <input id=\"workCity\" type=\"input\" pInputText [formControl]=\"workCity\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workCity' [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 id=\"workState-label\" for=\"workState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <p-dropdown [options]=\"prevWorkedState.value==='KS'?statesOptions:nonKSStatesOptions\"\r\n [formControl]=\"workState\" optionLabel=\"text\" appendTo=\"body\" [autoDisplayFirst]=\"false\"\r\n inputId=\"workState\" (onChange)=\"validateWagesDisplay($event)\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workState' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label id=\"fedWorkCountry-label\" for=\"fedWorkCountry\">{{\"induction.add.employment.fed.work.location.country\"|translate}}</label>\r\n <p-dropdown [options]=\"workCountryOptions\" [formControl]=\"fedWorkCountry\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"fedWorkCountry\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkCountry' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fedWorkCity\">{{\"induction.add.employment.work.location.city\"|translate}}</label>\r\n <input id=\"fedWorkCity\" type=\"input\" pInputText [formControl]=\"fedWorkCity\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkCity' [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;\" *ngIf=\"showWorkState === true\">\r\n <div class=\"field\">\r\n <label id=\"fedWorkState-label\" for=\"fedWorkState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <p-dropdown [options]=\"statesOptions\" [formControl]=\"fedWorkState\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" inputId=\"fedWorkState\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkState' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateFed\">{{\"induction.add.employment.fed.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateFed\" [showIcon]=\"true\" [maxDate]=\"dateTime\" inputId=\"startDateFed\"\r\n [formControl]=\"startDateFed\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" appendTo=\"body\"\r\n dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDateFed' [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=\"endDateFed\">{{\"induction.add.employment.fed.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateFed\" [showIcon]=\"true\" inputId=\"endDateFed\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateFed\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDateFed' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedJobTileOrPosition\">{{\"induction.add.employment.fed.jobtitle\"|translate}}</label>\r\n <input id=\"fedJobTileOrPosition\" type=\"input\" pInputText [formControl]=\"fedJobTileOrPosition\"\r\n maxlength=\"100\" />\r\n <!-- <p-autoComplete [formControl]=\"fedJobTileOrPosition\" [suggestions]=\"fedJobTileOptions\" \r\n (completeMethod)=\"filterFedJobTileOrPosition($event)\" field=\"jobTitle\" [dropdown]=\"false\" \r\n placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedJobTileOrPosition' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"sfEightflag\">{{\"induction.add.employment.fed.sfeight\"|translate}} </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"sfEightflag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"sfEightflag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sfEightflag' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG'\">\r\n\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDate\">{{\"induction.confirm.employment.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDate\" [showIcon]=\"true\" inputId=\"startDate\" [maxDate]=\"dateTime\"\r\n [formControl]=\"startDate\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" [minDate]=\"minWorkStartDate\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDate' [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=\"endDate\">{{\"induction.confirm.employment.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDate\" [showIcon]=\"true\" inputId=\"endDate\" [minDate]=\"minDate\"\r\n [maxDate]=\"dateTime\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDate\"\r\n (onBlur)=\"validateWagesDisplay($event)\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n (onSelect)=\"validateWagesDisplay($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDate' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n \r\n <ion-row *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\"> \r\n <!-- <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"numberEmployed\">{{\"induction.add.employment.reg.employees.no\" | translate}} </label>\r\n <p-inputNumber [id]=\"numberEmployed\" [useGrouping]=\"false\" [formControl]=\"numberEmployed\"\r\n maxlength=\"9\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='numberEmployed' [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=\"workType\">{{\"induction.add.employment.reg.work.type\" | translate}}</label>\r\n <input id=\"workType\" type=\"input\" pInputText [formControl]=\"workType\" maxlength=\"50\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workType' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <!-- <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"claimantEmployedWithEmpr\">Were you employed while a spouse of a US military member stationed at\r\n a foreign military base?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"yesNoNaOptions\" [formControl]=\"claimantEmployedWithEmpr\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='claimantEmployedWithEmpr' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"performedService\">{{\"induction.add.employment.fed.civilian.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"performedService\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"performedService\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='performedService' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"jobTileOrPosition\">{{\"induction.confirm.employment.jobtitle\"|translate}}</label>\r\n <input id=\"jobTileOrPosition\" type=\"input\" pInputText [formControl]=\"jobTileOrPosition\" maxlength=\"100\" />\r\n <!-- <p-autoComplete [formControl]=\"jobTileOrPosition\" [suggestions]=\"jobTileOrPositionOptions\" \r\n (completeMethod)=\"filterJobTileOrPosition($event)\" field=\"jobTitle\" (onClear)=\"onClearAction($event)\" \r\n [dropdown]=\"false\" placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='jobTileOrPosition' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG' && isBasePeriodEmployer && workFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.confirm.employment.payrate\"|translate}}</label>\r\n <p-inputNumber inputId=\"payRate\" [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\" [max]=\"999999.99\" maxlength=\"12\"\r\n locale=\"en-US\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRate' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px; padding-left: 0px;\">\r\n <div class=\"field\">\r\n <label id=\"payRateFrequency-label\" for=\"payRateFrequency\">{{\"induction.confirm.employment.per\"|translate}}</label>\r\n <p-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRateFrequency' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"employerTelephoneNumber\">{{\"induction.confirm.employment.employer.phone\"|translate}}</label>\r\n\r\n <p-inputMask mask=\"999-999-9999\" inputId=\"employerTelephoneNumber\" [formControl]=\"employerTelephoneNumber\"\r\n placeholder=\"999-999-9999\"></p-inputMask>\r\n\r\n\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerTelephoneNumber' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value=='REG' || employerType.value==='FED'\">\r\n <label id=\"reasonSeparation-label\" for=\"reasonSeparation\" *ngIf=\"employerType.value==='REG'\">{{\"induction.confirm.employment.reason.separation\"|translate}}</label>\r\n <label id=\"reasonSeparation-label\" for=\"reasonSeparation\" *ngIf=\"employerType.value==='FED'\">{{\"induction.add.employment.fed.reason.separation\"|translate}}</label>\r\n <p-dropdown [options]=\"employmentStatusOptionsAll\" [formControl]=\"reasonSeparation\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"reasonSeparation\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='reasonSeparation' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <!-- add for quit and discharge -->\r\n <div class=\"field\" *ngIf=\"reasonSeparation.value?.value === 'DCFI' \r\n && employerType.value!='MIL'\">\r\n <label id=\"dischargeDetail-label\" for=\"dischargeDetail\">{{\"induction.confirm.employment.reason.separation.discharge\"|translate}}</label>\r\n <p-dropdown [options]=\"dischargeReasonOptionsAll\" [formControl]=\"dischargeDetail\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"dischargeDetail\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='dischargeDetail' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"reasonSeparation.value?.value === 'VOLQ' \r\n && employerType.value!='MIL'\">\r\n <label id=\"volQuitDetails-label\" for=\"volQuitDetails\">{{\"induction.confirm.employment.reason.separation.quit\"|translate}}</label>\r\n <p-dropdown [options]=\"volQuitReasonOptionsAll\" [formControl]=\"volQuitDetails\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"volQuitDetails\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='volQuitDetails' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"milPensionFlag\">{{\"induction.add.employment.mil.pension\"|translate}}\r\n <br> {{\"induction.add.employment.mil.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"milPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"milPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='milPensionFlag' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='MIL' && this.milPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"milPensionRecvDate\">{{\"induction.add.employment.mil.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"milPensionRecvDate\" [formControl]=\"milPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='milPensionRecvDate' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"dd214Flag\">{{\"induction.add.employment.mil.dd214\"|translate}}\r\n </label><br>\r\n <div style=\"inline-size: min-content; display: inline-flex;\">\r\n <p-selectButton inputId=\"dd214Flag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"dd214Flag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info [overlayText]=\"dd214Info\"></app-overlay-info>\r\n </div>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='dd214Flag' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\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\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='Y'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"paraOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraTwo | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraThree | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFour | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFive | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraSix| translate)\" style=\"padding-left: 15px;\">\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='N'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"noParaOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaTwo | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaThree | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFour | translate)\"\r\n style=\"padding-left: 15px;\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFive | translate)\">\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer && osaBpEmployerFlag.value ==='1'\"> <!--Old code-->\r\n <ion-col style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">Total Wages Earned</label>\r\n <p-inputNumber inputId=\"grossWages\" [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px; padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.add.employment.payrate\"|translate}}</label>\r\n <p-inputNumber inputId=\"payRate\" [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\"\r\n [max]=\"999999.99\" maxlength=\"12\" locale=\"en-US\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRate' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px;padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label id=\"payRateFrequency-label\" for=\"payRateFrequency\">{{\"induction.add.employment.per\"|translate}}</label>\r\n <p-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRateFrequency' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <!-- <ion-col *ngIf=\"displayVerificationOfWages.value\" style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">Total Wages Earned</label>\r\n <p-inputNumber [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\" [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col> -->\r\n <!--<ion-col *ngIf=\"displayVerificationOfWages.value style=\"padding-top: 0px;\"> Old Code-->\r\n <ion-col *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer\" style=\"padding-top: 0px;\"> <!--New condition was added-->\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">Total Wages Earned</label>\r\n <p-inputNumber inputId=\"grossWages\" [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\" [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col> \r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' \">\r\n <label for=\"fedPensionFlag\">{{\"induction.add.employment.fed.pension\"|translate}}\r\n <br> {{\"induction.add.employment.fed.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton inputId=\"fedPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"fedPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.fed.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedPensionFlag' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='FED' && this.fedPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"fedPensionRecvDate\">{{\"induction.add.employment.fed.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"fedPensionRecvDate\" [formControl]=\"fedPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedPensionRecvDate' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' && this.currentState === 'ME' \">\r\n <label for=\"sevPayFlag\">{{\"induction.add.employment.fed.severance\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"sevPayFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"sevPayFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayFlag' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"weeklyAmount\">{{\"induction.add.employment.fed.severance.weekly.amt\"|translate}}</label>\r\n <p-inputNumber inputId=\"weeklyAmount\" [formControl]=\"weeklyAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='weeklyAmount' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"numberOfWeeks\">{{\"induction.add.employment.fed.severance.weeks\"|translate}}</label>\r\n <p-inputNumber inputId=\"numberOfWeeks\" [useGrouping]=\"false\" [formControl]=\"numberOfWeeks\" maxlength=\"4\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='numberOfWeeks' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col>\r\n <div class=\"field\">\r\n <label for=\"sevPayAmount\">{{\"induction.add.employment.fed.severance.entitlement\"|translate}}</label>\r\n <p-inputNumber inputId=\"sevPayAmount\" [formControl]=\"sevPayAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayAmount' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayStartDate\">{{\"induction.add.employment.fed.severance.start.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayStartDate\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" [formControl]=\"sevPayStartDate\" [yearNavigator]=\"true\"\r\n yearRange=\"1901:2050\" appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayStartDate' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayEndDate\">{{\"induction.add.employment.fed.severance.end.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayEndDate\" [formControl]=\"sevPayEndDate\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n appendTo=\"body\" [minDate]=\"minDate\" dataType=\"string\" [showOnFocus]=\"false\"\r\n (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayEndDate' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col>\r\n <div class=\"field\">\r\n <label\r\n for=\"sevPayPaymentStartDate\">{{\"induction.add.employment.fed.severance.pay.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayPaymentStartDate\" [formControl]=\"sevPayPaymentStartDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayPaymentStartDate' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG' && workFlag.value==='Y'\">\r\n <label for=\"pensionFlag\">{{\"induction.confirm.employment.pension\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"pensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"pensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='pensionFlag' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div> \r\n \r\n <div class=\"field\" *ngIf=\"isBasePeriodEmployer && workFlag.value==='Y' && pensionFlag.value==='Y'\r\n && employerType.value==='REG' \"> <!-- this is questionable because above dependent question does not have isBasePeriodEmployer -->\r\n <label for=\"pensionRecvDate\">{{\"induction.confirm.employment.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"pensionRecvDate\" [formControl]=\"pensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='pensionRecvDate' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\">\r\n <label for=\"regPensionFlag\">{{\"induction.add.employment.reg.pension\"|translate}} <br />\r\n {{\"induction.add.employment.reg.pension.disclaimer\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton inputId=\"regPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"regPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.reg.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='regPensionFlag' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\r\n && regPensionFlag.value==='Y'\">\r\n <label for=\"regPensionRecvDate\">{{\"induction.add.employment.reg.pension.date\"|translate}}</label>\r\n \r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"regPensionRecvDate\" [formControl]=\"regPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='regPensionRecvDate' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"isClmtPaidWhileLow\">{{\"induction.confirm.employment.employer.pay.return.to.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"isClmtPaidWhileLow\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.reg.employerPayReturnToWorkInfo'| translate}}\" \r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='isClmtPaidWhileLow' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"hasShortTermDisability\">{{\"induction.confirm.employment.shorttermdisability\"|translate}} {{bpStartDateToDisplay | date:'MMMM d, yyyy'}} ?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"hasShortTermDisability\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hasShortTermDisability' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)&& employerType.value==='REG' && currentState==='ME'\">\r\n <label for=\"hasRecvRemuneration\">{{\"induction.confirm.employment.remuneration.pay\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"hasRecvRemuneration\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hasRecvRemuneration' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\" *ngIf=\"employerType.value==='REG' && currentState==='ME' && hasRecvRemuneration.value==='Y' && osaBpEmployerFlag.value==='0'\">\r\n <label for=\"remunerationTypes\">{{\"induction.confirm.employment.remuneration.types\"|translate}}</label>\r\n <p-checkbox [name]=\"'remunerationtypes-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of remunerationTypeOptions\" [formControl]=\"remunerationTypes\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='remunerationTypes' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"vacation\">{{\"induction.confirm.employment.vacation.break\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"vacation\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='vacation' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!--<div *ngIf=\"displayVerificationOfWages.value && employerType.value==='REG'\"> Stephen Code-->\r\n <div *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <div class=\"field\">\r\n <h4>{{\"induction.add.employment.reg.verification.wages.header\"|translate}}</h4>\r\n </div>\r\n <div class=\"field\">\r\n <label>{{\"induction.add.employment.reg.verification.wages.subheader\"|translate}}</label>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"paymentType\">{{\"induction.add.employment.reg.verification.wages.paymode\"|translate}}</label>\r\n <p-selectButton inputId=\"paymentType\" unselectable=\"true\" [options]=\"payMethodOptions\" [formControl]=\"paymentType\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='paymentType' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"docsReceived\">{{\"induction.add.employment.reg.verification.wages.docs\"|translate}}</label>\r\n <p-selectButton inputId=\"docsReceived\" unselectable=\"true\" [options]=\"wageProofOptions\" [formControl]=\"docsReceived\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='docsReceived' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"otherSSNFlag\">{{\"induction.add.employment.reg.verification.wages.other.ssn.flag\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"otherSSNFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"otherSSNFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherSSNFlag' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherSSNFlag.value === 'Y'\">\r\n <label for=\"otherSSN\">{{\"induction.add.employment.reg.verification.wages.other.ssn\"|translate}}</label>\r\n <p-inputMask inputId=\"otherSSN\" mask=\"999-99-9999\" [formControl]=\"otherSSN\" placeholder=\"999-99-9999\">\r\n </p-inputMask>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherSSN' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <!-- <div class=\"field\">\r\n <label for=\"hiredBy\">Manager's Name & Title</label>\r\n <input id=\"hiredBy\" type=\"input\" pInputText [formControl]=\"hiredBy\" maxlength=\"40\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hiredBy' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error> \r\n </div> -->\r\n </div>\r\n\r\n <!-- <ion-row *ngIf=\"employerType.value==='FED'\"> Stephen Code -->\r\n\r\n <ion-row *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\"> \r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label\r\n for=\"otherNameFlag\">{{\"induction.add.employment.reg.verification.wages.other.name.flag\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"otherNameFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"otherNameFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherNameFlag' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherNameFlag.value === 'Y'\">\r\n \r\n <label\r\n for=\"otherName\">{{\"induction.add.employment.reg.verification.wages.other.name\"|translate}}</label>\r\n <input id=\"otherName\" type=\"input\" pInputText [formControl]=\"otherName\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherName' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <!-- <ion-row *ngIf=\"workState.value && workState.value.value==='KS' && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fein\">FEIN</label>\r\n <p-inputNumber [id]=\"fein\" [useGrouping]=\"false\" [formControl]=\"fein\" maxlength=\"9\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fein' [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=\"doingBusinessAs\">Doing Business As/Trade Name</label>\r\n <input id=\"doingBusinessAs\" type=\"input\" pInputText [formControl]=\"doingBusinessAs\" maxlength=\"100\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='doingBusinessAs' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row> -->\r\n\r\n <ion-row *ngIf=\"employerType.value==='REG' && displayVerificationOfWages?.value \r\n && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"businessNature\">{{\"induction.add.employment.reg.verification.nature\"|translate}}</label>\r\n <input id=\"businessNature\" type=\"input\" pInputText [formControl]=\"businessNature\" maxlength=\"250\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='businessNature' [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <!-- <div *ngIf=\"employerType.value==='FED' || (displayVerificationOfWages?.value && employerType.value==='REG' && prevWorkedState?.value === 'KS')\">\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\"> Stephen Code -->\r\n <!-- <div *ngIf=\"employerType.value==='FED' && isNewClaim\">\r\n <!--<label>{{\"induction.add.employment.fed.verification.wages\"|translate}}</label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n \r\n </div> -->\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label>{{\"induction.add.employment.fed.verification.wages.statement\"|translate}}</label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' || (employerType.value==='REG' && displayVerificationOfWages?.value)\">\r\n <label>{{\"induction.add.employment.reg.verification.wages\"|translate}}</label>\r\n <table rules=\"rows\">\r\n <tr>\r\n <th style=\"text-align: center;\">{{\"induction.add.employment.reg.verification.wages.col1\"|translate}}\r\n </th>\r\n <th>{{\"induction.add.employment.reg.verification.wages.col2\"|translate}}</th>\r\n </tr>\r\n <ng-container formArrayName=\"wageAmountArray\">\r\n <ng-container *ngFor=\"let wageAmountForm of wageAmountArray.controls; let i = index\"\r\n [formGroupName]=\"i\">\r\n <tr *ngIf=\"((employerType.value==='FED') || (employerType.value==='REG' && wageAmountForm.value.displayForAll===true) )\">\r\n <td>\r\n <label [for]=\"'wageAmountArray-' + i\" >{{wageAmountForm.value.qtrYearDisplayString}}</label>\r\n </td>\r\n <td>\r\n <p-inputNumber [inputId]=\"'wageAmountArray-' + i\" ariaLabel=\"wageAmount\" formControlName=\"wageAmount\" mode=\"currency\" [min]=\"0.00\" [max]=\"999999.99\" maxlength=\"12\" currency=\"USD\" locale=\"en-US\">\r\n </p-inputNumber>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"wageAmountArray.errors?.requireCheckboxToBeChecked\">\r\n <td colspan=\"2\">\r\n <app-error [class]=\"'app-grid'\" [field]='wageAmountArray' [form]=\"isFormSubmitted\" [errDef]=\"{\r\n requireCheckboxToBeChecked: 'at least one amount must be greater than zero'\r\n }\"></app-error>\r\n </td>\r\n </tr> \r\n </ng-container>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"severance\">{{\"induction.add.employment.reg.severance\"|translate}}</label>\r\n <div>\r\n <p-selectButton inputId=\"severance\" [options]=\"radioOptions\" [formControl]=\"severance\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='severance'\r\n [errDef]=\"{required: 'required'}\"></app-error>\r\n </div>\r\n \r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button [autofocus]=\"true\" tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" fill=\"outline\" (click)=\"onModelCancel(false)\" (keyup.space)=\"onModelCancel(false)\" (keyup.enter)=\"onModelCancel(false)\"\r\n type=\"reset\">{{\"induction.employment.button.cancel\"|translate}} </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" (click)=\"save()\" type=\"submit\" *ngIf=\"isBasePeriodEmployer\" (keyup.space)=\"save()\" (keyup.enter)=\"save()\">\r\n {{\"induction.employment.button.save\"|translate}} </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" (click)=\"add()\" type=\"submit\" *ngIf=\"!isBasePeriodEmployer\" (keyup.space)=\"add()\" (keyup.enter)=\"add()\"\r\n [attr.aria-label]=\"'Add an employer' | translate\"> {{\"induction.employment.button.add\"|translate}}\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>", styles: [".p-fluid .p-buttonset{display:flex}.p-selectbutton .p-button{width:50px!important}.disabled{cursor:not-allowed;pointer-events:none}.disabled ::ng-deep *{color:gray;border-color:gray}table,th,td{border-collapse:collapse;padding:5px}table th{background-color:#f1f1f1}table{width:100%}.app-grid{color:red}\n"] }]
2564
- }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.ValidationService }, { type: i3.UtilService }, { type: i4.FilterService }, { type: i5.LoggerService }, { type: i6.DomSanitizer }, { type: i7.ClaimService }, { type: i8.LoginService }, { type: i0.ElementRef }, { type: i9.ActivatedRoute }], { address1: [{
2627
+ args: [{ selector: 'app-add-employer', template: "<p-dialog visible=\"true\" position=\"top\" appendTo=\"body\" [showHeader]=\"false\" [draggable]=\"false\"\r\n [resizable]=\"false\" [style]=\"{width: '60vw'}\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\"> {{\"induction.confirm.employment.heading\"|translate}}\r\n </h4>\r\n <form #employerForm [formGroup]=\"addEmployerForm\">\r\n <ion-grid *ngIf=\"addEmployerForm?.controls\"> <!--To Review-->\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\" *ngIf=\"isBasePeriodEmployer\">\r\n {{customerName}}\r\n <div *ngIf=\"aliasName != null\">\r\n {{\"induction.confirm.employment.dba\"|translate}} {{aliasName}}</div>\r\n <br>\r\n <span style=\"font-size: 12px;\"> {{mailingAddressDisplay}}\r\n </span>\r\n <div *ngIf=\"isCSR\">\r\n <br>\r\n {{\"induction.confirm.employment.employer.wages\"|translate}}\r\n </div>\r\n <div class=\"field\" *ngIf=\"isCSR\">\r\n <p-table [value]=\"employerProvidedWages\" styleClass=\"p-datatable-striped app-datatable ion-padding-top\"\r\n [columns]=\"employerProvidedWages\">\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n <b>{{ col.qtrYearDisplayString }}</b>\r\n </th>\r\n </tr>\r\n <tr>\r\n <td *ngFor=\"let col of columns\">\r\n {{col.wageAmount | currency}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"workFlag?.value == 'Y'\">\r\n <label>{{\"induction.confirm.employment.workflag.no\"|translate}}<br /> <br />\r\n {{\"induction.confirm.employment.workflag.no.line2\"|translate}}</label>\r\n </div> \r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer\">\r\n <label for=\"employerType\">{{\"induction.add.employment.employer.type\"|translate}}</label>\r\n <div style=\"inline-size: inherit;\">\r\n <p-selectButton inputId=\"employerType\" [options]=\"employerTypeOptions\" optionLabel=\"text\" optionValue=\"value\"\r\n [formControl]=\"employerType\" [class.disabled]=\"noEditMode\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerType' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG' \">\r\n <label for=\"prevWorkedState\">{{\"induction.add.employment.work.state\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"prevWorkedState\" [options]=\"prevWorkedStateOptions\" [formControl]=\"prevWorkedState\" optionLabel=\"text\"\r\n optionValue=\"value\" [class.disabled]=\"noEditMode\"\r\n (onOptionClick)=\"onToggleChangePrevWorkedState($event)\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='prevWorkedState' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG' \">\r\n <label for=\"employerName\">{{\"induction.add.employment.employer.name\"|translate}}</label>\r\n <div *ngIf=\"prevWorkedState.value==='KS'; else elseBlock\">\r\n <app-search-employer inputId=\"employerName\" [formControl]=\"employerName\" empType=\"REG\" (onFound)=\"setEmployer($event)\"\r\n (onEmpty)=\"resetEmployer($event)\"></app-search-employer>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ng-template #elseBlock>\r\n <div class=\"field\">\r\n <input id=\"employerName\" type=\"input\" pInputText [formControl]=\"othStateEmpName\" maxlength=\"50\">\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='othStateEmpName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"field\" style=\"width: inherit !important;\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedEmployerName\">{{\"induction.add.employment.employer.fed.name\"|translate}}</label>\r\n <app-search-employer [formControl]=\"fedEmployerName\" empType=\"FED\" (onFound)=\"setFedEmployer($event)\"\r\n (onEmpty)=\"resetFedEmployer($event)\"></app-search-employer>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedEmployerName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL'\">\r\n <label id=\"serviceBranch-label\" for=\"serviceBranch\">{{\"induction.add.employment.mil.service.branch\"|translate}}</label>\r\n <p-dropdown [options]=\"militaryServiceOptions\" [formControl]=\"serviceBranch\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"serviceBranch\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='serviceBranch' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL'\">\r\n <label id=\"mil-state-label\" for=\"mil-state\">\r\n {{\"induction.add.employment.physical.location\"|translate}}\r\n </label>\r\n <p-dropdown [formControl]=\"milState\" [options]=\"statesOptions\" optionLabel=\"text\" inputId=\"mil-state\" appendTo=\"body\">\r\n\r\n </p-dropdown>\r\n <app-error class=\"app-grid\" [form]=\"isFormSubmitted\" [field]=\"milState\" [errDef]=\"{\r\n required: required,\r\n requiredKansas: requiredKansas\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='MIL'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateMil\">{{\"induction.add.employment.mil.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateMil\" [showIcon]=\"true\" inputId=\"startDateMil\"\r\n [formControl]=\"startDateMil\" [maxDate]=\"dateTime\" [yearNavigator]=\"true\" yearRange=\"1901:2050\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDateMil' [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=\"endDateMil\">{{\"induction.add.employment.mil.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateMil\" [showIcon]=\"true\" inputId=\"endDateMil\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateMil\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDateMil' [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='FED' && hideFicCode\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"ficCode\">{{\"induction.add.employment.fed.fic.code\"|translate}}</label>\r\n <input id=\"ficCode\" type=\"input\" pInputText [formControl]=\"ficCode\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='ficCode' [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=\"ficDestinationName\">{{\"induction.add.employment.fed.fic.destination\"|translate}}</label>\r\n <input id=\"ficDestinationName\" type=\"input\" pInputText [formControl]=\"ficDestinationName\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='ficDestinationName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding-left: 0px; padding-right: 0px;\">\r\n <app-address #address1 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\">\r\n </app-address>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <app-address readonly=\"true\" #address2 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\"> </app-address>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]=\"address\" [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n <mat-error class=\"app-grid\" *ngIf=\"address?.errors?.addressValidationFlag && isFormSubmitted.submitted\">\r\n {{\"common.valid.address\"|translate}}\r\n </mat-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workCity\">{{\"induction.add.employment.work.location.city\"|translate}} </label>\r\n <input id=\"workCity\" type=\"input\" pInputText [formControl]=\"workCity\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workCity' [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 id=\"workState-label\" for=\"workState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <p-dropdown [options]=\"prevWorkedState.value==='KS'?statesOptions:nonKSStatesOptions\"\r\n [formControl]=\"workState\" optionLabel=\"text\" appendTo=\"body\" [autoDisplayFirst]=\"false\"\r\n inputId=\"workState\" (onChange)=\"validateWagesDisplay($event)\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workState' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label id=\"fedWorkCountry-label\" for=\"fedWorkCountry\">{{\"induction.add.employment.fed.work.location.country\"|translate}}</label>\r\n <p-dropdown [options]=\"workCountryOptions\" [formControl]=\"fedWorkCountry\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"fedWorkCountry\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkCountry' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fedWorkCity\">{{\"induction.add.employment.work.location.city\"|translate}}</label>\r\n <input id=\"fedWorkCity\" type=\"input\" pInputText [formControl]=\"fedWorkCity\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkCity' [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;\" *ngIf=\"showWorkState === true\">\r\n <div class=\"field\">\r\n <label id=\"fedWorkState-label\" for=\"fedWorkState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <p-dropdown [options]=\"statesOptions\" [formControl]=\"fedWorkState\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" inputId=\"fedWorkState\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkState' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateFed\">{{\"induction.add.employment.fed.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateFed\" [showIcon]=\"true\" [maxDate]=\"dateTime\" inputId=\"startDateFed\"\r\n [formControl]=\"startDateFed\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" appendTo=\"body\"\r\n dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDateFed' [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=\"endDateFed\">{{\"induction.add.employment.fed.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateFed\" [showIcon]=\"true\" inputId=\"endDateFed\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateFed\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDateFed' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedJobTileOrPosition\">{{\"induction.add.employment.fed.jobtitle\"|translate}}</label>\r\n <input id=\"fedJobTileOrPosition\" type=\"input\" pInputText [formControl]=\"fedJobTileOrPosition\"\r\n maxlength=\"100\" />\r\n <!-- <p-autoComplete [formControl]=\"fedJobTileOrPosition\" [suggestions]=\"fedJobTileOptions\" \r\n (completeMethod)=\"filterFedJobTileOrPosition($event)\" field=\"jobTitle\" [dropdown]=\"false\" \r\n placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedJobTileOrPosition' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"sfEightflag\">{{\"induction.add.employment.fed.sfeight\"|translate}} </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"sfEightflag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"sfEightflag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sfEightflag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG'\">\r\n\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDate\">{{\"induction.confirm.employment.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDate\" [showIcon]=\"true\" inputId=\"startDate\" [maxDate]=\"dateTime\"\r\n [formControl]=\"startDate\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" [minDate]=\"minWorkStartDate\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDate' [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=\"endDate\">{{\"induction.confirm.employment.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDate\" [showIcon]=\"true\" inputId=\"endDate\" [minDate]=\"minDate\"\r\n [maxDate]=\"dateTime\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDate\"\r\n (onBlur)=\"validateWagesDisplay($event)\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n (onSelect)=\"validateWagesDisplay($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n \r\n <ion-row *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\"> \r\n <!-- <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"numberEmployed\">{{\"induction.add.employment.reg.employees.no\" | translate}} </label>\r\n <p-inputNumber [id]=\"numberEmployed\" [useGrouping]=\"false\" [formControl]=\"numberEmployed\"\r\n maxlength=\"9\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='numberEmployed' [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=\"workType\">{{\"induction.add.employment.reg.work.type\" | translate}}</label>\r\n <input id=\"workType\" type=\"input\" pInputText [formControl]=\"workType\" maxlength=\"50\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workType' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <!-- <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"claimantEmployedWithEmpr\">Were you employed while a spouse of a US military member stationed at\r\n a foreign military base?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"yesNoNaOptions\" [formControl]=\"claimantEmployedWithEmpr\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='claimantEmployedWithEmpr' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"performedService\">{{\"induction.add.employment.fed.civilian.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"performedService\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"performedService\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='performedService' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"jobTileOrPosition\">{{\"induction.confirm.employment.jobtitle\"|translate}}</label>\r\n <input id=\"jobTileOrPosition\" type=\"input\" pInputText [formControl]=\"jobTileOrPosition\" maxlength=\"100\" />\r\n <!-- <p-autoComplete [formControl]=\"jobTileOrPosition\" [suggestions]=\"jobTileOrPositionOptions\" \r\n (completeMethod)=\"filterJobTileOrPosition($event)\" field=\"jobTitle\" (onClear)=\"onClearAction($event)\" \r\n [dropdown]=\"false\" placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='jobTileOrPosition' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG' && isBasePeriodEmployer && workFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.confirm.employment.payrate\"|translate}}</label>\r\n <p-inputNumber inputId=\"payRate\" [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\" [max]=\"999999.99\" maxlength=\"12\"\r\n locale=\"en-US\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px; padding-left: 0px;\">\r\n <div class=\"field\">\r\n <label id=\"payRateFrequency-label\" for=\"payRateFrequency\">{{\"induction.confirm.employment.per\"|translate}}</label>\r\n <p-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRateFrequency' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"employerTelephoneNumber\">{{\"induction.confirm.employment.employer.phone\"|translate}}</label>\r\n\r\n <p-inputMask mask=\"999-999-9999\" inputId=\"employerTelephoneNumber\" [formControl]=\"employerTelephoneNumber\"\r\n placeholder=\"999-999-9999\"></p-inputMask>\r\n\r\n\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerTelephoneNumber' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value=='REG' || employerType.value==='FED'\">\r\n <label id=\"reasonSeparation-label\" for=\"reasonSeparation\" *ngIf=\"employerType.value==='REG'\">{{\"induction.confirm.employment.reason.separation\"|translate}}</label>\r\n <label id=\"reasonSeparation-label\" for=\"reasonSeparation\" *ngIf=\"employerType.value==='FED'\">{{\"induction.add.employment.fed.reason.separation\"|translate}}</label>\r\n <p-dropdown [options]=\"employmentStatusOptionsAll\" [formControl]=\"reasonSeparation\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"reasonSeparation\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='reasonSeparation' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <!-- add for quit and discharge -->\r\n <div class=\"field\" *ngIf=\"reasonSeparation.value?.value === 'DCFI' \r\n && employerType.value!='MIL'\">\r\n <label id=\"dischargeDetail-label\" for=\"dischargeDetail\">{{\"induction.confirm.employment.reason.separation.discharge\"|translate}}</label>\r\n <p-dropdown [options]=\"dischargeReasonOptionsAll\" [formControl]=\"dischargeDetail\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"dischargeDetail\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='dischargeDetail' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"reasonSeparation.value?.value === 'VOLQ' \r\n && employerType.value!='MIL'\">\r\n <label id=\"volQuitDetails-label\" for=\"volQuitDetails\">{{\"induction.confirm.employment.reason.separation.quit\"|translate}}</label>\r\n <p-dropdown [options]=\"volQuitReasonOptionsAll\" [formControl]=\"volQuitDetails\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"volQuitDetails\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='volQuitDetails' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"milPensionFlag\">{{\"induction.add.employment.mil.pension\"|translate}}\r\n <br> {{\"induction.add.employment.mil.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"milPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"milPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='milPensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='MIL' && this.milPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"milPensionRecvDate\">{{\"induction.add.employment.mil.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"milPensionRecvDate\" [formControl]=\"milPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='milPensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"dd214Flag\">{{\"induction.add.employment.mil.dd214\"|translate}}\r\n </label><br>\r\n <div style=\"inline-size: min-content; display: inline-flex;\">\r\n <p-selectButton inputId=\"dd214Flag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"dd214Flag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info [overlayText]=\"dd214Info\"></app-overlay-info>\r\n </div>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='dd214Flag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\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\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='Y'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"paraOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraTwo | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraThree | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFour | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFive | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraSix| translate)\" style=\"padding-left: 15px;\">\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='N'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"noParaOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaTwo | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaThree | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFour | translate)\"\r\n style=\"padding-left: 15px;\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFive | translate)\">\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer && osaBpEmployerFlag.value ==='1'\"> <!--Old code-->\r\n <ion-col style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">\r\n {{\"induction.add.employment.total.wages.earned\"|translate}}\r\n </label>\r\n <p-inputNumber inputId=\"grossWages\" [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px; padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.add.employment.payrate\"|translate}}</label>\r\n <p-inputNumber inputId=\"payRate\" [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\"\r\n [max]=\"999999.99\" maxlength=\"12\" locale=\"en-US\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px;padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label id=\"payRateFrequency-label\" for=\"payRateFrequency\">{{\"induction.add.employment.per\"|translate}}</label>\r\n <p-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRateFrequency' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <!-- <ion-col *ngIf=\"displayVerificationOfWages.value\" style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">Total Wages Earned</label>\r\n <p-inputNumber [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\" [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col> -->\r\n <!--<ion-col *ngIf=\"displayVerificationOfWages.value style=\"padding-top: 0px;\"> Old Code-->\r\n <ion-col *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer\" style=\"padding-top: 0px;\"> <!--New condition was added-->\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">{{\"induction.add.employment.total.wages.earned\"|translate}}</label>\r\n <p-inputNumber inputId=\"grossWages\" [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\" [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col> \r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' \">\r\n <label for=\"fedPensionFlag\">{{\"induction.add.employment.fed.pension\"|translate}}\r\n <br> {{\"induction.add.employment.fed.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton inputId=\"fedPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"fedPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.fed.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedPensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='FED' && this.fedPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"fedPensionRecvDate\">{{\"induction.add.employment.fed.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"fedPensionRecvDate\" [formControl]=\"fedPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedPensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' && this.currentState === 'ME' \">\r\n <label for=\"sevPayFlag\">{{\"induction.add.employment.fed.severance\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"sevPayFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"sevPayFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"weeklyAmount\">{{\"induction.add.employment.fed.severance.weekly.amt\"|translate}}</label>\r\n <p-inputNumber inputId=\"weeklyAmount\" [formControl]=\"weeklyAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='weeklyAmount' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"numberOfWeeks\">{{\"induction.add.employment.fed.severance.weeks\"|translate}}</label>\r\n <p-inputNumber inputId=\"numberOfWeeks\" [useGrouping]=\"false\" [formControl]=\"numberOfWeeks\" maxlength=\"4\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='numberOfWeeks' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col>\r\n <div class=\"field\">\r\n <label for=\"sevPayAmount\">{{\"induction.add.employment.fed.severance.entitlement\"|translate}}</label>\r\n <p-inputNumber inputId=\"sevPayAmount\" [formControl]=\"sevPayAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayAmount' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayStartDate\">{{\"induction.add.employment.fed.severance.start.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayStartDate\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" [formControl]=\"sevPayStartDate\" [yearNavigator]=\"true\"\r\n yearRange=\"1901:2050\" appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayStartDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayEndDate\">{{\"induction.add.employment.fed.severance.end.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayEndDate\" [formControl]=\"sevPayEndDate\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n appendTo=\"body\" [minDate]=\"minDate\" dataType=\"string\" [showOnFocus]=\"false\"\r\n (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayEndDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col>\r\n <div class=\"field\">\r\n <label\r\n for=\"sevPayPaymentStartDate\">{{\"induction.add.employment.fed.severance.pay.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayPaymentStartDate\" [formControl]=\"sevPayPaymentStartDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayPaymentStartDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG' && workFlag.value==='Y'\">\r\n <label for=\"pensionFlag\">{{\"induction.confirm.employment.pension\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"pensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"pensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='pensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> \r\n \r\n <div class=\"field\" *ngIf=\"isBasePeriodEmployer && workFlag.value==='Y' && pensionFlag.value==='Y'\r\n && employerType.value==='REG' \"> <!-- this is questionable because above dependent question does not have isBasePeriodEmployer -->\r\n <label for=\"pensionRecvDate\">{{\"induction.confirm.employment.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"pensionRecvDate\" [formControl]=\"pensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='pensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\">\r\n <label for=\"regPensionFlag\">{{\"induction.add.employment.reg.pension\"|translate}} <br />\r\n {{\"induction.add.employment.reg.pension.disclaimer\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton inputId=\"regPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"regPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.reg.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='regPensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\r\n && regPensionFlag.value==='Y'\">\r\n <label for=\"regPensionRecvDate\">{{\"induction.add.employment.reg.pension.date\"|translate}}</label>\r\n \r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"regPensionRecvDate\" [formControl]=\"regPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='regPensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"isClmtPaidWhileLow\">{{\"induction.confirm.employment.employer.pay.return.to.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"isClmtPaidWhileLow\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.reg.employerPayReturnToWorkInfo'| translate}}\" \r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='isClmtPaidWhileLow' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"hasShortTermDisability\">{{\"induction.confirm.employment.shorttermdisability\"|translate}} {{bpStartDateToDisplay | date:'MMMM d, yyyy'}} ?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"hasShortTermDisability\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hasShortTermDisability' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)&& employerType.value==='REG' && currentState==='ME'\">\r\n <label for=\"hasRecvRemuneration\">{{\"induction.confirm.employment.remuneration.pay\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"hasRecvRemuneration\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hasRecvRemuneration' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\" *ngIf=\"employerType.value==='REG' && currentState==='ME' && hasRecvRemuneration.value==='Y' && osaBpEmployerFlag.value==='0'\">\r\n <label for=\"remunerationTypes\">{{\"induction.confirm.employment.remuneration.types\"|translate}}</label>\r\n <p-checkbox [name]=\"'remunerationtypes-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of remunerationTypeOptions\" [formControl]=\"remunerationTypes\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='remunerationTypes' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"vacation\">{{\"induction.confirm.employment.vacation.break\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"vacation\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='vacation' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!--<div *ngIf=\"displayVerificationOfWages.value && employerType.value==='REG'\"> Stephen Code-->\r\n <div *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <div class=\"field\">\r\n <h4>{{\"induction.add.employment.reg.verification.wages.header\"|translate}}</h4>\r\n </div>\r\n <div class=\"field\">\r\n <label>{{\"induction.add.employment.reg.verification.wages.subheader\"|translate}}</label>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"paymentType\">{{\"induction.add.employment.reg.verification.wages.paymode\"|translate}}</label>\r\n <p-selectButton inputId=\"paymentType\" unselectable=\"true\" [options]=\"payMethodOptions\" [formControl]=\"paymentType\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='paymentType' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"docsReceived\">{{\"induction.add.employment.reg.verification.wages.docs\"|translate}}</label>\r\n <p-selectButton inputId=\"docsReceived\" unselectable=\"true\" [options]=\"wageProofOptions\" [formControl]=\"docsReceived\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='docsReceived' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"otherSSNFlag\">{{\"induction.add.employment.reg.verification.wages.other.ssn.flag\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"otherSSNFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"otherSSNFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherSSNFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherSSNFlag.value === 'Y'\">\r\n <label for=\"otherSSN\">{{\"induction.add.employment.reg.verification.wages.other.ssn\"|translate}}</label>\r\n <p-inputMask inputId=\"otherSSN\" mask=\"999-99-9999\" [formControl]=\"otherSSN\" placeholder=\"999-99-9999\">\r\n </p-inputMask>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherSSN' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n\r\n <!-- <div class=\"field\">\r\n <label for=\"hiredBy\">Manager's Name & Title</label>\r\n <input id=\"hiredBy\" type=\"input\" pInputText [formControl]=\"hiredBy\" maxlength=\"40\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hiredBy' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error> \r\n </div> -->\r\n </div>\r\n\r\n <!-- <ion-row *ngIf=\"employerType.value==='FED'\"> Stephen Code -->\r\n\r\n <ion-row *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\"> \r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label\r\n for=\"otherNameFlag\">{{\"induction.add.employment.reg.verification.wages.other.name.flag\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"otherNameFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"otherNameFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherNameFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherNameFlag.value === 'Y'\">\r\n \r\n <label\r\n for=\"otherName\">{{\"induction.add.employment.reg.verification.wages.other.name\"|translate}}</label>\r\n <input id=\"otherName\" type=\"input\" pInputText [formControl]=\"otherName\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <!-- <ion-row *ngIf=\"workState.value && workState.value.value==='KS' && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fein\">FEIN</label>\r\n <p-inputNumber [id]=\"fein\" [useGrouping]=\"false\" [formControl]=\"fein\" maxlength=\"9\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fein' [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=\"doingBusinessAs\">Doing Business As/Trade Name</label>\r\n <input id=\"doingBusinessAs\" type=\"input\" pInputText [formControl]=\"doingBusinessAs\" maxlength=\"100\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='doingBusinessAs' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row> -->\r\n\r\n <ion-row *ngIf=\"employerType.value==='REG' && displayVerificationOfWages?.value \r\n && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"businessNature\">{{\"induction.add.employment.reg.verification.nature\"|translate}}</label>\r\n <input id=\"businessNature\" type=\"input\" pInputText [formControl]=\"businessNature\" maxlength=\"250\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='businessNature' [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <!-- <div *ngIf=\"employerType.value==='FED' || (displayVerificationOfWages?.value && employerType.value==='REG' && prevWorkedState?.value === 'KS')\">\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\"> Stephen Code -->\r\n <!-- <div *ngIf=\"employerType.value==='FED' && isNewClaim\">\r\n <!--<label>{{\"induction.add.employment.fed.verification.wages\"|translate}}</label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n \r\n </div> -->\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label>{{\"induction.add.employment.fed.verification.wages.statement\"|translate}}</label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' || (employerType.value==='REG' && displayVerificationOfWages?.value)\">\r\n <label>{{\"induction.add.employment.reg.verification.wages\"|translate}}</label>\r\n <table rules=\"rows\">\r\n <tr>\r\n <th style=\"text-align: center;\">{{\"induction.add.employment.reg.verification.wages.col1\"|translate}}\r\n </th>\r\n <th>{{\"induction.add.employment.reg.verification.wages.col2\"|translate}}</th>\r\n </tr>\r\n <ng-container formArrayName=\"wageAmountArray\">\r\n <ng-container *ngFor=\"let wageAmountForm of wageAmountArray.controls; let i = index\"\r\n [formGroupName]=\"i\">\r\n <tr *ngIf=\"((employerType.value==='FED') || (employerType.value==='REG' && wageAmountForm.value.displayForAll===true) )\">\r\n <td>\r\n <label [for]=\"'wageAmountArray-' + i\" >{{wageAmountForm.value.qtrYearDisplayString}}</label>\r\n </td>\r\n <td>\r\n <p-inputNumber [inputId]=\"'wageAmountArray-' + i\" ariaLabel=\"wageAmount\" formControlName=\"wageAmount\" mode=\"currency\" [min]=\"0.00\" [max]=\"999999.99\" maxlength=\"12\" currency=\"USD\" locale=\"en-US\">\r\n </p-inputNumber>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"wageAmountArray.errors?.requireCheckboxToBeChecked\">\r\n <td colspan=\"2\">\r\n <app-error [class]=\"'app-grid'\" [field]='wageAmountArray' [form]=\"isFormSubmitted\" [errDef]=\"{\r\n requireCheckboxToBeChecked: 'at least one amount must be greater than zero'\r\n }\"></app-error>\r\n </td>\r\n </tr> \r\n </ng-container>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"severance\">{{\"induction.add.employment.reg.severance\"|translate}}</label>\r\n <div>\r\n <p-selectButton inputId=\"severance\" [options]=\"radioOptions\" [formControl]=\"severance\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='severance'\r\n [errDef]=\"{required: required}\"></app-error>\r\n </div>\r\n \r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button [autofocus]=\"true\" tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" fill=\"outline\" (click)=\"onModelCancel(false)\" (keyup.space)=\"onModelCancel(false)\" (keyup.enter)=\"onModelCancel(false)\"\r\n type=\"reset\">{{\"induction.employment.button.cancel\"|translate}} </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" (click)=\"save()\" type=\"submit\" *ngIf=\"isBasePeriodEmployer\" (keyup.space)=\"save()\" (keyup.enter)=\"save()\">\r\n {{\"induction.employment.button.save\"|translate}} </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" (click)=\"add()\" type=\"submit\" *ngIf=\"!isBasePeriodEmployer\" (keyup.space)=\"add()\" (keyup.enter)=\"add()\"\r\n [attr.aria-label]=\"'Add an employer' | translate\"> {{\"induction.employment.button.add\"|translate}}\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>", styles: [".p-fluid .p-buttonset{display:flex}.p-selectbutton .p-button{width:50px!important}.disabled{cursor:not-allowed;pointer-events:none}.disabled ::ng-deep *{color:gray;border-color:gray}table,th,td{border-collapse:collapse;padding:5px}table th{background-color:#f1f1f1}table{width:100%}.app-grid{color:red}\n"] }]
2628
+ }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.ValidationService }, { type: i3.UtilService }, { type: i4.FilterService }, { type: i5.LoggerService }, { type: i6.DomSanitizer }, { type: i7.ClaimService }, { type: i8.LoginService }, { type: i0.ElementRef }, { type: i9.ActivatedRoute }, { type: i10.TranslateService }], { address1: [{
2565
2629
  type: ViewChild,
2566
2630
  args: ['address1']
2567
2631
  }], address2: [{
@@ -2587,5 +2651,5 @@ export class AddEmployerComponent {
2587
2651
  type: ViewChild,
2588
2652
  args: ['employerForm']
2589
2653
  }] }); })();
2590
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddEmployerComponent, { className: "AddEmployerComponent", filePath: "lib\\components\\add-employer\\add-employer.component.ts", lineNumber: 26 }); })();
2591
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVtcGxveWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBMEQsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTXBFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU9oRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNObEMsMkJBQStCO0lBQzdCLFlBQThEOztJQUFBLGlCQUFNOzs7SUFBcEUsZUFBOEQ7SUFBOUQsZ0hBQThEOzs7SUFJaEUsMkJBQW1CO0lBQ2pCLHFCQUFJO0lBQ0osWUFDRjs7SUFBQSxpQkFBTTs7SUFESixlQUNGO0lBREUsb0dBQ0Y7OztJQU1RLDBCQUFnQyxRQUFBO0lBQzNCLFlBQThCO0lBQUEsaUJBQUksRUFBQTs7O0lBQWxDLGVBQThCO0lBQTlCLGtEQUE4Qjs7O0lBSW5DLDBCQUFnQztJQUM5QixZQUNGOztJQUFBLGlCQUFLOzs7SUFESCxlQUNGO0lB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QUNMLGtDQUFrRDtZQUNoRCxpRkF1K0JXO1lBQ2IsaUJBQU8sRUFBQTs7WUE3K0JhLDBDQUF5QjtZQURTLGtDQUFvQixvQkFBQSxvQkFBQSw0Q0FBQTtZQUdYLGVBQy9EO1lBRCtELDZGQUMvRDtZQUNvQixlQUE2QjtZQUE3QiwrQ0FBNkI7WUFDcEMsZUFBK0I7WUFBL0Isd0ZBQStCOzs7aUZEbUJqQyxvQkFBb0I7Y0FMaEMsU0FBUzsyQkFDRSxrQkFBa0I7NFNBTUwsUUFBUTtrQkFBOUIsU0FBUzttQkFBQyxVQUFVO1lBQ0UsUUFBUTtrQkFBOUIsU0FBUzttQkFBQyxVQUFVO1lBaUVyQixXQUFXO2tCQURWLE1BQU07WUFJUCxPQUFPO2tCQUROLE1BQU07WUFJQSxpQkFBaUI7a0JBRHZCLEtBQUs7WUFJQyxvQkFBb0I7a0JBRDFCLEtBQUs7WUFJQyxVQUFVO2tCQURoQixLQUFLO1lBSUMsVUFBVTtrQkFEaEIsS0FBSztZQUlDLEdBQUc7a0JBRFQsS0FBSztZQU9OLGVBQWU7a0JBRGQsTUFBTTtZQUdvQixtQkFBbUI7a0JBQTdDLFNBQVM7bUJBQUMsY0FBYzs7a0ZBOUZkLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ29tYm9Nb2RlbCc7XHJcbmltcG9ydCB7IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQnO1xyXG5pbXBvcnQgeyBRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9RdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWwnO1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xdWVzdGlvbm5haXJlL3ZhbGlkYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnRNb2RlbCwgQ2hvaWNlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0FkZHJlc3NDb21wb25lbnRNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnQgfSBmcm9tICcuLi9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgS2V5VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0tleVZhbHVlTW9kZWwnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFkZC1lbXBsb3llcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1lbXBsb3llci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLWVtcGxveWVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZGRFbXBsb3llckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2FkZHJlc3MxJykgYWRkcmVzczE6IEFkZHJlc3NDb21wb25lbnQ7IFxyXG4gIEBWaWV3Q2hpbGQoJ2FkZHJlc3MyJykgYWRkcmVzczI6IEFkZHJlc3NDb21wb25lbnQ7IFxyXG5cclxuICBwdWJsaWMgZW1wbG95ZXJUeXBlT3B0aW9ucyA9IENvbWJvT3B0aW9uLkVNUExPWUVSX1RZUEU7XHJcbiAgcHVibGljIGNvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWTtcclxuICBwdWJsaWMgY291bnRyeUZlZE9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZO1xyXG4gIHB1YmxpYyBwYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0Q7XHJcbiAgcHVibGljIHN0YXRlT3B0aW9uczogYW55ID0gW107XHJcbiAgcHVibGljIGZlZFN0YXRlT3B0aW9uczogYW55ID0gW107XHJcbiAgcHVibGljIGpvYlRpbGVPclBvc2l0aW9uT3B0aW9uczogYW55ID1bXTtcclxuICBwdWJsaWMgZmVkSm9iVGlsZU9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIHJhZGlvT3B0aW9ucyA9IENvbWJvT3B0aW9uLllFU19OTztcclxuICBwdWJsaWMgd29ya09wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0ZPUl9FTVBMO1xyXG4gIHB1YmxpYyB5ZXNOb05hT3B0aW9ucyA9IENvbWJvT3B0aW9uLllFU19OT19OQTtcclxuICBwdWJsaWMgcGF5TWV0aG9kT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWU1FTlRfTUVUSE9EO1xyXG4gIHB1YmxpYyB3YWdlUHJvb2ZPcHRpb25zID0gQ29tYm9PcHRpb24uV0FHRV9QUk9PRjtcclxuICBwdWJsaWMgZGlzY2hhcmdlUmVhc29uT3B0aW9uczogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgdm9sUXVpdFJlYXNvbk9wdGlvbnM6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHN0YXRlc09wdGlvbnMgPSBDb21ib09wdGlvbi5VU19TVEFURVM7XHJcbiAgcHVibGljIG5vbktTU3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLk5PTl9LU19TVEFURVM7XHJcbiAgcHVibGljIHBheVBlcmlvZCA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0Q7XHJcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyB3b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUlk7XHJcbiAgcHVibGljIG1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFO1xyXG4gIHB1YmxpYyByZW11bmVyYXRpb25UeXBlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlJFTVVORVJBVElPTl9UWVBFUztcclxuICBwdWJsaWMgYWRkRW1wbG95ZXJGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBkaXNwbGF5OiBib29sZWFuO1xyXG4gIHB1YmxpYyBiYXNlUGVyaW9kU3RhcnREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBiYXNlUGVyaW9kRW5kRGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgYnBTdGFydERhdGVUb0Rpc3BsYXk6IERhdGU7XHJcbiAgcHVibGljIG1pbkRhdGU6IERhdGU7XHJcbiAgcHVibGljIG1pblN0YXJ0RGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgcXVhcnRlclJhbmdlT25lPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBxdWFydGVyUmFuZ2VUd28/OiBzdHJpbmc7XHJcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZVRocmVlPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBxdWFydGVyUmFuZ2VGb3VyPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBjdXJyZW50UXVhcnRlclJhbmdlPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBxdWFydGVyUmFuZ2VGaXZlPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBkYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgcHVibGljIGdyb3VwZWRSZWFzb25zPSBDb21ib09wdGlvbi5HUk9VUF9SRUFTT05TO1xyXG4gIHB1YmxpYyBtaW5Xb3JrU3RhcnREYXRlIDogRGF0ZTtcclxuICBwdWJsaWMgcHJldldvcmtlZFN0YXRlT3B0aW9ucz0gQ29tYm9PcHRpb24uV09SS0VEX1NUQVRFO1xyXG5cclxuICBwdWJsaWMgZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgdm9sUXVpdFJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc2Y4SW5mbz1cIlNGLThcIjtcclxuICBwdWJsaWMgZGQyMTRJbmZvPVwiREQgMjE0XCI7XHJcblxyXG4gIHB1YmxpYyBwYXJhT25lID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQueWVzLnBhcmEub25lXCI7XHJcbiAgcHVibGljIHBhcmFUd289XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnR3b1wiO1xyXG4gIHB1YmxpYyBwYXJhVGhyZWU9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnRocmVlXCI7XHJcbiAgcHVibGljIHBhcmFGb3VyPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS5mb3VyXCI7XHJcbiAgcHVibGljIHBhcmFGaXZlPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS5maXZlXCI7XHJcbiAgcHVibGljIHBhcmFTaXg9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnNpeFwiO1xyXG5cclxuICBwdWJsaWMgbm9QYXJhT25lID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS5vbmVcIjtcclxuICBwdWJsaWMgbm9QYXJhVHdvPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLnR3b1wiO1xyXG4gIHB1YmxpYyBub1BhcmFUaHJlZT1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS50aHJlZVwiO1xyXG4gIHB1YmxpYyBub1BhcmFGb3VyPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLmZvdXJcIjtcclxuICBwdWJsaWMgbm9QYXJhRml2ZT1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS5maXZlXCI7XHJcblxyXG4gIHB1YmxpYyBlbXBsb3llclByb3ZpZGVkV2FnZXM6IFF0clllYXJFbXBsb3llcldhZ2VNb2RlbFtdO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBtb2RlbENhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlY29yZEluZGV4VG9FZGl0OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzQmFzZVBlcmlvZEVtcGxveWVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbm9FZGl0TW9kZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNOZXdDbGFpbTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZG9iOiBEYXRlO1xyXG5cclxuICBwdWJsaWMgaGlkZUZpY0NvZGU6IHRydWU7XHJcbiAgcHVibGljIGlzTWFudWFsRW50ZXJFbXA6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KCkgXHJcbiAgYmFzZVBlcmlvZEluZGV4OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9ICAgbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdlbXBsb3llckZvcm0nKSBlbXBsb3llckZvcm1FbGVtZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG5cclxuICBwdWJsaWMgY3VycmVudFN0YXRlIDogc3RyaW5nO1xyXG4gIHB1YmxpYyBjdXN0b21lck5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgYWxpYXNOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIG1haWxpbmdBZGRyZXNzRGlzcGxheTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzY2hvb2xGbGFnOnN0cmluZztcclxuICBwdWJsaWMgaXNPc2FFbXBsb3llcjpzdHJpbmcgPSBcIjBcIjtcclxuICBwdWJsaWMgaXNDU1I6Ym9vbGVhbjtcclxuICBwdWJsaWMgc2hvd1dvcmtTdGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIG5vbktzU3RhdGU6e3RleHQ6c3RyaW5nLCB2YWx1ZTpzdHJpbmd9W107XHJcbiAgcHVibGljIHF0cldhZ2VMaXN0OiBRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWxbXTtcclxuICBwdWJsaWMgaXNGb3JtU3VibWl0dGVkID0ge3N1Ym1pdHRlZDogZmFsc2V9XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAodmFsdWU6IFN0cmluZykgPT4ge1xyXG5cclxuICB9O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHB1YmxpYyB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsIFxyXG4gICAgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLHByaXZhdGUgZmlsdGVyU2VydmljZTogRmlsdGVyU2VydmljZSxwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgXHJcbiAgICBwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsIHB1YmxpYyBjbGFpbXNTZXJ2aWNlIDogQ2xhaW1TZXJ2aWNlLCBwdWJsaWMgbHM6IExvZ2luU2VydmljZSxcclxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBhcjogQWN0aXZhdGVkUm91dGUpIHsgfVxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHRoaXMuc2V0V29ya1N0YXJ0RGF0ZSgpO1xyXG4gICAgXHJcbiAgICB0aGlzLmxvYWRNYXN0ZXJEYXRhKCk7XHJcblxyXG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTLmZpbmQoc3RhdGUgPT4gc3RhdGUudmFsdWUgPT0gdGhpcy51dGlsLmdldFN0YXRlKCkpXHJcbiAgICB0aGlzLnN0YXRlc09wdGlvbnMgPSBbY3VycmVudFN0YXRlLCAuLi5Db21ib09wdGlvbi5VU19TVEFURVMuZmlsdGVyKHN0YXRlID0+IHN0YXRlLnZhbHVlICE9IHRoaXMudXRpbC5nZXRTdGF0ZSgpKV07XHJcblxyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2lzQmFzZVBlcmlvZEVtcGxveWVyIGlzID0gJywgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciwgdGhpcy5zdGF0ZXNPcHRpb25zKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdpc05ld0NsYWltID0gJywgdGhpcy5pc05ld0NsYWltKTtcclxuICAgIHRoaXMuY3VycmVudFN0YXRlID0gdGhpcy51dGlsLmdldFN0YXRlKCk7XHJcbiAgICB0aGlzLmlzQ1NSID0gdGhpcy5scy5pc0NzcigpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJDdXJyZW50IFN0YXRlID0gXCIsIHRoaXMuY3VycmVudFN0YXRlKTtcclxuICAgIGxldCBlc206IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWw7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImNhbGwgc2VydmljZSA9XCIsIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xyXG4gICAgaWYgKHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnJlY29yZEluZGV4VG9FZGl0ID09PSBudWxsKSB7XHJcbiAgICAgIGVzbSA9IG5ldyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsKCk7XHJcbiAgICAgIHRoaXMucXRyV2FnZUxpc3QgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpPy5xdHJZZWFyV2FnZUxpc3RHZW5lcmljOyAgICAgIFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3JlY29yZEluZGV4VG9FZGl0JywgdGhpcy5yZWNvcmRJbmRleFRvRWRpdClcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCknLCB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcclxuICAgICAgdGhpcy5ub0VkaXRNb2RlID0gdHJ1ZTtcclxuICAgICAgZXNtID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKS5icEVtcExpc3RbdGhpcy5yZWNvcmRJbmRleFRvRWRpdF07XHJcbiAgICAgIHRoaXMucXRyV2FnZUxpc3QgPSBlc20ud2FnZUFtb3VudEFycmF5IGFzIFF0clllYXJFbXBsb3llcldhZ2VNb2RlbFtdO1xyXG4gICAgICB0aGlzLmN1c3RvbWVyTmFtZSA9IGVzbS5lbXBsb3llckRhdGEuZGlzcGxheU5hbWU7XHJcbiAgICAgIGlmKGVzbS5lbXBsb3llckRhdGEudHJhZGVOYW1lKXtcclxuICAgICAgICB0aGlzLmFsaWFzTmFtZSA9IGVzbS5lbXBsb3llckRhdGEudHJhZGVOYW1lO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYWxpYXNOYW1lID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBpZihlc20ub3NhQnBFbXBsb3llckZsYWcpe1xyXG4gICAgICAgIHRoaXMuaXNPc2FFbXBsb3llciA9IGVzbS5vc2FCcEVtcGxveWVyRmxhZztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImlzT3NhRW1wbG95ZXIgPT09PT09PSBcIiAsIHRoaXMuaXNPc2FFbXBsb3llcik7XHJcbiAgICAgIHRoaXMubWFpbGluZ0FkZHJlc3NEaXNwbGF5ID0gZXNtLmVtcGxveWVyRGF0YS5tYWlsaW5nQWRkcmVzc0Rpc3BsYXk7XHJcbiAgICAgIHRoaXMuc2Nob29sRmxhZyA9IGVzbS5lbXBsb3llckRhdGEuc2Nob29sRmxhZztcclxuICAgICAgaWYodGhpcy5pc0NTUiAmJiBlc20uZW1wbG95ZXJQcm92aWRlZFdhZ2VzICYmIGVzbS5lbXBsb3llclByb3ZpZGVkV2FnZXMud2FnZXNMaXN0UXRyV2lzZSl7XHJcbiAgICAgICAgdGhpcy5lbXBsb3llclByb3ZpZGVkV2FnZXMgPSBlc20uZW1wbG95ZXJQcm92aWRlZFdhZ2VzLndhZ2VzTGlzdFF0cldpc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmJhc2VQZXJpb2RTdGFydERhdGUgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpPy5iYXNlUGVyaW9kU3RhcnREYXRlO1xyXG4gICAgdGhpcy5iYXNlUGVyaW9kRW5kRGF0ZSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCk/LmJhc2VQZXJpb2RFbmREYXRlO1xyXG4gICAgdGhpcy5icFN0YXJ0RGF0ZVRvRGlzcGxheSA9IG5ldyBEYXRlKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCk/LmJwU3RhcnREYXRlVG9EaXNwbGF5KTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMubWluV29ya1N0YXJ0RGF0ZVwiLCB0aGlzLm1pbldvcmtTdGFydERhdGUpO1xyXG4gICAgaWYodGhpcy5taW5Xb3JrU3RhcnREYXRlKXtcclxuICAgICAgdGhpcy5icFN0YXJ0RGF0ZVRvRGlzcGxheSA9IHRoaXMubWluV29ya1N0YXJ0RGF0ZTtcclxuICAgIH0gZWxzZXtcclxuICAgICAgdGhpcy5taW5Xb3JrU3RhcnREYXRlID0gdGhpcy5kb2I7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmxvYWRNYXN0ZXJEYXRhKCk7XHJcbiAgICBcclxuXHJcbiAgICB0aGlzLmFkZEVtcGxveWVyRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAnZW1wbG95ZXJUeXBlJzogW2VzbS5lbXBsb3llclR5cGUgPz8gbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdlbXBsb3llck5hbWUnOiBbZXNtLmVtcGxveWVyTmFtZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLnByZXZXb3JrZWRTdGF0ZS52YWx1ZSA9PT0gJ0tTJyldLFxyXG4gICAgICAnb3RoU3RhdGVFbXBOYW1lJzogW2VzbS5vdGhTdGF0ZUVtcE5hbWUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5wcmV2V29ya2VkU3RhdGUudmFsdWUgPT09ICdPVCcpXSxcclxuICAgICAgJ2ZlZEVtcGxveWVyTmFtZSc6IFtlc20uZmVkRW1wbG95ZXJOYW1lID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdlbXBsb3llclRlbGVwaG9uZU51bWJlcic6IFtlc20uZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXSxcclxuICAgICAgJ2VuZERhdGUnOiBbZXNtLmVuZERhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXSxcclxuICAgICAgJ3N0YXJ0RGF0ZSc6IFtlc20uc3RhcnREYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV0sXHJcbiAgICAgICdqb2JUaWxlT3JQb3NpdGlvbic6IFtlc20uam9iVGlsZU9yUG9zaXRpb24gPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXSxcclxuICAgICAgJ3JlYXNvblNlcGFyYXRpb24nOiBbZXNtLnJlYXNvblNlcGFyYXRpb24gPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgfHwgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyldLFxyXG4gICAgICAnZGlzY2hhcmdlRGV0YWlsJzogW2VzbS5kaXNjaGFyZ2VEZXRhaWwgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSE9J01JTCcgJiYgdGhpcy5yZWFzb25TZXBhcmF0aW9uPy52YWx1ZT8udmFsdWUgPT09ICdEQ0ZJJyldLFxyXG4gICAgICAndm9sUXVpdERldGFpbHMnOiBbZXNtLnZvbFF1aXREZXRhaWxzID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUhPSdNSUwnICYmICB0aGlzLnJlYXNvblNlcGFyYXRpb24/LnZhbHVlPy52YWx1ZSA9PT0gJ1ZPTFEnKV0sXHJcbiAgICAgICdwYXlSYXRlJzogW2VzbS5wYXlSYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyAmJiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZz8udmFsdWU9PT0nWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSldLFxyXG4gICAgICAncGF5UmF0ZUZyZXF1ZW5jeSc6IFtlc20ucGF5UmF0ZUZyZXF1ZW5jeSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycgJiYgKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWc/LnZhbHVlPT09J1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpXSxcclxuICAgICAgJ3BlbnNpb25GbGFnJzogW2VzbS5wZW5zaW9uRmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycgJiYgdGhpcy53b3JrRmxhZz8udmFsdWU9PT0nWScpXSxcclxuICAgICAgJ3BlbnNpb25SZWN2RGF0ZSc6IFtlc20ucGVuc2lvblJlY3ZEYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMucGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKV0sXHJcbiAgICAgICdyZWdQZW5zaW9uRmxhZyc6IFtlc20ucmVnUGVuc2lvbkZsYWcgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZT09PSdSRUcnKV0sXHJcbiAgICAgICdyZWdQZW5zaW9uUmVjdkRhdGUnOltlc20ucmVnUGVuc2lvblJlY3ZEYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMucmVnUGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyldLCAgICAgIFxyXG4gICAgICAvLyAnaXNDbG10UGFpZFdoaWxlTG93JzogW2VzbS5pc0NsbXRQYWlkV2hpbGVMb3cgIT0gbnVsbCA/IGVzbS5pc0NsbXRQYWlkV2hpbGVMb3cgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXSxcclxuICAgICAgLy8gJ2hhc1Nob3J0VGVybURpc2FiaWxpdHknOiBbZXNtLmhhc1Nob3J0VGVybURpc2FiaWxpdHkgIT0gbnVsbCA/IGVzbS5oYXNTaG9ydFRlcm1EaXNhYmlsaXR5IDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScpXSxcclxuICAgICAgLy8gJ2hhc1JlY3ZSZW11bmVyYXRpb24nOiBbZXNtLmhhc1JlY3ZSZW11bmVyYXRpb24gIT0gbnVsbCA/IGVzbS5oYXNSZWN2UmVtdW5lcmF0aW9uIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnKV0sXHJcbiAgICAgICdyZW11bmVyYXRpb25UeXBlcyc6IFtlc20ucmVtdW5lcmF0aW9uVHlwZXMgPz8gbnVsbF0sXHJcbiAgICAgIC8vICd2YWNhdGlvbic6IFtlc20udmFjYXRpb24gIT0gbnVsbCA/IGVzbS52YWNhdGlvbiA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuc2Nob29sRmxhZyA9PT0nMScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnKV0sXHJcbiAgICAgIFxyXG4gICAgICAnZ3Jvc3NXYWdlcyc6IFtlc20uZ3Jvc3NXYWdlcyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgKHRoaXMub3NhQnBFbXBsb3llckZsYWc/LnZhbHVlID09PScxJyB8fCB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSkpXSxcclxuICAgICAgLy8ncGFpZEJ5JzogW2VzbS5wYWlkQnkgIT0gbnVsbCA/IGVzbS5wYWlkQnkgOiBudWxsLEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5pc0NsbXRQYWlkV2hpbGVMb3cudmFsdWU9PT0nWScpKV0sXHJcbiAgICAgICdwYXltZW50VHlwZSc6IFtlc20ucGF5bWVudFR5cGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZT09PSdSRUcnKV0sXHJcbiAgICAgICdkb2NzUmVjZWl2ZWQnOiBbZXNtLmRvY3NSZWNlaXZlZCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAnb3RoZXJTU05GbGFnJzogW2VzbS5vdGhlclNTTkZsYWcgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXSxcclxuICAgICAgJ290aGVyU1NOJzogW2VzbS5vdGhlclNTTiA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmIHRoaXMub3RoZXJTU05GbGFnLnZhbHVlID09PSAnWScpXSxcclxuICAgICAgJ290aGVyTmFtZUZsYWcnOiBbZXNtLm90aGVyTmFtZUZsYWcgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZT09PSdSRUcnKV0sXHJcbiAgICAgICdvdGhlck5hbWUnOiBbZXNtLm90aGVyTmFtZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5vdGhlck5hbWVGbGFnLnZhbHVlID09PSAnWScpXSxcclxuICAgICAgLy8nZG9pbmdCdXNpbmVzc0FzJzogW2VzbS5kb2luZ0J1c2luZXNzQXMgIT0gbnVsbCA/IGVzbS5kb2luZ0J1c2luZXNzQXMgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIHRoaXMud29ya1N0YXRlLnZhbHVlICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlPT09J0tTJykpXSxcclxuICAgICAgJ3ByZXZXb3JrZWRTdGF0ZSc6IFtlc20ucHJldldvcmtlZFN0YXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKV0sXHJcbiAgICAgICd3b3JrU3RhdGUnOiBbZXNtLndvcmtTdGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcildLFxyXG4gICAgICAnd29ya0NpdHknOiBbZXNtLndvcmtDaXR5ID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKV0sXHJcbiAgICAgIC8vJ251bWJlckVtcGxveWVkJzogW2VzbS5udW1iZXJFbXBsb3llZCAhPSBudWxsID8gZXNtLm51bWJlckVtcGxveWVkIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSldLFxyXG4gICAgICAnd29ya1R5cGUnOiBbZXNtLndvcmtUeXBlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyldLFxyXG4gICAgIC8vICdmZWluJzogW2VzbS5mZWluXSxcclxuICAgICAvLyAnaGlyZWRCeSc6IFtlc20uaGlyZWRCeSwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PSdLUycpKV0sXHJcbiAgICAgIC8vJ2J1c2luZXNzT3duZXInOiBbZXNtLmJ1c2luZXNzT3duZXIsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWU9PT0nS1MnKSldLFxyXG4gICAgICAnYnVzaW5lc3NOYXR1cmUnOiBbZXNtLmJ1c2luZXNzTmF0dXJlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV0sXHJcbiAgICAgICd3b3JrRmxhZyc6IFtlc20ud29ya0ZsYWcgPz8gbnVsbF0sXHJcbiAgICAgIC8vJ3F1aXRyZWFzb24nOiBbZXNtLnF1aXRyZWFzb24gIT0gbnVsbCA/IGVzbS5xdWl0cmVhc29uIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgoKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgKCF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSkgJiYgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnZhbHVlICYmIHRoaXMucmVhc29uU2VwYXJhdGlvbi52YWx1ZS52YWx1ZSA9PT0gJ1ZPTFEnKSkpXSxcclxuICAgICAgJ2Rpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzJzogW2VzbS5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcyA/PyBudWxsXSxcclxuICAgICAgJ2ZpY0Rlc3RpbmF0aW9uQ29kZSc6IFtlc20uZmljRGVzdGluYXRpb25Db2RlID8/IG51bGxdLFxyXG4gICAgICAnZmljQ29kZSc6IFtlc20uZmljQ29kZSA/PyBudWxsXSxcclxuICAgICAgJ2ZpY0Rlc3RpbmF0aW9uTmFtZSc6IFtlc20uZmljRGVzdGluYXRpb25OYW1lID8/IG51bGxdLFxyXG4gICAgICAnZmljRGVzdGluYXRpb25JZCc6IFtlc20uZmljRGVzdGluYXRpb25JZCA/PyBudWxsXSxcclxuICAgICAgJ3NmRWlnaHRmbGFnJzogW2VzbS5zZkVpZ2h0ZmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyldLFxyXG4gICAgICAnZmVkV29ya0NpdHknOiBbZXNtLmZlZFdvcmtDaXR5ID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdmZWRXb3JrU3RhdGUnOiBbZXNtLmZlZFdvcmtTdGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyldLFxyXG4gICAgICAnZmVkV29ya0NvdW50cnknOiBbZXNtLmZlZFdvcmtDb3VudHJ5ID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdzdGFydERhdGVGZWQnOiBbZXNtLnN0YXJ0RGF0ZUZlZCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyldLFxyXG4gICAgICAnZW5kRGF0ZUZlZCc6IFtlc20uZW5kRGF0ZUZlZCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyldLFxyXG4gICAgICAnZmVkSm9iVGlsZU9yUG9zaXRpb24nOiBbZXNtLmZlZEpvYlRpbGVPclBvc2l0aW9uID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJykpXSxcclxuICAgICAgLy8nY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByJzogW2VzbS5jbGFpbWFudEVtcGxveWVkV2l0aEVtcHIgIT0gbnVsbCA/IGVzbS5jbGFpbWFudEVtcGxveWVkV2l0aEVtcHIgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpKV0sXHJcbiAgICAgICdwZXJmb3JtZWRTZXJ2aWNlJzogW2VzbS5wZXJmb3JtZWRTZXJ2aWNlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdmZWRQZW5zaW9uRmxhZyc6IFtlc20uZmVkUGVuc2lvbkZsYWcgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKSldLFxyXG4gICAgICAnZmVkUGVuc2lvblJlY3ZEYXRlJzpbZXNtLmZlZFBlbnNpb25SZWN2RGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5mZWRQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAnc2V2UGF5RmxhZyc6IFtlc20uc2V2UGF5RmxhZyA/PyBudWxsXSxcclxuICAgICAgJ3dlZWtseUFtb3VudCc6IFtlc20ud2Vla2x5QW1vdW50ID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJykpXSxcclxuICAgICAgJ251bWJlck9mV2Vla3MnOiBbZXNtLm51bWJlck9mV2Vla3MgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAnc2V2UGF5QW1vdW50JzogW2VzbS5zZXZQYXlBbW91bnQgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAnc2V2UGF5U3RhcnREYXRlJzogW2VzbS5zZXZQYXlTdGFydERhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAnc2V2UGF5RW5kRGF0ZSc6IFtlc20uc2V2UGF5RW5kRGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdzZXZQYXlQYXltZW50U3RhcnREYXRlJzogW2VzbS5zZXZQYXlQYXltZW50U3RhcnREYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJykpXSxcclxuICAgICAgJ3JlZ0VtcGxveWVyRm91bmQnOiBbZXNtLnJlZ0VtcGxveWVyRm91bmQgPz8gbnVsbF0sXHJcbiAgICAgICdlbXBsb3llcklkJzogW2VzbS5lbXBsb3llcklkID8/IG51bGxdLFxyXG4gICAgICAnc2VydmljZUJyYW5jaCc6IFtlc20uc2VydmljZUJyYW5jaCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnTUlMJyldLFxyXG4gICAgICAnc3RhcnREYXRlTWlsJzogW2VzbS5zdGFydERhdGVNaWwgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ01JTCcpXSxcclxuICAgICAgJ2VuZERhdGVNaWwnOiBbZXNtLmVuZERhdGVNaWwgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ01JTCcpXSxcclxuICAgICAgJ2RkMjE0RmxhZyc6IFtlc20uZGQyMTRGbGFnID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdNSUwnKV0sXHJcbiAgICAgICdsYXN0UGF5R3JhZGUnOiBbZXNtLmxhc3RQYXlHcmFkZSA/PyBudWxsXSxcclxuICAgICAgJ2xhc3RkdXR5JzogW2VzbS5sYXN0ZHV0eSA/PyBudWxsXSxcclxuICAgICAgJ3BsYWNlU2VwYXJhdGVkJzogW2VzbS5wbGFjZVNlcGFyYXRlZCA/PyBudWxsXSxcclxuICAgICAgJ25vTGVhdmVEYXlzJzogW2VzbS5ub0xlYXZlRGF5cyA/PyBudWxsXSxcclxuICAgICAgJ2NvbXBsZXRlZEZ1bGxUZXJtRmxhZyc6IFtlc20uY29tcGxldGVkRnVsbFRlcm1GbGFnID8/IG51bGxdLFxyXG4gICAgICAncmVzZXJ2ZU9yR3VhcmRGbGFnJzogW2VzbS5yZXNlcnZlT3JHdWFyZEZsYWcgPz8gbnVsbF0sXHJcbiAgICAgICdtaWxQZW5zaW9uRmxhZyc6IFtlc20ubWlsUGVuc2lvbkZsYWcgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ01JTCcpXSxcclxuICAgICAgJ21pbFBlbnNpb25SZWN2RGF0ZSc6W2VzbS5taWxQZW5zaW9uUmVjdkRhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdNSUwnICYmIHRoaXMubWlsUGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJykpXSxcclxuICAgICAgJ21pbFN0YXRlJzpbbnVsbCwgW0FwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdNSUwnKSwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZEthbnNhc11dLFxyXG4gICAgICAnYWRkcmVzc0xpbmUxJzogW2VzbS5hZGRyZXNzTGluZTEgPz8gbnVsbF0sXHJcbiAgICAgICdhZGRyZXNzTGluZTInOiBbZXNtLmFkZHJlc3NMaW5lMiA/PyBudWxsXSxcclxuICAgICAgJ2FkZHJlc3NMaW5lMyc6IFtlc20uYWRkcmVzc0xpbmUzID8/IG51bGxdLFxyXG4gICAgICAncmVzZXJ2ZUJyYW5jaCc6W2VzbS5yZXNlcnZlQnJhbmNoID8/IG51bGxdLFxyXG4gICAgICAnc3RhcnREYXRlUmVzZXJ2ZSc6W2VzbS5zdGFydERhdGVSZXNlcnZlID8/IG51bGxdLFxyXG4gICAgICAnZW5kRGF0ZVJlc2VydmUnOltlc20uZW5kRGF0ZVJlc2VydmUgPz8gbnVsbF0sXHJcbiAgICAgICdkZDIxNEZpbGUnOltlc20uZGQyMTRGaWxlID8/IG51bGxdLFxyXG4gICAgICAnYWRkcmVzcyc6W2VzbS5hZGRyZXNzID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyB8fCB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKSldLFxyXG4gICAgICAnd2FnZUFtb3VudEFycmF5JzogdGhpcy5mb3JtQnVpbGRlci5hcnJheShbXSksXHJcbiAgICAgICd0ZXN0RW1wJyA6IFtlc20uZW1wbG95ZXJQcm92aWRlZFdhZ2VzPy53YWdlc0xpc3RRdHJXaXNlID8/IG51bGxdLFxyXG4gICAgICAnb3NhQnBFbXBsb3llckZsYWcnOltlc20ub3NhQnBFbXBsb3llckZsYWcgPz8gXCIwXCJdLFxyXG4gICAgICAnc2V2ZXJhbmNlJzpbZXNtLnNldmVyYW5jZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldXHJcbiAgICB9KTtcclxuICAgIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT57XHJcbiAgICAgIC8vIHVuY29tbWVudCB0aGlzIGlmIHRoZXJlIGlzIGFuIGlzc3VlIHdpdGggY2hhbmdpbmcgZW1wbG95ZXIgdHlwZS5cclxuICAgICAgLy9QR0xQLTUyMiB0aGlzIGJlbG93IGNvZGUgd2FzIHVuY29tbWVudGVkXHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKCh0dXBsZSk9PiB7aWYodHVwbGVbMF0gIT09IFwiZW1wbG95ZXJUeXBlXCIgJiYgdHVwbGVbMF0gIT09IFwid2FnZUFtb3VudEFycmF5XCIgJiYgIXR1cGxlWzFdLnZhbGlkKSB0dXBsZVsxXS5yZXNldCgpO30pO1xyXG4gICAgICB0aGlzLmlzRm9ybVN1Ym1pdHRlZC5zdWJtaXR0ZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT09ICdGRUQnID8gdGhpcy5hZGRyZXNzLmRpc2FibGUoKTogdGhpcy5hZGRyZXNzLmVuYWJsZSgpOyAgICAgIFxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBCYXNlUGFnZS5wcmltZU5HRml4ZXMoKTsgICAgICAgICBcclxuICAgICAgfSwgNTAwKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoIF8gPT4ge1xyXG4gICAgICB0aGlzLmRpc2NoYXJnZURldGFpbC5yZXNldCgpO1xyXG4gICAgICB0aGlzLnZvbFF1aXREZXRhaWxzLnJlc2V0KCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIEJhc2VQYWdlLnByaW1lTkdGaXhlcygpOyAgICAgICAgIFxyXG4gICAgICB9LCAxMDApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm90aGVyU1NORmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICB0aGlzLm90aGVyU1NOLnJlc2V0KCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMub3RoZXJOYW1lRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICB0aGlzLm90aGVyTmFtZS5yZXNldCgpO1xyXG4gICAgfVxyXG4gICAgKVxyXG4gXHJcbiAgICAvL1BHTFAtNTIyIHRoaXMgYmVsb3cgY29kZSB3YXMgYWRkZWQuIGlmICBlbXBsb3llclR5cGUgaXMgUkVHIGFuZCBub24gYmFzZXBlcmlvZEVtcGxveWVyLiBJZiB1c2VyIGNoYW5nZSB0aGUgIHJlZ1BlbnNpb25GbGFnICdZRVMnIHRvICdOTycgdGhlbiByZWdQZW5zaW9uUmVjdkRhdGUgdmFsaWRhdGlvbiB3YXMgcmVzZXRcclxuICAgIHRoaXMucmVnUGVuc2lvbkZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgdGhpcy5yZWdQZW5zaW9uUmVjdkRhdGUucmVzZXQoKTtcclxuICAgIH1cclxuICAgIClcclxuICAgICAvL1BHTFAtNTIyIHRoaXMgYmVsb3cgY29kZSB3YXMgYWRkZWQuIGlmICBlbXBsb3llclR5cGUgaXMgUkVHIGFuZCAgYmFzZXBlcmlvZEVtcGxveWVyLiBJZiB1c2VyIGNoYW5nZSB0aGUgIHBlbnNpb25GbGFnICdZRVMnIHRvICdOTycgdGhlbiBQZW5zaW9uUmVjaXZlRGF0ZSB2YWxpZGF0aW9uIHdhcyByZXNldFxyXG4gICAgIHRoaXMucGVuc2lvbkZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgdGhpcy5wZW5zaW9uUmVjdkRhdGUucmVzZXQoKTtcclxuICAgIH1cclxuICAgIClcclxuXHJcblxyXG4gICAgLy9QR0xQLTUyMiB0aGlzIGJlbG93IGNvZGUgd2FzIGFkZGVkLiBpZiAgZW1wbG95ZXJUeXBlIGlzIFJFRyBhbmQgIGJhc2VwZXJpb2RFbXBsb3llci4gSWYgdXNlciBjaGFuZ2UgdGhlICBwZW5zaW9uRmxhZyAnWUVTJyB0byAnTk8nIHRoZW4gUGVuc2lvblJlY2l2ZURhdGUgdmFsaWRhdGlvbiB3YXMgcmVzZXRcclxuICAgIHRoaXMuZmVkUGVuc2lvbkZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgdGhpcy5mZWRQZW5zaW9uUmVjdkRhdGUucmVzZXQoKTtcclxuICAgIH1cclxuICAgIClcclxuXHJcbiAgICAgIC8vUEdMUC01MjIgdGhpcyBiZWxvdyBjb2RlIHdhcyBhZGRlZC4gaWYgIGVtcGxveWVyVHlwZSBpcyBNSUwgYW5kICBiYXNlcGVyaW9kRW1wbG95ZXIuIElmIHVzZXIgY2hhbmdlIHRoZSAgcGVuc2lvbkZsYWcgJ1lFUycgdG8gJ05PJyB0aGVuIG1pbFBlbnNpb25SZWN2RGF0ZSB2YWxpZGF0aW9uIHdhcyByZXNldFxyXG4gICAgICB0aGlzLm1pbFBlbnNpb25GbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgICAgdGhpcy5taWxQZW5zaW9uUmVjdkRhdGUucmVzZXQoKTtcclxuICAgICAgfVxyXG4gICAgICApXHJcblxyXG5cclxuXHJcbiAgICBcclxuICAgIGlmKCF0aGlzLnBheVJhdGVGcmVxdWVuY3kudmFsdWUpe1xyXG4gICAgICB0aGlzLnBheVJhdGVGcmVxdWVuY3kucGF0Y2hWYWx1ZSh7IHZhbHVlOiAnSE9VUicsIHRleHQ6ICdIb3VyJyB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZSkge1xyXG4gICAgICBpZiAodGhpcy5xdHJXYWdlTGlzdCkge1xyXG4gICAgICAgIGZvciAodmFyIHF0cldhZ2Ugb2YgdGhpcy5xdHJXYWdlTGlzdCkge1xyXG4gICAgICAgICAgdGhpcy53YWdlQW1vdW50QXJyYXkucHVzaCh0aGlzLndhZ2VBcnJheShxdHJXYWdlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgfHwgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09ICdGRUQnICYmIHRoaXMuaXNOZXdDbGFpbSkpIHtcclxuICAgICAgICB0aGlzLnNldFdhZ2VWYWxpZGF0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG4gIHNldFdvcmtTdGFydERhdGUoKSB7XHJcbiAgICBsZXQgZGF0YSA9IHRoaXMuYXIuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2RhdGEnKTtcclxuICAgIGlmKGRhdGEpe1xyXG4gICAgICBsZXQgcGFyc2VkRGF0YSA6IEtleVZhbHVlTW9kZWxbXSA9IEpTT04ucGFyc2UoYXRvYihkYXRhKSk7XHJcbiAgICAgIGlmKEFycmF5LmlzQXJyYXkocGFyc2VkRGF0YSkpe1xyXG4gICAgICAgIGxldCBsYXN0Q3dlID0gcGFyc2VkRGF0YS5maWx0ZXIoayA9PiBrLmtleSA9PSAnbGFzdEN3ZURhdGUnKTtcclxuICAgICAgICBpZihsYXN0Q3dlLmxlbmd0aCA+IDAgJiYgbGFzdEN3ZVswXS5rZXkgPT0gJ2xhc3RDd2VEYXRlJyAmJiAhdGhpcy5pc05ld0NsYWltKXtcclxuICAgICAgICAgIHRoaXMubWluV29ya1N0YXJ0RGF0ZSA9IG5ldyBEYXRlKGxhc3RDd2VbMF0udmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZE1hc3RlckRhdGEoKXtcclxuXHJcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UuZ2V0UmVhc29uU2VwYXJhdGlvbigpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldERpc2NoYXJnZVJlYXNvbnMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFF1aXRSZWFzb25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIFxyXG4gIGlmKHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnMhPSBudWxsKVxyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gIH1cclxuXHJcbiAgZ2V0IHdhZ2VBbW91bnRBcnJheSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1tcIndhZ2VBbW91bnRBcnJheVwiXSBhcyBVbnR5cGVkRm9ybUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRlc3RFbXAoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1tcInRlc3RFbXBcIl0gO1xyXG4gIH1cclxuICBnZXQgc2V2ZXJhbmNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZlcmFuY2UnXTtcclxuICB9XHJcbiAgZ2V0IGVtcGxveWVyVHlwZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybT8uY29udHJvbHNbJ2VtcGxveWVyVHlwZSddO1xyXG4gIH1cclxuICBnZXQgZW1wbG95ZXJOYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbXBsb3llck5hbWUnXTtcclxuICB9XHJcbiAgZ2V0IG90aFN0YXRlRW1wTmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snb3RoU3RhdGVFbXBOYW1lJ107XHJcbiAgfVxyXG4gIGdldCBlbXBsb3llclRlbGVwaG9uZU51bWJlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXInXTtcclxuICB9XHJcblxyXG4gIGdldCBzdGFydERhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVuZERhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBqb2JUaWxlT3JQb3NpdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snam9iVGlsZU9yUG9zaXRpb24nXTtcclxuICB9XHJcblxyXG4gIGdldCByZWFzb25TZXBhcmF0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtPy5jb250cm9sc1sncmVhc29uU2VwYXJhdGlvbiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRpc2NoYXJnZURldGFpbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZGlzY2hhcmdlRGV0YWlsJ107XHJcbiAgfVxyXG5cclxuICBnZXQgdm9sUXVpdERldGFpbHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3ZvbFF1aXREZXRhaWxzJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcGF5UmF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGF5UmF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdyb3NzV2FnZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2dyb3NzV2FnZXMnXTtcclxuICB9XHJcblxyXG4gIGdldCBwYXlSYXRlRnJlcXVlbmN5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwYXlSYXRlRnJlcXVlbmN5J107XHJcbiAgfVxyXG5cclxuICBnZXQgcGVuc2lvbkZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BlbnNpb25GbGFnJ107XHJcbiAgfVxyXG4gIFxyXG4gIGdldCBwZW5zaW9uUmVjdkRhdGUoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGVuc2lvblJlY3ZEYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcmVnUGVuc2lvbkZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlZ1BlbnNpb25GbGFnJ107XHJcbiAgfVxyXG4gIFxyXG4gIGdldCByZWdQZW5zaW9uUmVjdkRhdGUoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVnUGVuc2lvblJlY3ZEYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzU2hvcnRUZXJtRGlzYWJpbGl0eSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydoYXNTaG9ydFRlcm1EaXNhYmlsaXR5J107XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzUmVjdlJlbXVuZXJhdGlvbigpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydoYXNSZWN2UmVtdW5lcmF0aW9uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcmVtdW5lcmF0aW9uVHlwZXMoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVtdW5lcmF0aW9uVHlwZXMnXTtcclxuICB9XHJcblxyXG4gIGdldCB2YWNhdGlvbigpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd2YWNhdGlvbiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBheW1lbnRUeXBlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwYXltZW50VHlwZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRvY3NSZWNlaXZlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZG9jc1JlY2VpdmVkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgb3RoZXJTU05GbGFnKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ290aGVyU1NORmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90aGVyU1NOKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvdGhlclNTTiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90aGVyTmFtZUZsYWcoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snb3RoZXJOYW1lRmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90aGVyTmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snb3RoZXJOYW1lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZG9pbmdCdXNpbmVzc0FzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkb2luZ0J1c2luZXNzQXMnXTtcclxuICB9XHJcblxyXG4gIGdldCB3b3JrRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd29ya0ZsYWcnXTtcclxuICB9XHJcblxyXG4gIC8vIGdldCBxdWl0cmVhc29uKCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydxdWl0cmVhc29uJ107XHJcbiAgLy8gfVxyXG5cclxuICBnZXQgd29ya0NpdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dvcmtDaXR5J107XHJcbiAgfVxyXG5cclxuICBnZXQgd29ya1N0YXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3b3JrU3RhdGUnXTtcclxuICB9XHJcbiAgZ2V0IG1pbFN0YXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydtaWxTdGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgLypnZXQgaGlyZWRCeSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snaGlyZWRCeSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlaW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlaW4nXTtcclxuICB9Ki9cclxuXHJcbiAgZ2V0IHdvcmtUeXBlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3b3JrVHlwZSddO1xyXG4gIH1cclxuXHJcbiAgLypnZXQgbnVtYmVyRW1wbG95ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ251bWJlckVtcGxveWVkJ107XHJcbiAgfSovXHJcblxyXG4gIGdldCBidXNpbmVzc05hdHVyZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYnVzaW5lc3NOYXR1cmUnXTtcclxuICB9XHJcblxyXG4gIGdldCBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMnXTtcclxuICB9XHJcblxyXG4gIC8vIGdldCB3YWdlUXVhcnRlcjEoKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dhZ2VRdWFydGVyMSddO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gZ2V0IHdhZ2VRdWFydGVyMigpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2FnZVF1YXJ0ZXIyJ107XHJcbiAgLy8gfVxyXG5cclxuXHJcbiAgLy8gZ2V0IHdhZ2VRdWFydGVyMygpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2FnZVF1YXJ0ZXIzJ107XHJcbiAgLy8gfVxyXG5cclxuXHJcblxyXG4gIC8vIGdldCB3YWdlUXVhcnRlcjQoKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dhZ2VRdWFydGVyNCddO1xyXG4gIC8vIH1cclxuXHJcbiAgZ2V0IGZpY0NvZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZpY0NvZGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBmaWNEZXN0aW5hdGlvbkNvZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZpY0Rlc3RpbmF0aW9uQ29kZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpY0Rlc3RpbmF0aW9uSWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZpY0Rlc3RpbmF0aW9uSWQnXTtcclxuICB9XHJcbiAgICAgIFxyXG4gIFxyXG4gIC8vIGdldCBmb3JtZXJseUtub3duQXMoKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2Zvcm1lcmx5S25vd25BcyddO1xyXG4gIC8vIH1cclxuXHJcbiAgZ2V0IHNmRWlnaHRmbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZkVpZ2h0ZmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZFdvcmtDaXR5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRXb3JrQ2l0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZFdvcmtTdGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkV29ya1N0YXRlJ107XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IGZlZFdvcmtDb3VudHJ5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRXb3JrQ291bnRyeSddO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldCBzdGFydERhdGVGZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZUZlZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVuZERhdGVGZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGVGZWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBmZWRKb2JUaWxlT3JQb3NpdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkSm9iVGlsZU9yUG9zaXRpb24nXTtcclxuICB9XHJcblxyXG4gIC8qIGdldCBjbGFpbWFudEVtcGxveWVkV2l0aEVtcHIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2NsYWltYW50RW1wbG95ZWRXaXRoRW1wciddO1xyXG4gIH0gKi9cclxuXHJcbiAgZ2V0IHBlcmZvcm1lZFNlcnZpY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BlcmZvcm1lZFNlcnZpY2UnXTtcclxuICB9XHJcblxyXG4gIGdldCBmZWRQZW5zaW9uRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkUGVuc2lvbkZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBmZWRQZW5zaW9uUmVjdkRhdGUoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkUGVuc2lvblJlY3ZEYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc2V2UGF5RmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2UGF5RmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdlZWtseUFtb3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2Vla2x5QW1vdW50J107XHJcbiAgfVxyXG5cclxuICBnZXQgbnVtYmVyT2ZXZWVrcygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbnVtYmVyT2ZXZWVrcyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNldlBheUFtb3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2UGF5QW1vdW50J107XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IHNldlBheVN0YXJ0RGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2UGF5U3RhcnREYXRlJ107XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IHNldlBheUVuZERhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldlBheUVuZERhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBzZXZQYXlQYXltZW50U3RhcnREYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlQYXltZW50U3RhcnREYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcmVnRW1wbG95ZXJGb3VuZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVnRW1wbG95ZXJGb3VuZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVySWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VtcGxveWVySWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBmZWRFbXBsb3llck5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZEVtcGxveWVyTmFtZSddO1xyXG4gIH1cclxuICBnZXQgc2VydmljZUJyYW5jaCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2VydmljZUJyYW5jaCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXJ0RGF0ZU1pbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlTWlsJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW5kRGF0ZU1pbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZU1pbCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRkMjE0RmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZGQyMTRGbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdFBheUdyYWRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydsYXN0UGF5R3JhZGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0ZHV0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbGFzdGR1dHknXTtcclxuICB9XHJcblxyXG4gIGdldCBwbGFjZVNlcGFyYXRlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGxhY2VTZXBhcmF0ZWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBub0xlYXZlRGF5cygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbm9MZWF2ZURheXMnXTtcclxuICB9XHJcblxyXG4gIGdldCBjb21wbGV0ZWRGdWxsVGVybUZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2NvbXBsZXRlZEZ1bGxUZXJtRmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlc2VydmVPckd1YXJkRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVzZXJ2ZU9yR3VhcmRGbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgbWlsUGVuc2lvbkZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ21pbFBlbnNpb25GbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgbWlsUGVuc2lvblJlY3ZEYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydtaWxQZW5zaW9uUmVjdkRhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBhZGRyZXNzTGluZTEoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzc0xpbmUxJ107XHJcbiAgfVxyXG5cclxuICBnZXQgYWRkcmVzc0xpbmUyKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3NMaW5lMiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFkZHJlc3NMaW5lMygpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzTGluZTMnXTtcclxuICB9XHJcblxyXG4gIGdldCBmaWNEZXN0aW5hdGlvbk5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljRGVzdGluYXRpb25OYW1lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcmVzZXJ2ZUJyYW5jaCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZXNlcnZlQnJhbmNoJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc3RhcnREYXRlUmVzZXJ2ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzdGFydERhdGVSZXNlcnZlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW5kRGF0ZVJlc2VydmUoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZVJlc2VydmUnXTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0IGRkMjE0RmlsZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkZDIxNEZpbGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBhZGRyZXNzKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3MnXTtcclxuICB9XHJcblxyXG4gIGdldCBvc2FCcEVtcGxveWVyRmxhZygpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvc2FCcEVtcGxveWVyRmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHByZXZXb3JrZWRTdGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybT8uY29udHJvbHNbJ3ByZXZXb3JrZWRTdGF0ZSddO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgb25Ub2dnbGVDaGFuZ2VQcmV2V29ya2VkU3RhdGUob2JqOiBhbnkpIHtcclxuICAgICAgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7XHJcbiAgICAgIHRoaXMuYWRkcmVzcy5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5maWNDb2RlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uQ29kZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRyZXNzTGluZTEuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0xpbmUyLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZHJlc3NMaW5lMy5zZXRWYWx1ZShudWxsKTsgIFxyXG4gICAgICB0aGlzLnBlbnNpb25SZWN2RGF0ZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy53b3JrVHlwZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5lbXBsb3llck5hbWUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMub3RoU3RhdGVFbXBOYW1lLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLndvcmtTdGF0ZS5zZXRWYWx1ZShudWxsKTsgXHJcbiAgICAgIHRoaXMud29ya0NpdHkuc2V0VmFsdWUobnVsbCk7IFxyXG4gICAgICB0aGlzLnN0YXJ0RGF0ZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5lbmREYXRlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLnBheVJhdGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMucGF5UmF0ZUZyZXF1ZW5jeS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5wZW5zaW9uRmxhZy5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5lbXBsb3llclRlbGVwaG9uZU51bWJlci5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5qb2JUaWxlT3JQb3NpdGlvbi5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5yZWdQZW5zaW9uRmxhZy5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5yZWdQZW5zaW9uUmVjdkRhdGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBvbk1vZGVsQ2FuY2VsKGNhbmNlbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5tb2RlbENhbmNlbC5lbWl0KGNhbmNlbCk7XHJcbiAgfVxyXG5cclxuICBzZXRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpIHtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzZXRFbXBsb3llciBjYWxsZWQnLCBlbXBsb3llciwgXCJ0eXBlXCIsIHRoaXMuZW1wbG95ZXJUeXBlLCAndGhpcy5hZGRFbXBsb3llckZvcm0nLHRoaXMuYWRkRW1wbG95ZXJGb3JtKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdlbXBsb3llci5zdGF0ZScsIGVtcGxveWVyLnN0YXRlKVxyXG4gICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKHtjb3VudHJ5OmVtcGxveWVyLmNvdW50cnksIGNpdHk6ZW1wbG95ZXIuY2l0eVxyXG4gICAgLCB6aXA6ZW1wbG95ZXIuemlwLHN0cmVldEFkZHJlc3M6ZW1wbG95ZXIuYWRkcmVzc0Rpc3BsYXlWYWwsc3RhdGU6ZW1wbG95ZXIuc3RhdGUsXHJcbiAgICBvcHRpb25hbEFkZHJlc3M6bnVsbCxjb3VudHk6bnVsbCx0b3duOm51bGxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5hZGRyZXNzLmRpc2FibGUoKTtcclxuICAgIHRoaXMuYWRkcmVzcy5zZXRFcnJvcnMoe30pO1xyXG4gICAgdGhpcy5lbXBsb3llck5hbWUuc2V0VmFsdWUoZW1wbG95ZXIuZW1wbG95ZXJOYW1lKTtcclxuICAgIHRoaXMuZW1wbG95ZXJJZC5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llcklkKTtcclxuICAgIHRoaXMuYWRkcmVzc0xpbmUxLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMSk7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMi5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTIpO1xyXG4gICAgdGhpcy5hZGRyZXNzTGluZTMuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUzKTtcclxuICAgIHRoaXMucmVnRW1wbG95ZXJGb3VuZC5zZXRWYWx1ZSh0cnVlKTtcclxuICAgIHRoaXMuaXNNYW51YWxFbnRlckVtcCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0RmVkRW1wbG95ZXIoZW1wbG95ZXI6IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0KXtcclxuICAgIHRoaXMuYWRkcmVzczIucmVhZG9ubHkgPSBmYWxzZVxyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3NldEZlZEVtcGxveWVyIGNhbGxlZCcsIGVtcGxveWVyLCBcInppcCBcIiwgZW1wbG95ZXIuemlwKTtcclxuICAgIHRoaXMuZmljQ29kZS5lbmFibGUoKTtcclxuICAgIHRoaXMuZmljQ29kZS5zZXRWYWx1ZShlbXBsb3llci5maWNDb2RlKTtcclxuICAgIHRoaXMuZmljQ29kZS5kaXNhYmxlKCk7XHJcbiAgICB0aGlzLmZlZEVtcGxveWVyTmFtZS5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llck5hbWUpO1xyXG4gICAgdGhpcy5maWNEZXN0aW5hdGlvbk5hbWUuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uTmFtZS5zZXRWYWx1ZShlbXBsb3llci5maWNEZXN0aW5hdGlvbk5hbWUpO1xyXG4gICAgdGhpcy5maWNEZXN0aW5hdGlvbklkLnNldFZhbHVlKGVtcGxveWVyLmZpY0Rlc3RpbmF0aW9uSWQpO1xyXG4gICAgdGhpcy5maWNEZXN0aW5hdGlvbk5hbWUuZGlzYWJsZSgpO1xyXG4gICAgdGhpcy5maWNEZXN0aW5hdGlvbkNvZGUuc2V0VmFsdWUoZW1wbG95ZXIuZmljRGVzdGluYXRpb25Db2RlKTtcclxuICAgIHRoaXMuYWRkcmVzcy5zZXRWYWx1ZSh7Y291bnRyeTplbXBsb3llci5jb3VudHJ5LCBjaXR5OmVtcGxveWVyLmNpdHlcclxuICAgICAgLCB6aXA6ZW1wbG95ZXIuemlwLHN0cmVldEFkZHJlc3M6ZW1wbG95ZXIuYWRkcmVzc0xpbmUxLHN0YXRlOmVtcGxveWVyLnN0YXRlLFxyXG4gICAgICBvcHRpb25hbEFkZHJlc3M6ZW1wbG95ZXIuYWRkcmVzc0xpbmUyLGNvdW50eTpudWxsLHRvd246bnVsbFxyXG4gICAgICB9KTtcclxuICAgIHRoaXMuYWRkcmVzcy5kaXNhYmxlKCk7XHJcbiAgICB0aGlzLmVtcGxveWVySWQuc2V0VmFsdWUoZW1wbG95ZXIuZW1wbG95ZXJJZCk7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMS5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTEpO1xyXG4gICAgdGhpcy5hZGRyZXNzTGluZTIuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUyKTtcclxuICAgIHRoaXMuYWRkcmVzc0xpbmUzLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMyk7XHJcbiAgICB0aGlzLnJlZ0VtcGxveWVyRm91bmQuc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgdGhpcy5hZGRyZXNzMi5yZWFkb25seSA9IHRydWU7XHJcbiAgICB0aGlzLmlzTWFudWFsRW50ZXJFbXAgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlc2V0RmVkRW1wbG95ZXIoZW1wbG95ZXI6IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0KXtcclxuICAgIHRoaXMuYWRkcmVzcy5lbmFibGUoKTtcclxuICAgIHRoaXMuYWRkcmVzcy5zZXRWYWx1ZSh7Y291bnRyeTpudWxsLCBjaXR5Om51bGxcclxuICAgICAgLCB6aXA6bnVsbCxzdHJlZXRBZGRyZXNzOm51bGwsc3RhdGU6bnVsbCxcclxuICAgICAgb3B0aW9uYWxBZGRyZXNzOm51bGwsY291bnR5Om51bGwsdG93bjpudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5yZWdFbXBsb3llckZvdW5kLnNldFZhbHVlKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHJlc2V0RW1wbG95ZXIoZW1wbG95ZXI6IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0KSB7XHJcbiAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3Jlc2V0RW1wbG95ZXIgY2FsbGVkJywgZW1wbG95ZXIpO1xyXG4gICAgIHRoaXMuYWRkcmVzcy5lbmFibGUoKTtcclxuICAgICB0aGlzLmFkZHJlc3Muc2V0VmFsdWUoe2NvdW50cnk6bnVsbCwgY2l0eTpudWxsXHJcbiAgICAgICwgemlwOm51bGwsc3RyZWV0QWRkcmVzczpudWxsLHN0YXRlOm51bGwsXHJcbiAgICAgIG9wdGlvbmFsQWRkcmVzczpudWxsLGNvdW50eTpudWxsLHRvd246bnVsbFxyXG4gICAgICB9KTtcclxuICAgIHRoaXMucmVnRW1wbG95ZXJGb3VuZC5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHV0TWlsUmVzQnJhbmNoVmFsaWRhdGlvbihldmVudCl7XHJcbiAgICBpZiAoZXZlbnQub3B0aW9uLnZhbHVlID09PSAnWScpIHtcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZXNlcnZlQnJhbmNoJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzdGFydERhdGVSZXNlcnZlJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlUmVzZXJ2ZSddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIG9uT3B0aW9uQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQub3B0aW9uLnZhbHVlICE9PSAnWScpIHtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VtcGxveWVyVGVsZXBob25lTnVtYmVyJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzdGFydERhdGUnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGUnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2pvYlRpbGVPclBvc2l0aW9uJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZWFzb25TZXBhcmF0aW9uJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwYXlSYXRlJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwYXlSYXRlRnJlcXVlbmN5J10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwZW5zaW9uRmxhZyddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICAvLyB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snaXNDbG10UGFpZFdoaWxlTG93J10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNhdmUoKSB7XHJcbiAgICBpZih0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSB7XHJcbiAgICAgIC8vcmVtb3ZlIHZhbGlkYXRvciBzaW5jZSBiYXNlUGVyaW9kIGVtcGxveWVyIGFscmVhZHkgaGFzIGVtcGxveWVyIGNvbWluZyBmcm9tIGJhY2tlbmRcclxuICAgICAgdGhpcy5hZGRyZXNzLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICB0aGlzLmFkZHJlc3MudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc0Zvcm1TdWJtaXR0ZWQuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLnNhdmUudmFsdWUnLCB0aGlzLmFkZEVtcGxveWVyRm9ybSk7XHJcbiAgICB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7XHJcbiAgICB0aGlzLnZhbGlkYXRlV2FnZUdyaWQoKVxyXG4gICAgaWYgKHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbGlkICYmIHRoaXMuYWRkcmVzcy5lcnJvcnMgPT09IG51bGwpICB7XHJcbiAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xyXG4gICAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTsgXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFkZHJlc3MuZGlzYWJsZSgpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmFkZEVtcGxveWVyRm9ybSk7XHJcbiAgICAgIGNvbnN0IGZpeEZpZWxkcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzKS5maWx0ZXIoeCA9PiAheFsxXS52YWxpZCkubWFwKHggPT4geFswXSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZml4IGZpZWxkczpcIiwgZml4RmllbGRzKTtcclxuICAgICAgXHJcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJhZGQgZW1wbG95ZXIgZmFpbHVyZSBpbmZvOlwiLCB0aGlzLmxzLmdldFVzZXIoKS5jbGFpbWFudElkLCBmaXhGaWVsZHMsIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcclxuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJhZGQgZW1wbG95ZXIgZmFpbHVyZSBlcnJvcjpcIiwgdGhpcy5scy5nZXRVc2VyKCkuY2xhaW1hbnRJZCwgZml4RmllbGRzLCB0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZSk7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmxvZyhcImFkZCBlbXBsb3llciBmYWlsdXJlIGxvZzpcIiwgdGhpcy5scy5nZXRVc2VyKCkuY2xhaW1hbnRJZCwgZml4RmllbGRzLCB0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZSk7IFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkKCkge1xyXG4gICAgdGhpcy5pc0Zvcm1TdWJtaXR0ZWQuc3VibWl0dGVkID0gdHJ1ZTtcclxuXHQgIGlmKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlICE9ICdNSUwnKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGVXYWdlR3JpZCgpO1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdGUgYWRkcmVzcyBjb21wb25lbnQnKTtcclxuICAgICAgaWYodGhpcy5pc01hbnVhbEVudGVyRW1wKSB7XHJcbiAgICAgICAgLy9WYWxpZGF0ZSBhZGRyZXNzIG9ubHkgd2hlbiBhZGRyZXNzIGlzIG1hbnVhbCBlbnRlcmVkXHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoKTtcclxuICAgICAgfSBlbHNle1xyXG4gICAgICAgIHRoaXMuYWRkcmVzcy5lbmFibGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZiAodGhpcy5hZGRFbXBsb3llckZvcm0uaW52YWxpZCB8fCAodGhpcy5hZGRyZXNzLmVycm9ycyAmJiBPYmplY3Qua2V5cyh0aGlzLmFkZHJlc3MuZXJyb3JzKS5sZW5ndGggPiAwKSkge1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmFkZEVtcGxveWVyRm9ybSk7XHJcbiAgICAgIGNvbnN0IGZpeEZpZWxkcyA9IE9iamVjdC5lbnRyaWVzKHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzKS5maWx0ZXIoeCA9PiAheFsxXS52YWxpZCkubWFwKHggPT4geFswXSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZml4IGZpZWxkczpcIiwgZml4RmllbGRzKTtcclxuXHJcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oXCJhZGQgZW1wbG95ZXIgZmFpbHVyZSBpbmZvOlwiLCB0aGlzLmxzLmdldFVzZXIoKS5jbGFpbWFudElkLCBmaXhGaWVsZHMsIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcclxuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJhZGQgZW1wbG95ZXIgZmFpbHVyZSBlcnJvcjpcIiwgdGhpcy5scy5nZXRVc2VyKCkuY2xhaW1hbnRJZCwgZml4RmllbGRzLCB0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZSk7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmxvZyhcImFkZCBlbXBsb3llciBmYWlsdXJlIGxvZzpcIiwgdGhpcy5scy5nZXRVc2VyKCkuY2xhaW1hbnRJZCwgZml4RmllbGRzLCB0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZSk7XHJcbiAgICAgIFxyXG4gICAgICAvL3RoaXMuYWRkcmVzcy5kaXNhYmxlKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gXHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5hZGQudmFsdWUnLCB0aGlzLmFkZEVtcGxveWVyRm9ybSk7IFxyXG4gICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZpY0NvZGUnXS5lbmFibGUoKTtcclxuICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNEZXN0aW5hdGlvbk5hbWUnXS5lbmFibGUoKTtcclxuICAgIHRoaXMuYWRkcmVzcy5lbmFibGUoKTtcclxuICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiYWRkIGZvcm0gZGV0YWlscyBhZGQoKS0gXCIsIHRoaXMuYWRkRW1wbG95ZXJGb3JtKTtcclxuICAgIHRoaXMuZGlzcGxheSA9IGZhbHNlO1xyXG5cclxuICB9XHJcbiAgdmFsaWRhdGVXYWdlR3JpZCgpIHtcclxuICAgIHRoaXMud2FnZUFtb3VudEFycmF5LnNldEVycm9ycyhudWxsKTtcclxuICAgIGlmICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSE9PSdGRUQnICYmICEodGhpcy5lbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKE9iamVjdC52YWx1ZXModGhpcy53YWdlQW1vdW50QXJyYXkuY29udHJvbHMpLmZpbHRlcih4ID0+IHgudmFsdWUud2FnZUFtb3VudCAhPT0gMCkubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMud2FnZUFtb3VudEFycmF5LnNldEVycm9ycyh7cmVxdWlyZUNoZWNrYm94VG9CZUNoZWNrZWQ6IHRydWV9KTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlQWRkcmVzcygpIHtcclxuICAgIC8vIENsZWFyIHByZXZpb3VzIGVycm9ycyBvbiB0aGUgYWRkcmVzcyBjb250cm9sXHJcbiAgICBjb25zdCBhZGRyZXNzQ29udHJvbCA9IHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ107XHJcbiAgXHJcbiAgICAvLyBHZXQgdGhlIGFkZHJlc3MgY29tcG9uZW50IHZhbHVlXHJcbiAgICBjb25zdCBhZGRyZXNzQ29tcFZhbHVlOiBBZGRyZXNzQ29tcG9uZW50TW9kZWwgPSBhZGRyZXNzQ29udHJvbC52YWx1ZTtcclxuICBcclxuICAgIC8vIExpc3Qgb2YgYWRkcmVzcyBmaWVsZHMgdG8gdmFsaWRhdGVcclxuICAgIGNvbnN0IGFkZHJlc3NGaWVsZHMgPSBbJ3N0cmVldEFkZHJlc3MnLCAnY2l0eScsICdzdGF0ZScsICd6aXAnLCAnY291bnRyeSddO1xyXG4gIFxyXG4gICAgbGV0IGhhc0Vycm9ycyA9IGZhbHNlO1xyXG4gIFxyXG4gICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZmllbGQgYW5kIHZhbGlkYXRlXHJcbiAgICBhZGRyZXNzRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBjb25zdCBmaWVsZFZhbHVlID0gYWRkcmVzc0NvbXBWYWx1ZT8uW2ZpZWxkXTtcclxuICBcclxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZpZWxkIGlzIG1pc3Npbmcgb3IgZW1wdHlcclxuICAgICAgaWYgKCFmaWVsZFZhbHVlKSB7XHJcbiAgICAgICAgLy8gU2V0IHJlcXVpcmVkIGVycm9yIGlmIGZpZWxkIGlzIG1pc3NpbmdcclxuICAgICAgICB0aGlzLnNldEZpZWxkRXJyb3IoZmllbGQsIHRydWUpO1xyXG4gICAgICAgIGhhc0Vycm9ycyA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gQ2xlYXIgZXJyb3IgaWYgZmllbGQgaGFzIHZhbHVlXHJcbiAgICAgICAgdGhpcy5zZXRGaWVsZEVycm9yKGZpZWxkLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIFxyXG4gICAgLy8gSWYgdGhlcmUgYXJlIGVycm9ycyBpbiBhbnkgZmllbGQsIG1hcmsgdGhlIGFkZHJlc3MgY29udHJvbCBhcyBpbnZhbGlkXHJcbiAgICBpZiAoaGFzRXJyb3JzKSB7XHJcbiAgICAgIGFkZHJlc3NDb250cm9sLnNldEVycm9ycyh7IGFkZHJlc3NWYWxpZGF0aW9uRmxhZzogdHJ1ZSB9KTtcclxuICAgICAgaWYgKHRoaXMuZW1wbG95ZXJGb3JtRWxlbWVudCkge1xyXG4gICAgICAgIHRoaXMuZW1wbG95ZXJGb3JtRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ3N0YXJ0JyB9KTsgIC8vIEZvY3VzIHRoZSBlcnJvciBlbGVtZW50XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFkZHJlc3NDb250cm9sLnNldEVycm9ycyhudWxsKTsgIC8vIENsZWFyIGVycm9yIGlmIGV2ZXJ5dGhpbmcgaXMgdmFsaWRcclxuICAgIH1cclxuICBcclxuICAgIC8vIFVwZGF0ZSB2YWxpZGl0eSBvZiB0aGUgZm9ybVxyXG4gICAgdGhpcy5hZGRFbXBsb3llckZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIFxyXG4gICAgLy8gU3VibWl0IGFkZHJlc3MxIGFuZCBhZGRyZXNzMiBpZiB0aGV5IGV4aXN0XHJcbiAgICBpZiAodGhpcy5hZGRyZXNzMSkge1xyXG4gICAgICB0aGlzLmFkZHJlc3MxLnN1Ym1pdCgpO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5hZGRyZXNzMil7XHJcbiAgICAgIHRoaXMuYWRkcmVzczIuc3VibWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBzZXQgb3IgY2xlYXIgZXJyb3JzIGZvciBlYWNoIGFkZHJlc3MgZmllbGRcclxuICBzZXRGaWVsZEVycm9yKGZpZWxkOiBzdHJpbmcsIGlzRXJyb3I6IGJvb2xlYW4pIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzcyddLmdldChmaWVsZCk7XHJcbiAgICBpZiAoaXNFcnJvcikge1xyXG4gICAgICBjb250cm9sPy5zZXRFcnJvcnMoeyByZXF1aXJlZDogdHJ1ZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnRyb2w/LnNldEVycm9ycyhudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEZlZFdvcmtTdGF0ZVZhbHVlcyhldmVudCl7XHJcbiAgICBpZihldmVudC52YWx1ZSAhPT0gJ1VTJyl7XHJcbiAgICAgIHRoaXMuZmVkV29ya1N0YXRlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlsdGVySm9iVGlsZU9yUG9zaXRpb24oZXZlbnQpIHtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0KGAvY2xhaW1zLXNlcnZpY2UvY2xhaW0vam9idGl0bGUvYCArIGAke2V2ZW50LnF1ZXJ5fWApLnN1YnNjcmliZShcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVzJywgcmVzKTtcclxuICAgICAgICB0aGlzLmpvYlRpbGVPclBvc2l0aW9uT3B0aW9ucyA9IHJlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJGZWRKb2JUaWxlT3JQb3NpdGlvbihldmVudCkge1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXQoYC9jbGFpbXMtc2VydmljZS9jbGFpbS9qb2J0aXRsZS9gICsgYCR7ZXZlbnQucXVlcnl9YCkuc3Vic2NyaWJlKFxyXG4gICAgICByZXMgPT4ge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXMnLCByZXMpO1xyXG4gICAgICAgIHRoaXMuZmVkSm9iVGlsZU9wdGlvbnMgPSByZXM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyRGlzY2hhcmdlUmVhc29ucyhldmVudCkge1xyXG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgc2VwUmVhc29uID0gdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsW2ldO1xyXG4gICAgICBpZiAoc2VwUmVhc29uLnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcclxuICAgICAgICBmaWx0ZXJlZC5wdXNoKHNlcFJlYXNvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9ucyA9IGZpbHRlcmVkO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyVm9sdW50YXJ5UmVhc29uKGV2ZW50KSB7XHJcbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XHJcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgc2VwUmVhc29uID0gdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbFtpXTtcclxuICAgICAgaWYgKHNlcFJlYXNvbi50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XHJcbiAgICAgICAgZmlsdGVyZWQucHVzaChzZXBSZWFzb24pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zID0gZmlsdGVyZWQ7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZShldmVudCkge1xyXG4gICAgaWYoZXZlbnQudGFyZ2V0Py52YWx1ZSl7XHJcbiAgICAgIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICB9IGVsc2UgaWYoIGV2ZW50IGluc3RhbmNlb2YgRGF0ZSl7XHJcbiAgICAgIHRoaXMubWluRGF0ZSA9IGV2ZW50O1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbmREYXRlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMuYmFzZVBlcmlvZFN0YXJ0RGF0ZScsIHRoaXMuYmFzZVBlcmlvZFN0YXJ0RGF0ZSkgIFxyXG4gIH1cclxuXHJcbndhZ2VBcnJheShxdHJXYWdlOlF0clllYXJFbXBsb3llcldhZ2VNb2RlbCk6IFVudHlwZWRGb3JtR3JvdXAge1xyXG4gIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgIHdhZ2VBbW91bnQ6IFtxdHJXYWdlLndhZ2VBbW91bnQhPW51bGw/cXRyV2FnZS53YWdlQW1vdW50Om51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKCh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSB8fCAodGhpcy5lbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBxdHJXYWdlLmRpc3BsYXlGb3JBbGwgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWU9PT10aGlzLmN1cnJlbnRTdGF0ZSkgKSkpXSxcclxuICAgIHF1YXJ0ZXI6IFtxdHJXYWdlLnF1YXJ0ZXIhPW51bGw/cXRyV2FnZS5xdWFydGVyOm51bGxdLFxyXG4gICAgeWVhcjogW3F0cldhZ2UueWVhciE9bnVsbD9xdHJXYWdlLnllYXI6bnVsbF0sXHJcbiAgICBxdHJZZWFyRGlzcGxheVN0cmluZzogW3F0cldhZ2UucXRyWWVhckRpc3BsYXlTdHJpbmchPW51bGw/cXRyV2FnZS5xdHJZZWFyRGlzcGxheVN0cmluZzpudWxsXSxcclxuICAgIGRpc3BsYXlPcmRlcjogW3F0cldhZ2UuZGlzcGxheU9yZGVyIT1udWxsP3F0cldhZ2UuZGlzcGxheU9yZGVyOm51bGxdLFxyXG4gICAgZGlzcGxheUZvckFsbDogW3F0cldhZ2UuZGlzcGxheUZvckFsbCE9bnVsbD9xdHJXYWdlLmRpc3BsYXlGb3JBbGw6bnVsbF0sXHJcbiAgfSlcclxufVxyXG5cclxuc2V0V2FnZVZhbGlkYXRpb24oKSB7XHJcbiAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy53YWdlQW1vdW50QXJyYXksIEFwcFZhbGlkYXRvcnMuYXRMZWFzdE9uZU5vblplcm9WYWx1ZVZhbGlkYXRvcigxLCAnd2FnZUFtb3VudCcpKTtcclxuICB0aGlzLmxvZ2dlci5kZWJ1Zygnc2V0dGluZyB2YWxpZGF0aW9uIGZvciBmZWQgZW1wbG95ZXInKTtcclxufVxyXG5cclxucmVtb3ZlV2FnZVZhbGlkYXRpb24oKSB7XHJcbiAgaWYodGhpcy5lbXBsb3llclR5cGUudmFsdWUgIT0gJ0ZFRCcpe1xyXG4gICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLndhZ2VBbW91bnRBcnJheSk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVtb3ZpbmcgdmFsaWRhdGlvbiBmb3IgZmVkIGVtcGxveWVyJyk7XHJcbiAgfVxyXG59XHJcblxyXG4gIHZhbGlkYXRlV2FnZXNEaXNwbGF5KGV2ZW50KXtcclxuICAgIGxldCBicFN0YXJ0RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKHRoaXMuYmFzZVBlcmlvZFN0YXJ0RGF0ZSk7XHJcbiAgICBsZXQgYnBFbmREYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5iYXNlUGVyaW9kRW5kRGF0ZSk7XHJcbiAgICBsZXQgc3RhcnRlRGF0ZVZhbDogRGF0ZSA9IG5ldyBEYXRlKHRoaXMuc3RhcnREYXRlLnZhbHVlKTtcclxuICAgIGxldCBlbmREYXRlVmFsOiBEYXRlID0gbmV3IERhdGUodGhpcy5lbmREYXRlLnZhbHVlKTtcclxuICAgIC8vIGxldCBlbmREYXRlVmFsOiBEYXRlID0gZXZlbnQudGFyZ2V0Py52YWx1ZSA/IG5ldyBEYXRlKGV2ZW50LnRhcmdldC52YWx1ZSkgOiBldmVudDtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdicFN0YXJ0RGF0ZSAnLCBicFN0YXJ0RGF0ZSwgJ3N0YXJ0ZURhdGVWYWwgJywgc3RhcnRlRGF0ZVZhbCk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW5kRGF0ZVZhbCAnLCBlbmREYXRlVmFsLCAnYnBFbmREYXRlICcsIGJwRW5kRGF0ZSk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnc3RhcnRlRGF0ZVZhbCBiZWZvcmUgYnBFbmREYXRlICcsIHN0YXJ0ZURhdGVWYWwgPCBicEVuZERhdGUpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2VuZERhdGVWYWwgYWZ0ZXIgYnBTdGFydERhdGUgJywgZW5kRGF0ZVZhbCA+IGJwU3RhcnREYXRlKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLndvcmtTdGF0ZSAnLCB0aGlzLndvcmtTdGF0ZSk7XHJcbiAgICBpZiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZSA9PSB0aGlzLmN1cnJlbnRTdGF0ZSAmJiB0aGlzLmlzTmV3Q2xhaW0pIHtcclxuICAgICAgICBpZiAoc3RhcnRlRGF0ZVZhbC5nZXRUaW1lKCkgPCBicEVuZERhdGUuZ2V0VGltZSgpICYmIGVuZERhdGVWYWwuZ2V0VGltZSgpPiBicFN0YXJ0RGF0ZS5nZXRUaW1lKCkpIHtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMuc2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMuc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMuc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlsdGVyR3JvdXBlZFJlYXNvbihldmVudCkge1xyXG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncXVlcnknLHF1ZXJ5KTtcclxuICAgIGxldCBmaWx0ZXJlZEdyb3VwcyA9IFtdO1xyXG4gICAgdGhpcy5ncm91cGVkUmVhc29ucz0gQ29tYm9PcHRpb24uR1JPVVBfUkVBU09OUztcclxuXHJcbiAgICBmb3IgKGxldCBvcHRncm91cCBvZiB0aGlzLmdyb3VwZWRSZWFzb25zKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdvcHRncm91cC5pdGVtcycsb3B0Z3JvdXAuaXRlbXMpO1xyXG4gICAgICBsZXQgZmlsdGVyZWRTdWJPcHRpb25zID0gdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcihcclxuICAgICAgICBvcHRncm91cC5pdGVtcyxcclxuICAgICAgICBbXCJsYWJlbFwiXSxcclxuICAgICAgICBxdWVyeSxcclxuICAgICAgICBcImNvbnRhaW5zXCJcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2ZpbHRlcmVkU3ViT3B0aW9ucycsZmlsdGVyZWRTdWJPcHRpb25zKTtcclxuICAgICAgaWYgKGZpbHRlcmVkU3ViT3B0aW9ucyAmJiBmaWx0ZXJlZFN1Yk9wdGlvbnMubGVuZ3RoKSB7XHJcbiAgICAgICAgZmlsdGVyZWRHcm91cHMucHVzaCh7XHJcbiAgICAgICAgICBsYWJlbDogb3B0Z3JvdXAubGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3B0Z3JvdXAudmFsdWUsXHJcbiAgICAgICAgICBpdGVtczogZmlsdGVyZWRTdWJPcHRpb25zXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdyb3VwZWRSZWFzb25zID0gZmlsdGVyZWRHcm91cHM7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyQWN0aW9uKGV2ZW50KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKG51bGwpO1xyXG4gIH0gIFxyXG4gIFxyXG5cclxuICBkYXRlSW5wdXQoZXZlbnQpe1xyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA6IHN0cmluZyA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWU7XHJcbiAgICBpZihjdXJyZW50VmFsdWUpe1xyXG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gMiAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDIpICE9ICcvJyl7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDUgJiYgY3VycmVudFZhbHVlLmNoYXJBdCg1KSAhPSAnLycpe1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gXHJcbn1cclxuXHJcbiIsIjxwLWRpYWxvZyB2aXNpYmxlPVwidHJ1ZVwiIHBvc2l0aW9uPVwidG9wXCIgYXBwZW5kVG89XCJib2R5XCIgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuICBbcmVzaXphYmxlXT1cImZhbHNlXCIgW3N0eWxlXT1cInt3aWR0aDogJzYwdncnfVwiXHJcbiAgW2JyZWFrcG9pbnRzXT1cInsnMTIwMHB4JzogJzY2MHB4JywgJzk5MnB4JzogJzY2MHB4JywgJzc2OHB4JzogJzY2MHB4JywgJzU3NnB4JzogJzEwMHZ3J31cIj5cclxuICA8aDQgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZXkpOyBwYWRkaW5nLWxlZnQ6IDIwcHg7XCI+IHt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmhlYWRpbmdcInx0cmFuc2xhdGV9fVxyXG4gIDwvaDQ+XHJcbiAgPGZvcm0gI2VtcGxveWVyRm9ybSBbZm9ybUdyb3VwXT1cImFkZEVtcGxveWVyRm9ybVwiPlxyXG4gICAgPGlvbi1ncmlkICpuZ0lmPVwiYWRkRW1wbG95ZXJGb3JtPy5jb250cm9sc1wiPiA8IS0tVG8gUmV2aWV3LS0+XHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXBhZGRpbmdcIiBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiNlwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI2XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICB7e2N1c3RvbWVyTmFtZX19XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFsaWFzTmFtZSAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5kYmFcInx0cmFuc2xhdGV9fSB7e2FsaWFzTmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiPiB7e21haWxpbmdBZGRyZXNzRGlzcGxheX19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0NTUlwiPlxyXG4gICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZW1wbG95ZXIud2FnZXNcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiaXNDU1JcIj5cclxuICAgICAgICAgICAgICAgIDxwLXRhYmxlIFt2YWx1ZV09XCJlbXBsb3llclByb3ZpZGVkV2FnZXNcIiBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZCBhcHAtZGF0YXRhYmxlIGlvbi1wYWRkaW5nLXRvcFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImVtcGxveWVyUHJvdmlkZWRXYWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Yj57eyBjb2wucXRyWWVhckRpc3BsYXlTdHJpbmcgfX08L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2NvbC53YWdlQW1vdW50IHwgY3VycmVuY3l9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9wLXRhYmxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid29ya0ZsYWc/LnZhbHVlID09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbD57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC53b3JrZmxhZy5ub1wifHRyYW5zbGF0ZX19PGJyIC8+IDxiciAvPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQud29ya2ZsYWcubm8ubGluZTJcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJUeXBlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5lbXBsb3llci50eXBlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogaW5oZXJpdDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwiZW1wbG95ZXJUeXBlXCIgW29wdGlvbnNdPVwiZW1wbG95ZXJUeXBlT3B0aW9uc1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJUeXBlXCIgW2NsYXNzLmRpc2FibGVkXT1cIm5vRWRpdE1vZGVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyVHlwZScgW2VyckRlZl09XCJ7ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICBcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicHJldldvcmtlZFN0YXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC53b3JrLnN0YXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cInByZXZXb3JrZWRTdGF0ZVwiIFtvcHRpb25zXT1cInByZXZXb3JrZWRTdGF0ZU9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwicHJldldvcmtlZFN0YXRlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJub0VkaXRNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgKG9uT3B0aW9uQ2xpY2spPVwib25Ub2dnbGVDaGFuZ2VQcmV2V29ya2VkU3RhdGUoJGV2ZW50KVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncHJldldvcmtlZFN0YXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICBcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJOYW1lXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5lbXBsb3llci5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcmV2V29ya2VkU3RhdGUudmFsdWU9PT0nS1MnOyBlbHNlIGVsc2VCbG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgaW5wdXRJZD1cImVtcGxveWVyTmFtZVwiIFtmb3JtQ29udHJvbF09XCJlbXBsb3llck5hbWVcIiBlbXBUeXBlPVwiUkVHXCIgKG9uRm91bmQpPVwic2V0RW1wbG95ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChvbkVtcHR5KT1cInJlc2V0RW1wbG95ZXIoJGV2ZW50KVwiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llck5hbWUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VCbG9jaz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbXBsb3llck5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJvdGhTdGF0ZUVtcE5hbWVcIiBtYXhsZW5ndGg9XCI1MFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nb3RoU3RhdGVFbXBOYW1lJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiBzdHlsZT1cIndpZHRoOiBpbmhlcml0ICFpbXBvcnRhbnQ7XCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRFbXBsb3llck5hbWVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmVtcGxveWVyLmZlZC5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtc2VhcmNoLWVtcGxveWVyIFtmb3JtQ29udHJvbF09XCJmZWRFbXBsb3llck5hbWVcIiBlbXBUeXBlPVwiRkVEXCIgKG9uRm91bmQpPVwic2V0RmVkRW1wbG95ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAob25FbXB0eSk9XCJyZXNldEZlZEVtcGxveWVyKCRldmVudClcIj48L2FwcC1zZWFyY2gtZW1wbG95ZXI+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZEVtcGxveWVyTmFtZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwic2VydmljZUJyYW5jaC1sYWJlbFwiIGZvcj1cInNlcnZpY2VCcmFuY2hcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5zZXJ2aWNlLmJyYW5jaFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJtaWxpdGFyeVNlcnZpY2VPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInNlcnZpY2VCcmFuY2hcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwic2VydmljZUJyYW5jaFwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VydmljZUJyYW5jaCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwibWlsLXN0YXRlLWxhYmVsXCIgZm9yPVwibWlsLXN0YXRlXCI+XHJcbiAgICAgICAgICAgICAgICBXaGVyZSBhcmUgeW91IHBoeXNpY2FsbHkgbG9jYXRlZCBhdCB0aGlzIHRpbWU/XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBbZm9ybUNvbnRyb2xdPVwibWlsU3RhdGVcIiBbb3B0aW9uc109XCJzdGF0ZXNPcHRpb25zXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgaW5wdXRJZD1cIm1pbC1zdGF0ZVwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG5cclxuICAgICAgICAgICAgICA8L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBjbGFzcz1cImFwcC1ncmlkXCIgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2ZpZWxkXT1cIm1pbFN0YXRlXCIgW2VyckRlZl09XCJ7XHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJyxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkS2Fuc2FzOiAnQmFzZWQgb24gc29tZSBvZiB5b3VyIHJlc3BvbnNlcyB5b3UgbmVlZCB0byBjYWxsIHRoZSBLRE9MIENhbGwgQ2VudGVyIHRvIGZpbGUgeW91ciBjbGFpbS4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdGFydERhdGVNaWxcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5zdGFydGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJzdGFydERhdGVNaWxcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzdGFydERhdGVNaWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVNaWxcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIChvbkJsdXIpPVwidmFsaWRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlKCRldmVudClcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5Xb3JrU3RhcnREYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3N0YXJ0RGF0ZU1pbCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW5kRGF0ZU1pbFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmVuZGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJlbmREYXRlTWlsXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwiZW5kRGF0ZU1pbFwiIFttYXhEYXRlXT1cImRhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbZm9ybUNvbnRyb2xdPVwiZW5kRGF0ZU1pbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbmREYXRlTWlsJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgaGlkZUZpY0NvZGVcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmljQ29kZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLmZpYy5jb2RlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJmaWNDb2RlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZmljQ29kZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmaWNDb2RlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWNEZXN0aW5hdGlvbk5hbWVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5maWMuZGVzdGluYXRpb25cInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZpY0Rlc3RpbmF0aW9uTmFtZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImZpY0Rlc3RpbmF0aW9uTmFtZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmaWNEZXN0aW5hdGlvbk5hbWUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWFkZHJlc3MgI2FkZHJlc3MxIFtmb3JtQ29udHJvbF09XCJhZGRyZXNzXCIgW2NvdW50eVJlcXVpcmVkXT1cImZhbHNlXCIgW2Zyb21Qb3B1cF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1hZGRyZXNzPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGFwcC1hZGRyZXNzIHJlYWRvbmx5PVwidHJ1ZVwiICNhZGRyZXNzMiBbZm9ybUNvbnRyb2xdPVwiYWRkcmVzc1wiIFtjb3VudHlSZXF1aXJlZF09XCJmYWxzZVwiIFtmcm9tUG9wdXBdPVwidHJ1ZVwiPiA8L2FwcC1hZGRyZXNzPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPVwiYWRkcmVzc1wiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDxtYXQtZXJyb3IgY2xhc3M9XCJhcHAtZ3JpZFwiICpuZ0lmPVwiYWRkcmVzcz8uZXJyb3JzPy5hZGRyZXNzVmFsaWRhdGlvbkZsYWcgJiYgaXNGb3JtU3VibWl0dGVkLnN1Ym1pdHRlZFwiPlxyXG4gICAgICAgICAgICAgICAgUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCBhZGRyZXNzLlxyXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid29ya0NpdHlcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LndvcmsubG9jYXRpb24uY2l0eVwifHRyYW5zbGF0ZX19IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIndvcmtDaXR5XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwid29ya0NpdHlcIiBtYXhsZW5ndGg9XCIzMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3b3JrQ2l0eScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJ3b3JrU3RhdGUtbGFiZWxcIiBmb3I9XCJ3b3JrU3RhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LndvcmsubG9jYXRpb24uc3RhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInByZXZXb3JrZWRTdGF0ZS52YWx1ZT09PSdLUyc/c3RhdGVzT3B0aW9uczpub25LU1N0YXRlc09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ3b3JrU3RhdGVcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaW5wdXRJZD1cIndvcmtTdGF0ZVwiIChvbkNoYW5nZSk9XCJ2YWxpZGF0ZVdhZ2VzRGlzcGxheSgkZXZlbnQpXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd29ya1N0YXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJmZWRXb3JrQ291bnRyeS1sYWJlbFwiIGZvcj1cImZlZFdvcmtDb3VudHJ5XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQud29yay5sb2NhdGlvbi5jb3VudHJ5XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cIndvcmtDb3VudHJ5T3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJmZWRXb3JrQ291bnRyeVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJmZWRXb3JrQ291bnRyeVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkV29ya0NvdW50cnknIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRXb3JrQ2l0eVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5sb2NhdGlvbi5jaXR5XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJmZWRXb3JrQ2l0eVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImZlZFdvcmtDaXR5XCIgbWF4bGVuZ3RoPVwiMzBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkV29ya0NpdHknIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCIgKm5nSWY9XCJzaG93V29ya1N0YXRlID09PSB0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwiZmVkV29ya1N0YXRlLWxhYmVsXCIgZm9yPVwiZmVkV29ya1N0YXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC53b3JrLmxvY2F0aW9uLnN0YXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJzdGF0ZXNPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImZlZFdvcmtTdGF0ZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwiZmVkV29ya1N0YXRlXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkV29ya1N0YXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RhcnREYXRlRmVkXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc3RhcnRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwic3RhcnREYXRlRmVkXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiIGlucHV0SWQ9XCJzdGFydERhdGVGZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVGZWRcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluV29ya1N0YXJ0RGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzdGFydERhdGVGZWQnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVuZERhdGVGZWRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5lbmRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwiZW5kRGF0ZUZlZFwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImVuZERhdGVGZWRcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW2Zvcm1Db250cm9sXT1cImVuZERhdGVGZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW5kRGF0ZUZlZCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRKb2JUaWxlT3JQb3NpdGlvblwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLmpvYnRpdGxlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZlZEpvYlRpbGVPclBvc2l0aW9uXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZmVkSm9iVGlsZU9yUG9zaXRpb25cIlxyXG4gICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMTAwXCIgLz5cclxuICAgICAgICAgICAgICA8IS0tICA8cC1hdXRvQ29tcGxldGUgW2Zvcm1Db250cm9sXT1cImZlZEpvYlRpbGVPclBvc2l0aW9uXCIgW3N1Z2dlc3Rpb25zXT1cImZlZEpvYlRpbGVPcHRpb25zXCIgXHJcbiAgICAgICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwiZmlsdGVyRmVkSm9iVGlsZU9yUG9zaXRpb24oJGV2ZW50KVwiIGZpZWxkPVwiam9iVGl0bGVcIiBbZHJvcGRvd25dPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU3RhcnQuLi4gdHlwaW5nIGpvYiB0aXRsZVwiIG1pbkxlbmd0aD0zIGZvcmNlU2VsZWN0aW9uPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWx1ZSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57e3ZhbHVlLmpvYlRpdGxlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvcC1hdXRvQ29tcGxldGU+IC0tPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRKb2JUaWxlT3JQb3NpdGlvbicgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNmRWlnaHRmbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2ZlaWdodFwifHRyYW5zbGF0ZX19IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwic2ZFaWdodGZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInNmRWlnaHRmbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NmRWlnaHRmbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInN0YXJ0RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnN0YXJ0ZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgaWNvbkFyaWFMYWJlbD1cInN0YXJ0RGF0ZVwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInN0YXJ0RGF0ZVwiIFttYXhEYXRlXT1cImRhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlXCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIFttaW5EYXRlXT1cIm1pbldvcmtTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIChvbkJsdXIpPVwidmFsaWRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlKCRldmVudClcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3N0YXJ0RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW5kRGF0ZVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmVuZGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJlbmREYXRlXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwiZW5kRGF0ZVwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhEYXRlXT1cImRhdGVUaW1lXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbZm9ybUNvbnRyb2xdPVwiZW5kRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uQmx1cik9XCJ2YWxpZGF0ZVdhZ2VzRGlzcGxheSgkZXZlbnQpXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZVdhZ2VzRGlzcGxheSgkZXZlbnQpXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW5kRGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPCEtLSA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibnVtYmVyRW1wbG95ZWRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy5lbXBsb3llZXMubm9cIiB8IHRyYW5zbGF0ZX19IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtpZF09XCJudW1iZXJFbXBsb3llZFwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFtmb3JtQ29udHJvbF09XCJudW1iZXJFbXBsb3llZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiOVwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J251bWJlckVtcGxveWVkJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPiAtLT5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid29ya1R5cGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy53b3JrLnR5cGVcIiB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwid29ya1R5cGVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ3b3JrVHlwZVwiIG1heGxlbmd0aD1cIjUwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dvcmtUeXBlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjbGFpbWFudEVtcGxveWVkV2l0aEVtcHJcIj5XZXJlIHlvdSBlbXBsb3llZCB3aGlsZSBhIHNwb3VzZSBvZiBhIFVTIG1pbGl0YXJ5IG1lbWJlciBzdGF0aW9uZWQgYXRcclxuICAgICAgICAgICAgICAgIGEgZm9yZWlnbiBtaWxpdGFyeSBiYXNlPzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwieWVzTm9OYU9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByJyAgICAgICAgICAgICAgICAgICBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBlcmZvcm1lZFNlcnZpY2VcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5jaXZpbGlhbi53b3JrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cInBlcmZvcm1lZFNlcnZpY2VcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInBlcmZvcm1lZFNlcnZpY2VcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwZXJmb3JtZWRTZXJ2aWNlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiam9iVGlsZU9yUG9zaXRpb25cIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5qb2J0aXRsZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJqb2JUaWxlT3JQb3NpdGlvblwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImpvYlRpbGVPclBvc2l0aW9uXCIgbWF4bGVuZ3RoPVwiMTAwXCIgLz5cclxuICAgICAgICAgICAgICA8IS0tIDxwLWF1dG9Db21wbGV0ZSBbZm9ybUNvbnRyb2xdPVwiam9iVGlsZU9yUG9zaXRpb25cIiBbc3VnZ2VzdGlvbnNdPVwiam9iVGlsZU9yUG9zaXRpb25PcHRpb25zXCIgXHJcbiAgICAgICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwiZmlsdGVySm9iVGlsZU9yUG9zaXRpb24oJGV2ZW50KVwiIGZpZWxkPVwiam9iVGl0bGVcIiAob25DbGVhcik9XCJvbkNsZWFyQWN0aW9uKCRldmVudClcIiBcclxuICAgICAgICAgICAgICAgICBbZHJvcGRvd25dPVwiZmFsc2VcIiBwbGFjZWhvbGRlcj1cIlN0YXJ0Li4uIHR5cGluZyBqb2IgdGl0bGVcIiBtaW5MZW5ndGg9MyBmb3JjZVNlbGVjdGlvbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFsdWUgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3t2YWx1ZS5qb2JUaXRsZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPiAtLT5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nam9iVGlsZU9yUG9zaXRpb24nIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5UmF0ZVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnBheXJhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJwYXlSYXRlXCIgW2Zvcm1Db250cm9sXT1cInBheVJhdGVcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIFttYXhdPVwiOTk5OTk5Ljk5XCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZT1cImVuLVVTXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGF5UmF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJwYXlSYXRlRnJlcXVlbmN5LWxhYmVsXCIgZm9yPVwicGF5UmF0ZUZyZXF1ZW5jeVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnBlclwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicGF5UmF0ZU9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwicGF5UmF0ZUZyZXF1ZW5jeVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwicGF5UmF0ZUZyZXF1ZW5jeVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BheVJhdGVGcmVxdWVuY3knIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llclRlbGVwaG9uZU51bWJlclwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmVtcGxveWVyLnBob25lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OTktOTk5OVwiIGlucHV0SWQ9XCJlbXBsb3llclRlbGVwaG9uZU51bWJlclwiIFtmb3JtQ29udHJvbF09XCJlbXBsb3llclRlbGVwaG9uZU51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjk5OS05OTktOTk5OVwiPjwvcC1pbnB1dE1hc2s+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXInIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PSdSRUcnIHx8IGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwicmVhc29uU2VwYXJhdGlvbi1sYWJlbFwiIGZvcj1cInJlYXNvblNlcGFyYXRpb25cIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb25cInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwicmVhc29uU2VwYXJhdGlvbi1sYWJlbFwiIGZvcj1cInJlYXNvblNlcGFyYXRpb25cIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQucmVhc29uLnNlcGFyYXRpb25cInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGxcIiBbZm9ybUNvbnRyb2xdPVwicmVhc29uU2VwYXJhdGlvblwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJyZWFzb25TZXBhcmF0aW9uXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdyZWFzb25TZXBhcmF0aW9uJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gYWRkIGZvciBxdWl0IGFuZCBkaXNjaGFyZ2UgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwicmVhc29uU2VwYXJhdGlvbi52YWx1ZT8udmFsdWUgPT09ICdEQ0ZJJyBcclxuICAgICAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJkaXNjaGFyZ2VEZXRhaWwtbGFiZWxcIiBmb3I9XCJkaXNjaGFyZ2VEZXRhaWxcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5kaXNjaGFyZ2VcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJkaXNjaGFyZ2VEZXRhaWxcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwiZGlzY2hhcmdlRGV0YWlsXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkaXNjaGFyZ2VEZXRhaWwnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJyZWFzb25TZXBhcmF0aW9uLnZhbHVlPy52YWx1ZSA9PT0gJ1ZPTFEnIFxyXG4gICAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJ2b2xRdWl0RGV0YWlscy1sYWJlbFwiIGZvcj1cInZvbFF1aXREZXRhaWxzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24ucXVpdFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJ2b2xRdWl0UmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJ2b2xRdWl0RGV0YWlsc1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJ2b2xRdWl0RGV0YWlsc1wiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndm9sUXVpdERldGFpbHMnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyBcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibWlsUGVuc2lvbkZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5wZW5zaW9uXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgIDxicj4ge3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwucGVuc2lvbi5kaXNjbGFpbWVyXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cIm1pbFBlbnNpb25GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJtaWxQZW5zaW9uRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J21pbFBlbnNpb25GbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyAmJiB0aGlzLm1pbFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtaWxQZW5zaW9uUmVjdkRhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5wZW5zaW9uLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cIm1pbFBlbnNpb25SZWN2RGF0ZVwiIFtmb3JtQ29udHJvbF09XCJtaWxQZW5zaW9uUmVjdkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J21pbFBlbnNpb25SZWN2RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRkMjE0RmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0XCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50OyBkaXNwbGF5OiBpbmxpbmUtZmxleDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwiZGQyMTRGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJkZDIxNEZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJkZDIxNEluZm9cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGQyMTRGbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXBhZGRpbmdcIiBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiNlwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI2XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkXCI+XHJcblxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiIGNsYXNzPVwiaW9uLWhpZGUtc20tZG93blwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBjbGFzcz1cImlvbi1oaWRlLXNtLWRvd25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llclwiIGNsYXNzPVwiaW9uLWhpZGUtc20tZG93blwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgJiYgZGQyMTRGbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInBhcmFPbmUgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YXBwLWZpbGUtdXBsb2FkZXIgW2Zvcm1Db250cm9sXT1cImRkMjE0RmlsZVwiIFt1cGxvYWRlZEZpbGVGb3JFZGl0XT1cImRkMjE0RmlsZS52YWx1ZVwiPjwvYXBwLWZpbGUtdXBsb2FkZXI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChwYXJhVHdvIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFUaHJlZSB8IHRyYW5zbGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChwYXJhRm91ciB8IHRyYW5zbGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChwYXJhRml2ZSB8IHRyYW5zbGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChwYXJhU2l4fCB0cmFuc2xhdGUpXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgJiYgZGQyMTRGbGFnLnZhbHVlPT09J04nXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwibm9QYXJhT25lIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1maWxlLXVwbG9hZGVyIFtmb3JtQ29udHJvbF09XCJkZDIxNEZpbGVcIiBbdXBsb2FkZWRGaWxlRm9yRWRpdF09XCJkZDIxNEZpbGUudmFsdWVcIj48L2FwcC1maWxlLXVwbG9hZGVyPiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobm9QYXJhVHdvIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKG5vUGFyYVRocmVlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKG5vUGFyYUZvdXIgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDE1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobm9QYXJhRml2ZSB8IHRyYW5zbGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIG9zYUJwRW1wbG95ZXJGbGFnLnZhbHVlID09PScxJ1wiPiA8IS0tT2xkIGNvZGUtLT5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdyb3NzV2FnZXNcIiBzdHlsZT1cImlubGluZS1zaXplOiBtYXgtY29udGVudDtcIj5Ub3RhbCBXYWdlcyBFYXJuZWQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwiZ3Jvc3NXYWdlc1wiIFtmb3JtQ29udHJvbF09XCJncm9zc1dhZ2VzXCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBtYXhsZW5ndGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdncm9zc1dhZ2VzJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctdG9wOiAwcHg7XCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5UmF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucGF5cmF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cInBheVJhdGVcIiBbZm9ybUNvbnRyb2xdPVwicGF5UmF0ZVwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjk5OTk5OS45OVwiIG1heGxlbmd0aD1cIjEyXCIgbG9jYWxlPVwiZW4tVVNcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7cGFkZGluZy10b3A6IDBweDtcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cInBheVJhdGVGcmVxdWVuY3ktbGFiZWxcIiBmb3I9XCJwYXlSYXRlRnJlcXVlbmN5XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5wZXJcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInBheVJhdGVPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInBheVJhdGVGcmVxdWVuY3lcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInBheVJhdGVGcmVxdWVuY3lcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlRnJlcXVlbmN5JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGlvbi1jb2wgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZVwiIHN0eWxlPVwicGFkZGluZy10b3A6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZ3Jvc3NXYWdlc1wiICBzdHlsZT1cImlubGluZS1zaXplOiBtYXgtY29udGVudDtcIj5Ub3RhbCBXYWdlcyBFYXJuZWQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbZm9ybUNvbnRyb2xdPVwiZ3Jvc3NXYWdlc1wiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIiBbbWF4XT1cIjk5OTk5OS45OVwiIGxvY2FsZT1cImVuLVVTXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2dyb3NzV2FnZXMnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+IC0tPlxyXG4gICAgICAgICAgICAgIDwhLS08aW9uLWNvbCAqbmdJZj1cImRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+ICBPbGQgQ29kZS0tPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+IDwhLS1OZXcgY29uZGl0aW9uIHdhcyBhZGRlZC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJncm9zc1dhZ2VzXCIgIHN0eWxlPVwiaW5saW5lLXNpemU6IG1heC1jb250ZW50O1wiPlRvdGFsIFdhZ2VzIEVhcm5lZDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJncm9zc1dhZ2VzXCIgW2Zvcm1Db250cm9sXT1cImdyb3NzV2FnZXNcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIG1heGxlbmd0aD1cIjEyXCIgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdncm9zc1dhZ2VzJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPiBcclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRQZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnBlbnNpb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPGJyPiB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5wZW5zaW9uLmRpc2NsYWltZXJcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTpmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cImZlZFBlbnNpb25GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJmZWRQZW5zaW9uRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gb3ZlcmxheVRleHQ9XCJ7eydpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnBlbnNpb24uaW5mbyd8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tdG9wOiAycHg7IG1hcmdpbi1sZWZ0OiA2cHg7XCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRQZW5zaW9uRmxhZycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgdGhpcy5mZWRQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmVkUGVuc2lvblJlY3ZEYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQucGVuc2lvbi5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJmZWRQZW5zaW9uUmVjdkRhdGVcIiBbZm9ybUNvbnRyb2xdPVwiZmVkUGVuc2lvblJlY3ZEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRQZW5zaW9uUmVjdkRhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnICYmIHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXZQYXlGbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cInNldlBheUZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInNldlBheUZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlGbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgc2V2UGF5RmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndlZWtseUFtb3VudFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS53ZWVrbHkuYW10XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid2Vla2x5QW1vdW50XCIgW2Zvcm1Db250cm9sXT1cIndlZWtseUFtb3VudFwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2Vla2x5QW1vdW50JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm51bWJlck9mV2Vla3NcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2Uud2Vla3NcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJudW1iZXJPZldlZWtzXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgW2Zvcm1Db250cm9sXT1cIm51bWJlck9mV2Vla3NcIiBtYXhsZW5ndGg9XCI0XCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J251bWJlck9mV2Vla3MnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXZQYXlBbW91bnRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2UuZW50aXRsZW1lbnRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJzZXZQYXlBbW91bnRcIiBbZm9ybUNvbnRyb2xdPVwic2V2UGF5QW1vdW50XCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBtYXhsZW5ndGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlBbW91bnQnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgc2V2UGF5RmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNldlBheVN0YXJ0RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS5zdGFydC5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzZXZQYXlTdGFydERhdGVcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgW2Zvcm1Db250cm9sXT1cInNldlBheVN0YXJ0RGF0ZVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlTdGFydERhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNldlBheUVuZERhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2UuZW5kLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInNldlBheUVuZERhdGVcIiBbZm9ybUNvbnRyb2xdPVwic2V2UGF5RW5kRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW21pbkRhdGVdPVwibWluRGF0ZVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlFbmREYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcj1cInNldlBheVBheW1lbnRTdGFydERhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2UucGF5LmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInNldlBheVBheW1lbnRTdGFydERhdGVcIiBbZm9ybUNvbnRyb2xdPVwic2V2UGF5UGF5bWVudFN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlQYXltZW50U3RhcnREYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgd29ya0ZsYWcudmFsdWU9PT0nWSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGVuc2lvbkZsYWdcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wZW5zaW9uXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cInBlbnNpb25GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwZW5zaW9uRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BlbnNpb25GbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWScgJiYgcGVuc2lvbkZsYWcudmFsdWU9PT0nWSdcclxuICAgICAgICAgICAgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgXCI+IDwhLS0gdGhpcyBpcyBxdWVzdGlvbmFibGUgYmVjYXVzZSBhYm92ZSBkZXBlbmRlbnQgcXVlc3Rpb24gZG9lcyBub3QgaGF2ZSBpc0Jhc2VQZXJpb2RFbXBsb3llciAtLT5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGVuc2lvblJlY3ZEYXRlXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucGVuc2lvbi5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJwZW5zaW9uUmVjdkRhdGVcIiBbZm9ybUNvbnRyb2xdPVwicGVuc2lvblJlY3ZEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwZW5zaW9uUmVjdkRhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlZ1BlbnNpb25GbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvblwifHRyYW5zbGF0ZX19IDxiciAvPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvbi5kaXNjbGFpbWVyXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJyZWdQZW5zaW9uRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwicmVnUGVuc2lvbkZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIG92ZXJsYXlUZXh0PVwie3snaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy5wZW5zaW9uLmluZm8nfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogMnB4OyBtYXJnaW4tbGVmdDogNnB4O1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVnUGVuc2lvbkZsYWcnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXHJcbiAgICAgICAgICAgICYmIHJlZ1BlbnNpb25GbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlZ1BlbnNpb25SZWN2RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnBlbnNpb24uZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwicmVnUGVuc2lvblJlY3ZEYXRlXCIgW2Zvcm1Db250cm9sXT1cInJlZ1BlbnNpb25SZWN2RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVnUGVuc2lvblJlY3ZEYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImlzQ2xtdFBhaWRXaGlsZUxvd1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmVtcGxveWVyLnBheS5yZXR1cm4udG8ud29ya1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50OyBkaXNwbGF5OmZsZXg7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJpc0NsbXRQYWlkV2hpbGVMb3dcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gb3ZlcmxheVRleHQ9XCJ7eydpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLmVtcGxveWVyUGF5UmV0dXJuVG9Xb3JrSW5mbyd8IHRyYW5zbGF0ZX19XCIgXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDJweDsgbWFyZ2luLWxlZnQ6IDZweDtcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2lzQ2xtdFBhaWRXaGlsZUxvdycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBjdXJyZW50U3RhdGUgPT09J01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYXNTaG9ydFRlcm1EaXNhYmlsaXR5XCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuc2hvcnR0ZXJtZGlzYWJpbGl0eVwifHRyYW5zbGF0ZX19IHt7YnBTdGFydERhdGVUb0Rpc3BsYXkgfCBkYXRlOidNTU1NIGQsIHl5eXknfX0gPzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImhhc1Nob3J0VGVybURpc2FiaWxpdHlcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdoYXNTaG9ydFRlcm1EaXNhYmlsaXR5JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiKChpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJykgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKSYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIGN1cnJlbnRTdGF0ZT09PSdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGFzUmVjdlJlbXVuZXJhdGlvblwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnJlbXVuZXJhdGlvbi5wYXlcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImhhc1JlY3ZSZW11bmVyYXRpb25cIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdoYXNSZWN2UmVtdW5lcmF0aW9uJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIGN1cnJlbnRTdGF0ZT09PSdNRScgJiYgaGFzUmVjdlJlbXVuZXJhdGlvbi52YWx1ZT09PSdZJyAmJiBvc2FCcEVtcGxveWVyRmxhZy52YWx1ZT09PScwJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJyZW11bmVyYXRpb25UeXBlc1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnJlbXVuZXJhdGlvbi50eXBlc1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jaGVja2JveCBbbmFtZV09XCIncmVtdW5lcmF0aW9udHlwZXMtZ3JvdXAnXCIgW3ZhbHVlXT1cImNob2ljZS52YWx1ZVwiIFxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImNob2ljZS50ZXh0XCIgKm5nRm9yPVwibGV0IGNob2ljZSBvZiByZW11bmVyYXRpb25UeXBlT3B0aW9uc1wiICBbZm9ybUNvbnRyb2xdPVwicmVtdW5lcmF0aW9uVHlwZXNcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImFwcC1wLWNoZWNrYm94XCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdyZW11bmVyYXRpb25UeXBlcycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIGN1cnJlbnRTdGF0ZSA9PT0nTUUnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInZhY2F0aW9uXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQudmFjYXRpb24uYnJlYWtcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInZhY2F0aW9uXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndmFjYXRpb24nIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tPGRpdiAqbmdJZj1cImRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+IFN0ZXBoZW4gQ29kZS0tPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDQ+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLmhlYWRlclwifHRyYW5zbGF0ZX19PC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbD57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuc3ViaGVhZGVyXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5bWVudFR5cGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMucGF5bW9kZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwicGF5bWVudFR5cGVcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicGF5TWV0aG9kT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwYXltZW50VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BheW1lbnRUeXBlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRvY3NSZWNlaXZlZFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5kb2NzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJkb2NzUmVjZWl2ZWRcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwid2FnZVByb29mT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJkb2NzUmVjZWl2ZWRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkb2NzUmVjZWl2ZWQnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJvdGhlclNTTkZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMub3RoZXIuc3NuLmZsYWdcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwib3RoZXJTU05GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJvdGhlclNTTkZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nb3RoZXJTU05GbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cInRoaXMub3RoZXJTU05GbGFnLnZhbHVlID09PSAnWSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJvdGhlclNTTlwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5vdGhlci5zc25cInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgaW5wdXRJZD1cIm90aGVyU1NOXCIgbWFzaz1cIjk5OS05OS05OTk5XCIgW2Zvcm1Db250cm9sXT1cIm90aGVyU1NOXCIgcGxhY2Vob2xkZXI9XCI5OTktOTktOTk5OVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlclNTTicgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoaXJlZEJ5XCI+TWFuYWdlcidzIE5hbWUgJiBUaXRsZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImhpcmVkQnlcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJoaXJlZEJ5XCIgbWF4bGVuZ3RoPVwiNDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdoaXJlZEJ5JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+IFN0ZXBoZW4gQ29kZSAtLT5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+ICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBmb3I9XCJvdGhlck5hbWVGbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLm90aGVyLm5hbWUuZmxhZ1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cIm90aGVyTmFtZUZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cIm90aGVyTmFtZUZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J290aGVyTmFtZUZsYWcnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwidGhpcy5vdGhlck5hbWVGbGFnLnZhbHVlID09PSAnWSdcIj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcj1cIm90aGVyTmFtZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5vdGhlci5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJvdGhlck5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJvdGhlck5hbWVcIiBtYXhsZW5ndGg9XCIzMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlck5hbWUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8aW9uLXJvdyAqbmdJZj1cIndvcmtTdGF0ZS52YWx1ZSAmJiB3b3JrU3RhdGUudmFsdWUudmFsdWU9PT0nS1MnICYmIGRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWluXCI+RkVJTjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtpZF09XCJmZWluXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgW2Zvcm1Db250cm9sXT1cImZlaW5cIiBtYXhsZW5ndGg9XCI5XCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVpbicgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZG9pbmdCdXNpbmVzc0FzXCI+RG9pbmcgQnVzaW5lc3MgQXMvVHJhZGUgTmFtZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImRvaW5nQnVzaW5lc3NBc1wiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImRvaW5nQnVzaW5lc3NBc1wiIG1heGxlbmd0aD1cIjEwMFwiLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2RvaW5nQnVzaW5lc3NBcycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PiAtLT5cclxuXHJcbiAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgXHJcbiAgICAgICAgICAgICAgICAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYnVzaW5lc3NOYXR1cmVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ubmF0dXJlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJidXNpbmVzc05hdHVyZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImJ1c2luZXNzTmF0dXJlXCIgbWF4bGVuZ3RoPVwiMjUwXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nYnVzaW5lc3NOYXR1cmUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyB8fCAoZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHByZXZXb3JrZWRTdGF0ZT8udmFsdWUgPT09ICdLUycpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPiBTdGVwaGVuIENvZGUgLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgaXNOZXdDbGFpbVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLTxsYWJlbD57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC52ZXJpZmljYXRpb24ud2FnZXNcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQudmVyaWZpY2F0aW9uLndhZ2VzLnN0YXRlbWVudFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnIHx8IChlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHRhYmxlIHJ1bGVzPVwicm93c1wiPlxyXG4gICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5jb2wxXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuY29sMlwifHRyYW5zbGF0ZX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cIndhZ2VBbW91bnRBcnJheVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB3YWdlQW1vdW50Rm9ybSBvZiB3YWdlQW1vdW50QXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCIoKGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSB8fCAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgd2FnZUFtb3VudEZvcm0udmFsdWUuZGlzcGxheUZvckFsbD09PXRydWUpIClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ3dhZ2VBbW91bnRBcnJheS0nICsgaVwiID57e3dhZ2VBbW91bnRGb3JtLnZhbHVlLnF0clllYXJEaXNwbGF5U3RyaW5nfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2lucHV0SWRdPVwiJ3dhZ2VBbW91bnRBcnJheS0nICsgaVwiIGFyaWFMYWJlbD1cIndhZ2VBbW91bnRcIiBmb3JtQ29udHJvbE5hbWU9XCJ3YWdlQW1vdW50XCIgbW9kZT1cImN1cnJlbmN5XCIgW21pbl09XCIwLjAwXCIgW21heF09XCI5OTk5OTkuOTlcIiBtYXhsZW5ndGg9XCIxMlwiIGN1cnJlbmN5PVwiVVNEXCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJ3YWdlQW1vdW50QXJyYXkuZXJyb3JzPy5yZXF1aXJlQ2hlY2tib3hUb0JlQ2hlY2tlZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2FnZUFtb3VudEFycmF5JyBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbZXJyRGVmXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVDaGVja2JveFRvQmVDaGVja2VkOiAnYXQgbGVhc3Qgb25lIGFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+ICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNldmVyYW5jZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnNldmVyYW5jZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJzZXZlcmFuY2VcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwic2V2ZXJhbmNlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NldmVyYW5jZSdcclxuICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwie3JlcXVpcmVkOiAncmVxdWlyZWQnfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBbYXV0b2ZvY3VzXT1cInRydWVcIiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJvbk1vZGVsQ2FuY2VsKGZhbHNlKVwiIChrZXl1cC5zcGFjZSk9XCJvbk1vZGVsQ2FuY2VsKGZhbHNlKVwiIChrZXl1cC5lbnRlcik9XCJvbk1vZGVsQ2FuY2VsKGZhbHNlKVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJyZXNldFwiPnt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5idXR0b24uY2FuY2VsXCJ8dHJhbnNsYXRlfX0gPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKGNsaWNrKT1cInNhdmUoKVwiIHR5cGU9XCJzdWJtaXRcIiAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCIgKGtleXVwLnNwYWNlKT1cInNhdmUoKVwiIChrZXl1cC5lbnRlcik9XCJzYXZlKClcIj5cclxuICAgICAgICAgICAge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmJ1dHRvbi5zYXZlXCJ8dHJhbnNsYXRlfX0gPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgKGNsaWNrKT1cImFkZCgpXCIgdHlwZT1cInN1Ym1pdFwiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCIgKGtleXVwLnNwYWNlKT1cImFkZCgpXCIgKGtleXVwLmVudGVyKT1cImFkZCgpXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQWRkIGFuIGVtcGxveWVyJyB8IHRyYW5zbGF0ZVwiPiB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuYnV0dG9uLmFkZFwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG4gIDwvZm9ybT5cclxuPC9wLWRpYWxvZz4iXX0=
2654
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddEmployerComponent, { className: "AddEmployerComponent", filePath: "lib\\components\\add-employer\\add-employer.component.ts", lineNumber: 27 }); })();
2655
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVtcGxveWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBMEQsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTXBFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU9oRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNObEMsMkJBQStCO0lBQzdCLFlBQThEOztJQUFBLGlCQUFNOzs7SUFBcEUsZUFBOEQ7SUFBOUQsZ0hBQThEOzs7SUFJaEUsMkJBQW1CO0lBQ2pCLHFCQUFJO0lBQ0osWUFDRjs7SUFBQSxpQkFBTTs7SUFESixlQUNGO0lBREUsb0dBQ0Y7OztJQU1RLDBCQUFnQyxRQUFBO0lBQzNCLFlBQThCO0lBQUEsaUJBQUksRUFBQTs7O0lBQWxDLGVBQThCO0lBQTlCLGtEQUE4Qjs7O0lBSW5DLDBCQUFnQztJQUM5QixZQUNGOztJQUFBLGlCQUFLOzs7SUFESCxlQUNGO0lBREUseUVBQ0Y7OztJQVJGLDBCQUFJO0lBQ0YseUdBRUs7SUFDUCxpQkFBSztJQUNMLDBCQUFJO0lBQ0YseUdBRUs7SUFDUCxpQkFBSzs7O0lBUmlCLGVBQVU7SUFBVixxQ0FBVTtJQUtWLGVBQVU7SUFBVixxQ0FBVTs7O0lBVnRDLCtCQUFpQyxrQkFBQTtJQUc3Qiw2R0FXYztJQUNoQixpQkFBVSxFQUFBOzs7SUFkRCxlQUErQjtJQUEvQixxREFBK0IsMENBQUE7OztJQVo1QywrQkFBZ0Q7SUFDOUMsWUFDQTtJQUFBLHNGQUNzRTtJQUN0RSxxQkFBSTtJQUNKLGdDQUErQjtJQUFDLFlBQ2hDO0lBQUEsaUJBQU87SUFDUCxzRkFHTSx5RUFBQTtJQWtCUixpQkFBTTs7O0lBM0JKLGVBQ0E7SUFEQSxvREFDQTtJQUFNLGVBQXVCO0lBQXZCLCtDQUF1QjtJQUdHLGVBQ2hDO0lBRGdDLDZEQUNoQztJQUNNLGVBQVc7SUFBWCxtQ0FBVztJQUlHLGVBQVc7SUFBWCxtQ0FBVzs7O0lBa0JoQywrQkFBa0QsWUFBQTtJQUMxQyxZQUF3RDs7SUFBQSxxQkFBTSxTQUFBO0lBQ25FLFlBQThEOztJQUFBLGlCQUFRLEVBQUE7O0lBRGpFLGVBQXdEO0lBQXhELHNGQUF3RDtJQUM3RCxlQUE4RDtJQUE5RCxzR0FBOEQ7Ozs7SUFFbEUsK0JBQWlELGdCQUFBO0lBQ3JCLFlBQXNEOztJQUFBLGlCQUFRO0lBQ3hGLCtCQUFtQztJQUNqQyxxQ0FDOEUsbUJBQUE7SUFJaEYsaUJBQU0sRUFBQTs7O0lBUG9CLGVBQXNEO0lBQXRELHFGQUFzRDtJQUcvQyxlQUE2QjtJQUE3Qiw2Q0FBNkI7SUFEckIsb0RBQStCLG9DQUFBO0lBRWxDLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw2Q0FBd0IsOEJBQUEsd0RBQUE7Ozs7SUFLdkMsK0JBQWlGLGdCQUFBO0lBQ2xELFlBQW1EOztJQUFBLGlCQUFRO0lBQ3hGLCtCQUF1Qyx5QkFBQTtJQUduQyw2TUFBaUIsZUFBQSw2Q0FBcUMsQ0FBQSxJQUFDO0lBQUMsaUJBQWlCO0lBQzNFLCtCQUVhO0lBQ2YsaUJBQU0sRUFBQTs7O0lBUnVCLGVBQW1EO0lBQW5ELGtGQUFtRDtJQUd4RCxlQUE2QjtJQUE3Qiw2Q0FBNkI7SUFEVCx1REFBa0MsdUNBQUE7SUFHeEMsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDZDQUF3QixpQ0FBQSx3REFBQTs7OztJQU9yQywyQkFBMEQsOEJBQUE7SUFDK0IsNE1BQVcsZUFBQSwyQkFBbUIsQ0FBQSxJQUFDLCtMQUN6RyxlQUFBLDZCQUFxQixDQUFBLElBRG9GO0lBQ2xGLGlCQUFzQjtJQUMxRCwrQkFFZTtJQUNqQixpQkFBTTs7O0lBTHdDLGVBQTRCO0lBQTVCLGtEQUE0QjtJQUVwQyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHdEQUFBOzs7SUFLbkMsK0JBQW1CO0lBQ2pCLDRCQUFnRyxtQkFBQTtJQUlsRyxpQkFBTTs7O0lBSjZDLGVBQStCO0lBQS9CLHFEQUErQjtJQUM1QyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLGtDQUFBLHdEQUFBOzs7SUFaekMsK0JBQWlGLGdCQUFBO0lBQ3JELFlBQXNEOztJQUFBLGlCQUFRO0lBQ3hGLHVGQU1NLDJIQUFBO0lBU1IsaUJBQU07Ozs7SUFoQnNCLGVBQXNEO0lBQXRELG9GQUFzRDtJQUMxRSxlQUFvQztJQUFwQyw0REFBb0Msa0JBQUE7Ozs7SUFnQjVDLCtCQUF5RixnQkFBQTtJQUMxRCxZQUEwRDs7SUFBQSxpQkFBUTtJQUMvRiwrQ0FDdUM7SUFENEIsc01BQVcsZUFBQSw4QkFBc0IsQ0FBQSxJQUFDLHlMQUN4RixlQUFBLGdDQUF3QixDQUFBLElBRGdFO0lBQzlELGlCQUFzQjtJQUM3RCwrQkFFZTtJQUNqQixpQkFBTTs7O0lBTnlCLGVBQTBEO0lBQTFELHdGQUEwRDtJQUNsRSxlQUErQjtJQUEvQixvREFBK0I7SUFFaEIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDZDQUF3QixpQ0FBQSx1REFBQTs7O0lBSXJDLCtCQUFzRCxnQkFBQTtJQUNBLFlBQTJEOztJQUFBLGlCQUFRO0lBQ3ZILGlDQUNrRixtQkFBQTtJQUlwRixpQkFBTTs7O0lBTmdELGVBQTJEO0lBQTNELHlGQUEyRDtJQUNuRyxlQUFrQztJQUFsQyx1REFBa0MscUNBQUEsMkJBQUE7SUFFVixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsNkNBQXdCLCtCQUFBLHdEQUFBOzs7O0lBSXJDLCtCQUFzRCxnQkFBQTtJQUVsRCxZQUNGOztJQUFBLGlCQUFRO0lBQ1IsaUNBRWEsb0JBQUE7SUFLZixpQkFBTTs7O0lBVEYsZUFDRjtJQURFLG1HQUNGO0lBQ1ksZUFBd0I7SUFBeEIsNkNBQXdCLGlDQUFBO0lBR1IsZUFBd0I7SUFBeEIsNkNBQXdCLDBCQUFBLDhFQUFBOzs7O0lBS3RELCtCQUE0QyxrQkFBQSxjQUFBLGdCQUFBO0lBR1osWUFBc0Q7O0lBQUEsaUJBQVE7SUFDeEYsc0NBSStCO0lBRmtDLGdNQUFVLGVBQUEsd0JBQWdCLENBQUEsSUFBQyx1TEFDOUUsZUFBQSx3QkFBZ0IsQ0FBQSxJQUQ4RCxxTEFDVCxlQUFBLHlCQUFpQixDQUFBLElBRFI7SUFHNUYsaUJBQWE7SUFDYiwrQkFFZTtJQUNqQixpQkFBTSxFQUFBO0lBRVIsOEJBQTRCO0lBQzVCLG1DQUErQixlQUFBLGlCQUFBO0lBRUgsYUFBb0Q7O0lBQUEsaUJBQVE7SUFDcEYsdUNBR3NEO0lBQTlCLG1NQUFXLGVBQUEseUJBQWlCLENBQUEsSUFBQztJQUFDLGlCQUFhO0lBQ25FLGdDQUVlO0lBQ2pCLGlCQUFNLEVBQUEsRUFBQTs7O0lBdkJzQixlQUFzRDtJQUF0RCxxRkFBc0Q7SUFDdkMsZUFBaUI7SUFBakIsK0JBQWlCLHFDQUFBLDZCQUFBLHVCQUFBLHNCQUFBLHFDQUFBO0lBTXRCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsK0JBQUEseURBQUE7SUFRWCxlQUFvRDtJQUFwRCxvRkFBb0Q7SUFDckMsZUFBaUI7SUFBakIsK0JBQWlCLDZCQUFBLDRCQUFBLHVCQUFBLG1DQUFBLHNCQUFBO0lBSXBCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNkJBQUEseURBQUE7OztJQU16QywrQkFBMkQsa0JBQUEsY0FBQSxnQkFBQTtJQUdoQyxZQUFxRDs7SUFBQSxpQkFBUTtJQUNsRiw0QkFBc0UsbUJBQUE7SUFJeEUsaUJBQU0sRUFBQTtJQUVSLDhCQUE0QjtJQUM1QixtQ0FBK0IsZUFBQSxpQkFBQTtJQUVLLGFBQTREOztJQUFBLGlCQUFRO0lBQ3BHLDZCQUE0RixvQkFBQTtJQUk5RixpQkFBTSxFQUFBLEVBQUE7OztJQWZpQixlQUFxRDtJQUFyRCxvRkFBcUQ7SUFDOUIsZUFBdUI7SUFBdkIsNkNBQXVCO0lBQy9CLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsMEJBQUEseURBQUE7SUFRSCxlQUE0RDtJQUE1RCw0RkFBNEQ7SUFDckMsZUFBa0M7SUFBbEMsd0RBQWtDO0lBQ3JELGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IscUNBQUEseURBQUE7OztJQU16QywrQkFBcUUsa0JBQUE7SUFFakUsc0NBQ2M7SUFDaEIsaUJBQVUsRUFBQTs7O0lBRmUsZUFBdUI7SUFBdkIsNkNBQXVCLHlCQUFBLG1CQUFBOzs7SUFTaEQscUNBQXdHO0lBQ3RHLFlBQ0Y7O0lBQUEsaUJBQVk7O0lBRFYsZUFDRjtJQURFLDZFQUNGOzs7SUFQRiwrQkFBc0Q7SUFDcEQsc0NBQTBILG1CQUFBO0lBSTFILG9HQUVZO0lBQ2QsaUJBQU07OztJQVBtQyxlQUF1QjtJQUF2Qiw2Q0FBdUIseUJBQUEsbUJBQUE7SUFDMUIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QiwwQkFBQSx3REFBQTtJQUdOLGVBQXlFO0lBQXpFLG1MQUF5RTs7OztJQUl4RywrQkFBcUUsa0JBQUEsY0FBQSxnQkFBQTtJQUd6QyxZQUE0RDs7SUFBQSxpQkFBUTtJQUMxRiw0QkFBdUYsbUJBQUE7SUFJekYsaUJBQU0sRUFBQTtJQUVSLDhCQUE0QjtJQUM1QixtQ0FBK0IsZUFBQSxpQkFBQTtJQUVpQixhQUE0RDs7SUFBQSxpQkFBUTtJQUNoSCx1Q0FFZ0U7SUFBMUMscU1BQVksZUFBQSxvQ0FBNEIsQ0FBQSxJQUFDO0lBQUMsaUJBQWE7SUFDN0UsZ0NBRWU7SUFDakIsaUJBQU0sRUFBQSxFQUFBOzs7SUFqQmtCLGVBQTREO0lBQTVELG9HQUE0RDtJQUNyQyxlQUF3QjtJQUF4Qiw4Q0FBd0I7SUFDakMsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QiwyQkFBQSx5REFBQTtJQVFTLGVBQTREO0lBQTVELDRGQUE0RDtJQUM1RixlQUF5RTtJQUF6RSxxSEFBeUUsa0NBQUEsMkJBQUE7SUFHakQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3Qiw0QkFBQSx5REFBQTs7O0lBTXpDLCtCQUFzRCxnQkFBQTtJQUNFLFlBQWtFOztJQUFBLGlCQUFRO0lBQ2hJLGlDQUNtRixtQkFBQTtJQUlyRixpQkFBTTs7O0lBTmtELGVBQWtFO0lBQWxFLGdHQUFrRTtJQUM1RyxlQUE4QjtJQUE5QixvREFBOEIsdUNBQUEsMkJBQUE7SUFFTixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLGlDQUFBLHlEQUFBOzs7SUFlbkMsbUNBQThELGNBQUEsZ0JBQUE7SUFFUixZQUE0RDs7SUFBQSxpQkFBUTtJQUN0SCxpQ0FDaUUsbUJBQUE7SUFJbkUsaUJBQU0sRUFBQTs7O0lBTjhDLGVBQTREO0lBQTVELDBGQUE0RDtJQUNsRyxlQUF5QjtJQUF6QiwrQ0FBeUIscUNBQUEsMkJBQUE7SUFFRCxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHlEQUFBOzs7SUFoQnpDLCtCQUE0QyxrQkFBQSxjQUFBLGdCQUFBO0lBR2IsWUFBMkQ7O0lBQUEsaUJBQVE7SUFDNUYsNEJBQTZGLG1CQUFBO0lBSS9GLGlCQUFNLEVBQUE7SUFFUiw4QkFBNEI7SUFDNUIscUdBU1U7SUFDWixpQkFBVTs7O0lBbEJxQixlQUEyRDtJQUEzRCx5RkFBMkQ7SUFDcEMsZUFBMkI7SUFBM0IsaURBQTJCO0lBQ3ZDLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsOEJBQUEseURBQUE7SUFNUCxlQUE0QjtJQUE1QixxREFBNEI7Ozs7SUFXOUQsK0JBQTRDLGtCQUFBLGNBQUEsZ0JBQUE7SUFHWixZQUFzRDs7SUFBQSxpQkFBUTtJQUN4RixzQ0FJK0I7SUFGa0IsZ01BQVUsZUFBQSx3QkFBZ0IsQ0FBQSxJQUFDLHVMQUM5RCxlQUFBLHdCQUFnQixDQUFBLElBRDhDLHFMQUNPLGVBQUEseUJBQWlCLENBQUEsSUFEeEI7SUFHNUUsaUJBQWE7SUFDYiwrQkFFZTtJQUNqQixpQkFBTSxFQUFBO0lBRVIsOEJBQTRCO0lBQzVCLG1DQUErQixlQUFBLGlCQUFBO0lBRUgsYUFBb0Q7O0lBQUEsaUJBQVE7SUFDcEYsdUNBR3NEO0lBQTlCLG1NQUFXLGVBQUEseUJBQWlCLENBQUEsSUFBQztJQUFDLGlCQUFhO0lBQ25FLGdDQUVlO0lBQ2pCLGlCQUFNLEVBQUEsRUFBQTs7O0lBdkJzQixlQUFzRDtJQUF0RCxxRkFBc0Q7SUFDdkMsZUFBaUI7SUFBakIsK0JBQWlCLDZCQUFBLHFDQUFBLHVCQUFBLHNCQUFBLHFDQUFBO0lBTXRCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsK0JBQUEseURBQUE7SUFRWCxlQUFvRDtJQUFwRCxvRkFBb0Q7SUFDckMsZUFBaUI7SUFBakIsK0JBQWlCLDZCQUFBLDRCQUFBLHVCQUFBLG1DQUFBLHNCQUFBO0lBSXBCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNkJBQUEseURBQUE7OztJQU96QywrQkFBc0QsZ0JBQUE7SUFDbEIsWUFBcUQ7O0lBQUEsaUJBQVE7SUFDL0YsNEJBQ29CLG1CQUFBO0lBYXRCLGlCQUFNOzs7SUFmOEIsZUFBcUQ7SUFBckQsbUZBQXFEO0lBQzlCLGVBQW9DO0lBQXBDLDBEQUFvQztJQVd6RCxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLHVDQUFBLHdEQUFBOzs7SUFJckMsK0JBQXNELGdCQUFBO0lBQzNCLFlBQXFEOztJQUFBLGlCQUFRO0lBQ3RGLCtCQUF1QztJQUNyQyxxQ0FDMEQ7SUFDNUQsaUJBQU07SUFDTiwrQkFFZTtJQUNqQixpQkFBTTs7O0lBUnFCLGVBQXFEO0lBQXJELDRGQUFxRDtJQUVsQixlQUF3QjtJQUF4Qiw4Q0FBd0Isb0NBQUE7SUFHaEQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3Qiw4QkFBQSx5REFBQTs7OztJQUlyQywrQkFBNEMsa0JBQUEsY0FBQSxnQkFBQTtJQUlmLFlBQXNEOztJQUFBLGlCQUFRO0lBQ3JGLHNDQUdzRztJQURyQyxnTUFBVSxlQUFBLHdCQUFnQixDQUFBLElBQUMsdUxBQzlFLGVBQUEsd0JBQWdCLENBQUEsSUFEOEQscUxBQ1QsZUFBQSx5QkFBaUIsQ0FBQSxJQURSO0lBRTVGLGlCQUFhO0lBQ2IsK0JBRWU7SUFDakIsaUJBQU0sRUFBQTtJQUVSLDhCQUE0QjtJQUM1QixtQ0FBK0IsZUFBQSxpQkFBQTtJQUVOLGFBQW9EOztJQUFBLGlCQUFRO0lBQ2pGLHVDQUk0QztJQUQxQyxpTUFBVSxlQUFBLG9DQUE0QixDQUFBLElBQUMsc0xBQWtDLGVBQUEseUJBQWlCLENBQUEsSUFBbkQseUxBQzNCLGVBQUEscUNBQTRCLENBQUEsSUFERDtJQUNHLGlCQUFhO0lBQ3pELGdDQUVlO0lBQ2pCLGlCQUFNLEVBQUEsRUFBQTs7O0lBdkJtQixlQUFzRDtJQUF0RCxxRkFBc0Q7SUFDdkMsZUFBaUI7SUFBakIsK0JBQWlCLDZCQUFBLGtDQUFBLHVCQUFBLHFDQUFBLHNCQUFBO0lBS25CLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNEJBQUEseURBQUE7SUFRZCxlQUFvRDtJQUFwRCxvRkFBb0Q7SUFDckMsZUFBaUI7SUFBakIsK0JBQWlCLDRCQUFBLDZCQUFBLHVCQUFBLGdDQUFBLHNCQUFBO0lBS2pCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsMEJBQUEseURBQUE7OztJQU96QywrQkFBMEcsa0JBQUEsY0FBQSxnQkFBQTtJQWM5RSxZQUF3RDs7SUFBQSxpQkFBUTtJQUN0Riw0QkFBdUYsbUJBQUE7SUFJekYsaUJBQU0sRUFBQSxFQUFBOzs7SUFMa0IsZUFBd0Q7SUFBeEQsb0ZBQXdEO0lBQ2pDLGVBQXdCO0lBQXhCLDhDQUF3QjtJQUNqQyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLDJCQUFBLHdEQUFBOzs7SUFpQnpDLCtCQUFzRCxnQkFBQTtJQUN0QixZQUEwRDs7SUFBQSxpQkFBUTtJQUNoRywrQkFBdUM7SUFDckMscUNBQzBELG1CQUFBO0lBSTVELGlCQUFNLEVBQUE7OztJQVB3QixlQUEwRDtJQUExRCx3RkFBMEQ7SUFFdkIsZUFBd0I7SUFBeEIsOENBQXdCLHlDQUFBO0lBRW5ELGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsbUNBQUEseURBQUE7OztJQUt2QywrQkFBc0QsZ0JBQUE7SUFDckIsWUFBcUQ7O0lBQUEsaUJBQVE7SUFDNUYsNEJBQTBHLG1CQUFBO0lBYTVHLGlCQUFNOzs7SUFkMkIsZUFBcUQ7SUFBckQsbUZBQXFEO0lBQzlCLGVBQWlDO0lBQWpDLHVEQUFpQztJQVVuRCxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLG9DQUFBLHdEQUFBOzs7SUFJckMsK0JBQTRGLGtCQUFBLGNBQUEsZ0JBQUE7SUFHakUsWUFBb0Q7O0lBQUEsaUJBQVE7SUFDakYsb0NBQ2lDLG1CQUFBO0lBSW5DLGlCQUFNLEVBQUE7SUFFUixtQ0FBdUQsY0FBQSxpQkFBQTtJQUVPLGFBQWdEOztJQUFBLGlCQUFRO0lBQ2xILGtDQUNxRixvQkFBQTtJQUl2RixpQkFBTSxFQUFBLEVBQUE7OztJQWhCaUIsZUFBb0Q7SUFBcEQsbUZBQW9EO0lBQ3hDLGVBQXVCO0lBQXZCLDZDQUF1QixrQkFBQTtJQUVwQixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLDBCQUFBLHlEQUFBO0lBT3VCLGVBQWdEO0lBQWhELGdGQUFnRDtJQUM5RixlQUEwQjtJQUExQixnREFBMEIseUNBQUEsMkJBQUE7SUFFRixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLG1DQUFBLHlEQUFBOzs7SUFNekMsK0JBQXNELGdCQUFBO0lBQ2YsWUFBMkQ7O0lBQUEsaUJBQVE7SUFFeEcsa0NBQzJDLG1CQUFBO0lBTTdDLGlCQUFNOzs7SUFUaUMsZUFBMkQ7SUFBM0QseUZBQTJEO0lBRTdCLGVBQXVDO0lBQXZDLDZEQUF1QztJQUl0RSxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLDBDQUFBLHdEQUFBOzs7SUFLbkMsaUNBQTZGO0lBQUEsWUFBOEQ7O0lBQUEsaUJBQVE7O0lBQXRFLGVBQThEO0lBQTlELDRGQUE4RDs7O0lBQzNKLGlDQUE2RjtJQUFBLFlBQThEOztJQUFBLGlCQUFROztJQUF0RSxlQUE4RDtJQUE5RCw0RkFBOEQ7OztJQUY3SiwrQkFBbUY7SUFDakYsNEZBQW1LLCtFQUFBO0lBRW5LLGlDQUNxRixtQkFBQTtJQUl2RixpQkFBTTs7O0lBUHVELGVBQWdDO0lBQWhDLDJEQUFnQztJQUNoQyxlQUFnQztJQUFoQywyREFBZ0M7SUFDL0UsZUFBc0M7SUFBdEMsNERBQXNDLHlDQUFBLDJCQUFBO0lBRWQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixtQ0FBQSx5REFBQTs7O0lBS3JDLCtCQUNrQyxnQkFBQTtJQUN3QixZQUF3RTs7SUFBQSxpQkFBUTtJQUN4SSxpQ0FDb0YsbUJBQUE7SUFJdEYsaUJBQU07OztJQU5vRCxlQUF3RTtJQUF4RSxzR0FBd0U7SUFDcEgsZUFBcUM7SUFBckMsMkRBQXFDLHdDQUFBLDJCQUFBO0lBRWIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixrQ0FBQSx5REFBQTs7O0lBSXJDLCtCQUNnQyxnQkFBQTtJQUN3QixZQUFtRTs7SUFBQSxpQkFBUTtJQUNqSSxpQ0FDbUYsbUJBQUE7SUFJckYsaUJBQU07OztJQU5rRCxlQUFtRTtJQUFuRSxpR0FBbUU7SUFDN0csZUFBbUM7SUFBbkMseURBQW1DLHVDQUFBLDJCQUFBO0lBRVgsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixpQ0FBQSx5REFBQTs7O0lBSXJDLCtCQUF1RCxnQkFBQTtJQUN6QixZQUMxQjs7SUFBQSxxQkFBSTtJQUFDLFlBQ1A7O0lBQUEsaUJBQVE7SUFDUiwrQkFBdUM7SUFDckMscUNBQzBELG1CQUFBO0lBSTVELGlCQUFNLEVBQUE7OztJQVRzQixlQUMxQjtJQUQwQiw0RkFDMUI7SUFBSyxlQUNQO0lBRE8seUdBQ1A7SUFFK0QsZUFBd0I7SUFBeEIsOENBQXdCLHVDQUFBO0lBRWpELGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsaUNBQUEseURBQUE7Ozs7SUFLdkMsK0JBQ3VHLGlCQUFBO0lBQ3JFLFlBQXlEOztJQUFBLGlCQUFRO0lBQ2pHLDJCQUFLLHNCQUFBO0lBR2dFLGdNQUFXLGVBQUEsMEJBQWlCLENBQUEsSUFBQztJQUNoRyxpQkFBYTtJQUNiLCtCQUVpQjtJQUNuQixpQkFBTSxFQUFBOzs7SUFUMEIsZUFBeUQ7SUFBekQsd0ZBQXlEO0lBRTNFLGVBQWlCO0lBQWpCLCtCQUFpQiwyQ0FBQSx1QkFBQSxzQkFBQTtJQUlPLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IscUNBQUEseURBQUE7OztJQUt2QywrQkFBdUQsaUJBQUE7SUFDOUIsWUFDdkI7O0lBQUEsaUJBQVE7SUFBQSxxQkFBSTtJQUNaLGdDQUE2RDtJQUMzRCxzQ0FDMEQsNEJBQUE7SUFFNUQsaUJBQU0sRUFBQTs7O0lBTmlCLGVBQ3ZCO0lBRHVCLDBGQUN2QjtJQUUwRCxlQUF3QjtJQUF4Qiw4Q0FBd0Isa0NBQUE7SUFFOUQsZUFBeUI7SUFBekIsK0NBQXlCOzs7SUFXL0Msb0NBQWdFLGNBQUE7SUFFNUQsMEJBQXlCO0lBQzNCLGlCQUFVLEVBQUE7OztJQUVaLG9DQUFnRSxjQUFBO0lBRTVELDBCQUF5QjtJQUMzQixpQkFBVSxFQUFBOzs7SUFFWixvQ0FBZ0UsY0FBQTtJQUU1RCwwQkFBeUI7SUFDM0IsaUJBQVUsRUFBQTs7O0lBRVosb0NBQStELGNBQUE7SUFFM0QsMEJBQXlCO0lBQzNCLGlCQUFVLEVBQUE7OztJQUVaLG9DQUErRCxjQUFBO0lBRTNELDBCQUF5QjtJQUMzQixpQkFBVSxFQUFBOzs7SUFFWiwrQkFBcUUsbUJBQUE7SUFHakUsMkJBQ007O0lBRU4sMkJBQ007O0lBQ04sMkJBQ007O0lBQ04sMkJBQ007O0lBQ04sNEJBQ007O0lBQ04sNEJBQ007O0lBQ1IsaUJBQVUsRUFBQTs7O0lBYkgsZUFBaUM7SUFBakMsb0ZBQWlDO0lBR2pDLGVBQW9FO0lBQXBFLCtIQUFvRTtJQUVwRSxlQUFzRTtJQUF0RSxrSUFBc0U7SUFFdEUsZUFBcUU7SUFBckUsaUlBQXFFO0lBRXJFLGVBQXFFO0lBQXJFLGtJQUFxRTtJQUVyRSxlQUFtRTtJQUFuRSxpSUFBbUU7OztJQUs1RSwrQkFBcUUsbUJBQUE7SUFHakUsMkJBQ007O0lBRU4sMkJBQ007O0lBQ04sMkJBQ007O0lBQ04sMkJBRU07O0lBQ04sNEJBQ007O0lBQ1IsaUJBQVUsRUFBQTs7O0lBWkgsZUFBbUM7SUFBbkMsc0ZBQW1DO0lBR25DLGVBQXNFO0lBQXRFLGlJQUFzRTtJQUV0RSxlQUF3RTtJQUF4RSxtSUFBd0U7SUFFeEUsZUFBdUU7SUFBdkUsbUlBQXVFO0lBR3ZFLGVBQXVFO0lBQXZFLG9JQUF1RTs7O0lBSTlFLCtCQUF1RyxtQkFBQSxjQUFBLGlCQUFBO0lBSWpHLFlBQ0Y7O0lBQUEsaUJBQVE7SUFDUixxQ0FFZ0IsbUJBQUE7SUFJbEIsaUJBQU0sRUFBQSxFQUFBOzs7SUFSRixlQUNGO0lBREUsb0dBQ0Y7SUFDb0MsZUFBMEI7SUFBMUIsZ0RBQTBCLGtCQUFBO0lBRzFCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNkJBQUEseURBQUE7OztJQU92QyxvQ0FBdUcsY0FBQSxnQkFBQTtJQUU5RSxZQUFnRDs7SUFBQSxpQkFBUTtJQUM3RSxvQ0FDa0UsbUJBQUE7SUFJcEUsaUJBQU0sRUFBQTs7O0lBTmlCLGVBQWdEO0lBQWhELDhFQUFnRDtJQUNwQyxlQUF1QjtJQUF2Qiw4Q0FBdUIsa0JBQUE7SUFFcEIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLCtDQUF3QiwyQkFBQSwwREFBQTs7O0lBS3ZDLG9DQUFtRixjQUFBLGdCQUFBO0lBRXJCLFlBQTRDOztJQUFBLGlCQUFRO0lBQzlHLGlDQUNxRixtQkFBQTtJQUl2RixpQkFBTSxFQUFBOzs7SUFOc0QsZUFBNEM7SUFBNUMsMEVBQTRDO0lBQzFGLGVBQTBCO0lBQTFCLGlEQUEwQiwwQ0FBQSwyQkFBQTtJQUVGLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3QywrQ0FBd0Isb0NBQUEsMERBQUE7OztJQWdCckMsb0NBQXFHLGNBQUEsaUJBQUE7SUFFeEMsWUFBMkQ7O0lBQUEsaUJBQVE7SUFDOUgscUNBQ2dCLG1CQUFBO0lBSWxCLGlCQUFNLEVBQUE7OztJQU51RCxlQUEyRDtJQUEzRCx5RkFBMkQ7SUFDbEYsZUFBMEI7SUFBMUIsaURBQTBCLGtCQUFBO0lBRTFCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3QywrQ0FBd0IsOEJBQUEsMERBQUE7OztJQXJDekMsK0JBQXFFO0lBQ25FLHNHQVNVLHlGQUFBLHlGQUFBO0lBZ0NaLGlCQUFVOzs7SUF6Q2tFLGVBQTJCO0lBQTNCLG9EQUEyQjtJQVUvQyxlQUEyQjtJQUEzQixvREFBMkI7SUFxQnJFLGVBQStEO0lBQS9ELGdHQUErRDs7O0lBVzdFLCtCQUF1RCxpQkFBQTtJQUN6QixZQUMxQjs7SUFBQSxxQkFBSTtJQUFDLFlBQ1A7O0lBQUEsaUJBQVE7SUFDUixnQ0FBb0Q7SUFDbEQsc0NBQzBELDRCQUFBOztJQUc1RCxpQkFBTTtJQUNOLGdDQUVlO0lBQ2pCLGlCQUFNOzs7SUFad0IsZUFDMUI7SUFEMEIsNkZBQzFCO0lBQUssZUFDUDtJQURPLHlHQUNQO0lBRStELGVBQXdCO0lBQXhCLDhDQUF3Qix1Q0FBQTtJQUVuRSxlQUF3RTtJQUF4RSw0R0FBd0U7SUFHeEQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixpQ0FBQSx5REFBQTs7OztJQUlyQywrQkFDdUcsaUJBQUE7SUFDckUsWUFBeUQ7O0lBQUEsaUJBQVE7SUFDakcsMkJBQUssc0JBQUE7SUFHZ0UsZ01BQVcsZUFBQSwwQkFBaUIsQ0FBQSxJQUFDO0lBQ2hHLGlCQUFhO0lBQ2IsK0JBRWlCO0lBQ25CLGlCQUFNLEVBQUE7OztJQVQwQixlQUF5RDtJQUF6RCx3RkFBeUQ7SUFFM0UsZUFBaUI7SUFBakIsK0JBQWlCLDJDQUFBLHVCQUFBLHNCQUFBO0lBSU8sZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixxQ0FBQSx5REFBQTs7O0lBS3ZDLCtCQUFxRixpQkFBQTtJQUMzRCxZQUFzRDs7SUFBQSxpQkFBUTtJQUN0RiwrQkFBdUM7SUFDckMsc0NBQzBELG1CQUFBO0lBSTVELGlCQUFNLEVBQUE7OztJQVBrQixlQUFzRDtJQUF0RCxvRkFBc0Q7SUFFbkIsZUFBd0I7SUFBeEIsOENBQXdCLG1DQUFBO0lBRTdDLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNkJBQUEseURBQUE7OztJQUt2QywrQkFBc0UsbUJBQUEsY0FBQSxpQkFBQTtJQUd0QyxZQUFpRTs7SUFBQSxpQkFBUTtJQUNuRyxxQ0FFZ0IsbUJBQUE7SUFJbEIsaUJBQU0sRUFBQTtJQUVSLG9DQUFvQyxjQUFBLGtCQUFBO0lBRUwsYUFBNEQ7O0lBQUEsaUJBQVE7SUFDL0Ysc0NBQ2dCLG9CQUFBO0lBSWxCLGlCQUFNLEVBQUE7SUFHUixnQ0FBUyxlQUFBLGtCQUFBO0lBRXFCLGFBQWtFOztJQUFBLGlCQUFRO0lBQ3BHLHNDQUVnQixvQkFBQTtJQUlsQixpQkFBTSxFQUFBLEVBQUE7OztJQTdCc0IsZUFBaUU7SUFBakUsZ0dBQWlFO0lBQ3JELGVBQTRCO0lBQTVCLGtEQUE0QixrQkFBQTtJQUc5QixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHlEQUFBO0lBT1IsZUFBNEQ7SUFBNUQsNEZBQTREO0lBQ2hELGVBQXFCO0lBQXJCLG1DQUFxQixzQ0FBQTtJQUV4QixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLGdDQUFBLHlEQUFBO0lBUVQsZUFBa0U7SUFBbEUsa0dBQWtFO0lBQ3RELGVBQTRCO0lBQTVCLGtEQUE0QixrQkFBQTtJQUc5QixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHlEQUFBOzs7O0lBT3pDLCtCQUFzRSxtQkFBQSxjQUFBLGlCQUFBO0lBR25DLFlBQWlFOztJQUFBLGlCQUFRO0lBQ3RHLHVDQUd3RTtJQUhoQixrTUFBVSxlQUFBLHlCQUFnQixDQUFBLElBQUMseUxBQ3JFLGVBQUEseUJBQWdCLENBQUEsSUFEcUQsdUxBRzlCLGVBQUEsMEJBQWlCLENBQUEsSUFIYTtJQUluRixpQkFBYTtJQUNiLCtCQUVlO0lBQ2pCLGlCQUFNLEVBQUE7SUFHUixvQ0FBb0MsY0FBQSxrQkFBQTtJQUVMLGFBQStEOztJQUFBLGlCQUFRO0lBQ2xHLHdDQUdnQztJQUE5QixxTUFBVyxlQUFBLDBCQUFpQixDQUFBLElBQUM7SUFDL0IsaUJBQWE7SUFDYixnQ0FFZTtJQUNqQixpQkFBTSxFQUFBO0lBRVIsZ0NBQVMsZUFBQSxrQkFBQTtJQUcwQixhQUErRDs7SUFBQSxpQkFBUTtJQUN0Ryx3Q0FFaUc7SUFBOUIscU1BQVcsZUFBQSwwQkFBaUIsQ0FBQSxJQUFDO0lBQ2hHLGlCQUFhO0lBQ2IsZ0NBRWU7SUFDakIsaUJBQU0sRUFBQSxFQUFBOzs7SUFwQ3lCLGVBQWlFO0lBQWpFLGdHQUFpRTtJQUNsRixlQUFpQjtJQUFqQiwrQkFBaUIsd0NBQUEsdUJBQUEsc0JBQUE7SUFLTyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLGtDQUFBLHlEQUFBO0lBUVIsZUFBK0Q7SUFBL0QsK0ZBQStEO0lBQzlFLGVBQWlCO0lBQWpCLCtCQUFpQixzQ0FBQSx1QkFBQSw0QkFBQSxzQkFBQTtJQUtPLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsZ0NBQUEseURBQUE7SUFRSixlQUErRDtJQUEvRCwrRkFBK0Q7SUFDbEYsZUFBaUI7SUFBakIsK0JBQWlCLCtDQUFBLHVCQUFBLHNCQUFBO0lBSU8sZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3Qix5Q0FBQSx5REFBQTs7O0lBTXpDLCtCQUE4RSxpQkFBQTtJQUNuRCxZQUFvRDs7SUFBQSxpQkFBUTtJQUNyRiwrQkFBdUM7SUFDckMsc0NBQzBELG1CQUFBO0lBSTVELGlCQUFNLEVBQUE7OztJQVBtQixlQUFvRDtJQUFwRCxrRkFBb0Q7SUFFakIsZUFBd0I7SUFBeEIsOENBQXdCLG9DQUFBO0lBRTlDLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsOEJBQUEseURBQUE7Ozs7SUFNdkMsK0JBQ2dDLGlCQUFBO0lBQ0QsWUFBeUQ7O0lBQUEsaUJBQVE7SUFDOUYsMkJBQUssc0JBQUE7SUFHZ0UsZ01BQVcsZUFBQSwwQkFBaUIsQ0FBQSxJQUFDO0lBQ2hHLGlCQUFhO0lBQ2IsK0JBRWlCO0lBQ25CLGlCQUFNLEVBQUE7OztJQVR1QixlQUF5RDtJQUF6RCx3RkFBeUQ7SUFFeEUsZUFBaUI7SUFBakIsK0JBQWlCLHdDQUFBLHVCQUFBLHNCQUFBO0lBSU8sZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixrQ0FBQSx5REFBQTs7O0lBS3JDLCtCQUErRSxpQkFBQTtJQUNuRCxZQUFxRDs7SUFBQSxxQkFBTTtJQUNyRixZQUErRDs7SUFBQSxpQkFBUTtJQUN6RSxnQ0FBb0Q7SUFDbEQsc0NBQzBELDRCQUFBOztJQUc1RCxpQkFBTTtJQUNOLGdDQUVlO0lBQ2pCLGlCQUFNOzs7SUFYd0IsZUFBcUQ7SUFBckQsNkZBQXFEO0lBQy9FLGVBQStEO0lBQS9ELHdHQUErRDtJQUVGLGVBQXdCO0lBQXhCLDhDQUF3Qix1Q0FBQTtJQUVuRSxlQUF3RTtJQUF4RSw0R0FBd0U7SUFHeEQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixpQ0FBQSx5REFBQTs7OztJQUtyQywrQkFDK0IsaUJBQUE7SUFDRyxZQUF5RDs7SUFBQSxpQkFBUTtJQUVqRywyQkFBSyxzQkFBQTtJQUdnRSxnTUFBVyxlQUFBLDBCQUFpQixDQUFBLElBQUM7SUFDaEcsaUJBQWE7SUFDYiwrQkFFaUI7SUFDbkIsaUJBQU0sRUFBQTs7O0lBVjBCLGVBQXlEO0lBQXpELHdGQUF5RDtJQUczRSxlQUFpQjtJQUFqQiwrQkFBaUIsMkNBQUEsdUJBQUEsc0JBQUE7SUFJTyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLHFDQUFBLHlEQUFBOzs7SUF1R3JDLCtCQUEyRCxpQkFBQTtJQUNuQyxZQUF5RTs7SUFBQSxpQkFBUTtJQUN2RyxtQ0FDYyxtQkFBQTtJQUloQixpQkFBTTs7O0lBTmtCLGVBQXlFO0lBQXpFLHVHQUF5RTtJQUM1QyxlQUF3QjtJQUF4QiwrQ0FBd0I7SUFFdkMsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLCtDQUF3Qiw0QkFBQSx5REFBQTs7O0lBdkNyQywyQkFBcUcsY0FBQSxTQUFBO0lBRTdGLFlBQXNFOztJQUFBLGlCQUFLLEVBQUE7SUFFakYsK0JBQW1CLFlBQUE7SUFDVixZQUF5RTs7SUFBQSxpQkFBUSxFQUFBO0lBRTVGLCtCQUFtQixrQkFBQTtJQUNRLGFBQXVFOztJQUFBLGlCQUFRO0lBQ3hHLHVDQUMwRCxvQkFBQTtJQUk1RCxpQkFBTTtJQUVOLGdDQUFtQixrQkFBQTtJQUNTLGFBQW9FOztJQUFBLGlCQUFRO0lBQ3RHLHVDQUMwRCxvQkFBQTtJQUk1RCxpQkFBTTtJQUNOLGdDQUFtQixrQkFBQTtJQUNTLGFBQzFCOztJQUFBLGlCQUFRO0lBQ1IsZ0NBQXVDO0lBQ3JDLHVDQUMwRCxvQkFBQTtJQUk1RCxpQkFBTSxFQUFBO0lBRVIsMEZBT007SUFTUixpQkFBTTs7O0lBakRJLGVBQXNFO0lBQXRFLHFHQUFzRTtJQUduRSxlQUF5RTtJQUF6RSx3R0FBeUU7SUFHekQsZUFBdUU7SUFBdkUsdUdBQXVFO0lBQ3RDLGVBQTRCO0lBQTVCLGtEQUE0QixvQ0FBQTtJQUVsRCxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLDhCQUFBLHlEQUFBO0lBTVQsZUFBb0U7SUFBcEUsb0dBQW9FO0lBQ25DLGVBQTRCO0lBQTVCLGtEQUE0QixxQ0FBQTtJQUVuRCxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHlEQUFBO0lBS1QsZUFDMUI7SUFEMEIsd0hBQzFCO0lBRTZELGVBQXdCO0lBQXhCLDhDQUF3QixxQ0FBQTtJQUUvQyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHlEQUFBO0lBS25CLGVBQXFDO0lBQXJDLHlEQUFxQzs7O0lBaUN2RCwrQkFBNEQsaUJBQUE7SUFHeEMsWUFBMEU7O0lBQUEsaUJBQVE7SUFDcEcsNkJBQXlGLG1CQUFBO0lBSTNGLGlCQUFNOzs7SUFMYyxlQUEwRTtJQUExRSx3R0FBMEU7SUFDOUMsZUFBeUI7SUFBekIsZ0RBQXlCO0lBQ25DLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3QywrQ0FBd0IsNkJBQUEseURBQUE7OztJQWxCekMsK0JBQXlHLGtCQUFBLGNBQUEsaUJBQUE7SUFJN0UsWUFBK0U7O0lBQUEsaUJBQVE7SUFDN0csK0JBQXVDO0lBQ3JDLHNDQUMwRCxtQkFBQTtJQUk1RCxpQkFBTSxFQUFBO0lBRVIsNEZBUU07SUFDUixpQkFBVSxFQUFBOzs7SUFsQmdCLGVBQStFO0lBQS9FLDZHQUErRTtJQUV2QyxlQUF3QjtJQUF4Qiw4Q0FBd0Isc0NBQUE7SUFFaEQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixnQ0FBQSx5REFBQTtJQUtuQixlQUFzQztJQUF0QywwREFBc0M7OztJQWtDL0QsK0JBQytCLGtCQUFBLGNBQUEsaUJBQUE7SUFHSSxZQUFnRTs7SUFBQSxpQkFBUTtJQUNwRyw2QkFBbUcsbUJBQUE7SUFJckcsaUJBQU0sRUFBQSxFQUFBOzs7SUFMd0IsZUFBZ0U7SUFBaEUsOEZBQWdFO0lBQ3pDLGVBQThCO0lBQTlCLG9EQUE4QjtJQUM3QyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLGlDQUFBLHdEQUFBOzs7SUFjdkMsK0JBQXNELFlBQUE7SUFDN0MsWUFBeUU7O0lBQUEsaUJBQVEsRUFBQTs7SUFBakYsZUFBeUU7SUFBekUsdUdBQXlFOzs7SUFhNUUsMEJBQXlILFNBQUEsaUJBQUE7SUFFOUUsWUFBNkM7SUFBQSxpQkFBUSxFQUFBO0lBRTlGLDBCQUFJO0lBQ0YscUNBQ2dCO0lBQ2xCLGlCQUFLLEVBQUE7Ozs7O0lBTEksZUFBOEI7SUFBOUIsaURBQThCO0lBQUUsZUFBNkM7SUFBN0Msb0VBQTZDO0lBR3JFLGVBQWtDO0lBQWxDLHFEQUFrQyxVQUFBLGtCQUFBOzs7SUFQdkQsa0NBQ3NCO0lBQ3BCLHFHQVFLO0lBQ1QsMEJBQWU7Ozs7O0lBVlgsc0NBQW1CO0lBQ2QsZUFBa0g7SUFBbEgseUpBQWtIOzs7O0lBVTNILDBCQUErRCxjQUFBO0lBRTNELGlDQUVlO0lBQ2pCLGlCQUFLLEVBQUE7OztJQUhRLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUFDLGdEQUF5QixrQ0FBQSxzQ0FBQTs7O0lBdkIvRCwrQkFBMkgsWUFBQTtJQUNsSCxZQUErRDs7SUFBQSxpQkFBUTtJQUM5RSxrQ0FBb0IsU0FBQSxjQUFBO0lBRWdCLFlBQ2hDOztJQUFBLGlCQUFLO0lBQ0wsMEJBQUk7SUFBQSxhQUFvRTs7SUFBQSxpQkFBSyxFQUFBO0lBRWpGLG1DQUE4QztJQUM1Qyw2R0FXYSwwRUFBQTtJQVFqQiwwQkFBZTtJQUNiLGlCQUFRLEVBQUE7OztJQTVCRCxlQUErRDtJQUEvRCw2RkFBK0Q7SUFHbEMsZUFDaEM7SUFEZ0MsNEdBQ2hDO0lBQ0ksZUFBb0U7SUFBcEUsbUdBQW9FO0lBR2pDLGVBQTZCO0lBQTdCLDBEQUE2QjtJQVluRSxlQUF3RDtJQUF4RCxnSUFBd0Q7OztJQVdqRSwrQkFBc0QsaUJBQUE7SUFDN0IsWUFBc0Q7O0lBQUEsaUJBQVE7SUFDckYsMkJBQUs7SUFDSCxzQ0FDdUM7SUFDekMsaUJBQU07SUFDTiwrQkFDOEM7SUFDaEQsaUJBQU07OztJQVBtQixlQUFzRDtJQUF0RCxvRkFBc0Q7SUFFdkMsZUFBd0I7SUFBeEIsOENBQXdCLGtDQUFBO0lBRzFCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNEJBQUEseURBQUE7Ozs7SUFVdkMsdUNBQXNLO0lBQTFHLDZMQUFTLGVBQUEsZUFBTSxDQUFBLElBQUMsNExBQTJELGVBQUEsZUFBTSxDQUFBLElBQWpFLDRMQUFrRixlQUFBLGVBQU0sQ0FBQSxJQUF4RjtJQUMxRSxZQUFpRDs7SUFBQSxpQkFBYTs7SUFBOUQsZUFBaUQ7SUFBakQseUZBQWlEOzs7O0lBQ25ELHVDQUNvRDtJQURRLDZMQUFTLGVBQUEsY0FBSyxDQUFBLElBQUMsNExBQTRELGVBQUEsY0FBSyxDQUFBLElBQWpFLDRMQUFrRixlQUFBLGNBQUssQ0FBQSxJQUF2Rjs7SUFDdEIsWUFDckQ7O0lBQUEsaUJBQWE7O0lBRFgscUVBQWlEO0lBQUUsZUFDckQ7SUFEcUQsd0ZBQ3JEOzs7O0lBdCtCTixnQ0FBNEMsY0FBQSxpQkFBQSxhQUFBO0lBSXBDLGdGQTRCTSxtRUFBQSxvRUFBQSxvRUFBQSxtRUFBQSxvRUFBQSxzRUFBQSxzRUFBQSwrRUFBQSwrRUFBQSw2RUFBQSxzRUFBQSwrRUFBQSxzRUFBQSwrRUFBQSwrRUFBQSxzRUFBQSxzRUFBQSwrRUFBQSw4RUFBQSxzRUFBQSxzRUFBQSwrRUFBQSxzRUFBQSxzRUFBQSxzRUFBQSxzRUFBQSx1RUFBQSxzRUFBQSxxRUFBQTtJQWdiTixnQ0FFZTtJQUNqQixpQkFBTSxFQUFBO0lBRVIsbUNBQWdHLGNBQUE7SUFHNUYsMkZBSVUsOEVBQUEsOEVBQUEsOEVBQUEsOEVBQUEsK0VBQUEsK0VBQUEsOEVBQUEsNkVBQUEsdUVBQUEsc0VBQUEsc0VBQUEsK0VBQUEsK0VBQUEsc0VBQUEsc0VBQUEsdUVBQUEsc0VBQUEsdUVBQUEsK0VBQUEsOEVBQUEscUVBQUEsdUVBQUE7SUFxZlYsaUJBQU07SUFDTixtRkFRTTtJQUVWLGlCQUFVLEVBQUE7SUFFWixnQ0FBUyxtQkFBQSxzQkFBQTtJQUV5RiwrS0FBUyxlQUFBLHVCQUFjLEtBQUssQ0FBQyxDQUFBLElBQUMsOEtBQWdCLGVBQUEsdUJBQWMsS0FBSyxDQUFDLENBQUEsSUFBcEMsOEtBQXFELGVBQUEsdUJBQWMsS0FBSyxDQUFDLENBQUEsSUFBekU7SUFDN0csYUFBbUQ7O0lBQUEsaUJBQWE7SUFDL0UsaUdBQ2dFLG9GQUFBO0lBSWxFLGlCQUFVLEVBQUEsRUFBQTs7O0lBbitCYyxlQUEwQjtJQUExQixrREFBMEI7SUE2QnpCLGVBQTRCO0lBQTVCLHNGQUE0QjtJQUk3QixlQUEyQjtJQUEzQixtREFBMkI7SUFVM0IsZUFBeUQ7SUFBekQsMEZBQXlEO0lBV3pELGVBQXlEO0lBQXpELDBGQUF5RDtJQWtCdEIsZUFBZ0M7SUFBaEMsMERBQWdDO0lBUW5FLGVBQWdDO0lBQWhDLDBEQUFnQztJQVFoQyxlQUFnQztJQUFoQywwREFBZ0M7SUFZMUMsZUFBZ0M7SUFBaEMsMERBQWdDO0lBNkJoQyxlQUErQztJQUEvQyxnRkFBK0M7SUFxQi9DLGVBQXlEO0lBQXpELDBGQUF5RDtJQU0vQyxlQUFnQztJQUFoQywwREFBZ0M7SUFTMUMsZUFBeUQ7SUFBekQsMEZBQXlEO0lBdUIvQyxlQUFnQztJQUFoQywwREFBZ0M7SUFRMUMsZUFBZ0M7SUFBaEMsMERBQWdDO0lBc0JoQyxlQUFnQztJQUFoQywwREFBZ0M7SUE4QnRCLGVBQWdDO0lBQWhDLDBEQUFnQztJQWlCaEMsZUFBZ0M7SUFBaEMsMERBQWdDO0lBVTFDLGVBQWdDO0lBQWhDLDBEQUFnQztJQStCaEMsZUFBOEY7SUFBOUYscUlBQThGO0lBaUNwRixlQUFnQztJQUFoQywwREFBZ0M7SUFVaEMsZUFBZ0M7SUFBaEMsMERBQWdDO0lBZ0IxQyxlQUFnRjtJQUFoRiwwSEFBZ0Y7SUFzQnRFLGVBQWdDO0lBQWhDLDBEQUFnQztJQVdoQyxlQUE2RDtJQUE3RCxnR0FBNkQ7SUFVN0QsZUFDVztJQURYLDRKQUNXO0lBUVgsZUFDUztJQURULDRKQUNTO0lBUVQsZUFBZ0M7SUFBaEMsMERBQWdDO0lBYWpELGVBQWtHO0lBQWxHLGdJQUFrRztJQVlqRixlQUFnQztJQUFoQywwREFBZ0M7SUFTaEIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDZDQUF3QiwyQkFBQSx3REFBQTtJQVF6QixlQUEyQjtJQUEzQixtREFBMkI7SUFLM0IsZUFBMkI7SUFBM0IsbURBQTJCO0lBSzNCLGVBQTJCO0lBQTNCLG1EQUEyQjtJQUszQixlQUEwQjtJQUExQixrREFBMEI7SUFLMUIsZUFBMEI7SUFBMUIsa0RBQTBCO0lBSzFCLGVBQXlEO0lBQXpELDRGQUF5RDtJQW1CekQsZUFBeUQ7SUFBekQsNEZBQXlEO0lBaUJ2RCxlQUEyRjtJQUEzRixvSUFBMkY7SUFlN0YsZUFBeUQ7SUFBekQsMEZBQXlEO0lBMkMvQyxlQUFnQztJQUFoQywwREFBZ0M7SUFlakQsZUFBa0c7SUFBbEcsZ0lBQWtHO0lBWWpGLGVBQThEO0lBQTlELDBGQUE4RDtJQVV4RSxlQUEwRDtJQUExRCw2RkFBMEQ7SUFvQzFELGVBQTBEO0lBQTFELDZGQUEwRDtJQTBDaEQsZUFBd0Q7SUFBeEQsMkZBQXdEO0lBV3hELGVBQ1E7SUFEUiw4SkFDUTtJQVlOLGVBQXlEO0lBQXpELDBGQUF5RDtJQWMzRCxlQUNRO0lBRFIsaUlBQ1E7SUE0RXBCLGVBQTZGO0lBQTdGLHFJQUE2RjtJQXVEM0YsZUFBNkY7SUFBN0YscUlBQTZGO0lBK0M5RixlQUNrQjtJQURsQiwwTEFDa0I7SUFtQkwsZUFBZ0M7SUFBaEMsMERBQWdDO0lBR2hDLGVBQXFHO0lBQXJHLGlNQUFxRztJQWdDdkcsZUFBZ0M7SUFBaEMsMERBQWdDO0lBYzFDLGVBQWtCO0lBQWxCLGdDQUFrQjtJQUNmLGVBQW1EO0lBQW5ELDRGQUFtRDtJQUMwQixlQUEwQjtJQUExQixrREFBMEI7SUFFM0IsZUFBMkI7SUFBM0IsbURBQTJCOzs7O0FEaDlCaEksTUFBTSxPQUFPLG9CQUFvQjtJQWdIL0IsWUFDUyxXQUErQixFQUMvQixpQkFBb0MsRUFDcEMsSUFBaUIsRUFDaEIsYUFBNEIsRUFDNUIsTUFBcUIsRUFDdEIsU0FBdUIsRUFDdkIsYUFBNEIsRUFDNUIsRUFBZ0IsRUFDaEIsRUFBYyxFQUNiLEVBQWtCLEVBQ25CLGdCQUFtQztRQVZuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQ2hCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDYixPQUFFLEdBQUYsRUFBRSxDQUFnQjtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBdEhyQyx3QkFBbUIsR0FBUSxFQUFFLENBQUM7UUFDOUIsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFDekIsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBQzVCLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBQzFCLDZCQUF3QixHQUFPLEVBQUUsQ0FBQztRQUNsQyxzQkFBaUIsR0FBTyxFQUFFLENBQUM7UUFDM0IsaUJBQVksR0FBTyxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBTyxFQUFFLENBQUM7UUFDckIsbUJBQWMsR0FBTyxFQUFFLENBQUM7UUFDeEIscUJBQWdCLEdBQU8sRUFBRSxDQUFDO1FBQzFCLHFCQUFnQixHQUFPLEVBQUUsQ0FBQztRQUMxQiwyQkFBc0IsR0FBbUIsRUFBRSxDQUFDO1FBQzVDLHlCQUFvQixHQUFtQixFQUFFLENBQUM7UUFDMUMsa0JBQWEsR0FBTyxFQUFFLENBQUM7UUFDdkIsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBTyxFQUFFLENBQUM7UUFDbkIsNEJBQXVCLEdBQW1CLEVBQUUsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBTyxFQUFFLENBQUM7UUFDNUIsMkJBQXNCLEdBQU8sRUFBRSxDQUFDO1FBQ2hDLDRCQUF1QixHQUFPLEVBQUUsQ0FBQztRQWNqQyxhQUFRLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUFPLEVBQUUsQ0FBQztRQUV4QiwyQkFBc0IsR0FBTyxFQUFFLENBQUM7UUFFaEMsOEJBQXlCLEdBQW1CLEVBQUUsQ0FBQztRQUMvQyw0QkFBdUIsR0FBbUIsRUFBRSxDQUFDO1FBQzdDLCtCQUEwQixHQUFtQixFQUFFLENBQUM7UUFFaEQsWUFBTyxHQUFDLE1BQU0sQ0FBQztRQUNmLGNBQVMsR0FBQyxRQUFRLENBQUM7UUFFbkIsWUFBTyxHQUFFLGlEQUFpRCxDQUFDO1FBQzNELFlBQU8sR0FBQyxpREFBaUQsQ0FBQztRQUMxRCxjQUFTLEdBQUMsbURBQW1ELENBQUM7UUFDOUQsYUFBUSxHQUFDLGtEQUFrRCxDQUFDO1FBQzVELGFBQVEsR0FBQyxrREFBa0QsQ0FBQztRQUM1RCxZQUFPLEdBQUMsaURBQWlELENBQUM7UUFFMUQsY0FBUyxHQUFFLGdEQUFnRCxDQUFDO1FBQzVELGNBQVMsR0FBQyxnREFBZ0QsQ0FBQztRQUMzRCxnQkFBVyxHQUFDLGtEQUFrRCxDQUFDO1FBQy9ELGVBQVUsR0FBQyxpREFBaUQsQ0FBQztRQUM3RCxlQUFVLEdBQUMsaURBQWlELENBQUM7UUFLcEUsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRzFDLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU16Qyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFZdEMscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBR3hDLG9CQUFlLEdBQTJCLElBQUksWUFBWSxFQUFFLENBQUM7UUFTdEQsa0JBQWEsR0FBVSxHQUFHLENBQUM7UUFFM0Isa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFHOUIsb0JBQWUsR0FBRyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQTtRQUNuQyxhQUFRLEdBQWEsQ0FBQyxLQUFhLEVBQUUsRUFBRTtRQUUvQyxDQUFDLENBQUM7SUFlRSxDQUFDO0lBQ0wsUUFBUTtRQUVOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixJQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFDO1lBQzNDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ2hELElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsaUJBQWlCLENBQUM7WUFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQzlDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQzNDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ3RELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQUM7WUFDOUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztZQUNqRSxJQUFJLENBQUMsY0FBYyxHQUFFLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsRCxJQUFJLENBQUMsc0JBQXNCLEdBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN6RCxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1lBQ2hHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxZQUFZLEVBQUUsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDdkg7YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUMxQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUM7WUFDbkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQzNDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUN4QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQztZQUNuRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixDQUFDO1lBQzNELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUM7WUFDOUQsSUFBSSxDQUFDLGNBQWMsR0FBRSxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQy9DLElBQUksQ0FBQyxzQkFBc0IsR0FBRSxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQ3RELE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDN0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwSDtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6RCxJQUFJLEdBQWlDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUYsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLEVBQUU7WUFDM0UsR0FBRyxHQUFHLElBQUksNEJBQTRCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxzQkFBc0IsQ0FBQztTQUNqRzthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7WUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0RBQXNELEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDaEksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsZUFBNkMsQ0FBQztZQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQ2pELElBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUM7Z0JBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdkI7WUFDRCxJQUFHLEdBQUcsQ0FBQyxpQkFBaUIsRUFBQztnQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7YUFDNUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUM7WUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztZQUM5QyxJQUFHLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLHFCQUFxQixJQUFJLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBQztnQkFDdkYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQzthQUN6RTtTQUNGO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQztRQUNyRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxFQUFFLGlCQUFpQixDQUFDO1FBQ2pHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUVqSCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVELElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDO1lBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDbkQ7YUFBSztZQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUdwQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzVDLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDL0QsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztZQUM5SixpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDcEssaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDN0gseUJBQXlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUM3SSxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDN0csV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ2pILG1CQUFtQixFQUFFLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDakksa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDckssaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQzVLLGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFFLEtBQUssSUFBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLEtBQUssS0FBSyxNQUFNLENBQUMsQ0FBQztZQUMzSyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1lBQ3hNLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1lBQzFOLGFBQWEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUcsR0FBRyxDQUFDLENBQUM7WUFDakosaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM1TCxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBRyxLQUFLLENBQUMsQ0FBQztZQUN2SixvQkFBb0IsRUFBQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNyTSxxUUFBcVE7WUFDclEsaU5BQWlOO1lBQ2pOLHNTQUFzUztZQUN0UyxtQkFBbUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUM7WUFDcEQsK1JBQStSO1lBRS9SLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxLQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuTyxvSUFBb0k7WUFDcEksYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUcsS0FBSyxDQUFDLENBQUM7WUFDM0wsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDakssY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDakssVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzNMLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFHLEtBQUssQ0FBQyxDQUFDO1lBQy9MLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQztZQUMvRyw4UEFBOFA7WUFDOVAsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDM0osV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQy9JLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM3SSw2TEFBNkw7WUFDN0wsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUcsS0FBSyxDQUFDLENBQUM7WUFDdEwsc0JBQXNCO1lBQ3RCLDBNQUEwTTtZQUN6TSxxTkFBcU47WUFDck4sZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUNySyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztZQUNsQywyUkFBMlI7WUFDM1IsNEJBQTRCLEVBQUUsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLElBQUksSUFBSSxDQUFDO1lBQ3RFLG9CQUFvQixFQUFFLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQztZQUN0RCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztZQUNoQyxvQkFBb0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUM7WUFDdEQsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1lBQ2xELGFBQWEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUNySCxhQUFhLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDckgsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ3ZILGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQzNILGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUN2SCxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDbkgsc0JBQXNCLEVBQUUsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekksMExBQTBMO1lBQzFMLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDL0gsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzdILG9CQUFvQixFQUFDLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6SyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztZQUN0QyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxSixlQUFlLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM1SixjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxSixpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hLLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVKLHdCQUF3QixFQUFFLENBQUMsR0FBRyxDQUFDLHNCQUFzQixJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5SyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUM7WUFDbEQsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUM7WUFDdEMsZUFBZSxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ3pILGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUN2SCxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDbkgsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ2pILGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1lBQzFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDO1lBQ2xDLGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUM7WUFDOUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUM7WUFDeEMsdUJBQXVCLEVBQUUsQ0FBQyxHQUFHLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDO1lBQzVELG9CQUFvQixFQUFFLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQztZQUN0RCxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUMzSCxvQkFBb0IsRUFBQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekssVUFBVSxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5SCxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztZQUMxQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztZQUMxQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztZQUMxQyxlQUFlLEVBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQztZQUMzQyxrQkFBa0IsRUFBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUM7WUFDakQsZ0JBQWdCLEVBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQztZQUM3QyxXQUFXLEVBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztZQUNuQyxTQUFTLEVBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNwSixpQkFBaUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0MsU0FBUyxFQUFHLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixJQUFJLElBQUksQ0FBQztZQUNqRSxtQkFBbUIsRUFBQyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLENBQUM7WUFDbEQsV0FBVyxFQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1NBQ2pILENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsbUVBQW1FO1lBQ25FLDBDQUEwQztZQUMxQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFDLEVBQUUsR0FBRSxJQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxjQUFjLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLGlCQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7WUFDMUssSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsRixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUNBLENBQUE7UUFFRCx1TEFBdUw7UUFDdkwsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQ0EsQ0FBQTtRQUNBLGdMQUFnTDtRQUNoTCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQ0EsQ0FBQTtRQUdELGdMQUFnTDtRQUNoTCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FDQSxDQUFBO1FBRUMsaUxBQWlMO1FBQ2pMLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUNBLENBQUE7UUFLSCxJQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBQztZQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNuRTtRQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFO1lBQzdDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsS0FBSyxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ3BEO2FBQ0Y7WUFDRCxJQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNqRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUMxQjtTQUNGO1FBQUEsQ0FBQztJQUNKLENBQUM7SUFDRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUcsSUFBSSxFQUFDO1lBQ04sSUFBSSxVQUFVLEdBQXFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDMUQsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFDO2dCQUMzQixJQUFJLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQztnQkFDN0QsSUFBRyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUM7b0JBQzNFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3BEO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCxjQUFjO1FBRVosSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FDaEQsS0FBSyxDQUFDLEVBQUU7WUFDTixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FDaEQsS0FBSyxDQUFDLEVBQUU7WUFDTixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQzNDLEtBQUssQ0FBQyxFQUFFO1lBQ04sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQ0YsQ0FBQztRQUVKLElBQUcsSUFBSSxDQUFDLHVCQUF1QixJQUFHLElBQUk7WUFDbEMsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQXFCLENBQUM7SUFDOUUsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUU7SUFDbkQsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxxQkFBcUI7SUFDckIsd0RBQXdEO0lBQ3hELElBQUk7SUFFSixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFFSCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUVILElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksMEJBQTBCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxJQUFJO0lBRUosdUJBQXVCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxJQUFJO0lBR0osdUJBQXVCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxJQUFJO0lBSUosdUJBQXVCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxJQUFJO0lBRUosSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUdELDBCQUEwQjtJQUMxQiw2REFBNkQ7SUFDN0QsSUFBSTtJQUVKLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUdELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUdELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O1FBRUk7SUFFSixJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBR0QsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBR0QsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUtELDZCQUE2QixDQUFDLEdBQVE7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWU7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFvQztRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLEVBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxRQUFRLENBQUMsSUFBSTtZQUNqRSxHQUFHLEVBQUMsUUFBUSxDQUFDLEdBQUcsRUFBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFDLEtBQUssRUFBQyxRQUFRLENBQUMsS0FBSztZQUNoRixlQUFlLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUk7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQW9DO1FBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUMsT0FBTyxFQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQy9ELEdBQUcsRUFBQyxRQUFRLENBQUMsR0FBRyxFQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsWUFBWSxFQUFDLEtBQUssRUFBQyxRQUFRLENBQUMsS0FBSztZQUMzRSxlQUFlLEVBQUMsUUFBUSxDQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJO1NBQzFELENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQW9DO1FBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxJQUFJO1lBQzFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsYUFBYSxFQUFDLElBQUksRUFBQyxLQUFLLEVBQUMsSUFBSTtZQUN4QyxlQUFlLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUk7U0FDekMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQW9DO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxJQUFJO1lBQzNDLEdBQUcsRUFBQyxJQUFJLEVBQUMsYUFBYSxFQUFDLElBQUksRUFBQyxLQUFLLEVBQUMsSUFBSTtZQUN4QyxlQUFlLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUk7U0FDekMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBR0QseUJBQXlCLENBQUMsS0FBSztRQUM3QixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLEdBQUcsRUFBRTtTQUMvQjthQUNHO1lBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hFO0lBQ0gsQ0FBQztJQUdELGNBQWMsQ0FBQyxLQUFLO1FBQ2xCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxzRUFBc0U7U0FDdkU7SUFDSCxDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLHFGQUFxRjtZQUNyRixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUN2QztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUN2QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRztZQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUV0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0SCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuSDtJQUNILENBQUM7SUFFRCxHQUFHO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDaEQsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3hCLHNEQUFzRDtnQkFDdEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3hCO2lCQUFLO2dCQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDdkI7U0FDRjtRQUVELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ3hHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUV0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0SCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVsSCx5QkFBeUI7WUFDekIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV2QixDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDbkgsT0FBTztTQUNSO1FBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNuRyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFDLDBCQUEwQixFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELGVBQWU7UUFDYiwrQ0FBK0M7UUFDL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFaEUsa0NBQWtDO1FBQ2xDLE1BQU0sZ0JBQWdCLEdBQTBCLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFFckUscUNBQXFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTNFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV0Qix1Q0FBdUM7UUFDdkMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTdDLHlDQUF5QztZQUN6QyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLHlDQUF5QztnQkFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDbEI7aUJBQU07Z0JBQ0wsaUNBQWlDO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsd0VBQXdFO1FBQ3hFLElBQUksU0FBUyxFQUFFO1lBQ2IsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFFLDBCQUEwQjthQUMzSDtTQUNGO2FBQU07WUFDTCxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUUscUNBQXFDO1NBQ3ZFO1FBQ0QsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5Qyw2Q0FBNkM7UUFDN0MsSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFDO1lBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4QjtRQUNELElBQUcsSUFBSSxDQUFDLFFBQVEsRUFBQztZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUEsZ0VBQWdFO0lBQ2hFLGFBQWEsQ0FBQyxLQUFhLEVBQUUsT0FBZ0I7UUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLElBQUksT0FBTyxFQUFFO1lBQ1gsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3hDO2FBQU07WUFDTCxPQUFPLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQUs7UUFDekIsSUFBRyxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksRUFBQztZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxLQUFLO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQ3hGLEdBQUcsQ0FBQyxFQUFFO1lBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxHQUFHLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsS0FBSztRQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUN4RixHQUFHLENBQUMsRUFBRTtZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQUs7UUFDMUIsSUFBSSxRQUFRLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDeEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDOUQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNsRSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzFCO1NBQ0Y7UUFDRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsUUFBUSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFLO1FBQ3pCLElBQUksUUFBUSxHQUFVLEVBQUUsQ0FBQztRQUN6QixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMxQjtTQUNGO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUs7UUFDWixJQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO1lBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QzthQUFNLElBQUksS0FBSyxZQUFZLElBQUksRUFBQztZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFFSCxTQUFTLENBQUMsT0FBZ0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUM1QixVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFFLElBQUksQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFDLFVBQVUsQ0FBQSxDQUFDLENBQUEsSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFHLEtBQUssSUFBSSxPQUFPLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdlIsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQztZQUNyRCxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFFLElBQUksQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFDLElBQUksQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDO1lBQzVDLG9CQUFvQixFQUFFLENBQUMsT0FBTyxDQUFDLG9CQUFvQixJQUFFLElBQUksQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFDLG9CQUFvQixDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUM7WUFDNUYsWUFBWSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxZQUFZLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQztZQUNwRSxhQUFhLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFFLElBQUksQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFDLGFBQWEsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDO1NBQ3hFLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUM5RyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxLQUFLLEVBQUM7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0lBRUMsb0JBQW9CLENBQUMsS0FBSztRQUN4QixJQUFJLFdBQVcsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzRCxJQUFJLFNBQVMsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN2RCxJQUFJLGFBQWEsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELElBQUksVUFBVSxHQUFTLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEVBQUUsYUFBYSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLCtCQUErQixFQUFFLFVBQVUsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsSSxJQUFJLGFBQWEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxHQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDaEcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNoRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pEO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakQ7SUFDSCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBSztRQUN2QixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBRyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBQztZQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFFLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztTQUNuRDthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRSxXQUFXLENBQUMsYUFBYSxDQUFDO1NBQ2hEO1FBQ0QsS0FBSyxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxJQUFJLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUNoRCxRQUFRLENBQUMsS0FBSyxFQUNkLENBQUMsT0FBTyxDQUFDLEVBQ1QsS0FBSyxFQUNMLFVBQVUsQ0FDWCxDQUFDO1lBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEVBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUMzRCxJQUFJLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLE1BQU0sRUFBRTtnQkFDbkQsY0FBYyxDQUFDLElBQUksQ0FBQztvQkFDbEIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO29CQUNyQixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7b0JBQ3JCLEtBQUssRUFBRSxrQkFBa0I7aUJBQzFCLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQUs7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBR0QsU0FBUyxDQUFDLEtBQUs7UUFDYixJQUFJLFlBQVksR0FBWSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUNuRCxJQUFHLFlBQVksRUFBQztZQUNaLElBQUcsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUM7Z0JBQ3pELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLFlBQVksR0FBRyxHQUFHLENBQUM7YUFDM0M7WUFDRCxJQUFHLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFDO2dCQUN6RCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxZQUFZLEdBQUcsR0FBRyxDQUFDO2FBQzNDO1NBQ0o7SUFDSCxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUNuRixDQUFDO3FGQTVxQ1Usb0JBQW9CO29FQUFwQixvQkFBb0I7Ozs7Ozs7Ozs7WUMxQmpDLG1DQUU0RixZQUFBO1lBQzNCLFlBQy9EOztZQUFBLGlCQUFLO1lBQ0wsa0NBQWtEO1lBQ2hELGlGQXkrQlc7WUFDYixpQkFBTyxFQUFBOztZQS8rQmEsMENBQXlCO1lBRFMsa0NBQW9CLG9CQUFBLG9CQUFBLDRDQUFBO1lBR1gsZUFDL0Q7WUFEK0QsNkZBQy9EO1lBQ29CLGVBQTZCO1lBQTdCLCtDQUE2QjtZQUNwQyxlQUErQjtZQUEvQix3RkFBK0I7OztpRkRvQmpDLG9CQUFvQjtjQUxoQyxTQUFTOzJCQUNFLGtCQUFrQjs0VUFNTCxRQUFRO2tCQUE5QixTQUFTO21CQUFDLFVBQVU7WUFDRSxRQUFRO2tCQUE5QixTQUFTO21CQUFDLFVBQVU7WUFpRXJCLFdBQVc7a0JBRFYsTUFBTTtZQUlQLE9BQU87a0JBRE4sTUFBTTtZQUlBLGlCQUFpQjtrQkFEdkIsS0FBSztZQUlDLG9CQUFvQjtrQkFEMUIsS0FBSztZQUlDLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxVQUFVO2tCQURoQixLQUFLO1lBSUMsR0FBRztrQkFEVCxLQUFLO1lBT04sZUFBZTtrQkFEZCxNQUFNO1lBR29CLG1CQUFtQjtrQkFBN0MsU0FBUzttQkFBQyxjQUFjOztrRkE5RmQsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9DbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsJztcclxuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9Db21ib01vZGVsJztcclxuaW1wb3J0IHsgRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9FbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCc7XHJcbmltcG9ydCB7IFF0clllYXJFbXBsb3llcldhZ2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1F0clllYXJFbXBsb3llcldhZ2VNb2RlbCc7XHJcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3F1ZXN0aW9ubmFpcmUvdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9ucy9BcHBWYWxpZGF0b3JzJztcclxuaW1wb3J0IHsgQWRkcmVzc0NvbXBvbmVudE1vZGVsLCBDaG9pY2VzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvQWRkcmVzc0NvbXBvbmVudE1vZGVsJztcclxuaW1wb3J0IHsgQ2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1zL2NsYWltcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWRkcmVzc0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBLZXlWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvS2V5VmFsdWVNb2RlbCc7XHJcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vcGFnZXMvQmFzZVBhZ2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hZGQtZW1wbG95ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtZW1wbG95ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FkZC1lbXBsb3llci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkRW1wbG95ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCdhZGRyZXNzMScpIGFkZHJlc3MxOiBBZGRyZXNzQ29tcG9uZW50OyBcclxuICBAVmlld0NoaWxkKCdhZGRyZXNzMicpIGFkZHJlc3MyOiBBZGRyZXNzQ29tcG9uZW50OyBcclxuXHJcbiAgcHVibGljIGVtcGxveWVyVHlwZU9wdGlvbnM6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBjb3VudHJ5T3B0aW9uczogYW55ID0gW107XHJcbiAgcHVibGljIGNvdW50cnlGZWRPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgcGF5UmF0ZU9wdGlvbnM6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBzdGF0ZU9wdGlvbnM6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBmZWRTdGF0ZU9wdGlvbnM6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBqb2JUaWxlT3JQb3NpdGlvbk9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIGZlZEpvYlRpbGVPcHRpb25zOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyByYWRpb09wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIHdvcmtPcHRpb25zOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyB5ZXNOb05hT3B0aW9uczogYW55ID1bXTtcclxuICBwdWJsaWMgcGF5TWV0aG9kT3B0aW9uczogYW55ID1bXTtcclxuICBwdWJsaWMgd2FnZVByb29mT3B0aW9uczogYW55ID1bXTtcclxuICBwdWJsaWMgZGlzY2hhcmdlUmVhc29uT3B0aW9uczogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgdm9sUXVpdFJlYXNvbk9wdGlvbnM6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHN0YXRlc09wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIG5vbktTU3RhdGVzT3B0aW9ucyA6IGFueSA9W107XHJcbiAgcHVibGljIHBheVBlcmlvZDogYW55ID1bXTtcclxuICBwdWJsaWMgZW1wbG95bWVudFN0YXR1c09wdGlvbnM6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHdvcmtDb3VudHJ5T3B0aW9uczogYW55ID1bXTtcclxuICBwdWJsaWMgbWlsaXRhcnlTZXJ2aWNlT3B0aW9uczogYW55ID1bXTtcclxuICBwdWJsaWMgcmVtdW5lcmF0aW9uVHlwZU9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIGFkZEVtcGxveWVyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgZGlzcGxheTogYm9vbGVhbjtcclxuICBwdWJsaWMgYmFzZVBlcmlvZFN0YXJ0RGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgYmFzZVBlcmlvZEVuZERhdGU6IERhdGU7XHJcbiAgcHVibGljIGJwU3RhcnREYXRlVG9EaXNwbGF5OiBEYXRlO1xyXG4gIHB1YmxpYyBtaW5EYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBtaW5TdGFydERhdGU6IERhdGU7XHJcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZU9uZT86IHN0cmluZztcclxuICBwdWJsaWMgcXVhcnRlclJhbmdlVHdvPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBxdWFydGVyUmFuZ2VUaHJlZT86IHN0cmluZztcclxuICBwdWJsaWMgcXVhcnRlclJhbmdlRm91cj86IHN0cmluZztcclxuICBwdWJsaWMgY3VycmVudFF1YXJ0ZXJSYW5nZT86IHN0cmluZztcclxuICBwdWJsaWMgcXVhcnRlclJhbmdlRml2ZT86IHN0cmluZztcclxuICBwdWJsaWMgZGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gIHB1YmxpYyBncm91cGVkUmVhc29uczogYW55ID1bXTtcclxuICBwdWJsaWMgbWluV29ya1N0YXJ0RGF0ZSA6IERhdGU7XHJcbiAgcHVibGljIHByZXZXb3JrZWRTdGF0ZU9wdGlvbnM6IGFueSA9W107XHJcblxyXG4gIHB1YmxpYyBkaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyB2b2xRdWl0UmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBzZjhJbmZvPVwiU0YtOFwiO1xyXG4gIHB1YmxpYyBkZDIxNEluZm89XCJERCAyMTRcIjtcclxuXHJcbiAgcHVibGljIHBhcmFPbmUgPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS5vbmVcIjtcclxuICBwdWJsaWMgcGFyYVR3bz1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQueWVzLnBhcmEudHdvXCI7XHJcbiAgcHVibGljIHBhcmFUaHJlZT1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQueWVzLnBhcmEudGhyZWVcIjtcclxuICBwdWJsaWMgcGFyYUZvdXI9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLmZvdXJcIjtcclxuICBwdWJsaWMgcGFyYUZpdmU9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLmZpdmVcIjtcclxuICBwdWJsaWMgcGFyYVNpeD1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQueWVzLnBhcmEuc2l4XCI7XHJcblxyXG4gIHB1YmxpYyBub1BhcmFPbmUgPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLm9uZVwiO1xyXG4gIHB1YmxpYyBub1BhcmFUd289XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lm5vLnBhcmEudHdvXCI7XHJcbiAgcHVibGljIG5vUGFyYVRocmVlPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLnRocmVlXCI7XHJcbiAgcHVibGljIG5vUGFyYUZvdXI9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lm5vLnBhcmEuZm91clwiO1xyXG4gIHB1YmxpYyBub1BhcmFGaXZlPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLmZpdmVcIjtcclxuXHJcbiAgcHVibGljIGVtcGxveWVyUHJvdmlkZWRXYWdlczogUXRyWWVhckVtcGxveWVyV2FnZU1vZGVsW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG1vZGVsQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVjb3JkSW5kZXhUb0VkaXQ6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNCYXNlUGVyaW9kRW1wbG95ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBub0VkaXRNb2RlOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpc05ld0NsYWltOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkb2I6IERhdGU7XHJcblxyXG4gIHB1YmxpYyBoaWRlRmljQ29kZTogdHJ1ZTtcclxuICBwdWJsaWMgaXNNYW51YWxFbnRlckVtcDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSBcclxuICBiYXNlUGVyaW9kSW5kZXg6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gICBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VtcGxveWVyRm9ybScpIGVtcGxveWVyRm9ybUVsZW1lbnQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHB1YmxpYyBjdXJyZW50U3RhdGUgOiBzdHJpbmc7XHJcbiAgcHVibGljIGN1c3RvbWVyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBhbGlhc05hbWU6IHN0cmluZztcclxuICBwdWJsaWMgbWFpbGluZ0FkZHJlc3NEaXNwbGF5OiBzdHJpbmc7XHJcbiAgcHVibGljIHNjaG9vbEZsYWc6c3RyaW5nO1xyXG4gIHB1YmxpYyBpc09zYUVtcGxveWVyOnN0cmluZyA9IFwiMFwiO1xyXG4gIHB1YmxpYyBpc0NTUjpib29sZWFuO1xyXG4gIHB1YmxpYyBzaG93V29ya1N0YXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgbm9uS3NTdGF0ZTp7dGV4dDpzdHJpbmcsIHZhbHVlOnN0cmluZ31bXTtcclxuICBwdWJsaWMgcXRyV2FnZUxpc3Q6IFF0clllYXJFbXBsb3llcldhZ2VNb2RlbFtdO1xyXG4gIHB1YmxpYyBpc0Zvcm1TdWJtaXR0ZWQgPSB7c3VibWl0dGVkOiBmYWxzZX1cclxuICBwcml2YXRlIG9uQ2hhbmdlOiBGdW5jdGlvbiA9ICh2YWx1ZTogU3RyaW5nKSA9PiB7XHJcblxyXG4gIH07XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLCBcclxuICAgIHB1YmxpYyB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsIFxyXG4gICAgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIFxyXG4gICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLCBcclxuICAgIHB1YmxpYyBjbGFpbXNTZXJ2aWNlIDogQ2xhaW1TZXJ2aWNlLFxyXG4gICAgcHVibGljIGxzOiBMb2dpblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsIFxyXG4gICAgcHJpdmF0ZSBhcjogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZSA6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHsgfVxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuICAgIHRoaXMuc2V0V29ya1N0YXJ0RGF0ZSgpO1xyXG4gICAgXHJcbiAgICB0aGlzLmxvYWRNYXN0ZXJEYXRhKCk7XHJcblxyXG4gICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgdGhpcy5lbXBsb3llclR5cGVPcHRpb25zID0gQ29tYm9PcHRpb24uRU1QTE9ZRVJfVFlQRV9FUztcclxuICAgICAgdGhpcy5jb3VudHJ5T3B0aW9ucyA9IENvbWJvT3B0aW9uLkNPVU5UUllfRVM7XHJcbiAgICAgIHRoaXMuY291bnRyeUZlZE9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZX0VTO1xyXG4gICAgICB0aGlzLnBheVJhdGVPcHRpb25zID0gQ29tYm9PcHRpb24uUEFZX1BFUklPRF9FUztcclxuICAgICAgdGhpcy5yYWRpb09wdGlvbnMgPSBDb21ib09wdGlvbi5ZRVNfTk9fRVM7XHJcbiAgICAgIHRoaXMud29ya09wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0ZPUl9FTVBMX0VTO1xyXG4gICAgICB0aGlzLnllc05vTmFPcHRpb25zID0gQ29tYm9PcHRpb24uWUVTX05PX05BX0VTO1xyXG4gICAgICB0aGlzLnBheU1ldGhvZE9wdGlvbnMgPSBDb21ib09wdGlvbi5QQVlNRU5UX01FVEhPRF9FUztcclxuICAgICAgdGhpcy53YWdlUHJvb2ZPcHRpb25zID0gQ29tYm9PcHRpb24uV0FHRV9QUk9PRl9FUztcclxuICAgICAgdGhpcy5zdGF0ZXNPcHRpb25zID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTX0VTO1xyXG4gICAgICB0aGlzLm5vbktTU3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLk5PTl9LU19TVEFURVNfRVM7XHJcbiAgICAgIHRoaXMucGF5UGVyaW9kID0gQ29tYm9PcHRpb24uUEFZX1BFUklPRF9FUztcclxuICAgICAgdGhpcy53b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUllfRVM7XHJcbiAgICAgIHRoaXMubWlsaXRhcnlTZXJ2aWNlT3B0aW9ucyA9IENvbWJvT3B0aW9uLk1JTElUQVJZX1NFUlZJQ0VfRVM7XHJcbiAgICAgIHRoaXMucmVtdW5lcmF0aW9uVHlwZU9wdGlvbnMgPSBDb21ib09wdGlvbi5SRU1VTkVSQVRJT05fVFlQRVNfRVM7XHJcbiAgICAgIHRoaXMuZ3JvdXBlZFJlYXNvbnM9IENvbWJvT3B0aW9uLkdST1VQX1JFQVNPTlNfRVM7XHJcbiAgICAgIHRoaXMucHJldldvcmtlZFN0YXRlT3B0aW9ucz0gQ29tYm9PcHRpb24uV09SS0VEX1NUQVRFX0VTO1xyXG4gICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBDb21ib09wdGlvbi5VU19TVEFURVNfRVMuZmluZChzdGF0ZSA9PiBzdGF0ZS52YWx1ZSA9PSB0aGlzLnV0aWwuZ2V0U3RhdGUoKSlcclxuICAgICAgdGhpcy5zdGF0ZXNPcHRpb25zID0gW2N1cnJlbnRTdGF0ZSwgLi4uQ29tYm9PcHRpb24uVVNfU1RBVEVTX0VTLmZpbHRlcihzdGF0ZSA9PiBzdGF0ZS52YWx1ZSAhPSB0aGlzLnV0aWwuZ2V0U3RhdGUoKSldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lbXBsb3llclR5cGVPcHRpb25zID0gQ29tYm9PcHRpb24uRU1QTE9ZRVJfVFlQRTtcclxuICAgICAgdGhpcy5jb3VudHJ5T3B0aW9ucyA9IENvbWJvT3B0aW9uLkNPVU5UUlk7XHJcbiAgICAgIHRoaXMuY291bnRyeUZlZE9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZO1xyXG4gICAgICB0aGlzLnBheVJhdGVPcHRpb25zID0gQ29tYm9PcHRpb24uUEFZX1BFUklPRDtcclxuICAgICAgdGhpcy5yYWRpb09wdGlvbnMgPSBDb21ib09wdGlvbi5ZRVNfTk87XHJcbiAgICAgIHRoaXMud29ya09wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0ZPUl9FTVBMO1xyXG4gICAgICB0aGlzLnllc05vTmFPcHRpb25zID0gQ29tYm9PcHRpb24uWUVTX05PX05BO1xyXG4gICAgICB0aGlzLnBheU1ldGhvZE9wdGlvbnMgPSBDb21ib09wdGlvbi5QQVlNRU5UX01FVEhPRDtcclxuICAgICAgdGhpcy53YWdlUHJvb2ZPcHRpb25zID0gQ29tYm9PcHRpb24uV0FHRV9QUk9PRjtcclxuICAgICAgdGhpcy5zdGF0ZXNPcHRpb25zID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTO1xyXG4gICAgICB0aGlzLm5vbktTU3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLk5PTl9LU19TVEFURVM7XHJcbiAgICAgIHRoaXMucGF5UGVyaW9kID0gQ29tYm9PcHRpb24uUEFZX1BFUklPRDtcclxuICAgICAgdGhpcy53b3JrQ291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5XT1JLX0NPVU5UUlk7XHJcbiAgICAgIHRoaXMubWlsaXRhcnlTZXJ2aWNlT3B0aW9ucyA9IENvbWJvT3B0aW9uLk1JTElUQVJZX1NFUlZJQ0U7XHJcbiAgICAgIHRoaXMucmVtdW5lcmF0aW9uVHlwZU9wdGlvbnMgPSBDb21ib09wdGlvbi5SRU1VTkVSQVRJT05fVFlQRVM7XHJcbiAgICAgIHRoaXMuZ3JvdXBlZFJlYXNvbnM9IENvbWJvT3B0aW9uLkdST1VQX1JFQVNPTlM7XHJcbiAgICAgIHRoaXMucHJldldvcmtlZFN0YXRlT3B0aW9ucz0gQ29tYm9PcHRpb24uV09SS0VEX1NUQVRFO1xyXG4gICAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBDb21ib09wdGlvbi5VU19TVEFURVMuZmluZChzdGF0ZSA9PiBzdGF0ZS52YWx1ZSA9PSB0aGlzLnV0aWwuZ2V0U3RhdGUoKSlcclxuICAgICAgdGhpcy5zdGF0ZXNPcHRpb25zID0gW2N1cnJlbnRTdGF0ZSwgLi4uQ29tYm9PcHRpb24uVVNfU1RBVEVTLmZpbHRlcihzdGF0ZSA9PiBzdGF0ZS52YWx1ZSAhPSB0aGlzLnV0aWwuZ2V0U3RhdGUoKSldO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdpc0Jhc2VQZXJpb2RFbXBsb3llciBpcyA9ICcsIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIsIHRoaXMuc3RhdGVzT3B0aW9ucyk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnaXNOZXdDbGFpbSA9ICcsIHRoaXMuaXNOZXdDbGFpbSk7XHJcbiAgICB0aGlzLmN1cnJlbnRTdGF0ZSA9IHRoaXMudXRpbC5nZXRTdGF0ZSgpO1xyXG4gICAgdGhpcy5pc0NTUiA9IHRoaXMubHMuaXNDc3IoKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiQ3VycmVudCBTdGF0ZSA9IFwiLCB0aGlzLmN1cnJlbnRTdGF0ZSk7XHJcbiAgICBsZXQgZXNtOiBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJjYWxsIHNlcnZpY2UgPVwiLCB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpKTtcclxuICAgIGlmICh0aGlzLnJlY29yZEluZGV4VG9FZGl0ID09PSB1bmRlZmluZWQgfHwgdGhpcy5yZWNvcmRJbmRleFRvRWRpdCA9PT0gbnVsbCkge1xyXG4gICAgICBlc20gPSBuZXcgQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCgpO1xyXG4gICAgICB0aGlzLnF0cldhZ2VMaXN0ID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKT8ucXRyWWVhcldhZ2VMaXN0R2VuZXJpYzsgICAgICBcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZWNvcmRJbmRleFRvRWRpdCcsIHRoaXMucmVjb3JkSW5kZXhUb0VkaXQpXHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpJywgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XHJcbiAgICAgIHRoaXMubm9FZGl0TW9kZSA9IHRydWU7XHJcbiAgICAgIGVzbSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkuYnBFbXBMaXN0W3RoaXMucmVjb3JkSW5kZXhUb0VkaXRdO1xyXG4gICAgICB0aGlzLnF0cldhZ2VMaXN0ID0gZXNtLndhZ2VBbW91bnRBcnJheSBhcyBRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWxbXTtcclxuICAgICAgdGhpcy5jdXN0b21lck5hbWUgPSBlc20uZW1wbG95ZXJEYXRhLmRpc3BsYXlOYW1lO1xyXG4gICAgICBpZihlc20uZW1wbG95ZXJEYXRhLnRyYWRlTmFtZSl7XHJcbiAgICAgICAgdGhpcy5hbGlhc05hbWUgPSBlc20uZW1wbG95ZXJEYXRhLnRyYWRlTmFtZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFsaWFzTmFtZSA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgaWYoZXNtLm9zYUJwRW1wbG95ZXJGbGFnKXtcclxuICAgICAgICB0aGlzLmlzT3NhRW1wbG95ZXIgPSBlc20ub3NhQnBFbXBsb3llckZsYWc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCJpc09zYUVtcGxveWVyID09PT09PT0gXCIgLCB0aGlzLmlzT3NhRW1wbG95ZXIpO1xyXG4gICAgICB0aGlzLm1haWxpbmdBZGRyZXNzRGlzcGxheSA9IGVzbS5lbXBsb3llckRhdGEubWFpbGluZ0FkZHJlc3NEaXNwbGF5O1xyXG4gICAgICB0aGlzLnNjaG9vbEZsYWcgPSBlc20uZW1wbG95ZXJEYXRhLnNjaG9vbEZsYWc7XHJcbiAgICAgIGlmKHRoaXMuaXNDU1IgJiYgZXNtLmVtcGxveWVyUHJvdmlkZWRXYWdlcyAmJiBlc20uZW1wbG95ZXJQcm92aWRlZFdhZ2VzLndhZ2VzTGlzdFF0cldpc2Upe1xyXG4gICAgICAgIHRoaXMuZW1wbG95ZXJQcm92aWRlZFdhZ2VzID0gZXNtLmVtcGxveWVyUHJvdmlkZWRXYWdlcy53YWdlc0xpc3RRdHJXaXNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKT8uYmFzZVBlcmlvZFN0YXJ0RGF0ZTtcclxuICAgIHRoaXMuYmFzZVBlcmlvZEVuZERhdGUgPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpPy5iYXNlUGVyaW9kRW5kRGF0ZTtcclxuICAgIHRoaXMuYnBTdGFydERhdGVUb0Rpc3BsYXkgPSBuZXcgRGF0ZSh0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpPy5icFN0YXJ0RGF0ZVRvRGlzcGxheSk7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLm1pbldvcmtTdGFydERhdGVcIiwgdGhpcy5taW5Xb3JrU3RhcnREYXRlKTtcclxuICAgIGlmKHRoaXMubWluV29ya1N0YXJ0RGF0ZSl7XHJcbiAgICAgIHRoaXMuYnBTdGFydERhdGVUb0Rpc3BsYXkgPSB0aGlzLm1pbldvcmtTdGFydERhdGU7XHJcbiAgICB9IGVsc2V7XHJcbiAgICAgIHRoaXMubWluV29ya1N0YXJ0RGF0ZSA9IHRoaXMuZG9iO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5sb2FkTWFzdGVyRGF0YSgpO1xyXG4gICAgXHJcblxyXG4gICAgdGhpcy5hZGRFbXBsb3llckZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgJ2VtcGxveWVyVHlwZSc6IFtlc20uZW1wbG95ZXJUeXBlID8/IG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnZW1wbG95ZXJOYW1lJzogW2VzbS5lbXBsb3llck5hbWUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5wcmV2V29ya2VkU3RhdGUudmFsdWUgPT09ICdLUycpXSxcclxuICAgICAgJ290aFN0YXRlRW1wTmFtZSc6IFtlc20ub3RoU3RhdGVFbXBOYW1lID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMucHJldldvcmtlZFN0YXRlLnZhbHVlID09PSAnT1QnKV0sXHJcbiAgICAgICdmZWRFbXBsb3llck5hbWUnOiBbZXNtLmZlZEVtcGxveWVyTmFtZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyldLFxyXG4gICAgICAnZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXInOiBbZXNtLmVtcGxveWVyVGVsZXBob25lTnVtYmVyID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV0sXHJcbiAgICAgICdlbmREYXRlJzogW2VzbS5lbmREYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV0sXHJcbiAgICAgICdzdGFydERhdGUnOiBbZXNtLnN0YXJ0RGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAnam9iVGlsZU9yUG9zaXRpb24nOiBbZXNtLmpvYlRpbGVPclBvc2l0aW9uID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV0sXHJcbiAgICAgICdyZWFzb25TZXBhcmF0aW9uJzogW2VzbS5yZWFzb25TZXBhcmF0aW9uID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnIHx8IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2Rpc2NoYXJnZURldGFpbCc6IFtlc20uZGlzY2hhcmdlRGV0YWlsID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUhPSdNSUwnICYmIHRoaXMucmVhc29uU2VwYXJhdGlvbj8udmFsdWU/LnZhbHVlID09PSAnRENGSScpXSxcclxuICAgICAgJ3ZvbFF1aXREZXRhaWxzJzogW2VzbS52b2xRdWl0RGV0YWlscyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlIT0nTUlMJyAmJiAgdGhpcy5yZWFzb25TZXBhcmF0aW9uPy52YWx1ZT8udmFsdWUgPT09ICdWT0xRJyldLFxyXG4gICAgICAncGF5UmF0ZSc6IFtlc20ucGF5UmF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycgJiYgKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWc/LnZhbHVlPT09J1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpXSxcclxuICAgICAgJ3BheVJhdGVGcmVxdWVuY3knOiBbZXNtLnBheVJhdGVGcmVxdWVuY3kgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZT09PSdSRUcnICYmICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnPy52YWx1ZT09PSdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKV0sXHJcbiAgICAgICdwZW5zaW9uRmxhZyc6IFtlc20ucGVuc2lvbkZsYWcgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZT09PSdSRUcnICYmIHRoaXMud29ya0ZsYWc/LnZhbHVlPT09J1knKV0sXHJcbiAgICAgICdwZW5zaW9uUmVjdkRhdGUnOiBbZXNtLnBlbnNpb25SZWN2RGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLnBlbnNpb25GbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcildLFxyXG4gICAgICAncmVnUGVuc2lvbkZsYWcnOiBbZXNtLnJlZ1BlbnNpb25GbGFnID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyldLFxyXG4gICAgICAncmVnUGVuc2lvblJlY3ZEYXRlJzpbZXNtLnJlZ1BlbnNpb25SZWN2RGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLnJlZ1BlbnNpb25GbGFnLnZhbHVlID09PSAnWScpXSwgICAgICBcclxuICAgICAgLy8gJ2lzQ2xtdFBhaWRXaGlsZUxvdyc6IFtlc20uaXNDbG10UGFpZFdoaWxlTG93ICE9IG51bGwgPyBlc20uaXNDbG10UGFpZFdoaWxlTG93IDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV0sXHJcbiAgICAgIC8vICdoYXNTaG9ydFRlcm1EaXNhYmlsaXR5JzogW2VzbS5oYXNTaG9ydFRlcm1EaXNhYmlsaXR5ICE9IG51bGwgPyBlc20uaGFzU2hvcnRUZXJtRGlzYWJpbGl0eSA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnKV0sXHJcbiAgICAgIC8vICdoYXNSZWN2UmVtdW5lcmF0aW9uJzogW2VzbS5oYXNSZWN2UmVtdW5lcmF0aW9uICE9IG51bGwgPyBlc20uaGFzUmVjdlJlbXVuZXJhdGlvbiA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyldLFxyXG4gICAgICAncmVtdW5lcmF0aW9uVHlwZXMnOiBbZXNtLnJlbXVuZXJhdGlvblR5cGVzID8/IG51bGxdLFxyXG4gICAgICAvLyAndmFjYXRpb24nOiBbZXNtLnZhY2F0aW9uICE9IG51bGwgPyBlc20udmFjYXRpb24gOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLnNjaG9vbEZsYWcgPT09JzEnKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyldLFxyXG4gICAgICBcclxuICAgICAgJ2dyb3NzV2FnZXMnOiBbZXNtLmdyb3NzV2FnZXMgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZT09PSdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmICh0aGlzLm9zYUJwRW1wbG95ZXJGbGFnPy52YWx1ZSA9PT0nMScgfHwgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUpKV0sXHJcbiAgICAgIC8vJ3BhaWRCeSc6IFtlc20ucGFpZEJ5ICE9IG51bGwgPyBlc20ucGFpZEJ5IDogbnVsbCxBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuaXNDbG10UGFpZFdoaWxlTG93LnZhbHVlPT09J1knKSldLFxyXG4gICAgICAncGF5bWVudFR5cGUnOiBbZXNtLnBheW1lbnRUeXBlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyldLFxyXG4gICAgICAnZG9jc1JlY2VpdmVkJzogW2VzbS5kb2NzUmVjZWl2ZWQgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXSxcclxuICAgICAgJ290aGVyU1NORmxhZyc6IFtlc20ub3RoZXJTU05GbGFnID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV0sXHJcbiAgICAgICdvdGhlclNTTic6IFtlc20ub3RoZXJTU04gPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiB0aGlzLm90aGVyU1NORmxhZy52YWx1ZSA9PT0gJ1knKV0sXHJcbiAgICAgICdvdGhlck5hbWVGbGFnJzogW2VzbS5vdGhlck5hbWVGbGFnID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyldLFxyXG4gICAgICAnb3RoZXJOYW1lJzogW2VzbS5vdGhlck5hbWUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMub3RoZXJOYW1lRmxhZy52YWx1ZSA9PT0gJ1knKV0sXHJcbiAgICAgIC8vJ2RvaW5nQnVzaW5lc3NBcyc6IFtlc20uZG9pbmdCdXNpbmVzc0FzICE9IG51bGwgPyBlc20uZG9pbmdCdXNpbmVzc0FzIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PSdLUycpKV0sXHJcbiAgICAgICdwcmV2V29ya2VkU3RhdGUnOiBbZXNtLnByZXZXb3JrZWRTdGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcildLFxyXG4gICAgICAnd29ya1N0YXRlJzogW2VzbS53b3JrU3RhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpXSxcclxuICAgICAgJ3dvcmtDaXR5JzogW2VzbS53b3JrQ2l0eSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcildLFxyXG4gICAgICAvLydudW1iZXJFbXBsb3llZCc6IFtlc20ubnVtYmVyRW1wbG95ZWQgIT0gbnVsbCA/IGVzbS5udW1iZXJFbXBsb3llZCA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpXSxcclxuICAgICAgJ3dvcmtUeXBlJzogW2VzbS53b3JrVHlwZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycpXSxcclxuICAgICAvLyAnZmVpbic6IFtlc20uZmVpbl0sXHJcbiAgICAgLy8gJ2hpcmVkQnknOiBbZXNtLmhpcmVkQnksIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWU9PT0nS1MnKSldLFxyXG4gICAgICAvLydidXNpbmVzc093bmVyJzogW2VzbS5idXNpbmVzc093bmVyLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIHRoaXMud29ya1N0YXRlLnZhbHVlICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlPT09J0tTJykpXSxcclxuICAgICAgJ2J1c2luZXNzTmF0dXJlJzogW2VzbS5idXNpbmVzc05hdHVyZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAnd29ya0ZsYWcnOiBbZXNtLndvcmtGbGFnID8/IG51bGxdLFxyXG4gICAgICAvLydxdWl0cmVhc29uJzogW2VzbS5xdWl0cmVhc29uICE9IG51bGwgPyBlc20ucXVpdHJlYXNvbiA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKCgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScpIHx8ICghdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikpICYmIHRoaXMucmVhc29uU2VwYXJhdGlvbi52YWx1ZSAmJiB0aGlzLnJlYXNvblNlcGFyYXRpb24udmFsdWUudmFsdWUgPT09ICdWT0xRJykpKV0sXHJcbiAgICAgICdkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcyc6IFtlc20uZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMgPz8gbnVsbF0sXHJcbiAgICAgICdmaWNEZXN0aW5hdGlvbkNvZGUnOiBbZXNtLmZpY0Rlc3RpbmF0aW9uQ29kZSA/PyBudWxsXSxcclxuICAgICAgJ2ZpY0NvZGUnOiBbZXNtLmZpY0NvZGUgPz8gbnVsbF0sXHJcbiAgICAgICdmaWNEZXN0aW5hdGlvbk5hbWUnOiBbZXNtLmZpY0Rlc3RpbmF0aW9uTmFtZSA/PyBudWxsXSxcclxuICAgICAgJ2ZpY0Rlc3RpbmF0aW9uSWQnOiBbZXNtLmZpY0Rlc3RpbmF0aW9uSWQgPz8gbnVsbF0sXHJcbiAgICAgICdzZkVpZ2h0ZmxhZyc6IFtlc20uc2ZFaWdodGZsYWcgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2ZlZFdvcmtDaXR5JzogW2VzbS5mZWRXb3JrQ2l0eSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyldLFxyXG4gICAgICAnZmVkV29ya1N0YXRlJzogW2VzbS5mZWRXb3JrU3RhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2ZlZFdvcmtDb3VudHJ5JzogW2VzbS5mZWRXb3JrQ291bnRyeSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyldLFxyXG4gICAgICAnc3RhcnREYXRlRmVkJzogW2VzbS5zdGFydERhdGVGZWQgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2VuZERhdGVGZWQnOiBbZXNtLmVuZERhdGVGZWQgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2ZlZEpvYlRpbGVPclBvc2l0aW9uJzogW2VzbS5mZWRKb2JUaWxlT3JQb3NpdGlvbiA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpKV0sXHJcbiAgICAgIC8vJ2NsYWltYW50RW1wbG95ZWRXaXRoRW1wcic6IFtlc20uY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByICE9IG51bGwgPyBlc20uY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKSldLFxyXG4gICAgICAncGVyZm9ybWVkU2VydmljZSc6IFtlc20ucGVyZm9ybWVkU2VydmljZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyldLFxyXG4gICAgICAnZmVkUGVuc2lvbkZsYWcnOiBbZXNtLmZlZFBlbnNpb25GbGFnID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJykpXSxcclxuICAgICAgJ2ZlZFBlbnNpb25SZWN2RGF0ZSc6W2VzbS5mZWRQZW5zaW9uUmVjdkRhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnICYmIHRoaXMuZmVkUGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJykpXSxcclxuICAgICAgJ3NldlBheUZsYWcnOiBbZXNtLnNldlBheUZsYWcgPz8gbnVsbF0sXHJcbiAgICAgICd3ZWVrbHlBbW91bnQnOiBbZXNtLndlZWtseUFtb3VudCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdudW1iZXJPZldlZWtzJzogW2VzbS5udW1iZXJPZldlZWtzID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJykpXSxcclxuICAgICAgJ3NldlBheUFtb3VudCc6IFtlc20uc2V2UGF5QW1vdW50ID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJykpXSxcclxuICAgICAgJ3NldlBheVN0YXJ0RGF0ZSc6IFtlc20uc2V2UGF5U3RhcnREYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJykpXSxcclxuICAgICAgJ3NldlBheUVuZERhdGUnOiBbZXNtLnNldlBheUVuZERhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAnc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZSc6IFtlc20uc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdyZWdFbXBsb3llckZvdW5kJzogW2VzbS5yZWdFbXBsb3llckZvdW5kID8/IG51bGxdLFxyXG4gICAgICAnZW1wbG95ZXJJZCc6IFtlc20uZW1wbG95ZXJJZCA/PyBudWxsXSxcclxuICAgICAgJ3NlcnZpY2VCcmFuY2gnOiBbZXNtLnNlcnZpY2VCcmFuY2ggPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ01JTCcpXSxcclxuICAgICAgJ3N0YXJ0RGF0ZU1pbCc6IFtlc20uc3RhcnREYXRlTWlsID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdNSUwnKV0sXHJcbiAgICAgICdlbmREYXRlTWlsJzogW2VzbS5lbmREYXRlTWlsID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdNSUwnKV0sXHJcbiAgICAgICdkZDIxNEZsYWcnOiBbZXNtLmRkMjE0RmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnTUlMJyldLFxyXG4gICAgICAnbGFzdFBheUdyYWRlJzogW2VzbS5sYXN0UGF5R3JhZGUgPz8gbnVsbF0sXHJcbiAgICAgICdsYXN0ZHV0eSc6IFtlc20ubGFzdGR1dHkgPz8gbnVsbF0sXHJcbiAgICAgICdwbGFjZVNlcGFyYXRlZCc6IFtlc20ucGxhY2VTZXBhcmF0ZWQgPz8gbnVsbF0sXHJcbiAgICAgICdub0xlYXZlRGF5cyc6IFtlc20ubm9MZWF2ZURheXMgPz8gbnVsbF0sXHJcbiAgICAgICdjb21wbGV0ZWRGdWxsVGVybUZsYWcnOiBbZXNtLmNvbXBsZXRlZEZ1bGxUZXJtRmxhZyA/PyBudWxsXSxcclxuICAgICAgJ3Jlc2VydmVPckd1YXJkRmxhZyc6IFtlc20ucmVzZXJ2ZU9yR3VhcmRGbGFnID8/IG51bGxdLFxyXG4gICAgICAnbWlsUGVuc2lvbkZsYWcnOiBbZXNtLm1pbFBlbnNpb25GbGFnID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdNSUwnKV0sXHJcbiAgICAgICdtaWxQZW5zaW9uUmVjdkRhdGUnOltlc20ubWlsUGVuc2lvblJlY3ZEYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnTUlMJyAmJiB0aGlzLm1pbFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdtaWxTdGF0ZSc6W251bGwsIFtBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnTUlMJyksIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRLYW5zYXNdXSxcclxuICAgICAgJ2FkZHJlc3NMaW5lMSc6IFtlc20uYWRkcmVzc0xpbmUxID8/IG51bGxdLFxyXG4gICAgICAnYWRkcmVzc0xpbmUyJzogW2VzbS5hZGRyZXNzTGluZTIgPz8gbnVsbF0sXHJcbiAgICAgICdhZGRyZXNzTGluZTMnOiBbZXNtLmFkZHJlc3NMaW5lMyA/PyBudWxsXSxcclxuICAgICAgJ3Jlc2VydmVCcmFuY2gnOltlc20ucmVzZXJ2ZUJyYW5jaCA/PyBudWxsXSxcclxuICAgICAgJ3N0YXJ0RGF0ZVJlc2VydmUnOltlc20uc3RhcnREYXRlUmVzZXJ2ZSA/PyBudWxsXSxcclxuICAgICAgJ2VuZERhdGVSZXNlcnZlJzpbZXNtLmVuZERhdGVSZXNlcnZlID8/IG51bGxdLFxyXG4gICAgICAnZGQyMTRGaWxlJzpbZXNtLmRkMjE0RmlsZSA/PyBudWxsXSxcclxuICAgICAgJ2FkZHJlc3MnOltlc20uYWRkcmVzcyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgfHwgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJykpXSxcclxuICAgICAgJ3dhZ2VBbW91bnRBcnJheSc6IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoW10pLFxyXG4gICAgICAndGVzdEVtcCcgOiBbZXNtLmVtcGxveWVyUHJvdmlkZWRXYWdlcz8ud2FnZXNMaXN0UXRyV2lzZSA/PyBudWxsXSxcclxuICAgICAgJ29zYUJwRW1wbG95ZXJGbGFnJzpbZXNtLm9zYUJwRW1wbG95ZXJGbGFnID8/IFwiMFwiXSxcclxuICAgICAgJ3NldmVyYW5jZSc6W2VzbS5zZXZlcmFuY2UgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+e1xyXG4gICAgICAvLyB1bmNvbW1lbnQgdGhpcyBpZiB0aGVyZSBpcyBhbiBpc3N1ZSB3aXRoIGNoYW5naW5nIGVtcGxveWVyIHR5cGUuXHJcbiAgICAgIC8vUEdMUC01MjIgdGhpcyBiZWxvdyBjb2RlIHdhcyB1bmNvbW1lbnRlZFxyXG4gICAgICBPYmplY3QuZW50cmllcyh0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9scykuZm9yRWFjaCgodHVwbGUpPT4ge2lmKHR1cGxlWzBdICE9PSBcImVtcGxveWVyVHlwZVwiICYmIHR1cGxlWzBdICE9PSBcIndhZ2VBbW91bnRBcnJheVwiICYmICF0dXBsZVsxXS52YWxpZCkgdHVwbGVbMV0ucmVzZXQoKTt9KTtcclxuICAgICAgdGhpcy5pc0Zvcm1TdWJtaXR0ZWQuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlID09PSAnRkVEJyA/IHRoaXMuYWRkcmVzcy5kaXNhYmxlKCk6IHRoaXMuYWRkcmVzcy5lbmFibGUoKTsgICAgICBcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgQmFzZVBhZ2UucHJpbWVOR0ZpeGVzKCk7ICAgICAgICAgXHJcbiAgICAgIH0sIDUwMCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVhc29uU2VwYXJhdGlvbi52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCBfID0+IHtcclxuICAgICAgdGhpcy5kaXNjaGFyZ2VEZXRhaWwucmVzZXQoKTtcclxuICAgICAgdGhpcy52b2xRdWl0RGV0YWlscy5yZXNldCgpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBCYXNlUGFnZS5wcmltZU5HRml4ZXMoKTsgICAgICAgICBcclxuICAgICAgfSwgMTAwKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5vdGhlclNTTkZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgdGhpcy5vdGhlclNTTi5yZXNldCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm90aGVyTmFtZUZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgdGhpcy5vdGhlck5hbWUucmVzZXQoKTtcclxuICAgIH1cclxuICAgIClcclxuIFxyXG4gICAgLy9QR0xQLTUyMiB0aGlzIGJlbG93IGNvZGUgd2FzIGFkZGVkLiBpZiAgZW1wbG95ZXJUeXBlIGlzIFJFRyBhbmQgbm9uIGJhc2VwZXJpb2RFbXBsb3llci4gSWYgdXNlciBjaGFuZ2UgdGhlICByZWdQZW5zaW9uRmxhZyAnWUVTJyB0byAnTk8nIHRoZW4gcmVnUGVuc2lvblJlY3ZEYXRlIHZhbGlkYXRpb24gd2FzIHJlc2V0XHJcbiAgICB0aGlzLnJlZ1BlbnNpb25GbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgIHRoaXMucmVnUGVuc2lvblJlY3ZEYXRlLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgICApXHJcbiAgICAgLy9QR0xQLTUyMiB0aGlzIGJlbG93IGNvZGUgd2FzIGFkZGVkLiBpZiAgZW1wbG95ZXJUeXBlIGlzIFJFRyBhbmQgIGJhc2VwZXJpb2RFbXBsb3llci4gSWYgdXNlciBjaGFuZ2UgdGhlICBwZW5zaW9uRmxhZyAnWUVTJyB0byAnTk8nIHRoZW4gUGVuc2lvblJlY2l2ZURhdGUgdmFsaWRhdGlvbiB3YXMgcmVzZXRcclxuICAgICB0aGlzLnBlbnNpb25GbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgIHRoaXMucGVuc2lvblJlY3ZEYXRlLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgICApXHJcblxyXG5cclxuICAgIC8vUEdMUC01MjIgdGhpcyBiZWxvdyBjb2RlIHdhcyBhZGRlZC4gaWYgIGVtcGxveWVyVHlwZSBpcyBSRUcgYW5kICBiYXNlcGVyaW9kRW1wbG95ZXIuIElmIHVzZXIgY2hhbmdlIHRoZSAgcGVuc2lvbkZsYWcgJ1lFUycgdG8gJ05PJyB0aGVuIFBlbnNpb25SZWNpdmVEYXRlIHZhbGlkYXRpb24gd2FzIHJlc2V0XHJcbiAgICB0aGlzLmZlZFBlbnNpb25GbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgIHRoaXMuZmVkUGVuc2lvblJlY3ZEYXRlLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgICApXHJcblxyXG4gICAgICAvL1BHTFAtNTIyIHRoaXMgYmVsb3cgY29kZSB3YXMgYWRkZWQuIGlmICBlbXBsb3llclR5cGUgaXMgTUlMIGFuZCAgYmFzZXBlcmlvZEVtcGxveWVyLiBJZiB1c2VyIGNoYW5nZSB0aGUgIHBlbnNpb25GbGFnICdZRVMnIHRvICdOTycgdGhlbiBtaWxQZW5zaW9uUmVjdkRhdGUgdmFsaWRhdGlvbiB3YXMgcmVzZXRcclxuICAgICAgdGhpcy5taWxQZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgIHRoaXMubWlsUGVuc2lvblJlY3ZEYXRlLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgICAgKVxyXG5cclxuXHJcblxyXG4gICAgXHJcbiAgICBpZighdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnZhbHVlKXtcclxuICAgICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnBhdGNoVmFsdWUoeyB2YWx1ZTogJ0hPVVInLCB0ZXh0OiAnSG91cicgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UpIHtcclxuICAgICAgaWYgKHRoaXMucXRyV2FnZUxpc3QpIHtcclxuICAgICAgICBmb3IgKHZhciBxdHJXYWdlIG9mIHRoaXMucXRyV2FnZUxpc3QpIHtcclxuICAgICAgICAgIHRoaXMud2FnZUFtb3VudEFycmF5LnB1c2godGhpcy53YWdlQXJyYXkocXRyV2FnZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZih0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlIHx8ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PSAnRkVEJyAmJiB0aGlzLmlzTmV3Q2xhaW0pKSB7XHJcbiAgICAgICAgdGhpcy5zZXRXYWdlVmFsaWRhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuICBzZXRXb3JrU3RhcnREYXRlKCkge1xyXG4gICAgbGV0IGRhdGEgPSB0aGlzLmFyLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdkYXRhJyk7XHJcbiAgICBpZihkYXRhKXtcclxuICAgICAgbGV0IHBhcnNlZERhdGEgOiBLZXlWYWx1ZU1vZGVsW10gPSBKU09OLnBhcnNlKGF0b2IoZGF0YSkpO1xyXG4gICAgICBpZihBcnJheS5pc0FycmF5KHBhcnNlZERhdGEpKXtcclxuICAgICAgICBsZXQgbGFzdEN3ZSA9IHBhcnNlZERhdGEuZmlsdGVyKGsgPT4gay5rZXkgPT0gJ2xhc3RDd2VEYXRlJyk7XHJcbiAgICAgICAgaWYobGFzdEN3ZS5sZW5ndGggPiAwICYmIGxhc3RDd2VbMF0ua2V5ID09ICdsYXN0Q3dlRGF0ZScgJiYgIXRoaXMuaXNOZXdDbGFpbSl7XHJcbiAgICAgICAgICB0aGlzLm1pbldvcmtTdGFydERhdGUgPSBuZXcgRGF0ZShsYXN0Q3dlWzBdLnZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRNYXN0ZXJEYXRhKCl7XHJcblxyXG4gICAgdGhpcy5jbGFpbXNTZXJ2aWNlLmdldFJlYXNvblNlcGFyYXRpb24oKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXREaXNjaGFyZ2VSZWFzb25zKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRRdWl0UmVhc29ucygpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLnB1c2goYXJyKSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBcclxuICBpZih0aGlzLmVtcGxveW1lbnRTdGF0dXNPcHRpb25zIT0gbnVsbClcclxuICAgICAgcmV0dXJuIHRydWVcclxuICB9XHJcblxyXG4gIGdldCB3YWdlQW1vdW50QXJyYXkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbXCJ3YWdlQW1vdW50QXJyYXlcIl0gYXMgVW50eXBlZEZvcm1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldCB0ZXN0RW1wKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbXCJ0ZXN0RW1wXCJdIDtcclxuICB9XHJcbiAgZ2V0IHNldmVyYW5jZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2ZXJhbmNlJ107XHJcbiAgfVxyXG4gIGdldCBlbXBsb3llclR5cGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0/LmNvbnRyb2xzWydlbXBsb3llclR5cGUnXTtcclxuICB9XHJcbiAgZ2V0IGVtcGxveWVyTmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW1wbG95ZXJOYW1lJ107XHJcbiAgfVxyXG4gIGdldCBvdGhTdGF0ZUVtcE5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ290aFN0YXRlRW1wTmFtZSddO1xyXG4gIH1cclxuICBnZXQgZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VtcGxveWVyVGVsZXBob25lTnVtYmVyJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc3RhcnREYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzdGFydERhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbmREYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgam9iVGlsZU9yUG9zaXRpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2pvYlRpbGVPclBvc2l0aW9uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcmVhc29uU2VwYXJhdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybT8uY29udHJvbHNbJ3JlYXNvblNlcGFyYXRpb24nXTtcclxuICB9XHJcblxyXG4gIGdldCBkaXNjaGFyZ2VEZXRhaWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2Rpc2NoYXJnZURldGFpbCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZvbFF1aXREZXRhaWxzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd2b2xRdWl0RGV0YWlscyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBheVJhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheVJhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBncm9zc1dhZ2VzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydncm9zc1dhZ2VzJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcGF5UmF0ZUZyZXF1ZW5jeSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGF5UmF0ZUZyZXF1ZW5jeSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBlbnNpb25GbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwZW5zaW9uRmxhZyddO1xyXG4gIH1cclxuICBcclxuICBnZXQgcGVuc2lvblJlY3ZEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BlbnNpb25SZWN2RGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlZ1BlbnNpb25GbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZWdQZW5zaW9uRmxhZyddO1xyXG4gIH1cclxuICBcclxuICBnZXQgcmVnUGVuc2lvblJlY3ZEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlZ1BlbnNpb25SZWN2RGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1Nob3J0VGVybURpc2FiaWxpdHkoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snaGFzU2hvcnRUZXJtRGlzYWJpbGl0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhhc1JlY3ZSZW11bmVyYXRpb24oKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snaGFzUmVjdlJlbXVuZXJhdGlvbiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlbXVuZXJhdGlvblR5cGVzKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlbXVuZXJhdGlvblR5cGVzJ107XHJcbiAgfVxyXG5cclxuICBnZXQgdmFjYXRpb24oKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sndmFjYXRpb24nXTtcclxuICB9XHJcblxyXG4gIGdldCBwYXltZW50VHlwZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGF5bWVudFR5cGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBkb2NzUmVjZWl2ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2RvY3NSZWNlaXZlZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90aGVyU1NORmxhZygpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvdGhlclNTTkZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBvdGhlclNTTigpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snb3RoZXJTU04nXTtcclxuICB9XHJcblxyXG4gIGdldCBvdGhlck5hbWVGbGFnKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ290aGVyTmFtZUZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBvdGhlck5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ290aGVyTmFtZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRvaW5nQnVzaW5lc3NBcygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZG9pbmdCdXNpbmVzc0FzJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd29ya0ZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dvcmtGbGFnJ107XHJcbiAgfVxyXG5cclxuICAvLyBnZXQgcXVpdHJlYXNvbigpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncXVpdHJlYXNvbiddO1xyXG4gIC8vIH1cclxuXHJcbiAgZ2V0IHdvcmtDaXR5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3b3JrQ2l0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdvcmtTdGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd29ya1N0YXRlJ107XHJcbiAgfVxyXG4gIGdldCBtaWxTdGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbWlsU3RhdGUnXTtcclxuICB9XHJcblxyXG4gIC8qZ2V0IGhpcmVkQnkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2hpcmVkQnknXTtcclxuICB9XHJcblxyXG4gIGdldCBmZWluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWluJ107XHJcbiAgfSovXHJcblxyXG4gIGdldCB3b3JrVHlwZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd29ya1R5cGUnXTtcclxuICB9XHJcblxyXG4gIC8qZ2V0IG51bWJlckVtcGxveWVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydudW1iZXJFbXBsb3llZCddO1xyXG4gIH0qL1xyXG5cclxuICBnZXQgYnVzaW5lc3NOYXR1cmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2J1c2luZXNzTmF0dXJlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2Rpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzJ107XHJcbiAgfVxyXG5cclxuICAvLyBnZXQgd2FnZVF1YXJ0ZXIxKCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3YWdlUXVhcnRlcjEnXTtcclxuICAvLyB9XHJcblxyXG4gIC8vIGdldCB3YWdlUXVhcnRlcjIoKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dhZ2VRdWFydGVyMiddO1xyXG4gIC8vIH1cclxuXHJcblxyXG4gIC8vIGdldCB3YWdlUXVhcnRlcjMoKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dhZ2VRdWFydGVyMyddO1xyXG4gIC8vIH1cclxuXHJcblxyXG5cclxuICAvLyBnZXQgd2FnZVF1YXJ0ZXI0KCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3YWdlUXVhcnRlcjQnXTtcclxuICAvLyB9XHJcblxyXG4gIGdldCBmaWNDb2RlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNDb2RlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmljRGVzdGluYXRpb25Db2RlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNEZXN0aW5hdGlvbkNvZGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBmaWNEZXN0aW5hdGlvbklkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNEZXN0aW5hdGlvbklkJ107XHJcbiAgfVxyXG4gICAgICBcclxuICBcclxuICAvLyBnZXQgZm9ybWVybHlLbm93bkFzKCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmb3JtZXJseUtub3duQXMnXTtcclxuICAvLyB9XHJcblxyXG4gIGdldCBzZkVpZ2h0ZmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2ZFaWdodGZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBmZWRXb3JrQ2l0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkV29ya0NpdHknXTtcclxuICB9XHJcblxyXG4gIGdldCBmZWRXb3JrU3RhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZFdvcmtTdGF0ZSddO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldCBmZWRXb3JrQ291bnRyeSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkV29ya0NvdW50cnknXTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgc3RhcnREYXRlRmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzdGFydERhdGVGZWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbmREYXRlRmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlRmVkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVkSm9iVGlsZU9yUG9zaXRpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZEpvYlRpbGVPclBvc2l0aW9uJ107XHJcbiAgfVxyXG5cclxuICAvKiBnZXQgY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydjbGFpbWFudEVtcGxveWVkV2l0aEVtcHInXTtcclxuICB9ICovXHJcblxyXG4gIGdldCBwZXJmb3JtZWRTZXJ2aWNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwZXJmb3JtZWRTZXJ2aWNlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVkUGVuc2lvbkZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZFBlbnNpb25GbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVkUGVuc2lvblJlY3ZEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZFBlbnNpb25SZWN2RGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNldlBheUZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldlBheUZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCB3ZWVrbHlBbW91bnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dlZWtseUFtb3VudCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG51bWJlck9mV2Vla3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ251bWJlck9mV2Vla3MnXTtcclxuICB9XHJcblxyXG4gIGdldCBzZXZQYXlBbW91bnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldlBheUFtb3VudCddO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldCBzZXZQYXlTdGFydERhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldlBheVN0YXJ0RGF0ZSddO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldCBzZXZQYXlFbmREYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlFbmREYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlZ0VtcGxveWVyRm91bmQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlZ0VtcGxveWVyRm91bmQnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBsb3llcklkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbXBsb3llcklkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVkRW1wbG95ZXJOYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRFbXBsb3llck5hbWUnXTtcclxuICB9XHJcbiAgZ2V0IHNlcnZpY2VCcmFuY2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NlcnZpY2VCcmFuY2gnXTtcclxuICB9XHJcblxyXG4gIGdldCBzdGFydERhdGVNaWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZU1pbCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVuZERhdGVNaWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGVNaWwnXTtcclxuICB9XHJcblxyXG4gIGdldCBkZDIxNEZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2RkMjE0RmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhc3RQYXlHcmFkZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbGFzdFBheUdyYWRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdGR1dHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2xhc3RkdXR5J107XHJcbiAgfVxyXG5cclxuICBnZXQgcGxhY2VTZXBhcmF0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BsYWNlU2VwYXJhdGVkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgbm9MZWF2ZURheXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ25vTGVhdmVEYXlzJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY29tcGxldGVkRnVsbFRlcm1GbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydjb21wbGV0ZWRGdWxsVGVybUZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCByZXNlcnZlT3JHdWFyZEZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3Jlc2VydmVPckd1YXJkRmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbFBlbnNpb25GbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydtaWxQZW5zaW9uRmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pbFBlbnNpb25SZWN2RGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbWlsUGVuc2lvblJlY3ZEYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgYWRkcmVzc0xpbmUxKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3NMaW5lMSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFkZHJlc3NMaW5lMigpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzTGluZTInXTtcclxuICB9XHJcblxyXG4gIGdldCBhZGRyZXNzTGluZTMoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzc0xpbmUzJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmljRGVzdGluYXRpb25OYW1lKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZpY0Rlc3RpbmF0aW9uTmFtZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlc2VydmVCcmFuY2goKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVzZXJ2ZUJyYW5jaCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXJ0RGF0ZVJlc2VydmUoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlUmVzZXJ2ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVuZERhdGVSZXNlcnZlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGVSZXNlcnZlJ107XHJcbiAgfVxyXG4gIFxyXG4gIGdldCBkZDIxNEZpbGUoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZGQyMTRGaWxlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgYWRkcmVzcygpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ107XHJcbiAgfVxyXG5cclxuICBnZXQgb3NhQnBFbXBsb3llckZsYWcoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snb3NhQnBFbXBsb3llckZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBwcmV2V29ya2VkU3RhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0/LmNvbnRyb2xzWydwcmV2V29ya2VkU3RhdGUnXTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG4gIG9uVG9nZ2xlQ2hhbmdlUHJldldvcmtlZFN0YXRlKG9iajogYW55KSB7XHJcbiAgICAgIHRoaXMucmVhc29uU2VwYXJhdGlvbi5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xyXG4gICAgICB0aGlzLmFkZHJlc3Muc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuZmljQ29kZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5maWNEZXN0aW5hdGlvbkNvZGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0xpbmUxLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZHJlc3NMaW5lMi5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRyZXNzTGluZTMuc2V0VmFsdWUobnVsbCk7ICBcclxuICAgICAgdGhpcy5wZW5zaW9uUmVjdkRhdGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMud29ya1R5cGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLm90aFN0YXRlRW1wTmFtZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy53b3JrU3RhdGUuc2V0VmFsdWUobnVsbCk7IFxyXG4gICAgICB0aGlzLndvcmtDaXR5LnNldFZhbHVlKG51bGwpOyBcclxuICAgICAgdGhpcy5zdGFydERhdGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuZW5kRGF0ZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5wYXlSYXRlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLnBheVJhdGVGcmVxdWVuY3kuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMucGVuc2lvbkZsYWcuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXIuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuam9iVGlsZU9yUG9zaXRpb24uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMucmVnUGVuc2lvbkZsYWcuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMucmVnUGVuc2lvblJlY3ZEYXRlLnNldFZhbHVlKG51bGwpO1xyXG4gIH1cclxuXHJcbiAgb25Nb2RlbENhbmNlbChjYW5jZWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubW9kZWxDYW5jZWwuZW1pdChjYW5jZWwpO1xyXG4gIH1cclxuXHJcbiAgc2V0RW1wbG95ZXIoZW1wbG95ZXI6IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0KSB7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnc2V0RW1wbG95ZXIgY2FsbGVkJywgZW1wbG95ZXIsIFwidHlwZVwiLCB0aGlzLmVtcGxveWVyVHlwZSwgJ3RoaXMuYWRkRW1wbG95ZXJGb3JtJyx0aGlzLmFkZEVtcGxveWVyRm9ybSk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW1wbG95ZXIuc3RhdGUnLCBlbXBsb3llci5zdGF0ZSlcclxuICAgIHRoaXMuYWRkcmVzcy5zZXRWYWx1ZSh7Y291bnRyeTplbXBsb3llci5jb3VudHJ5LCBjaXR5OmVtcGxveWVyLmNpdHlcclxuICAgICwgemlwOmVtcGxveWVyLnppcCxzdHJlZXRBZGRyZXNzOmVtcGxveWVyLmFkZHJlc3NEaXNwbGF5VmFsLHN0YXRlOmVtcGxveWVyLnN0YXRlLFxyXG4gICAgb3B0aW9uYWxBZGRyZXNzOm51bGwsY291bnR5Om51bGwsdG93bjpudWxsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuYWRkcmVzcy5kaXNhYmxlKCk7XHJcbiAgICB0aGlzLmFkZHJlc3Muc2V0RXJyb3JzKHt9KTtcclxuICAgIHRoaXMuZW1wbG95ZXJOYW1lLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVyTmFtZSk7XHJcbiAgICB0aGlzLmVtcGxveWVySWQuc2V0VmFsdWUoZW1wbG95ZXIuZW1wbG95ZXJJZCk7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMS5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTEpO1xyXG4gICAgdGhpcy5hZGRyZXNzTGluZTIuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUyKTtcclxuICAgIHRoaXMuYWRkcmVzc0xpbmUzLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMyk7XHJcbiAgICB0aGlzLnJlZ0VtcGxveWVyRm91bmQuc2V0VmFsdWUodHJ1ZSk7XHJcbiAgICB0aGlzLmlzTWFudWFsRW50ZXJFbXAgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldEZlZEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCl7XHJcbiAgICB0aGlzLmFkZHJlc3MyLnJlYWRvbmx5ID0gZmFsc2VcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzZXRGZWRFbXBsb3llciBjYWxsZWQnLCBlbXBsb3llciwgXCJ6aXAgXCIsIGVtcGxveWVyLnppcCk7XHJcbiAgICB0aGlzLmZpY0NvZGUuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZpY0NvZGUuc2V0VmFsdWUoZW1wbG95ZXIuZmljQ29kZSk7XHJcbiAgICB0aGlzLmZpY0NvZGUuZGlzYWJsZSgpO1xyXG4gICAgdGhpcy5mZWRFbXBsb3llck5hbWUuc2V0VmFsdWUoZW1wbG95ZXIuZW1wbG95ZXJOYW1lKTtcclxuICAgIHRoaXMuZmljRGVzdGluYXRpb25OYW1lLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5maWNEZXN0aW5hdGlvbk5hbWUuc2V0VmFsdWUoZW1wbG95ZXIuZmljRGVzdGluYXRpb25OYW1lKTtcclxuICAgIHRoaXMuZmljRGVzdGluYXRpb25JZC5zZXRWYWx1ZShlbXBsb3llci5maWNEZXN0aW5hdGlvbklkKTtcclxuICAgIHRoaXMuZmljRGVzdGluYXRpb25OYW1lLmRpc2FibGUoKTtcclxuICAgIHRoaXMuZmljRGVzdGluYXRpb25Db2RlLnNldFZhbHVlKGVtcGxveWVyLmZpY0Rlc3RpbmF0aW9uQ29kZSk7XHJcbiAgICB0aGlzLmFkZHJlc3Muc2V0VmFsdWUoe2NvdW50cnk6ZW1wbG95ZXIuY291bnRyeSwgY2l0eTplbXBsb3llci5jaXR5XHJcbiAgICAgICwgemlwOmVtcGxveWVyLnppcCxzdHJlZXRBZGRyZXNzOmVtcGxveWVyLmFkZHJlc3NMaW5lMSxzdGF0ZTplbXBsb3llci5zdGF0ZSxcclxuICAgICAgb3B0aW9uYWxBZGRyZXNzOmVtcGxveWVyLmFkZHJlc3NMaW5lMixjb3VudHk6bnVsbCx0b3duOm51bGxcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmFkZHJlc3MuZGlzYWJsZSgpO1xyXG4gICAgdGhpcy5lbXBsb3llcklkLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVySWQpO1xyXG4gICAgdGhpcy5hZGRyZXNzTGluZTEuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUxKTtcclxuICAgIHRoaXMuYWRkcmVzc0xpbmUyLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMik7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMy5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTMpO1xyXG4gICAgdGhpcy5yZWdFbXBsb3llckZvdW5kLnNldFZhbHVlKGZhbHNlKTtcclxuICAgIHRoaXMuYWRkcmVzczIucmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgdGhpcy5pc01hbnVhbEVudGVyRW1wID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZXNldEZlZEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCl7XHJcbiAgICB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmFkZHJlc3Muc2V0VmFsdWUoe2NvdW50cnk6bnVsbCwgY2l0eTpudWxsXHJcbiAgICAgICwgemlwOm51bGwsc3RyZWV0QWRkcmVzczpudWxsLHN0YXRlOm51bGwsXHJcbiAgICAgIG9wdGlvbmFsQWRkcmVzczpudWxsLGNvdW50eTpudWxsLHRvd246bnVsbFxyXG4gICAgICB9KTtcclxuICAgIHRoaXMucmVnRW1wbG95ZXJGb3VuZC5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgfVxyXG5cclxuICByZXNldEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCkge1xyXG4gICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXNldEVtcGxveWVyIGNhbGxlZCcsIGVtcGxveWVyKTtcclxuICAgICB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7XHJcbiAgICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKHtjb3VudHJ5Om51bGwsIGNpdHk6bnVsbFxyXG4gICAgICAsIHppcDpudWxsLHN0cmVldEFkZHJlc3M6bnVsbCxzdGF0ZTpudWxsLFxyXG4gICAgICBvcHRpb25hbEFkZHJlc3M6bnVsbCxjb3VudHk6bnVsbCx0b3duOm51bGxcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnJlZ0VtcGxveWVyRm91bmQuc2V0VmFsdWUoZmFsc2UpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1dE1pbFJlc0JyYW5jaFZhbGlkYXRpb24oZXZlbnQpe1xyXG4gICAgaWYgKGV2ZW50Lm9wdGlvbi52YWx1ZSA9PT0gJ1knKSB7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVzZXJ2ZUJyYW5jaCddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlUmVzZXJ2ZSddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZVJlc2VydmUnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBvbk9wdGlvbkNoYW5nZShldmVudCkge1xyXG4gICAgaWYgKGV2ZW50Lm9wdGlvbi52YWx1ZSAhPT0gJ1knKSB7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbXBsb3llclRlbGVwaG9uZU51bWJlciddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydqb2JUaWxlT3JQb3NpdGlvbiddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVhc29uU2VwYXJhdGlvbiddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGF5UmF0ZSddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGF5UmF0ZUZyZXF1ZW5jeSddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGVuc2lvbkZsYWcnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgLy8gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2lzQ2xtdFBhaWRXaGlsZUxvdyddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzYXZlKCkge1xyXG4gICAgaWYodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikge1xyXG4gICAgICAvL3JlbW92ZSB2YWxpZGF0b3Igc2luY2UgYmFzZVBlcmlvZCBlbXBsb3llciBhbHJlYWR5IGhhcyBlbXBsb3llciBjb21pbmcgZnJvbSBiYWNrZW5kXHJcbiAgICAgIHRoaXMuYWRkcmVzcy5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgdGhpcy5hZGRyZXNzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5zYXZlLnZhbHVlJywgdGhpcy5hZGRFbXBsb3llckZvcm0pO1xyXG4gICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xyXG4gICAgdGhpcy52YWxpZGF0ZVdhZ2VHcmlkKClcclxuICAgIGlmICh0aGlzLmFkZEVtcGxveWVyRm9ybS52YWxpZCAmJiB0aGlzLmFkZHJlc3MuZXJyb3JzID09PSBudWxsKSAge1xyXG4gICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcclxuICAgICAgdGhpcy5kaXNwbGF5ID0gZmFsc2U7IFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hZGRyZXNzLmRpc2FibGUoKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5hZGRFbXBsb3llckZvcm0pO1xyXG4gICAgICBjb25zdCBmaXhGaWVsZHMgPSBPYmplY3QuZW50cmllcyh0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9scykuZmlsdGVyKHggPT4gIXhbMV0udmFsaWQpLm1hcCh4ID0+IHhbMF0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhcImZpeCBmaWVsZHM6XCIsIGZpeEZpZWxkcyk7XHJcbiAgICAgIFxyXG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiYWRkIGVtcGxveWVyIGZhaWx1cmUgaW5mbzpcIiwgdGhpcy5scy5nZXRVc2VyKCkuY2xhaW1hbnRJZCwgZml4RmllbGRzLCB0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZSk7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiYWRkIGVtcGxveWVyIGZhaWx1cmUgZXJyb3I6XCIsIHRoaXMubHMuZ2V0VXNlcigpLmNsYWltYW50SWQsIGZpeEZpZWxkcywgdGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xyXG4gICAgICB0aGlzLmxvZ2dlci5sb2coXCJhZGQgZW1wbG95ZXIgZmFpbHVyZSBsb2c6XCIsIHRoaXMubHMuZ2V0VXNlcigpLmNsYWltYW50SWQsIGZpeEZpZWxkcywgdGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpOyBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZCgpIHtcclxuICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkLnN1Ym1pdHRlZCA9IHRydWU7XHJcblx0ICBpZih0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSAhPSAnTUlMJykge1xyXG4gICAgICB0aGlzLnZhbGlkYXRlV2FnZUdyaWQoKTtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRlIGFkZHJlc3MgY29tcG9uZW50Jyk7XHJcbiAgICAgIGlmKHRoaXMuaXNNYW51YWxFbnRlckVtcCkge1xyXG4gICAgICAgIC8vVmFsaWRhdGUgYWRkcmVzcyBvbmx5IHdoZW4gYWRkcmVzcyBpcyBtYW51YWwgZW50ZXJlZFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGVBZGRyZXNzKCk7XHJcbiAgICAgIH0gZWxzZXtcclxuICAgICAgICB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgaWYgKHRoaXMuYWRkRW1wbG95ZXJGb3JtLmludmFsaWQgfHwgKHRoaXMuYWRkcmVzcy5lcnJvcnMgJiYgT2JqZWN0LmtleXModGhpcy5hZGRyZXNzLmVycm9ycykubGVuZ3RoID4gMCkpIHtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5hZGRFbXBsb3llckZvcm0pO1xyXG4gICAgICBjb25zdCBmaXhGaWVsZHMgPSBPYmplY3QuZW50cmllcyh0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9scykuZmlsdGVyKHggPT4gIXhbMV0udmFsaWQpLm1hcCh4ID0+IHhbMF0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhcImZpeCBmaWVsZHM6XCIsIGZpeEZpZWxkcyk7XHJcblxyXG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKFwiYWRkIGVtcGxveWVyIGZhaWx1cmUgaW5mbzpcIiwgdGhpcy5scy5nZXRVc2VyKCkuY2xhaW1hbnRJZCwgZml4RmllbGRzLCB0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZSk7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiYWRkIGVtcGxveWVyIGZhaWx1cmUgZXJyb3I6XCIsIHRoaXMubHMuZ2V0VXNlcigpLmNsYWltYW50SWQsIGZpeEZpZWxkcywgdGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xyXG4gICAgICB0aGlzLmxvZ2dlci5sb2coXCJhZGQgZW1wbG95ZXIgZmFpbHVyZSBsb2c6XCIsIHRoaXMubHMuZ2V0VXNlcigpLmNsYWltYW50SWQsIGZpeEZpZWxkcywgdGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xyXG4gICAgICBcclxuICAgICAgLy90aGlzLmFkZHJlc3MuZGlzYWJsZSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IFxyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMuYWRkLnZhbHVlJywgdGhpcy5hZGRFbXBsb3llckZvcm0pOyBcclxuICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNDb2RlJ10uZW5hYmxlKCk7XHJcbiAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljRGVzdGluYXRpb25OYW1lJ10uZW5hYmxlKCk7XHJcbiAgICB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7XHJcbiAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZSk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcImFkZCBmb3JtIGRldGFpbHMgYWRkKCktIFwiLCB0aGlzLmFkZEVtcGxveWVyRm9ybSk7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcclxuXHJcbiAgfVxyXG4gIHZhbGlkYXRlV2FnZUdyaWQoKSB7XHJcbiAgICB0aGlzLndhZ2VBbW91bnRBcnJheS5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICBpZiAodGhpcy5lbXBsb3llclR5cGUudmFsdWUhPT0nRkVEJyAmJiAhKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChPYmplY3QudmFsdWVzKHRoaXMud2FnZUFtb3VudEFycmF5LmNvbnRyb2xzKS5maWx0ZXIoeCA9PiB4LnZhbHVlLndhZ2VBbW91bnQgIT09IDApLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLndhZ2VBbW91bnRBcnJheS5zZXRFcnJvcnMoe3JlcXVpcmVDaGVja2JveFRvQmVDaGVja2VkOiB0cnVlfSk7XHJcbiAgfVxyXG4gIHZhbGlkYXRlQWRkcmVzcygpIHtcclxuICAgIC8vIENsZWFyIHByZXZpb3VzIGVycm9ycyBvbiB0aGUgYWRkcmVzcyBjb250cm9sXHJcbiAgICBjb25zdCBhZGRyZXNzQ29udHJvbCA9IHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ107XHJcbiAgXHJcbiAgICAvLyBHZXQgdGhlIGFkZHJlc3MgY29tcG9uZW50IHZhbHVlXHJcbiAgICBjb25zdCBhZGRyZXNzQ29tcFZhbHVlOiBBZGRyZXNzQ29tcG9uZW50TW9kZWwgPSBhZGRyZXNzQ29udHJvbC52YWx1ZTtcclxuICBcclxuICAgIC8vIExpc3Qgb2YgYWRkcmVzcyBmaWVsZHMgdG8gdmFsaWRhdGVcclxuICAgIGNvbnN0IGFkZHJlc3NGaWVsZHMgPSBbJ3N0cmVldEFkZHJlc3MnLCAnY2l0eScsICdzdGF0ZScsICd6aXAnLCAnY291bnRyeSddO1xyXG4gIFxyXG4gICAgbGV0IGhhc0Vycm9ycyA9IGZhbHNlO1xyXG4gIFxyXG4gICAgLy8gTG9vcCB0aHJvdWdoIGVhY2ggZmllbGQgYW5kIHZhbGlkYXRlXHJcbiAgICBhZGRyZXNzRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBjb25zdCBmaWVsZFZhbHVlID0gYWRkcmVzc0NvbXBWYWx1ZT8uW2ZpZWxkXTtcclxuICBcclxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZpZWxkIGlzIG1pc3Npbmcgb3IgZW1wdHlcclxuICAgICAgaWYgKCFmaWVsZFZhbHVlKSB7XHJcbiAgICAgICAgLy8gU2V0IHJlcXVpcmVkIGVycm9yIGlmIGZpZWxkIGlzIG1pc3NpbmdcclxuICAgICAgICB0aGlzLnNldEZpZWxkRXJyb3IoZmllbGQsIHRydWUpO1xyXG4gICAgICAgIGhhc0Vycm9ycyA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gQ2xlYXIgZXJyb3IgaWYgZmllbGQgaGFzIHZhbHVlXHJcbiAgICAgICAgdGhpcy5zZXRGaWVsZEVycm9yKGZpZWxkLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIFxyXG4gICAgLy8gSWYgdGhlcmUgYXJlIGVycm9ycyBpbiBhbnkgZmllbGQsIG1hcmsgdGhlIGFkZHJlc3MgY29udHJvbCBhcyBpbnZhbGlkXHJcbiAgICBpZiAoaGFzRXJyb3JzKSB7XHJcbiAgICAgIGFkZHJlc3NDb250cm9sLnNldEVycm9ycyh7IGFkZHJlc3NWYWxpZGF0aW9uRmxhZzogdHJ1ZSB9KTtcclxuICAgICAgaWYgKHRoaXMuZW1wbG95ZXJGb3JtRWxlbWVudCkge1xyXG4gICAgICAgIHRoaXMuZW1wbG95ZXJGb3JtRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ3N0YXJ0JyB9KTsgIC8vIEZvY3VzIHRoZSBlcnJvciBlbGVtZW50XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGFkZHJlc3NDb250cm9sLnNldEVycm9ycyhudWxsKTsgIC8vIENsZWFyIGVycm9yIGlmIGV2ZXJ5dGhpbmcgaXMgdmFsaWRcclxuICAgIH1cclxuICAgIC8vIFVwZGF0ZSB2YWxpZGl0eSBvZiB0aGUgZm9ybVxyXG4gICAgdGhpcy5hZGRFbXBsb3llckZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIFxyXG4gICAgLy8gU3VibWl0IGFkZHJlc3MxIGFuZCBhZGRyZXNzMiBpZiB0aGV5IGV4aXN0XHJcbiAgICBpZih0aGlzLmFkZHJlc3MxKXtcclxuICAgICAgdGhpcy5hZGRyZXNzMS5zdWJtaXQoKTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMuYWRkcmVzczIpe1xyXG4gICAgICB0aGlzLmFkZHJlc3MyLnN1Ym1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBzZXQgb3IgY2xlYXIgZXJyb3JzIGZvciBlYWNoIGFkZHJlc3MgZmllbGRcclxuICAgc2V0RmllbGRFcnJvcihmaWVsZDogc3RyaW5nLCBpc0Vycm9yOiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3MnXS5nZXQoZmllbGQpO1xyXG4gICAgaWYgKGlzRXJyb3IpIHtcclxuICAgICAgY29udHJvbD8uc2V0RXJyb3JzKHsgcmVxdWlyZWQ6IHRydWUgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb250cm9sPy5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRGZWRXb3JrU3RhdGVWYWx1ZXMoZXZlbnQpe1xyXG4gICAgaWYoZXZlbnQudmFsdWUgIT09ICdVUycpe1xyXG4gICAgICB0aGlzLmZlZFdvcmtTdGF0ZS5zZXRWYWx1ZShudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbHRlckpvYlRpbGVPclBvc2l0aW9uKGV2ZW50KSB7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldChgL2NsYWltcy1zZXJ2aWNlL2NsYWltL2pvYnRpdGxlL2AgKyBgJHtldmVudC5xdWVyeX1gKS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3JlcycsIHJlcyk7XHJcbiAgICAgICAgdGhpcy5qb2JUaWxlT3JQb3NpdGlvbk9wdGlvbnMgPSByZXM7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyRmVkSm9iVGlsZU9yUG9zaXRpb24oZXZlbnQpIHtcclxuICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0KGAvY2xhaW1zLXNlcnZpY2UvY2xhaW0vam9idGl0bGUvYCArIGAke2V2ZW50LnF1ZXJ5fWApLnN1YnNjcmliZShcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVzJywgcmVzKTtcclxuICAgICAgICB0aGlzLmZlZEpvYlRpbGVPcHRpb25zID0gcmVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGZpbHRlckRpc2NoYXJnZVJlYXNvbnMoZXZlbnQpIHtcclxuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcclxuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHNlcFJlYXNvbiA9IHRoaXMuZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbFtpXTtcclxuICAgICAgaWYgKHNlcFJlYXNvbi50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XHJcbiAgICAgICAgZmlsdGVyZWQucHVzaChzZXBSZWFzb24pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnMgPSBmaWx0ZXJlZDtcclxuICB9XHJcblxyXG4gIGZpbHRlclZvbHVudGFyeVJlYXNvbihldmVudCkge1xyXG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnNBbGwubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGV0IHNlcFJlYXNvbiA9IHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnNBbGxbaV07XHJcbiAgICAgIGlmIChzZXBSZWFzb24udGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xyXG4gICAgICAgIGZpbHRlcmVkLnB1c2goc2VwUmVhc29uKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy52b2xRdWl0UmVhc29uT3B0aW9ucyA9IGZpbHRlcmVkO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoZXZlbnQpIHtcclxuICAgIGlmKGV2ZW50LnRhcmdldD8udmFsdWUpe1xyXG4gICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmKCBldmVudCBpbnN0YW5jZW9mIERhdGUpe1xyXG4gICAgICB0aGlzLm1pbkRhdGUgPSBldmVudDtcclxuICAgIH1cclxuICAgIHRoaXMuZW5kRGF0ZS5zZXRWYWx1ZShudWxsKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLmJhc2VQZXJpb2RTdGFydERhdGUnLCB0aGlzLmJhc2VQZXJpb2RTdGFydERhdGUpICBcclxuICB9XHJcblxyXG53YWdlQXJyYXkocXRyV2FnZTpRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWwpOiBVbnR5cGVkRm9ybUdyb3VwIHtcclxuICByZXR1cm4gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICB3YWdlQW1vdW50OiBbcXRyV2FnZS53YWdlQW1vdW50IT1udWxsP3F0cldhZ2Uud2FnZUFtb3VudDpudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCgodGhpcy5lbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJykgfHwgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgcXRyV2FnZS5kaXNwbGF5Rm9yQWxsICYmIHRoaXMud29ya1N0YXRlLnZhbHVlICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlPT09dGhpcy5jdXJyZW50U3RhdGUpICkpKV0sXHJcbiAgICBxdWFydGVyOiBbcXRyV2FnZS5xdWFydGVyIT1udWxsP3F0cldhZ2UucXVhcnRlcjpudWxsXSxcclxuICAgIHllYXI6IFtxdHJXYWdlLnllYXIhPW51bGw/cXRyV2FnZS55ZWFyOm51bGxdLFxyXG4gICAgcXRyWWVhckRpc3BsYXlTdHJpbmc6IFtxdHJXYWdlLnF0clllYXJEaXNwbGF5U3RyaW5nIT1udWxsP3F0cldhZ2UucXRyWWVhckRpc3BsYXlTdHJpbmc6bnVsbF0sXHJcbiAgICBkaXNwbGF5T3JkZXI6IFtxdHJXYWdlLmRpc3BsYXlPcmRlciE9bnVsbD9xdHJXYWdlLmRpc3BsYXlPcmRlcjpudWxsXSxcclxuICAgIGRpc3BsYXlGb3JBbGw6IFtxdHJXYWdlLmRpc3BsYXlGb3JBbGwhPW51bGw/cXRyV2FnZS5kaXNwbGF5Rm9yQWxsOm51bGxdLFxyXG4gIH0pXHJcbn1cclxuXHJcbnNldFdhZ2VWYWxpZGF0aW9uKCkge1xyXG4gIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMud2FnZUFtb3VudEFycmF5LCBBcHBWYWxpZGF0b3JzLmF0TGVhc3RPbmVOb25aZXJvVmFsdWVWYWxpZGF0b3IoMSwgJ3dhZ2VBbW91bnQnKSk7XHJcbiAgdGhpcy5sb2dnZXIuZGVidWcoJ3NldHRpbmcgdmFsaWRhdGlvbiBmb3IgZmVkIGVtcGxveWVyJyk7XHJcbn1cclxuXHJcbnJlbW92ZVdhZ2VWYWxpZGF0aW9uKCkge1xyXG4gIGlmKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlICE9ICdGRUQnKXtcclxuICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy53YWdlQW1vdW50QXJyYXkpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3JlbW92aW5nIHZhbGlkYXRpb24gZm9yIGZlZCBlbXBsb3llcicpO1xyXG4gIH1cclxufVxyXG5cclxuICB2YWxpZGF0ZVdhZ2VzRGlzcGxheShldmVudCl7XHJcbiAgICBsZXQgYnBTdGFydERhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLmJhc2VQZXJpb2RTdGFydERhdGUpO1xyXG4gICAgbGV0IGJwRW5kRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKHRoaXMuYmFzZVBlcmlvZEVuZERhdGUpO1xyXG4gICAgbGV0IHN0YXJ0ZURhdGVWYWw6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZS52YWx1ZSk7XHJcbiAgICBsZXQgZW5kRGF0ZVZhbDogRGF0ZSA9IG5ldyBEYXRlKHRoaXMuZW5kRGF0ZS52YWx1ZSk7XHJcbiAgICAvLyBsZXQgZW5kRGF0ZVZhbDogRGF0ZSA9IGV2ZW50LnRhcmdldD8udmFsdWUgPyBuZXcgRGF0ZShldmVudC50YXJnZXQudmFsdWUpIDogZXZlbnQ7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnYnBTdGFydERhdGUgJywgYnBTdGFydERhdGUsICdzdGFydGVEYXRlVmFsICcsIHN0YXJ0ZURhdGVWYWwpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2VuZERhdGVWYWwgJywgZW5kRGF0ZVZhbCwgJ2JwRW5kRGF0ZSAnLCBicEVuZERhdGUpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3N0YXJ0ZURhdGVWYWwgYmVmb3JlIGJwRW5kRGF0ZSAnLCBzdGFydGVEYXRlVmFsIDwgYnBFbmREYXRlKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdlbmREYXRlVmFsIGFmdGVyIGJwU3RhcnREYXRlICcsIGVuZERhdGVWYWwgPiBicFN0YXJ0RGF0ZSk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy53b3JrU3RhdGUgJywgdGhpcy53b3JrU3RhdGUpO1xyXG4gICAgaWYgKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWUgPT0gdGhpcy5jdXJyZW50U3RhdGUgJiYgdGhpcy5pc05ld0NsYWltKSB7XHJcbiAgICAgICAgaWYgKHN0YXJ0ZURhdGVWYWwuZ2V0VGltZSgpIDwgYnBFbmREYXRlLmdldFRpbWUoKSAmJiBlbmREYXRlVmFsLmdldFRpbWUoKT4gYnBTdGFydERhdGUuZ2V0VGltZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnNldFZhbHVlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnNldFZhbHVlKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbHRlckdyb3VwZWRSZWFzb24oZXZlbnQpIHtcclxuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3F1ZXJ5JyxxdWVyeSk7XHJcbiAgICBsZXQgZmlsdGVyZWRHcm91cHMgPSBbXTtcclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikgPT09IFwiZXNcIil7XHJcbiAgICAgIHRoaXMuZ3JvdXBlZFJlYXNvbnM9IENvbWJvT3B0aW9uLkdST1VQX1JFQVNPTlNfRVM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdyb3VwZWRSZWFzb25zPSBDb21ib09wdGlvbi5HUk9VUF9SRUFTT05TO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgb3B0Z3JvdXAgb2YgdGhpcy5ncm91cGVkUmVhc29ucykge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnb3B0Z3JvdXAuaXRlbXMnLG9wdGdyb3VwLml0ZW1zKTtcclxuICAgICAgbGV0IGZpbHRlcmVkU3ViT3B0aW9ucyA9IHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXIoXHJcbiAgICAgICAgb3B0Z3JvdXAuaXRlbXMsXHJcbiAgICAgICAgW1wibGFiZWxcIl0sXHJcbiAgICAgICAgcXVlcnksXHJcbiAgICAgICAgXCJjb250YWluc1wiXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdmaWx0ZXJlZFN1Yk9wdGlvbnMnLGZpbHRlcmVkU3ViT3B0aW9ucyk7XHJcbiAgICAgIGlmIChmaWx0ZXJlZFN1Yk9wdGlvbnMgJiYgZmlsdGVyZWRTdWJPcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICAgIGZpbHRlcmVkR3JvdXBzLnB1c2goe1xyXG4gICAgICAgICAgbGFiZWw6IG9wdGdyb3VwLmxhYmVsLFxyXG4gICAgICAgICAgdmFsdWU6IG9wdGdyb3VwLnZhbHVlLFxyXG4gICAgICAgICAgaXRlbXM6IGZpbHRlcmVkU3ViT3B0aW9uc1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ncm91cGVkUmVhc29ucyA9IGZpbHRlcmVkR3JvdXBzO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhckFjdGlvbihldmVudCkge1xyXG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcclxuICB9ICBcclxuICBcclxuXHJcbiAgZGF0ZUlucHV0KGV2ZW50KXtcclxuICAgIGxldCBjdXJyZW50VmFsdWUgOiBzdHJpbmcgPSBldmVudC5zcmNFbGVtZW50LnZhbHVlO1xyXG4gICAgaWYoY3VycmVudFZhbHVlKXtcclxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDIgJiYgY3VycmVudFZhbHVlLmNoYXJBdCgyKSAhPSAnLycpe1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoY3VycmVudFZhbHVlLmxlbmd0aCA9PSA1ICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoNSkgIT0gJy8nKXtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgcmVxdWlyZWQoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY29tbW9uLnJlcXVpcmVkJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgcmVxdWlyZWRLYW5zYXMoKXtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlcXVpcmVkLmthbnNhcycpO1xyXG4gIH1cclxufVxyXG5cclxuIiwiPHAtZGlhbG9nIHZpc2libGU9XCJ0cnVlXCIgcG9zaXRpb249XCJ0b3BcIiBhcHBlbmRUbz1cImJvZHlcIiBbc2hvd0hlYWRlcl09XCJmYWxzZVwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxyXG4gIFtyZXNpemFibGVdPVwiZmFsc2VcIiBbc3R5bGVdPVwie3dpZHRoOiAnNjB2dyd9XCJcclxuICBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiPlxyXG4gIDxoNCBzdHlsZT1cImNvbG9yOiB2YXIoLS1pb24tY29sb3ItZ3JleSk7IHBhZGRpbmctbGVmdDogMjBweDtcIj4ge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuaGVhZGluZ1wifHRyYW5zbGF0ZX19XHJcbiAgPC9oND5cclxuICA8Zm9ybSAjZW1wbG95ZXJGb3JtIFtmb3JtR3JvdXBdPVwiYWRkRW1wbG95ZXJGb3JtXCI+XHJcbiAgICA8aW9uLWdyaWQgKm5nSWY9XCJhZGRFbXBsb3llckZvcm0/LmNvbnRyb2xzXCI+IDwhLS1UbyBSZXZpZXctLT5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llclwiPlxyXG4gICAgICAgICAgICAgIHt7Y3VzdG9tZXJOYW1lfX1cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWxpYXNOYW1lICE9IG51bGxcIj5cclxuICAgICAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmRiYVwifHRyYW5zbGF0ZX19IHt7YWxpYXNOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEycHg7XCI+IHt7bWFpbGluZ0FkZHJlc3NEaXNwbGF5fX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzQ1NSXCI+XHJcbiAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5lbXBsb3llci53YWdlc1wifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJpc0NTUlwiPlxyXG4gICAgICAgICAgICAgICAgPHAtdGFibGUgW3ZhbHVlXT1cImVtcGxveWVyUHJvdmlkZWRXYWdlc1wiIHN0eWxlQ2xhc3M9XCJwLWRhdGF0YWJsZS1zdHJpcGVkIGFwcC1kYXRhdGFibGUgaW9uLXBhZGRpbmctdG9wXCJcclxuICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiZW1wbG95ZXJQcm92aWRlZFdhZ2VzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxiPnt7IGNvbC5xdHJZZWFyRGlzcGxheVN0cmluZyB9fTwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7Y29sLndhZ2VBbW91bnQgfCBjdXJyZW5jeX19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3AtdGFibGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJ3b3JrRmxhZz8udmFsdWUgPT0gJ1knXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LndvcmtmbGFnLm5vXCJ8dHJhbnNsYXRlfX08YnIgLz4gPGJyIC8+XHJcbiAgICAgICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC53b3JrZmxhZy5uby5saW5lMlwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llclR5cGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmVtcGxveWVyLnR5cGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBpbmhlcml0O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJlbXBsb3llclR5cGVcIiBbb3B0aW9uc109XCJlbXBsb3llclR5cGVPcHRpb25zXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJlbXBsb3llclR5cGVcIiBbY2xhc3MuZGlzYWJsZWRdPVwibm9FZGl0TW9kZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJUeXBlJyBbZXJyRGVmXT1cInsgICAgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInByZXZXb3JrZWRTdGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5zdGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJwcmV2V29ya2VkU3RhdGVcIiBbb3B0aW9uc109XCJwcmV2V29ya2VkU3RhdGVPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInByZXZXb3JrZWRTdGF0ZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbY2xhc3MuZGlzYWJsZWRdPVwibm9FZGl0TW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgIChvbk9wdGlvbkNsaWNrKT1cIm9uVG9nZ2xlQ2hhbmdlUHJldldvcmtlZFN0YXRlKCRldmVudClcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ByZXZXb3JrZWRTdGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICBcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJOYW1lXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5lbXBsb3llci5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcmV2V29ya2VkU3RhdGUudmFsdWU9PT0nS1MnOyBlbHNlIGVsc2VCbG9ja1wiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgaW5wdXRJZD1cImVtcGxveWVyTmFtZVwiIFtmb3JtQ29udHJvbF09XCJlbXBsb3llck5hbWVcIiBlbXBUeXBlPVwiUkVHXCIgKG9uRm91bmQpPVwic2V0RW1wbG95ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIChvbkVtcHR5KT1cInJlc2V0RW1wbG95ZXIoJGV2ZW50KVwiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llck5hbWUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUJsb2NrPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVtcGxveWVyTmFtZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cIm90aFN0YXRlRW1wTmFtZVwiIG1heGxlbmd0aD1cIjUwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhTdGF0ZUVtcE5hbWUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgc3R5bGU9XCJ3aWR0aDogaW5oZXJpdCAhaW1wb3J0YW50O1wiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmVkRW1wbG95ZXJOYW1lXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5lbXBsb3llci5mZWQubmFtZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLXNlYXJjaC1lbXBsb3llciBbZm9ybUNvbnRyb2xdPVwiZmVkRW1wbG95ZXJOYW1lXCIgZW1wVHlwZT1cIkZFRFwiIChvbkZvdW5kKT1cInNldEZlZEVtcGxveWVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKG9uRW1wdHkpPVwicmVzZXRGZWRFbXBsb3llcigkZXZlbnQpXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVyPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRFbXBsb3llck5hbWUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwic2VydmljZUJyYW5jaC1sYWJlbFwiIGZvcj1cInNlcnZpY2VCcmFuY2hcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5zZXJ2aWNlLmJyYW5jaFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJtaWxpdGFyeVNlcnZpY2VPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInNlcnZpY2VCcmFuY2hcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwic2VydmljZUJyYW5jaFwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VydmljZUJyYW5jaCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJtaWwtc3RhdGUtbGFiZWxcIiBmb3I9XCJtaWwtc3RhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucGh5c2ljYWwubG9jYXRpb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW2Zvcm1Db250cm9sXT1cIm1pbFN0YXRlXCIgW29wdGlvbnNdPVwic3RhdGVzT3B0aW9uc1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIGlucHV0SWQ9XCJtaWwtc3RhdGVcIiBhcHBlbmRUbz1cImJvZHlcIj5cclxuXHJcbiAgICAgICAgICAgICAgPC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgY2xhc3M9XCJhcHAtZ3JpZFwiIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtmaWVsZF09XCJtaWxTdGF0ZVwiIFtlcnJEZWZdPVwie1xyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRLYW5zYXM6IHJlcXVpcmVkS2Fuc2FzXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdGFydERhdGVNaWxcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5zdGFydGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJzdGFydERhdGVNaWxcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzdGFydERhdGVNaWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVNaWxcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIChvbkJsdXIpPVwidmFsaWRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlKCRldmVudClcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5Xb3JrU3RhcnREYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3N0YXJ0RGF0ZU1pbCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVuZERhdGVNaWxcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5lbmRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwiZW5kRGF0ZU1pbFwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImVuZERhdGVNaWxcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW2Zvcm1Db250cm9sXT1cImVuZERhdGVNaWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW5kRGF0ZU1pbCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiBoaWRlRmljQ29kZVwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWNDb2RlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuZmljLmNvZGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZpY0NvZGVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJmaWNDb2RlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZpY0NvZGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWNEZXN0aW5hdGlvbk5hbWVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5maWMuZGVzdGluYXRpb25cInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZpY0Rlc3RpbmF0aW9uTmFtZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImZpY0Rlc3RpbmF0aW9uTmFtZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmaWNEZXN0aW5hdGlvbk5hbWUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llclwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctcmlnaHQ6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtYWRkcmVzcyAjYWRkcmVzczEgW2Zvcm1Db250cm9sXT1cImFkZHJlc3NcIiBbY291bnR5UmVxdWlyZWRdPVwiZmFsc2VcIiBbZnJvbVBvcHVwXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDwvYXBwLWFkZHJlc3M+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8YXBwLWFkZHJlc3MgcmVhZG9ubHk9XCJ0cnVlXCIgI2FkZHJlc3MyIFtmb3JtQ29udHJvbF09XCJhZGRyZXNzXCIgW2NvdW50eVJlcXVpcmVkXT1cImZhbHNlXCIgW2Zyb21Qb3B1cF09XCJ0cnVlXCI+IDwvYXBwLWFkZHJlc3M+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09XCJhZGRyZXNzXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8bWF0LWVycm9yIGNsYXNzPVwiYXBwLWdyaWRcIiAqbmdJZj1cImFkZHJlc3M/LmVycm9ycz8uYWRkcmVzc1ZhbGlkYXRpb25GbGFnICYmIGlzRm9ybVN1Ym1pdHRlZC5zdWJtaXR0ZWRcIj5cclxuICAgICAgICAgICAgICAgIHt7XCJjb21tb24udmFsaWQuYWRkcmVzc1wifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llclwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3b3JrQ2l0eVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5sb2NhdGlvbi5jaXR5XCJ8dHJhbnNsYXRlfX0gPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwid29ya0NpdHlcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ3b3JrQ2l0eVwiIG1heGxlbmd0aD1cIjMwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dvcmtDaXR5JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwid29ya1N0YXRlLWxhYmVsXCIgZm9yPVwid29ya1N0YXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC53b3JrLmxvY2F0aW9uLnN0YXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJwcmV2V29ya2VkU3RhdGUudmFsdWU9PT0nS1MnP3N0YXRlc09wdGlvbnM6bm9uS1NTdGF0ZXNPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwid29ya1N0YXRlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlucHV0SWQ9XCJ3b3JrU3RhdGVcIiAob25DaGFuZ2UpPVwidmFsaWRhdGVXYWdlc0Rpc3BsYXkoJGV2ZW50KVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dvcmtTdGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJmZWRXb3JrQ291bnRyeS1sYWJlbFwiIGZvcj1cImZlZFdvcmtDb3VudHJ5XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQud29yay5sb2NhdGlvbi5jb3VudHJ5XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cIndvcmtDb3VudHJ5T3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJmZWRXb3JrQ291bnRyeVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJmZWRXb3JrQ291bnRyeVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkV29ya0NvdW50cnknIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZFdvcmtDaXR5XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC53b3JrLmxvY2F0aW9uLmNpdHlcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZlZFdvcmtDaXR5XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZmVkV29ya0NpdHlcIiBtYXhsZW5ndGg9XCIzMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRXb3JrQ2l0eScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiICpuZ0lmPVwic2hvd1dvcmtTdGF0ZSA9PT0gdHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cImZlZFdvcmtTdGF0ZS1sYWJlbFwiIGZvcj1cImZlZFdvcmtTdGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5sb2NhdGlvbi5zdGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwic3RhdGVzT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJmZWRXb3JrU3RhdGVcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cImZlZFdvcmtTdGF0ZVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZFdvcmtTdGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RhcnREYXRlRmVkXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc3RhcnRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwic3RhcnREYXRlRmVkXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiIGlucHV0SWQ9XCJzdGFydERhdGVGZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVGZWRcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluV29ya1N0YXJ0RGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzdGFydERhdGVGZWQnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW5kRGF0ZUZlZFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLmVuZGRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIGljb25BcmlhTGFiZWw9XCJlbmREYXRlRmVkXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwiZW5kRGF0ZUZlZFwiIFttYXhEYXRlXT1cImRhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbZm9ybUNvbnRyb2xdPVwiZW5kRGF0ZUZlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbmREYXRlRmVkJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmVkSm9iVGlsZU9yUG9zaXRpb25cIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5qb2J0aXRsZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJmZWRKb2JUaWxlT3JQb3NpdGlvblwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImZlZEpvYlRpbGVPclBvc2l0aW9uXCJcclxuICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjEwMFwiIC8+XHJcbiAgICAgICAgICAgICAgPCEtLSAgPHAtYXV0b0NvbXBsZXRlIFtmb3JtQ29udHJvbF09XCJmZWRKb2JUaWxlT3JQb3NpdGlvblwiIFtzdWdnZXN0aW9uc109XCJmZWRKb2JUaWxlT3B0aW9uc1wiIFxyXG4gICAgICAgICAgICAgICAgKGNvbXBsZXRlTWV0aG9kKT1cImZpbHRlckZlZEpvYlRpbGVPclBvc2l0aW9uKCRldmVudClcIiBmaWVsZD1cImpvYlRpdGxlXCIgW2Ryb3Bkb3duXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlN0YXJ0Li4uIHR5cGluZyBqb2IgdGl0bGVcIiBtaW5MZW5ndGg9MyBmb3JjZVNlbGVjdGlvbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFsdWUgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3t2YWx1ZS5qb2JUaXRsZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPiAtLT5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkSm9iVGlsZU9yUG9zaXRpb24nIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNmRWlnaHRmbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2ZlaWdodFwifHRyYW5zbGF0ZX19IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwic2ZFaWdodGZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInNmRWlnaHRmbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NmRWlnaHRmbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RhcnREYXRlXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuc3RhcnRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwic3RhcnREYXRlXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwic3RhcnREYXRlXCIgW21heERhdGVdPVwiZGF0ZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgW21pbkRhdGVdPVwibWluV29ya1N0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgKG9uQmx1cik9XCJ2YWxpZGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwidmFsaWRhdGUoJGV2ZW50KVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc3RhcnREYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVuZERhdGVcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5lbmRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwiZW5kRGF0ZVwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImVuZERhdGVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF4RGF0ZV09XCJkYXRlVGltZVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW2Zvcm1Db250cm9sXT1cImVuZERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbkJsdXIpPVwidmFsaWRhdGVXYWdlc0Rpc3BsYXkoJGV2ZW50KVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwidmFsaWRhdGVXYWdlc0Rpc3BsYXkoJGV2ZW50KVwiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VuZERhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPCEtLSA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibnVtYmVyRW1wbG95ZWRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy5lbXBsb3llZXMubm9cIiB8IHRyYW5zbGF0ZX19IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtpZF09XCJudW1iZXJFbXBsb3llZFwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFtmb3JtQ29udHJvbF09XCJudW1iZXJFbXBsb3llZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiOVwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J251bWJlckVtcGxveWVkJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+IC0tPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3b3JrVHlwZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLndvcmsudHlwZVwiIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ3b3JrVHlwZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cIndvcmtUeXBlXCIgbWF4bGVuZ3RoPVwiNTBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd29ya1R5cGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByXCI+V2VyZSB5b3UgZW1wbG95ZWQgd2hpbGUgYSBzcG91c2Ugb2YgYSBVUyBtaWxpdGFyeSBtZW1iZXIgc3RhdGlvbmVkIGF0XHJcbiAgICAgICAgICAgICAgICBhIGZvcmVpZ24gbWlsaXRhcnkgYmFzZT88L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInllc05vTmFPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImNsYWltYW50RW1wbG95ZWRXaXRoRW1wclwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2NsYWltYW50RW1wbG95ZWRXaXRoRW1wcicgICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBlcmZvcm1lZFNlcnZpY2VcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5jaXZpbGlhbi53b3JrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cInBlcmZvcm1lZFNlcnZpY2VcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInBlcmZvcm1lZFNlcnZpY2VcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwZXJmb3JtZWRTZXJ2aWNlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJqb2JUaWxlT3JQb3NpdGlvblwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmpvYnRpdGxlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCBpZD1cImpvYlRpbGVPclBvc2l0aW9uXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiam9iVGlsZU9yUG9zaXRpb25cIiBtYXhsZW5ndGg9XCIxMDBcIiAvPlxyXG4gICAgICAgICAgICAgIDwhLS0gPHAtYXV0b0NvbXBsZXRlIFtmb3JtQ29udHJvbF09XCJqb2JUaWxlT3JQb3NpdGlvblwiIFtzdWdnZXN0aW9uc109XCJqb2JUaWxlT3JQb3NpdGlvbk9wdGlvbnNcIiBcclxuICAgICAgICAgICAgICAgIChjb21wbGV0ZU1ldGhvZCk9XCJmaWx0ZXJKb2JUaWxlT3JQb3NpdGlvbigkZXZlbnQpXCIgZmllbGQ9XCJqb2JUaXRsZVwiIChvbkNsZWFyKT1cIm9uQ2xlYXJBY3Rpb24oJGV2ZW50KVwiIFxyXG4gICAgICAgICAgICAgICAgIFtkcm9wZG93bl09XCJmYWxzZVwiIHBsYWNlaG9sZGVyPVwiU3RhcnQuLi4gdHlwaW5nIGpvYiB0aXRsZVwiIG1pbkxlbmd0aD0zIGZvcmNlU2VsZWN0aW9uPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWx1ZSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57e3ZhbHVlLmpvYlRpdGxlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvcC1hdXRvQ29tcGxldGU+IC0tPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdqb2JUaWxlT3JQb3NpdGlvbicgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgd29ya0ZsYWcudmFsdWU9PT0nWSdcIj5cclxuICAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBheVJhdGVcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wYXlyYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwicGF5UmF0ZVwiIFtmb3JtQ29udHJvbF09XCJwYXlSYXRlXCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBbbWF4XT1cIjk5OTk5OS45OVwiIG1heGxlbmd0aD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU9XCJlbi1VU1wiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BheVJhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJwYXlSYXRlRnJlcXVlbmN5LWxhYmVsXCIgZm9yPVwicGF5UmF0ZUZyZXF1ZW5jeVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnBlclwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicGF5UmF0ZU9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwicGF5UmF0ZUZyZXF1ZW5jeVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwicGF5UmF0ZUZyZXF1ZW5jeVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BheVJhdGVGcmVxdWVuY3knIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyVGVsZXBob25lTnVtYmVyXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZW1wbG95ZXIucGhvbmVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5LTk5OS05OTk5XCIgaW5wdXRJZD1cImVtcGxveWVyVGVsZXBob25lTnVtYmVyXCIgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyVGVsZXBob25lTnVtYmVyXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiOTk5LTk5OS05OTk5XCI+PC9wLWlucHV0TWFzaz5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llclRlbGVwaG9uZU51bWJlcicgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT0nUkVHJyB8fCBlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBpZD1cInJlYXNvblNlcGFyYXRpb24tbGFiZWxcIiBmb3I9XCJyZWFzb25TZXBhcmF0aW9uXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnJlYXNvbi5zZXBhcmF0aW9uXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBpZD1cInJlYXNvblNlcGFyYXRpb24tbGFiZWxcIiBmb3I9XCJyZWFzb25TZXBhcmF0aW9uXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnJlYXNvbi5zZXBhcmF0aW9uXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInJlYXNvblNlcGFyYXRpb25cIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwicmVhc29uU2VwYXJhdGlvblwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVhc29uU2VwYXJhdGlvbicgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwhLS0gYWRkIGZvciBxdWl0IGFuZCBkaXNjaGFyZ2UgLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwicmVhc29uU2VwYXJhdGlvbi52YWx1ZT8udmFsdWUgPT09ICdEQ0ZJJyBcclxuICAgICAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJkaXNjaGFyZ2VEZXRhaWwtbGFiZWxcIiBmb3I9XCJkaXNjaGFyZ2VEZXRhaWxcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5kaXNjaGFyZ2VcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJkaXNjaGFyZ2VEZXRhaWxcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwiZGlzY2hhcmdlRGV0YWlsXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkaXNjaGFyZ2VEZXRhaWwnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cInJlYXNvblNlcGFyYXRpb24udmFsdWU/LnZhbHVlID09PSAnVk9MUScgXHJcbiAgICAgICAgICAgICAgJiYgZW1wbG95ZXJUeXBlLnZhbHVlIT0nTUlMJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBpZD1cInZvbFF1aXREZXRhaWxzLWxhYmVsXCIgZm9yPVwidm9sUXVpdERldGFpbHNcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvbi5xdWl0XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInZvbFF1aXRSZWFzb25PcHRpb25zQWxsXCIgW2Zvcm1Db250cm9sXT1cInZvbFF1aXREZXRhaWxzXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInZvbFF1aXREZXRhaWxzXCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd2b2xRdWl0RGV0YWlscycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm1pbFBlbnNpb25GbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwucGVuc2lvblwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICA8YnI+IHt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLnBlbnNpb24uZGlzY2xhaW1lclwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJtaWxQZW5zaW9uRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwibWlsUGVuc2lvbkZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdtaWxQZW5zaW9uRmxhZycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyAmJiB0aGlzLm1pbFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtaWxQZW5zaW9uUmVjdkRhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5wZW5zaW9uLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cIm1pbFBlbnNpb25SZWN2RGF0ZVwiIFtmb3JtQ29udHJvbF09XCJtaWxQZW5zaW9uUmVjdkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J21pbFBlbnNpb25SZWN2RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyBcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZGQyMTRGbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTRcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6IGlubGluZS1mbGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJkZDIxNEZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImRkMjE0RmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cImRkMjE0SW5mb1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkZDIxNEZsYWcnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjZcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZFwiPlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBjbGFzcz1cImlvbi1oaWRlLXNtLWRvd25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiIGNsYXNzPVwiaW9uLWhpZGUtc20tZG93blwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llclwiIGNsYXNzPVwiaW9uLWhpZGUtc20tZG93blwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBjbGFzcz1cImlvbi1oaWRlLXNtLWRvd25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnICYmIGRkMjE0RmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwiYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJwYXJhT25lIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGFwcC1maWxlLXVwbG9hZGVyIFtmb3JtQ29udHJvbF09XCJkZDIxNEZpbGVcIiBbdXBsb2FkZWRGaWxlRm9yRWRpdF09XCJkZDIxNEZpbGUudmFsdWVcIj48L2FwcC1maWxlLXVwbG9hZGVyPiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocGFyYVR3byB8IHRyYW5zbGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChwYXJhVGhyZWUgfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocGFyYUZvdXIgfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocGFyYUZpdmUgfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocGFyYVNpeHwgdHJhbnNsYXRlKVwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnICYmIGRkMjE0RmxhZy52YWx1ZT09PSdOJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwiYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogMXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cIm5vUGFyYU9uZSB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcHAtZmlsZS11cGxvYWRlciBbZm9ybUNvbnRyb2xdPVwiZGQyMTRGaWxlXCIgW3VwbG9hZGVkRmlsZUZvckVkaXRdPVwiZGQyMTRGaWxlLnZhbHVlXCI+PC9hcHAtZmlsZS11cGxvYWRlcj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKG5vUGFyYVR3byB8IHRyYW5zbGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChub1BhcmFUaHJlZSB8IHRyYW5zbGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChub1BhcmFGb3VyIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKG5vUGFyYUZpdmUgfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBvc2FCcEVtcGxveWVyRmxhZy52YWx1ZSA9PT0nMSdcIj4gPCEtLU9sZCBjb2RlLS0+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXRvcDogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJncm9zc1dhZ2VzXCIgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWF4LWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC50b3RhbC53YWdlcy5lYXJuZWRcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwiZ3Jvc3NXYWdlc1wiIFtmb3JtQ29udHJvbF09XCJncm9zc1dhZ2VzXCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBtYXhsZW5ndGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdncm9zc1dhZ2VzJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6IDBweDsgcGFkZGluZy10b3A6IDBweDtcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXlSYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5wYXlyYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwicGF5UmF0ZVwiIFtmb3JtQ29udHJvbF09XCJwYXlSYXRlXCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbWF4bGVuZ3RoPVwiMTJcIiBsb2NhbGU9XCJlbi1VU1wiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BheVJhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctcmlnaHQ6NXB4O3BhZGRpbmctdG9wOiAwcHg7XCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJwYXlSYXRlRnJlcXVlbmN5LWxhYmVsXCIgZm9yPVwicGF5UmF0ZUZyZXF1ZW5jeVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucGVyXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJwYXlSYXRlT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwYXlSYXRlRnJlcXVlbmN5XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJwYXlSYXRlRnJlcXVlbmN5XCI+PC9wLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGF5UmF0ZUZyZXF1ZW5jeScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGlvbi1jb2wgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZVwiIHN0eWxlPVwicGFkZGluZy10b3A6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZ3Jvc3NXYWdlc1wiICBzdHlsZT1cImlubGluZS1zaXplOiBtYXgtY29udGVudDtcIj5Ub3RhbCBXYWdlcyBFYXJuZWQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbZm9ybUNvbnRyb2xdPVwiZ3Jvc3NXYWdlc1wiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIiBbbWF4XT1cIjk5OTk5OS45OVwiIGxvY2FsZT1cImVuLVVTXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2dyb3NzV2FnZXMnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD4gLS0+XHJcbiAgICAgICAgICAgICAgPCEtLTxpb24tY29sICpuZ0lmPVwiZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgIHN0eWxlPVwicGFkZGluZy10b3A6IDBweDtcIj4gIE9sZCBDb2RlLS0+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCAqbmdJZj1cImRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llclwiIHN0eWxlPVwicGFkZGluZy10b3A6IDBweDtcIj4gPCEtLU5ldyBjb25kaXRpb24gd2FzIGFkZGVkLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdyb3NzV2FnZXNcIiAgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWF4LWNvbnRlbnQ7XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC50b3RhbC53YWdlcy5lYXJuZWRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJncm9zc1dhZ2VzXCIgW2Zvcm1Db250cm9sXT1cImdyb3NzV2FnZXNcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIG1heGxlbmd0aD1cIjEyXCIgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdncm9zc1dhZ2VzJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+IFxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZFBlbnNpb25GbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQucGVuc2lvblwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICA8YnI+IHt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnBlbnNpb24uZGlzY2xhaW1lclwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50OyBkaXNwbGF5OmZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwiZmVkUGVuc2lvbkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImZlZFBlbnNpb25GbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBvdmVybGF5VGV4dD1cInt7J2luZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQucGVuc2lvbi5pbmZvJ3wgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDJweDsgbWFyZ2luLWxlZnQ6IDZweDtcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZFBlbnNpb25GbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnICYmIHRoaXMuZmVkUGVuc2lvbkZsYWcudmFsdWUgPT09ICdZJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSAhPSAnTUUnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZFBlbnNpb25SZWN2RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnBlbnNpb24uZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwiZmVkUGVuc2lvblJlY3ZEYXRlXCIgW2Zvcm1Db250cm9sXT1cImZlZFBlbnNpb25SZWN2RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkUGVuc2lvblJlY3ZEYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnICYmIHRoaXMuY3VycmVudFN0YXRlID09PSAnTUUnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXZQYXlGbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cInNldlBheUZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInNldlBheUZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlGbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiBzZXZQYXlGbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid2Vla2x5QW1vdW50XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLndlZWtseS5hbXRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJ3ZWVrbHlBbW91bnRcIiBbZm9ybUNvbnRyb2xdPVwid2Vla2x5QW1vdW50XCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBtYXhsZW5ndGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3ZWVrbHlBbW91bnQnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctcmlnaHQ6NXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJudW1iZXJPZldlZWtzXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLndlZWtzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwibnVtYmVyT2ZXZWVrc1wiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFtmb3JtQ29udHJvbF09XCJudW1iZXJPZldlZWtzXCIgbWF4bGVuZ3RoPVwiNFwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdudW1iZXJPZldlZWtzJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXZQYXlBbW91bnRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2UuZW50aXRsZW1lbnRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGlucHV0SWQ9XCJzZXZQYXlBbW91bnRcIiBbZm9ybUNvbnRyb2xdPVwic2V2UGF5QW1vdW50XCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBtYXhsZW5ndGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlBbW91bnQnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiBzZXZQYXlGbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2V2UGF5U3RhcnREYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLnN0YXJ0LmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInNldlBheVN0YXJ0RGF0ZVwiIChvbkJsdXIpPVwidmFsaWRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlKCRldmVudClcIiBbZm9ybUNvbnRyb2xdPVwic2V2UGF5U3RhcnREYXRlXCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgYXBwZW5kVG89XCJib2R5XCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCJcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NldlBheVN0YXJ0RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctcmlnaHQ6NXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXZQYXlFbmREYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLmVuZC5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzZXZQYXlFbmREYXRlXCIgW2Zvcm1Db250cm9sXT1cInNldlBheUVuZERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2V2UGF5RW5kRGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcj1cInNldlBheVBheW1lbnRTdGFydERhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5zZXZlcmFuY2UucGF5LmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInNldlBheVBheW1lbnRTdGFydERhdGVcIiBbZm9ybUNvbnRyb2xdPVwic2V2UGF5UGF5bWVudFN0YXJ0RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlQYXltZW50U3RhcnREYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnBlbnNpb25cInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwicGVuc2lvbkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInBlbnNpb25GbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGVuc2lvbkZsYWcnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knICYmIHBlbnNpb25GbGFnLnZhbHVlPT09J1knXHJcbiAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnIFwiPiA8IS0tIHRoaXMgaXMgcXVlc3Rpb25hYmxlIGJlY2F1c2UgYWJvdmUgZGVwZW5kZW50IHF1ZXN0aW9uIGRvZXMgbm90IGhhdmUgaXNCYXNlUGVyaW9kRW1wbG95ZXIgLS0+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBlbnNpb25SZWN2RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnBlbnNpb24uZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwicGVuc2lvblJlY3ZEYXRlXCIgW2Zvcm1Db250cm9sXT1cInBlbnNpb25SZWN2RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGVuc2lvblJlY3ZEYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlZ1BlbnNpb25GbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvblwifHRyYW5zbGF0ZX19IDxiciAvPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvbi5kaXNjbGFpbWVyXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJyZWdQZW5zaW9uRmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwicmVnUGVuc2lvbkZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIG92ZXJsYXlUZXh0PVwie3snaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy5wZW5zaW9uLmluZm8nfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogMnB4OyBtYXJnaW4tbGVmdDogNnB4O1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVnUGVuc2lvbkZsYWcnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcclxuICAgICAgICAgICAgJiYgcmVnUGVuc2lvbkZsYWcudmFsdWU9PT0nWSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicmVnUGVuc2lvblJlY3ZEYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvbi5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJyZWdQZW5zaW9uUmVjdkRhdGVcIiBbZm9ybUNvbnRyb2xdPVwicmVnUGVuc2lvblJlY3ZEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdyZWdQZW5zaW9uUmVjdkRhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJpc0NsbXRQYWlkV2hpbGVMb3dcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5lbXBsb3llci5wYXkucmV0dXJuLnRvLndvcmtcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTpmbGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiaXNDbG10UGFpZFdoaWxlTG93XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIG92ZXJsYXlUZXh0PVwie3snaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy5lbXBsb3llclBheVJldHVyblRvV29ya0luZm8nfCB0cmFuc2xhdGV9fVwiIFxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tdG9wOiAycHg7IG1hcmdpbi1sZWZ0OiA2cHg7XCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdpc0NsbXRQYWlkV2hpbGVMb3cnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBjdXJyZW50U3RhdGUgPT09J01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYXNTaG9ydFRlcm1EaXNhYmlsaXR5XCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuc2hvcnR0ZXJtZGlzYWJpbGl0eVwifHRyYW5zbGF0ZX19IHt7YnBTdGFydERhdGVUb0Rpc3BsYXkgfCBkYXRlOidNTU1NIGQsIHl5eXknfX0gPzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImhhc1Nob3J0VGVybURpc2FiaWxpdHlcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdoYXNTaG9ydFRlcm1EaXNhYmlsaXR5JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoKGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knKSB8fCAhaXNCYXNlUGVyaW9kRW1wbG95ZXIpJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgY3VycmVudFN0YXRlPT09J01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJoYXNSZWN2UmVtdW5lcmF0aW9uXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVtdW5lcmF0aW9uLnBheVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiaGFzUmVjdlJlbXVuZXJhdGlvblwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2hhc1JlY3ZSZW11bmVyYXRpb24nIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBjdXJyZW50U3RhdGU9PT0nTUUnICYmIGhhc1JlY3ZSZW11bmVyYXRpb24udmFsdWU9PT0nWScgJiYgb3NhQnBFbXBsb3llckZsYWcudmFsdWU9PT0nMCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicmVtdW5lcmF0aW9uVHlwZXNcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZW11bmVyYXRpb24udHlwZXNcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtY2hlY2tib3ggW25hbWVdPVwiJ3JlbXVuZXJhdGlvbnR5cGVzLWdyb3VwJ1wiIFt2YWx1ZV09XCJjaG9pY2UudmFsdWVcIiBcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjaG9pY2UudGV4dFwiICpuZ0Zvcj1cImxldCBjaG9pY2Ugb2YgcmVtdW5lcmF0aW9uVHlwZU9wdGlvbnNcIiAgW2Zvcm1Db250cm9sXT1cInJlbXVuZXJhdGlvblR5cGVzXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJhcHAtcC1jaGVja2JveFwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVtdW5lcmF0aW9uVHlwZXMnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIGN1cnJlbnRTdGF0ZSA9PT0nTUUnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInZhY2F0aW9uXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQudmFjYXRpb24uYnJlYWtcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInZhY2F0aW9uXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndmFjYXRpb24nIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgIDwhLS08ZGl2ICpuZ0lmPVwiZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj4gU3RlcGhlbiBDb2RlLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxoND57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuaGVhZGVyXCJ8dHJhbnNsYXRlfX08L2g0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5zdWJoZWFkZXJcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXltZW50VHlwZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5wYXltb2RlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJwYXltZW50VHlwZVwiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJwYXlNZXRob2RPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInBheW1lbnRUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGF5bWVudFR5cGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkb2NzUmVjZWl2ZWRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuZG9jc1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwiZG9jc1JlY2VpdmVkXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cIndhZ2VQcm9vZk9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiZG9jc1JlY2VpdmVkXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZG9jc1JlY2VpdmVkJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJvdGhlclNTTkZsYWdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMub3RoZXIuc3NuLmZsYWdcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwib3RoZXJTU05GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJvdGhlclNTTkZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nb3RoZXJTU05GbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwidGhpcy5vdGhlclNTTkZsYWcudmFsdWUgPT09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm90aGVyU1NOXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLm90aGVyLnNzblwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLWlucHV0TWFzayBpbnB1dElkPVwib3RoZXJTU05cIiBtYXNrPVwiOTk5LTk5LTk5OTlcIiBbZm9ybUNvbnRyb2xdPVwib3RoZXJTU05cIiBwbGFjZWhvbGRlcj1cIjk5OS05OS05OTk5XCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J290aGVyU1NOJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGlyZWRCeVwiPk1hbmFnZXIncyBOYW1lICYgVGl0bGU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJoaXJlZEJ5XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiaGlyZWRCeVwiIG1heGxlbmd0aD1cIjQwXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGlyZWRCeScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8IS0tICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+IFN0ZXBoZW4gQ29kZSAtLT5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+ICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBmb3I9XCJvdGhlck5hbWVGbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLm90aGVyLm5hbWUuZmxhZ1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cIm90aGVyTmFtZUZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cIm90aGVyTmFtZUZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J290aGVyTmFtZUZsYWcnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJ0aGlzLm90aGVyTmFtZUZsYWcudmFsdWUgPT09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yPVwib3RoZXJOYW1lXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLm90aGVyLm5hbWVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIm90aGVyTmFtZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cIm90aGVyTmFtZVwiIG1heGxlbmd0aD1cIjMwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J290aGVyTmFtZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGlvbi1yb3cgKm5nSWY9XCJ3b3JrU3RhdGUudmFsdWUgJiYgd29ya1N0YXRlLnZhbHVlLnZhbHVlPT09J0tTJyAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmVpblwiPkZFSU48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbaWRdPVwiZmVpblwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFtmb3JtQ29udHJvbF09XCJmZWluXCIgbWF4bGVuZ3RoPVwiOVwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlaW4nIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZG9pbmdCdXNpbmVzc0FzXCI+RG9pbmcgQnVzaW5lc3MgQXMvVHJhZGUgTmFtZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImRvaW5nQnVzaW5lc3NBc1wiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImRvaW5nQnVzaW5lc3NBc1wiIG1heGxlbmd0aD1cIjEwMFwiLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2RvaW5nQnVzaW5lc3NBcycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+IC0tPlxyXG5cclxuICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIGRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSBcclxuICAgICAgICAgICAgICAgICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llclwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJidXNpbmVzc05hdHVyZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi5uYXR1cmVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImJ1c2luZXNzTmF0dXJlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiYnVzaW5lc3NOYXR1cmVcIiBtYXhsZW5ndGg9XCIyNTBcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdidXNpbmVzc05hdHVyZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyB8fCAoZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHByZXZXb3JrZWRTdGF0ZT8udmFsdWUgPT09ICdLUycpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPiBTdGVwaGVuIENvZGUgLS0+XHJcbiAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgaXNOZXdDbGFpbVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLTxsYWJlbD57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC52ZXJpZmljYXRpb24ud2FnZXNcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQudmVyaWZpY2F0aW9uLndhZ2VzLnN0YXRlbWVudFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnIHx8IChlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWw+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHRhYmxlIHJ1bGVzPVwicm93c1wiPlxyXG4gICAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5jb2wxXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuY29sMlwifHRyYW5zbGF0ZX19PC90aD5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgZm9ybUFycmF5TmFtZT1cIndhZ2VBbW91bnRBcnJheVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB3YWdlQW1vdW50Rm9ybSBvZiB3YWdlQW1vdW50QXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCIoKGVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnKSB8fCAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgd2FnZUFtb3VudEZvcm0udmFsdWUuZGlzcGxheUZvckFsbD09PXRydWUpIClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ3dhZ2VBbW91bnRBcnJheS0nICsgaVwiID57e3dhZ2VBbW91bnRGb3JtLnZhbHVlLnF0clllYXJEaXNwbGF5U3RyaW5nfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2lucHV0SWRdPVwiJ3dhZ2VBbW91bnRBcnJheS0nICsgaVwiIGFyaWFMYWJlbD1cIndhZ2VBbW91bnRcIiBmb3JtQ29udHJvbE5hbWU9XCJ3YWdlQW1vdW50XCIgbW9kZT1cImN1cnJlbmN5XCIgW21pbl09XCIwLjAwXCIgW21heF09XCI5OTk5OTkuOTlcIiBtYXhsZW5ndGg9XCIxMlwiIGN1cnJlbmN5PVwiVVNEXCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJ3YWdlQW1vdW50QXJyYXkuZXJyb3JzPy5yZXF1aXJlQ2hlY2tib3hUb0JlQ2hlY2tlZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2FnZUFtb3VudEFycmF5JyBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbZXJyRGVmXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVDaGVja2JveFRvQmVDaGVja2VkOiAnYXQgbGVhc3Qgb25lIGFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+ICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNldmVyYW5jZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnNldmVyYW5jZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJzZXZlcmFuY2VcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwic2V2ZXJhbmNlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NldmVyYW5jZSdcclxuICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwie3JlcXVpcmVkOiByZXF1aXJlZH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBcclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gW2F1dG9mb2N1c109XCJ0cnVlXCIgdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwib25Nb2RlbENhbmNlbChmYWxzZSlcIiAoa2V5dXAuc3BhY2UpPVwib25Nb2RlbENhbmNlbChmYWxzZSlcIiAoa2V5dXAuZW50ZXIpPVwib25Nb2RlbENhbmNlbChmYWxzZSlcIlxyXG4gICAgICAgICAgICB0eXBlPVwicmVzZXRcIj57e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuYnV0dG9uLmNhbmNlbFwifHRyYW5zbGF0ZX19IDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiBzdHlsZT1cIndpZHRoOiA4MHB4O1wiIChjbGljayk9XCJzYXZlKClcIiB0eXBlPVwic3VibWl0XCIgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llclwiIChrZXl1cC5zcGFjZSk9XCJzYXZlKClcIiAoa2V5dXAuZW50ZXIpPVwic2F2ZSgpXCI+XHJcbiAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5idXR0b24uc2F2ZVwifHRyYW5zbGF0ZX19IDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiBzdHlsZT1cIndpZHRoOiA4MHB4O1wiIChjbGljayk9XCJhZGQoKVwiIHR5cGU9XCJzdWJtaXRcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiIChrZXl1cC5zcGFjZSk9XCJhZGQoKVwiIChrZXl1cC5lbnRlcik9XCJhZGQoKVwiXHJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FkZCBhbiBlbXBsb3llcicgfCB0cmFuc2xhdGVcIj4ge3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmJ1dHRvbi5hZGRcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9pb24tZ3JpZD5cclxuICA8L2Zvcm0+XHJcbjwvcC1kaWFsb2c+Il19