@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
@@ -10,95 +10,116 @@ import * as i4 from "@ionic/angular";
10
10
  import * as i5 from "../../services/captcha/captcha.service";
11
11
  import * as i6 from "../../services/security-service/security.service";
12
12
  import * as i7 from "@angular/router";
13
- import * as i8 from "@angular/common";
14
- import * as i9 from "primeng/api";
15
- import * as i10 from "@angular/material/form-field";
16
- import * as i11 from "primeng/selectbutton";
17
- import * as i12 from "primeng/inputnumber";
18
- import * as i13 from "../error/error.component";
19
- import * as i14 from "@ngx-translate/core";
13
+ import * as i8 from "@ngx-translate/core";
14
+ import * as i9 from "@angular/common";
15
+ import * as i10 from "primeng/api";
16
+ import * as i11 from "@angular/material/form-field";
17
+ import * as i12 from "primeng/selectbutton";
18
+ import * as i13 from "primeng/inputnumber";
19
+ import * as i14 from "../error/error.component";
20
20
  import * as i15 from "../../pipes/mask/mask.email.pipe";
21
21
  const _c0 = ["otpField"];
22
- function MfaComponent_div_5_Template(rf, ctx) { if (rf & 1) {
22
+ function MfaComponent_div_4_Template(rf, ctx) { if (rf & 1) {
23
23
  const _r6 = i0.ɵɵgetCurrentView();
24
24
  i0.ɵɵelementStart(0, "div", 6)(1, "div", 7)(2, "div", 8)(3, "label", 9);
25
25
  i0.ɵɵtext(4);
26
26
  i0.ɵɵpipe(5, "translate");
27
27
  i0.ɵɵelementEnd();
28
28
  i0.ɵɵelementStart(6, "p-selectButton", 10);
29
- i0.ɵɵlistener("onChange", function MfaComponent_div_5_Template_p_selectButton_onChange_6_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.sendOtp($event)); });
29
+ i0.ɵɵlistener("onChange", function MfaComponent_div_4_Template_p_selectButton_onChange_6_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r5.sendOtp($event)); });
30
30
  i0.ɵɵelementEnd()()()();
31
31
  } if (rf & 2) {
32
32
  const ctx_r1 = i0.ɵɵnextContext();
33
33
  i0.ɵɵadvance(4);
34
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 3, "How would you like us to send your access code?"));
34
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 3, "mfa.how.send"));
35
35
  i0.ɵɵadvance(2);
36
36
  i0.ɵɵproperty("options", ctx_r1.options)("formControl", ctx_r1.option);
37
37
  } }
38
- function MfaComponent_div_6_span_3_Template(rf, ctx) { if (rf & 1) {
38
+ function MfaComponent_div_5_span_3_Template(rf, ctx) { if (rf & 1) {
39
39
  i0.ɵɵelementStart(0, "span");
40
- i0.ɵɵtext(1, "An access code has been sent to your email address:\u00A0 ");
41
- i0.ɵɵelementStart(2, "b");
42
- i0.ɵɵtext(3);
43
- i0.ɵɵpipe(4, "maskEmail");
40
+ i0.ɵɵtext(1);
41
+ i0.ɵɵpipe(2, "translate");
42
+ i0.ɵɵelementStart(3, "b");
43
+ i0.ɵɵtext(4);
44
+ i0.ɵɵpipe(5, "maskEmail");
44
45
  i0.ɵɵelementEnd()();
45
46
  } if (rf & 2) {
46
47
  const ctx_r7 = i0.ɵɵnextContext(2);
48
+ i0.ɵɵadvance(1);
49
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(2, 2, "mfa.code.sent.email"), ":\u00A0 ");
47
50
  i0.ɵɵadvance(3);
48
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, ctx_r7.user == null ? null : ctx_r7.user.emailId));
51
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 4, ctx_r7.user == null ? null : ctx_r7.user.emailId));
49
52
  } }
50
- function MfaComponent_div_6_span_4_Template(rf, ctx) { if (rf & 1) {
53
+ function MfaComponent_div_5_span_4_Template(rf, ctx) { if (rf & 1) {
51
54
  i0.ɵɵelementStart(0, "span");
52
- i0.ɵɵtext(1, "An access code has been sent to your cellphone:\u00A0 ");
53
- i0.ɵɵelementStart(2, "b");
54
- i0.ɵɵtext(3);
55
- i0.ɵɵpipe(4, "maskEmail");
55
+ i0.ɵɵtext(1);
56
+ i0.ɵɵpipe(2, "translate");
57
+ i0.ɵɵelementStart(3, "b");
58
+ i0.ɵɵtext(4);
59
+ i0.ɵɵpipe(5, "maskEmail");
56
60
  i0.ɵɵelementEnd()();
57
61
  } if (rf & 2) {
58
62
  const ctx_r8 = i0.ɵɵnextContext(2);
63
+ i0.ɵɵadvance(1);
64
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(2, 2, "mfa.code.sent.cell"), "\u00A0 ");
59
65
  i0.ɵɵadvance(3);
60
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, ctx_r8.user == null ? null : ctx_r8.user.cellphoneNo));
66
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 4, ctx_r8.user == null ? null : ctx_r8.user.cellphoneNo));
61
67
  } }
62
- function MfaComponent_div_6_span_5_Template(rf, ctx) { if (rf & 1) {
68
+ function MfaComponent_div_5_span_5_Template(rf, ctx) { if (rf & 1) {
63
69
  i0.ɵɵelementStart(0, "span");
64
- i0.ɵɵtext(1, "An access code has been sent to your cellphone :\u00A0 ");
65
- i0.ɵɵelementStart(2, "b");
66
- i0.ɵɵtext(3);
67
- i0.ɵɵpipe(4, "maskEmail");
70
+ i0.ɵɵtext(1);
71
+ i0.ɵɵpipe(2, "translate");
72
+ i0.ɵɵelementStart(3, "b");
73
+ i0.ɵɵtext(4);
74
+ i0.ɵɵpipe(5, "maskEmail");
68
75
  i0.ɵɵelementEnd()();
69
76
  } if (rf & 2) {
70
77
  const ctx_r9 = i0.ɵɵnextContext(2);
78
+ i0.ɵɵadvance(1);
79
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(2, 2, "mfa.code.sent.cell"), "\u00A0 ");
71
80
  i0.ɵɵadvance(3);
72
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, ctx_r9.user == null ? null : ctx_r9.user.cellphoneNo));
81
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 4, ctx_r9.user == null ? null : ctx_r9.user.cellphoneNo));
73
82
  } }
74
- function MfaComponent_div_6_ion_label_8_Template(rf, ctx) { if (rf & 1) {
83
+ function MfaComponent_div_5_ion_label_8_Template(rf, ctx) { if (rf & 1) {
75
84
  i0.ɵɵelementStart(0, "ion-label");
76
- i0.ɵɵtext(1, " Check your junk folder if you don't see it in your inbox. ");
85
+ i0.ɵɵtext(1);
86
+ i0.ɵɵpipe(2, "translate");
77
87
  i0.ɵɵelementEnd();
88
+ } if (rf & 2) {
89
+ i0.ɵɵadvance(1);
90
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "mfa.code.sent.junk"), " ");
78
91
  } }
79
- function MfaComponent_div_6_span_9_Template(rf, ctx) { if (rf & 1) {
92
+ function MfaComponent_div_5_span_9_Template(rf, ctx) { if (rf & 1) {
80
93
  i0.ɵɵelementStart(0, "span");
81
94
  i0.ɵɵelement(1, "br")(2, "br");
82
95
  i0.ɵɵelementEnd();
83
96
  } }
84
- function MfaComponent_div_6_label_11_Template(rf, ctx) { if (rf & 1) {
97
+ function MfaComponent_div_5_label_11_Template(rf, ctx) { if (rf & 1) {
85
98
  i0.ɵɵelementStart(0, "label", 19);
86
- i0.ɵɵtext(1, "Enter code");
99
+ i0.ɵɵtext(1);
100
+ i0.ɵɵpipe(2, "translate");
87
101
  i0.ɵɵelementEnd();
102
+ } if (rf & 2) {
103
+ i0.ɵɵadvance(1);
104
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "mfa.enter.code"));
88
105
  } }
89
- function MfaComponent_div_6_label_13_Template(rf, ctx) { if (rf & 1) {
106
+ function MfaComponent_div_5_label_13_Template(rf, ctx) { if (rf & 1) {
90
107
  i0.ɵɵelementStart(0, "label", 19);
91
- i0.ɵɵtext(1, "Enter Validation Code Received :");
108
+ i0.ɵɵtext(1);
109
+ i0.ɵɵpipe(2, "translate");
92
110
  i0.ɵɵelementEnd();
111
+ } if (rf & 2) {
112
+ i0.ɵɵadvance(1);
113
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "mfa.enter.code.received"));
93
114
  } }
94
- const _c1 = () => ({ required: "Access code is required.", min: "Access code should have 6 numbers.", max: "Access code should have 6 numbers." });
95
- function MfaComponent_div_6_app_error_17_Template(rf, ctx) { if (rf & 1) {
115
+ const _c1 = (a0, a1, a2) => ({ required: a0, min: a1, max: a2 });
116
+ function MfaComponent_div_5_app_error_17_Template(rf, ctx) { if (rf & 1) {
96
117
  i0.ɵɵelement(0, "app-error", 20);
97
118
  } if (rf & 2) {
98
119
  const ctx_r15 = i0.ɵɵnextContext(2);
99
- i0.ɵɵproperty("field", ctx_r15.otp)("form", ctx_r15.otpForm)("errDef", i0.ɵɵpureFunction0(3, _c1));
120
+ i0.ɵɵproperty("field", ctx_r15.otp)("form", ctx_r15.otpForm)("errDef", i0.ɵɵpureFunction3(3, _c1, ctx_r15.AccessRequired, ctx_r15.AccessVerify, ctx_r15.AccessVerify));
100
121
  } }
101
- function MfaComponent_div_6_ion_item_18_Template(rf, ctx) { if (rf & 1) {
122
+ function MfaComponent_div_5_ion_item_18_Template(rf, ctx) { if (rf & 1) {
102
123
  i0.ɵɵelementStart(0, "ion-item", 21);
103
124
  i0.ɵɵelement(1, "ion-checkbox", 22);
104
125
  i0.ɵɵelementStart(2, "ion-label", 23);
@@ -107,9 +128,9 @@ function MfaComponent_div_6_ion_item_18_Template(rf, ctx) { if (rf & 1) {
107
128
  i0.ɵɵelementEnd()();
108
129
  } if (rf & 2) {
109
130
  i0.ɵɵadvance(3);
110
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, "I trust this browser."));
131
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 1, "mfa.browser.trust"));
111
132
  } }
112
- function MfaComponent_div_6_mat_error_19_Template(rf, ctx) { if (rf & 1) {
133
+ function MfaComponent_div_5_mat_error_19_Template(rf, ctx) { if (rf & 1) {
113
134
  i0.ɵɵelementStart(0, "mat-error");
114
135
  i0.ɵɵtext(1);
115
136
  i0.ɵɵelement(2, "br")(3, "br");
@@ -119,7 +140,7 @@ function MfaComponent_div_6_mat_error_19_Template(rf, ctx) { if (rf & 1) {
119
140
  i0.ɵɵadvance(1);
120
141
  i0.ɵɵtextInterpolate(ctx_r17.errorDtls);
121
142
  } }
122
- function MfaComponent_div_6_ion_label_20_Template(rf, ctx) { if (rf & 1) {
143
+ function MfaComponent_div_5_ion_label_20_Template(rf, ctx) { if (rf & 1) {
123
144
  i0.ɵɵelementStart(0, "ion-label", 24);
124
145
  i0.ɵɵtext(1);
125
146
  i0.ɵɵelement(2, "br")(3, "br");
@@ -129,36 +150,47 @@ function MfaComponent_div_6_ion_label_20_Template(rf, ctx) { if (rf & 1) {
129
150
  i0.ɵɵadvance(1);
130
151
  i0.ɵɵtextInterpolate(ctx_r18.successDtls);
131
152
  } }
132
- function MfaComponent_div_6_ion_label_21_span_1_Template(rf, ctx) { if (rf & 1) {
153
+ function MfaComponent_div_5_ion_label_21_span_1_Template(rf, ctx) { if (rf & 1) {
133
154
  i0.ɵɵelementStart(0, "span");
134
- i0.ɵɵtext(1, " Haven't received the code? Resend option available in ");
135
- i0.ɵɵelementStart(2, "b");
136
- i0.ɵɵtext(3);
155
+ i0.ɵɵtext(1);
156
+ i0.ɵɵpipe(2, "translate");
157
+ i0.ɵɵelementStart(3, "b");
158
+ i0.ɵɵtext(4);
137
159
  i0.ɵɵelementEnd();
138
- i0.ɵɵtext(4, ". ");
160
+ i0.ɵɵtext(5, ". ");
139
161
  i0.ɵɵelementEnd();
140
162
  } if (rf & 2) {
141
163
  const ctx_r22 = i0.ɵɵnextContext(3);
164
+ i0.ɵɵadvance(1);
165
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "mfa.code.not.received"), " ");
142
166
  i0.ɵɵadvance(3);
143
167
  i0.ɵɵtextInterpolate1("", ctx_r22.counter.getValue(), " second(s)");
144
168
  } }
145
- function MfaComponent_div_6_ion_label_21_span_2_Template(rf, ctx) { if (rf & 1) {
169
+ function MfaComponent_div_5_ion_label_21_span_2_Template(rf, ctx) { if (rf & 1) {
146
170
  const _r26 = i0.ɵɵgetCurrentView();
147
171
  i0.ɵɵelementStart(0, "span")(1, "a", 25);
148
- i0.ɵɵlistener("keyup.enter", function MfaComponent_div_6_ion_label_21_span_2_Template_a_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r25.resendAuthCode(ctx_r25.option.value)); })("click", function MfaComponent_div_6_ion_label_21_span_2_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r27.resendAuthCode(ctx_r27.option.value)); });
149
- i0.ɵɵtext(2, "Get new code");
172
+ i0.ɵɵlistener("keyup.enter", function MfaComponent_div_5_ion_label_21_span_2_Template_a_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r25.resendAuthCode(ctx_r25.option.value)); })("click", function MfaComponent_div_5_ion_label_21_span_2_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r27.resendAuthCode(ctx_r27.option.value)); });
173
+ i0.ɵɵtext(2);
174
+ i0.ɵɵpipe(3, "translate");
150
175
  i0.ɵɵelementEnd()();
176
+ } if (rf & 2) {
177
+ i0.ɵɵadvance(2);
178
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "mfa.get.new.code"));
151
179
  } }
152
- function MfaComponent_div_6_ion_label_21_span_3_Template(rf, ctx) { if (rf & 1) {
180
+ function MfaComponent_div_5_ion_label_21_span_3_Template(rf, ctx) { if (rf & 1) {
153
181
  const _r29 = i0.ɵɵgetCurrentView();
154
182
  i0.ɵɵelementStart(0, "span")(1, "a", 25);
155
- i0.ɵɵlistener("keyup.enter", function MfaComponent_div_6_ion_label_21_span_3_Template_a_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r28.resendAuthCode(ctx_r28.option.value)); })("click", function MfaComponent_div_6_ion_label_21_span_3_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r30 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r30.resendAuthCode(ctx_r30.option.value)); });
156
- i0.ɵɵtext(2, "Resend Verification Code");
183
+ i0.ɵɵlistener("keyup.enter", function MfaComponent_div_5_ion_label_21_span_3_Template_a_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r28.resendAuthCode(ctx_r28.option.value)); })("click", function MfaComponent_div_5_ion_label_21_span_3_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r29); const ctx_r30 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r30.resendAuthCode(ctx_r30.option.value)); });
184
+ i0.ɵɵtext(2);
185
+ i0.ɵɵpipe(3, "translate");
157
186
  i0.ɵɵelementEnd()();
187
+ } if (rf & 2) {
188
+ i0.ɵɵadvance(2);
189
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 1, "mfa.resend.verification.code"), "");
158
190
  } }
159
- function MfaComponent_div_6_ion_label_21_Template(rf, ctx) { if (rf & 1) {
191
+ function MfaComponent_div_5_ion_label_21_Template(rf, ctx) { if (rf & 1) {
160
192
  i0.ɵɵelementStart(0, "ion-label");
161
- i0.ɵɵtemplate(1, MfaComponent_div_6_ion_label_21_span_1_Template, 5, 1, "span", 12)(2, MfaComponent_div_6_ion_label_21_span_2_Template, 3, 0, "span", 12)(3, MfaComponent_div_6_ion_label_21_span_3_Template, 3, 0, "span", 12);
193
+ i0.ɵɵtemplate(1, MfaComponent_div_5_ion_label_21_span_1_Template, 6, 4, "span", 12)(2, MfaComponent_div_5_ion_label_21_span_2_Template, 4, 3, "span", 12)(3, MfaComponent_div_5_ion_label_21_span_3_Template, 4, 3, "span", 12);
162
194
  i0.ɵɵelementEnd();
163
195
  } if (rf & 2) {
164
196
  const ctx_r19 = i0.ɵɵnextContext(2);
@@ -169,10 +201,10 @@ function MfaComponent_div_6_ion_label_21_Template(rf, ctx) { if (rf & 1) {
169
201
  i0.ɵɵadvance(1);
170
202
  i0.ɵɵproperty("ngIf", ctx_r19.counter.getValue() == 1 && ctx_r19.returningUser);
171
203
  } }
172
- function MfaComponent_div_6_p_22_Template(rf, ctx) { if (rf & 1) {
204
+ function MfaComponent_div_5_p_22_Template(rf, ctx) { if (rf & 1) {
173
205
  const _r32 = i0.ɵɵgetCurrentView();
174
206
  i0.ɵɵelementStart(0, "p")(1, "a", 25);
175
- i0.ɵɵlistener("keyup.enter", function MfaComponent_div_6_p_22_Template_a_keyup_enter_1_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(2); ctx_r31.showHelp = !ctx_r31.showHelp; return i0.ɵɵresetView($event.preventDefault()); })("click", function MfaComponent_div_6_p_22_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(2); ctx_r33.showHelp = !ctx_r33.showHelp; return i0.ɵɵresetView($event.preventDefault()); });
207
+ i0.ɵɵlistener("keyup.enter", function MfaComponent_div_5_p_22_Template_a_keyup_enter_1_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(2); ctx_r31.showHelp = !ctx_r31.showHelp; return i0.ɵɵresetView($event.preventDefault()); })("click", function MfaComponent_div_5_p_22_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(2); ctx_r33.showHelp = !ctx_r33.showHelp; return i0.ɵɵresetView($event.preventDefault()); });
176
208
  i0.ɵɵtext(2);
177
209
  i0.ɵɵelementEnd()();
178
210
  } if (rf & 2) {
@@ -180,39 +212,42 @@ function MfaComponent_div_6_p_22_Template(rf, ctx) { if (rf & 1) {
180
212
  i0.ɵɵadvance(2);
181
213
  i0.ɵɵtextInterpolate1("Can't get to your ", ctx_r20.option.value == "text" ? "cellphone" : "email", "?");
182
214
  } }
183
- function MfaComponent_div_6_p_23_Template(rf, ctx) { if (rf & 1) {
215
+ function MfaComponent_div_5_p_23_Template(rf, ctx) { if (rf & 1) {
184
216
  i0.ɵɵelementStart(0, "p");
185
- i0.ɵɵtext(1, " Your code is good for 15 minutes. You can try again later.");
186
- i0.ɵɵelement(2, "br");
187
- i0.ɵɵtext(3, " or");
188
- i0.ɵɵelement(4, "br");
189
- i0.ɵɵtext(5);
217
+ i0.ɵɵtext(1);
218
+ i0.ɵɵpipe(2, "translate");
219
+ i0.ɵɵelement(3, "br");
220
+ i0.ɵɵtext(4, " or");
221
+ i0.ɵɵelement(5, "br");
222
+ i0.ɵɵtext(6);
190
223
  i0.ɵɵelementEnd();
191
224
  } if (rf & 2) {
192
225
  const ctx_r21 = i0.ɵɵnextContext(2);
226
+ i0.ɵɵadvance(1);
227
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "mfa.good.for.time"), "");
193
228
  i0.ɵɵadvance(5);
194
229
  i0.ɵɵtextInterpolate1(" If your ", ctx_r21.option.value == "text" ? "cellphone number" : "email address", " has changed call KDOL at 785-575-1460, Monday through Friday from 8 am to 4:30 pm. ");
195
230
  } }
196
- function MfaComponent_div_6_Template(rf, ctx) { if (rf & 1) {
231
+ function MfaComponent_div_5_Template(rf, ctx) { if (rf & 1) {
197
232
  const _r35 = i0.ɵɵgetCurrentView();
198
233
  i0.ɵɵelementStart(0, "div", 6)(1, "div", 11)(2, "ion-label");
199
- i0.ɵɵtemplate(3, MfaComponent_div_6_span_3_Template, 5, 3, "span", 12)(4, MfaComponent_div_6_span_4_Template, 5, 3, "span", 12)(5, MfaComponent_div_6_span_5_Template, 5, 3, "span", 12);
234
+ i0.ɵɵtemplate(3, MfaComponent_div_5_span_3_Template, 6, 6, "span", 12)(4, MfaComponent_div_5_span_4_Template, 6, 6, "span", 12)(5, MfaComponent_div_5_span_5_Template, 6, 6, "span", 12);
200
235
  i0.ɵɵelementEnd();
201
236
  i0.ɵɵelement(6, "br")(7, "br");
202
- i0.ɵɵtemplate(8, MfaComponent_div_6_ion_label_8_Template, 2, 0, "ion-label", 12)(9, MfaComponent_div_6_span_9_Template, 3, 0, "span", 12);
237
+ i0.ɵɵtemplate(8, MfaComponent_div_5_ion_label_8_Template, 3, 3, "ion-label", 12)(9, MfaComponent_div_5_span_9_Template, 3, 0, "span", 12);
203
238
  i0.ɵɵelementStart(10, "div", 8);
204
- i0.ɵɵtemplate(11, MfaComponent_div_6_label_11_Template, 2, 0, "label", 13);
239
+ i0.ɵɵtemplate(11, MfaComponent_div_5_label_11_Template, 3, 3, "label", 13);
205
240
  i0.ɵɵelement(12, "br");
206
- i0.ɵɵtemplate(13, MfaComponent_div_6_label_13_Template, 2, 0, "label", 13);
241
+ i0.ɵɵtemplate(13, MfaComponent_div_5_label_13_Template, 3, 3, "label", 13);
207
242
  i0.ɵɵelement(14, "br");
208
243
  i0.ɵɵelementStart(15, "p-inputNumber", 14, 15);
209
- i0.ɵɵlistener("click", function MfaComponent_div_6_Template_p_inputNumber_click_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.hideOptValidator = false); })("keyup", function MfaComponent_div_6_Template_p_inputNumber_keyup_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r36 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r36.hideOptValidator = false); })("keyup.enter", function MfaComponent_div_6_Template_p_inputNumber_keyup_enter_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r37 = i0.ɵɵnextContext(); return i0.ɵɵresetView(!ctx_r37.requestCode && ctx_r37.option.value ? ctx_r37.signIn() : ctx_r37.submit()); });
244
+ i0.ɵɵlistener("click", function MfaComponent_div_5_Template_p_inputNumber_click_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r34.hideOptValidator = false); })("keyup", function MfaComponent_div_5_Template_p_inputNumber_keyup_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r36 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r36.hideOptValidator = false); })("keyup.enter", function MfaComponent_div_5_Template_p_inputNumber_keyup_enter_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r37 = i0.ɵɵnextContext(); return i0.ɵɵresetView(!ctx_r37.requestCode && ctx_r37.option.value ? ctx_r37.signIn() : ctx_r37.submit()); });
210
245
  i0.ɵɵelementEnd();
211
- i0.ɵɵtemplate(17, MfaComponent_div_6_app_error_17_Template, 1, 4, "app-error", 16);
246
+ i0.ɵɵtemplate(17, MfaComponent_div_5_app_error_17_Template, 1, 7, "app-error", 16);
212
247
  i0.ɵɵelementEnd();
213
- i0.ɵɵtemplate(18, MfaComponent_div_6_ion_item_18_Template, 5, 3, "ion-item", 17);
248
+ i0.ɵɵtemplate(18, MfaComponent_div_5_ion_item_18_Template, 5, 3, "ion-item", 17);
214
249
  i0.ɵɵelementEnd();
215
- i0.ɵɵtemplate(19, MfaComponent_div_6_mat_error_19_Template, 4, 1, "mat-error", 12)(20, MfaComponent_div_6_ion_label_20_Template, 4, 1, "ion-label", 18)(21, MfaComponent_div_6_ion_label_21_Template, 4, 3, "ion-label", 12)(22, MfaComponent_div_6_p_22_Template, 3, 1, "p", 12)(23, MfaComponent_div_6_p_23_Template, 6, 1, "p", 12);
250
+ i0.ɵɵtemplate(19, MfaComponent_div_5_mat_error_19_Template, 4, 1, "mat-error", 12)(20, MfaComponent_div_5_ion_label_20_Template, 4, 1, "ion-label", 18)(21, MfaComponent_div_5_ion_label_21_Template, 4, 3, "ion-label", 12)(22, MfaComponent_div_5_p_22_Template, 3, 1, "p", 12)(23, MfaComponent_div_5_p_23_Template, 7, 4, "p", 12);
216
251
  i0.ɵɵelementEnd();
217
252
  } if (rf & 2) {
218
253
  const ctx_r2 = i0.ɵɵnextContext();
@@ -247,42 +282,53 @@ function MfaComponent_div_6_Template(rf, ctx) { if (rf & 1) {
247
282
  i0.ɵɵadvance(1);
248
283
  i0.ɵɵproperty("ngIf", ctx_r2.showHelp && !ctx_r2.returningUser);
249
284
  } }
250
- function MfaComponent_div_8_Template(rf, ctx) { if (rf & 1) {
285
+ function MfaComponent_div_7_Template(rf, ctx) { if (rf & 1) {
251
286
  i0.ɵɵelementStart(0, "div", 26);
252
287
  i0.ɵɵelement(1, "ion-spinner", 27);
253
288
  i0.ɵɵelementEnd();
254
289
  } }
255
- function MfaComponent_div_9_ion_button_3_Template(rf, ctx) { if (rf & 1) {
290
+ function MfaComponent_div_8_ion_button_4_Template(rf, ctx) { if (rf & 1) {
256
291
  const _r41 = i0.ɵɵgetCurrentView();
257
292
  i0.ɵɵelementStart(0, "ion-button", 31);
258
- i0.ɵɵlistener("keyup.enter", function MfaComponent_div_9_ion_button_3_Template_ion_button_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r41); const ctx_r40 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r40.signIn()); })("click", function MfaComponent_div_9_ion_button_3_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r41); const ctx_r42 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r42.signIn()); });
259
- i0.ɵɵtext(1, " Submit ");
293
+ i0.ɵɵlistener("keyup.enter", function MfaComponent_div_8_ion_button_4_Template_ion_button_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r41); const ctx_r40 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r40.signIn()); })("click", function MfaComponent_div_8_ion_button_4_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r41); const ctx_r42 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r42.signIn()); });
294
+ i0.ɵɵtext(1);
295
+ i0.ɵɵpipe(2, "translate");
260
296
  i0.ɵɵelementEnd();
297
+ } if (rf & 2) {
298
+ i0.ɵɵadvance(1);
299
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "common.submit"), " ");
261
300
  } }
262
- function MfaComponent_div_9_ion_button_4_Template(rf, ctx) { if (rf & 1) {
301
+ function MfaComponent_div_8_ion_button_5_Template(rf, ctx) { if (rf & 1) {
263
302
  const _r44 = i0.ɵɵgetCurrentView();
264
303
  i0.ɵɵelementStart(0, "ion-button", 31);
265
- i0.ɵɵlistener("keyup.enter", function MfaComponent_div_9_ion_button_4_Template_ion_button_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r43.submit()); })("click", function MfaComponent_div_9_ion_button_4_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r45 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r45.submit()); });
266
- i0.ɵɵtext(1, " Submit ");
304
+ i0.ɵɵlistener("keyup.enter", function MfaComponent_div_8_ion_button_5_Template_ion_button_keyup_enter_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r43 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r43.submit()); })("click", function MfaComponent_div_8_ion_button_5_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r44); const ctx_r45 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r45.submit()); });
305
+ i0.ɵɵtext(1);
306
+ i0.ɵɵpipe(2, "translate");
267
307
  i0.ɵɵelementEnd();
308
+ } if (rf & 2) {
309
+ i0.ɵɵadvance(1);
310
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "common.submit"), " ");
268
311
  } }
269
- function MfaComponent_div_9_Template(rf, ctx) { if (rf & 1) {
312
+ function MfaComponent_div_8_Template(rf, ctx) { if (rf & 1) {
270
313
  const _r47 = i0.ɵɵgetCurrentView();
271
314
  i0.ɵɵelementStart(0, "div", 28)(1, "ion-button", 29);
272
- i0.ɵɵlistener("keyup.enter", function MfaComponent_div_9_Template_ion_button_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r47); const ctx_r46 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r46.close(false)); })("click", function MfaComponent_div_9_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r47); const ctx_r48 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r48.close(false)); });
273
- i0.ɵɵtext(2, " Close ");
315
+ i0.ɵɵlistener("keyup.enter", function MfaComponent_div_8_Template_ion_button_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r47); const ctx_r46 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r46.close(false)); })("click", function MfaComponent_div_8_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r47); const ctx_r48 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r48.close(false)); });
316
+ i0.ɵɵtext(2);
317
+ i0.ɵɵpipe(3, "translate");
274
318
  i0.ɵɵelementEnd();
275
- i0.ɵɵtemplate(3, MfaComponent_div_9_ion_button_3_Template, 2, 0, "ion-button", 30)(4, MfaComponent_div_9_ion_button_4_Template, 2, 0, "ion-button", 30);
319
+ i0.ɵɵtemplate(4, MfaComponent_div_8_ion_button_4_Template, 3, 3, "ion-button", 30)(5, MfaComponent_div_8_ion_button_5_Template, 3, 3, "ion-button", 30);
276
320
  i0.ɵɵelementEnd();
277
321
  } if (rf & 2) {
278
322
  const ctx_r4 = i0.ɵɵnextContext();
279
- i0.ɵɵadvance(3);
323
+ i0.ɵɵadvance(2);
324
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, "common.close"), " ");
325
+ i0.ɵɵadvance(2);
280
326
  i0.ɵɵproperty("ngIf", !ctx_r4.requestCode && ctx_r4.option.value);
281
327
  i0.ɵɵadvance(1);
282
328
  i0.ɵɵproperty("ngIf", ctx_r4.requestCode && ctx_r4.option.value);
283
329
  } }
284
330
  export class MfaComponent {
285
- constructor(ls, fb, util, nav, cs, ss, router) {
331
+ constructor(ls, fb, util, nav, cs, ss, router, translateService) {
286
332
  this.ls = ls;
287
333
  this.fb = fb;
288
334
  this.util = util;
@@ -290,6 +336,7 @@ export class MfaComponent {
290
336
  this.cs = cs;
291
337
  this.ss = ss;
292
338
  this.router = router;
339
+ this.translateService = translateService;
293
340
  this.RESEND_CODE_ACTION_NAME = "MFA_RESEND_CODE";
294
341
  this.isChecked = false;
295
342
  this.showHelp = false;
@@ -308,6 +355,7 @@ export class MfaComponent {
308
355
  { value: 'text', text: 'text' },
309
356
  { value: 'email', text: 'email' }
310
357
  ];
358
+ this.translateService.use(localStorage.getItem("language"));
311
359
  }
312
360
  ngOnChanges(changes) {
313
361
  if (changes.mfaError?.currentValue) {
@@ -324,6 +372,7 @@ export class MfaComponent {
324
372
  }
325
373
  }
326
374
  ngOnInit() {
375
+ this.translateService.use(localStorage.getItem("language"));
327
376
  this.initilizeForm();
328
377
  //this.setCountdown();
329
378
  if (this.requestCode) {
@@ -439,6 +488,15 @@ export class MfaComponent {
439
488
  sendOtp(event) {
440
489
  this.resendAuthCode(event.value);
441
490
  }
491
+ get AccessVerify() {
492
+ return this.translateService.instant('mfa.access.verify.six');
493
+ }
494
+ get AccessRequired() {
495
+ return this.translateService.instant('mfa.access.required');
496
+ }
497
+ get AccessConfirm() {
498
+ return this.translateService.instant('mfa.access.confirm');
499
+ }
442
500
  resendAuthCode(otpType) {
443
501
  this.successDtls = null;
444
502
  this.errorDtls = null;
@@ -454,26 +512,25 @@ export class MfaComponent {
454
512
  this.errorDtls = err.msg;
455
513
  });
456
514
  }
457
- static { this.ɵfac = function MfaComponent_Factory(t) { return new (t || MfaComponent)(i0.ɵɵdirectiveInject(i1.LoginService), i0.ɵɵdirectiveInject(i2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.NavController), i0.ɵɵdirectiveInject(i5.CaptchaService), i0.ɵɵdirectiveInject(i6.SecurityService), i0.ɵɵdirectiveInject(i7.Router)); }; }
515
+ static { this.ɵfac = function MfaComponent_Factory(t) { return new (t || MfaComponent)(i0.ɵɵdirectiveInject(i1.LoginService), i0.ɵɵdirectiveInject(i2.UntypedFormBuilder), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.NavController), i0.ɵɵdirectiveInject(i5.CaptchaService), i0.ɵɵdirectiveInject(i6.SecurityService), i0.ɵɵdirectiveInject(i7.Router), i0.ɵɵdirectiveInject(i8.TranslateService)); }; }
458
516
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MfaComponent, selectors: [["app-mfa"]], viewQuery: function MfaComponent_Query(rf, ctx) { if (rf & 1) {
459
517
  i0.ɵɵviewQuery(_c0, 5);
460
518
  } if (rf & 2) {
461
519
  let _t;
462
520
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.otpField = _t.first);
463
- } }, inputs: { user: "user", heading: "heading", requestCode: "requestCode", data: "data", mfaError: "mfaError", hideButtons: "hideButtons", returningUser: "returningUser", display: "display" }, outputs: { clear: "clear", success: "success", error: "error" }, features: [i0.ɵɵNgOnChangesFeature], decls: 10, vars: 8, consts: [[3, "formGroup"], ["otpFormDirective", "ngForm"], [1, "heading", 2, "padding-left", "10px"], ["style", "padding-left: 10px;", 4, "ngIf"], ["class", "ion-text-center", 4, "ngIf"], ["class", "ion-text-right ion-padding-bottom", 4, "ngIf"], [2, "padding-left", "10px"], [1, "ion-padding-top", "p-formgrid", "p-grid"], [1, "field", "ion-text-left"], ["for", "otpType"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl", "onChange"], [1, "ion-padding-top"], [4, "ngIf"], ["for", "authCode", 4, "ngIf"], ["formControlName", "otp", "maxlength", "6", "minlength", "6", "mode", "decimal", "size", "6", "autocomplete", "off", 3, "useGrouping", "inputId", "click", "keyup", "keyup.enter"], ["otpField", ""], [3, "field", "form", "errDef", 4, "ngIf"], ["lines", "none", 4, "ngIf"], ["style", "color: var(--ion-color-green)", 4, "ngIf"], ["for", "authCode"], [3, "field", "form", "errDef"], ["lines", "none"], ["slot", "start", "formControlName", "checked"], [1, "ion-text-wrap"], [2, "color", "var(--ion-color-green)"], ["tabindex", "0", 1, "link", 3, "keyup.enter", "click"], [1, "ion-text-center"], ["name", "dots"], [1, "ion-text-right", "ion-padding-bottom"], ["tabindex", "0", "shape", "round", "type", "reset", "color", "success", "fill", "outline", 3, "keyup.enter", "click"], ["tabindex", "0", "shape", "round", "type", "submit", "color", "success", 3, "keyup.enter", "click", 4, "ngIf"], ["tabindex", "0", "shape", "round", "type", "submit", "color", "success", 3, "keyup.enter", "click"]], template: function MfaComponent_Template(rf, ctx) { if (rf & 1) {
521
+ } }, inputs: { user: "user", heading: "heading", requestCode: "requestCode", data: "data", mfaError: "mfaError", hideButtons: "hideButtons", returningUser: "returningUser", display: "display" }, outputs: { clear: "clear", success: "success", error: "error" }, features: [i0.ɵɵNgOnChangesFeature], decls: 9, vars: 6, consts: [[3, "formGroup"], ["otpFormDirective", "ngForm"], [1, "heading", 2, "padding-left", "10px"], ["style", "padding-left: 10px;", 4, "ngIf"], ["class", "ion-text-center", 4, "ngIf"], ["class", "ion-text-right ion-padding-bottom", 4, "ngIf"], [2, "padding-left", "10px"], [1, "ion-padding-top", "p-formgrid", "p-grid"], [1, "field", "ion-text-left"], ["for", "otpType"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl", "onChange"], [1, "ion-padding-top"], [4, "ngIf"], ["for", "authCode", 4, "ngIf"], ["formControlName", "otp", "maxlength", "6", "minlength", "6", "mode", "decimal", "size", "6", "autocomplete", "off", 3, "useGrouping", "inputId", "click", "keyup", "keyup.enter"], ["otpField", ""], [3, "field", "form", "errDef", 4, "ngIf"], ["lines", "none", 4, "ngIf"], ["style", "color: var(--ion-color-green)", 4, "ngIf"], ["for", "authCode"], [3, "field", "form", "errDef"], ["lines", "none"], ["slot", "start", "formControlName", "checked"], [1, "ion-text-wrap"], [2, "color", "var(--ion-color-green)"], ["tabindex", "0", 1, "link", 3, "keyup.enter", "click"], [1, "ion-text-center"], ["name", "dots"], [1, "ion-text-right", "ion-padding-bottom"], ["tabindex", "0", "shape", "round", "type", "reset", "color", "success", "fill", "outline", 3, "keyup.enter", "click"], ["tabindex", "0", "shape", "round", "type", "submit", "color", "success", 3, "keyup.enter", "click", 4, "ngIf"], ["tabindex", "0", "shape", "round", "type", "submit", "color", "success", 3, "keyup.enter", "click"]], template: function MfaComponent_Template(rf, ctx) { if (rf & 1) {
464
522
  i0.ɵɵelementStart(0, "form", 0, 1)(2, "h4", 2);
465
523
  i0.ɵɵtext(3);
466
- i0.ɵɵpipe(4, "translate");
467
524
  i0.ɵɵelementEnd();
468
- i0.ɵɵtemplate(5, MfaComponent_div_5_Template, 7, 5, "div", 3)(6, MfaComponent_div_6_Template, 24, 16, "div", 3);
469
- i0.ɵɵelementStart(7, "p-footer");
470
- i0.ɵɵtemplate(8, MfaComponent_div_8_Template, 2, 0, "div", 4)(9, MfaComponent_div_9_Template, 5, 2, "div", 5);
525
+ i0.ɵɵtemplate(4, MfaComponent_div_4_Template, 7, 5, "div", 3)(5, MfaComponent_div_5_Template, 24, 16, "div", 3);
526
+ i0.ɵɵelementStart(6, "p-footer");
527
+ i0.ɵɵtemplate(7, MfaComponent_div_7_Template, 2, 0, "div", 4)(8, MfaComponent_div_8_Template, 6, 5, "div", 5);
471
528
  i0.ɵɵelementEnd()();
472
529
  } if (rf & 2) {
473
530
  i0.ɵɵproperty("formGroup", ctx.otpForm);
474
531
  i0.ɵɵadvance(3);
475
- i0.ɵɵtextInterpolate(ctx.heading ? ctx.heading : i0.ɵɵpipeBind1(4, 6, "Confirm access to your account"));
476
- i0.ɵɵadvance(2);
532
+ i0.ɵɵtextInterpolate(ctx.heading ? ctx.heading : ctx.AccessConfirm);
533
+ i0.ɵɵadvance(1);
477
534
  i0.ɵɵproperty("ngIf", !ctx.option.value && !ctx.returningUser);
478
535
  i0.ɵɵadvance(1);
479
536
  i0.ɵɵproperty("ngIf", ctx.option.value);
@@ -481,12 +538,12 @@ export class MfaComponent {
481
538
  i0.ɵɵproperty("ngIf", ctx.blocked);
482
539
  i0.ɵɵadvance(1);
483
540
  i0.ɵɵproperty("ngIf", !ctx.blocked && !ctx.hideButtons);
484
- } }, dependencies: [i4.IonButton, i4.IonCheckbox, i4.IonItem, i4.IonLabel, i4.IonSpinner, i4.BooleanValueAccessor, i8.NgIf, i9.Footer, i10.MatError, i2.ɵNgNoValidate, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinLengthValidator, i2.MaxLengthValidator, i2.FormControlDirective, i2.FormGroupDirective, i2.FormControlName, i11.SelectButton, i12.InputNumber, i13.ErrorComponent, i14.TranslatePipe, i15.MaskEmailPipe], styles: ["[_nghost-%COMP%] .panel{box-shadow:none!important}"] }); }
541
+ } }, dependencies: [i4.IonButton, i4.IonCheckbox, i4.IonItem, i4.IonLabel, i4.IonSpinner, i4.BooleanValueAccessor, i9.NgIf, i10.Footer, i11.MatError, i2.ɵNgNoValidate, i2.NgControlStatus, i2.NgControlStatusGroup, i2.MinLengthValidator, i2.MaxLengthValidator, i2.FormControlDirective, i2.FormGroupDirective, i2.FormControlName, i12.SelectButton, i13.InputNumber, i14.ErrorComponent, i8.TranslatePipe, i15.MaskEmailPipe], styles: ["[_nghost-%COMP%] .panel{box-shadow:none!important}"] }); }
485
542
  }
486
543
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MfaComponent, [{
487
544
  type: Component,
488
- args: [{ selector: 'app-mfa', template: "<form [formGroup]=\"otpForm\" #otpFormDirective=\"ngForm\">\r\n <h4 style=\"padding-left: 10px;\" class=\"heading\">{{ heading ? heading : 'Confirm access to your account' | translate}}</h4>\r\n\r\n <div style=\"padding-left: 10px;\" *ngIf=\"!option.value && !returningUser\">\r\n <div class=\"ion-padding-top p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\">\r\n <label for=\"otpType\">{{'How would you like us to send your access code?' | translate}}</label>\r\n <p-selectButton [options]=\"options\" optionLabel=\"text\" optionValue=\"value\" [formControl]=\"option\" (onChange)=\"sendOtp($event)\"></p-selectButton>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div style=\"padding-left: 10px;\" *ngIf=\"option.value\">\r\n <div class=\"ion-padding-top\">\r\n <ion-label>\r\n <span *ngIf=\"option.value == 'email' && !returningUser\">An access code has been sent to your email address:&nbsp; <b>{{user?.emailId | maskEmail}}</b></span>\r\n <span *ngIf=\"option.value == 'text' && !returningUser\">An access code has been sent to your cellphone:&nbsp; <b>{{user?.cellphoneNo | maskEmail}}</b></span>\r\n <span *ngIf=\"returningUser\">An access code has been sent to your cellphone :&nbsp; <b>{{user?.cellphoneNo | maskEmail}}</b></span>\r\n </ion-label><br/><br/>\r\n <ion-label *ngIf=\"option.value == 'email' && !returningUser\">\r\n Check your junk folder if you don't see it in your inbox.\r\n </ion-label>\r\n <span *ngIf=\"option.value == 'email' && !returningUser\"><br/><br/></span>\r\n <div class=\"field ion-text-left\">\r\n <label for=\"authCode\" *ngIf=\"!returningUser\">Enter code</label><br/>\r\n <label for=\"authCode\" *ngIf=\"returningUser\">Enter Validation Code Received :</label><br/>\r\n <p-inputNumber (click)=\"hideOptValidator=false\" (keyup)=\"hideOptValidator=false\" #otpField formControlName=\"otp\" maxlength=\"6\" minlength=\"6\" mode=\"decimal\" [useGrouping]=\"false\" size=\"6\" [inputId]=\"'authCode'\" autocomplete=\"off\" (keyup.enter)=\"(!requestCode && option.value) ? signIn() : submit()\">\r\n </p-inputNumber>\r\n <app-error *ngIf=\"!hideOptValidator\" [field]='otp' [form]=\"otpForm\" [errDef]=\"{ \r\n required: 'Access code is required.',\r\n min: 'Access code should have 6 numbers.',\r\n max: 'Access code should have 6 numbers.'\r\n }\"></app-error>\r\n </div>\r\n <ion-item lines=\"none\" *ngIf=\"false\">\r\n <ion-checkbox slot=\"start\" formControlName=\"checked\"></ion-checkbox>\r\n <ion-label class=\"ion-text-wrap\">{{'I trust this browser.' | translate}}</ion-label>\r\n </ion-item>\r\n </div>\r\n \r\n <mat-error *ngIf=\"errorDtls\">{{errorDtls}}<br /><br /></mat-error>\r\n <ion-label *ngIf=\"successDtls\" style=\"color: var(--ion-color-green)\">{{successDtls}}<br/><br /></ion-label>\r\n <ion-label *ngIf=\"!blocked\">\r\n <span *ngIf=\"counter.getValue() != 1 && !returningUser\">\r\n Haven't received the code? Resend option available in <b>{{counter.getValue()}} second(s)</b>.\r\n </span>\r\n <span *ngIf=\"counter.getValue() == 1 && !returningUser\">\r\n <a tabindex=\"0\" (keyup.enter)=\"resendAuthCode(option.value)\" (click)=\"resendAuthCode(option.value)\" class=\"link\">Get new code</a>\r\n </span>\r\n <span *ngIf=\"counter.getValue() == 1 && returningUser\">\r\n <a tabindex=\"0\" (keyup.enter)=\"resendAuthCode(option.value)\" (click)=\"resendAuthCode(option.value)\" class=\"link\">Resend Verification Code</a>\r\n </span>\r\n </ion-label>\r\n <p *ngIf=\"!returningUser\"><a tabindex=\"0\" class=\"link\" (keyup.enter)=\"showHelp = !showHelp; $event.preventDefault()\" (click)=\"showHelp = !showHelp; $event.preventDefault()\">Can't get to your {{option.value == 'text' ? 'cellphone' : 'email'}}?</a></p>\r\n <!-- <p *ngIf=\"returningUser\"><a tabindex=\"0\" class=\"link\" (keyup.enter)=\"close()\" (click)=\"close()\">Unable to verify</a></p> -->\r\n <p *ngIf=\"showHelp && !returningUser\">\r\n Your code is good for 15 minutes. You can try again later.<br/>\r\n or<br/>\r\n If your {{option.value == 'text' ? 'cellphone number' : 'email address'}} has changed call KDOL at 785-575-1460, Monday through Friday from 8 am to 4:30 pm.\r\n </p>\r\n </div>\r\n\r\n <p-footer>\r\n <div *ngIf=\"blocked\" class=\"ion-text-center\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n <div class=\"ion-text-right ion-padding-bottom\" *ngIf=\"!blocked && !hideButtons\">\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"reset\" (keyup.enter)=\"close(false)\" (click)=\"close(false)\" color=\"success\" fill=\"outline\">\r\n Close\r\n </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"submit\" (keyup.enter)=\"signIn()\" (click)=\"signIn()\" color=\"success\" *ngIf=\"!requestCode && option.value\">\r\n Submit\r\n </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"submit\" (keyup.enter)=\"submit()\" (click)=\"submit()\" color=\"success\" *ngIf=\"requestCode && option.value\">\r\n Submit\r\n </ion-button>\r\n </div>\r\n </p-footer>\r\n</form>", styles: [":host ::ng-deep .panel{box-shadow:none!important}\n"] }]
489
- }], () => [{ type: i1.LoginService }, { type: i2.UntypedFormBuilder }, { type: i3.UtilService }, { type: i4.NavController }, { type: i5.CaptchaService }, { type: i6.SecurityService }, { type: i7.Router }], { otpField: [{
545
+ args: [{ selector: 'app-mfa', template: "<form [formGroup]=\"otpForm\" #otpFormDirective=\"ngForm\">\r\n <h4 style=\"padding-left: 10px;\" class=\"heading\">{{ heading ? heading : AccessConfirm}}</h4>\r\n\r\n <div style=\"padding-left: 10px;\" *ngIf=\"!option.value && !returningUser\">\r\n <div class=\"ion-padding-top p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\">\r\n <label for=\"otpType\">{{'mfa.how.send'|translate}}</label>\r\n <p-selectButton [options]=\"options\" optionLabel=\"text\" optionValue=\"value\" [formControl]=\"option\" (onChange)=\"sendOtp($event)\"></p-selectButton>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div style=\"padding-left: 10px;\" *ngIf=\"option.value\">\r\n <div class=\"ion-padding-top\">\r\n <ion-label>\r\n <span *ngIf=\"option.value == 'email' && !returningUser\">{{'mfa.code.sent.email'|translate}}:&nbsp; <b>{{user?.emailId | maskEmail}}</b></span>\r\n <span *ngIf=\"option.value == 'text' && !returningUser\">{{'mfa.code.sent.cell'|translate}}&nbsp; <b>{{user?.cellphoneNo | maskEmail}}</b></span>\r\n <span *ngIf=\"returningUser\">{{'mfa.code.sent.cell'|translate}}&nbsp; <b>{{user?.cellphoneNo | maskEmail}}</b></span>\r\n </ion-label><br/><br/>\r\n <ion-label *ngIf=\"option.value == 'email' && !returningUser\">\r\n {{'mfa.code.sent.junk'|translate}}\r\n </ion-label>\r\n <span *ngIf=\"option.value == 'email' && !returningUser\"><br/><br/></span>\r\n <div class=\"field ion-text-left\">\r\n <label for=\"authCode\" *ngIf=\"!returningUser\">{{'mfa.enter.code'|translate}}</label><br/>\r\n <label for=\"authCode\" *ngIf=\"returningUser\">{{'mfa.enter.code.received'|translate}}</label><br/>\r\n <p-inputNumber (click)=\"hideOptValidator=false\" (keyup)=\"hideOptValidator=false\" #otpField formControlName=\"otp\" maxlength=\"6\" minlength=\"6\" mode=\"decimal\" [useGrouping]=\"false\" size=\"6\" [inputId]=\"'authCode'\" autocomplete=\"off\" (keyup.enter)=\"(!requestCode && option.value) ? signIn() : submit()\">\r\n </p-inputNumber>\r\n <app-error *ngIf=\"!hideOptValidator\" [field]='otp' [form]=\"otpForm\" [errDef]=\"{ \r\n required: AccessRequired,\r\n min: AccessVerify,\r\n max: AccessVerify\r\n }\"></app-error>\r\n </div>\r\n <ion-item lines=\"none\" *ngIf=\"false\">\r\n <ion-checkbox slot=\"start\" formControlName=\"checked\"></ion-checkbox>\r\n <ion-label class=\"ion-text-wrap\">{{'mfa.browser.trust'|translate}}</ion-label>\r\n </ion-item>\r\n </div>\r\n \r\n <mat-error *ngIf=\"errorDtls\">{{errorDtls}}<br /><br /></mat-error>\r\n <ion-label *ngIf=\"successDtls\" style=\"color: var(--ion-color-green)\">{{successDtls}}<br/><br /></ion-label>\r\n <ion-label *ngIf=\"!blocked\">\r\n <span *ngIf=\"counter.getValue() != 1 && !returningUser\">\r\n {{'mfa.code.not.received'|translate}} <b>{{counter.getValue()}} second(s)</b>.\r\n </span>\r\n <span *ngIf=\"counter.getValue() == 1 && !returningUser\">\r\n <a tabindex=\"0\" (keyup.enter)=\"resendAuthCode(option.value)\" (click)=\"resendAuthCode(option.value)\" class=\"link\">{{'mfa.get.new.code'|translate}}</a>\r\n </span>\r\n <span *ngIf=\"counter.getValue() == 1 && returningUser\">\r\n <a tabindex=\"0\" (keyup.enter)=\"resendAuthCode(option.value)\" (click)=\"resendAuthCode(option.value)\" class=\"link\"> {{'mfa.resend.verification.code'|translate}}</a>\r\n </span>\r\n </ion-label>\r\n <p *ngIf=\"!returningUser\"><a tabindex=\"0\" class=\"link\" (keyup.enter)=\"showHelp = !showHelp; $event.preventDefault()\" (click)=\"showHelp = !showHelp; $event.preventDefault()\">Can't get to your {{option.value == 'text' ? 'cellphone' : 'email'}}?</a></p>\r\n <!-- <p *ngIf=\"returningUser\"><a tabindex=\"0\" class=\"link\" (keyup.enter)=\"close()\" (click)=\"close()\">Unable to verify</a></p> -->\r\n <p *ngIf=\"showHelp && !returningUser\">\r\n {{'mfa.good.for.time'|translate}}<br/>\r\n or<br/>\r\n If your {{option.value == 'text' ? 'cellphone number' : 'email address'}} has changed call KDOL at 785-575-1460, Monday through Friday from 8 am to 4:30 pm.\r\n </p>\r\n </div>\r\n\r\n <p-footer>\r\n <div *ngIf=\"blocked\" class=\"ion-text-center\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n <div class=\"ion-text-right ion-padding-bottom\" *ngIf=\"!blocked && !hideButtons\">\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"reset\" (keyup.enter)=\"close(false)\" (click)=\"close(false)\" color=\"success\" fill=\"outline\">\r\n {{'common.close'|translate}}\r\n </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"submit\" (keyup.enter)=\"signIn()\" (click)=\"signIn()\" color=\"success\" *ngIf=\"!requestCode && option.value\">\r\n {{'common.submit'|translate}}\r\n </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" type=\"submit\" (keyup.enter)=\"submit()\" (click)=\"submit()\" color=\"success\" *ngIf=\"requestCode && option.value\">\r\n {{'common.submit'|translate}}\r\n </ion-button>\r\n </div>\r\n </p-footer>\r\n</form>", styles: [":host ::ng-deep .panel{box-shadow:none!important}\n"] }]
546
+ }], () => [{ type: i1.LoginService }, { type: i2.UntypedFormBuilder }, { type: i3.UtilService }, { type: i4.NavController }, { type: i5.CaptchaService }, { type: i6.SecurityService }, { type: i7.Router }, { type: i8.TranslateService }], { otpField: [{
490
547
  type: ViewChild,
491
548
  args: ["otpField"]
492
549
  }], user: [{
@@ -512,5 +569,5 @@ export class MfaComponent {
512
569
  }], error: [{
513
570
  type: Output
514
571
  }] }); })();
515
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MfaComponent, { className: "MfaComponent", filePath: "lib\\components\\mfa\\mfa.component.ts", lineNumber: 20 }); })();
516
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEcEMsOEJBQXlFLGFBQUEsYUFBQSxlQUFBO0lBRzlDLFlBQWlFOztJQUFBLGlCQUFRO0lBQzlGLDBDQUErSDtJQUE3Qiw2S0FBWSxlQUFBLHNCQUFlLENBQUEsSUFBQztJQUFDLGlCQUFpQixFQUFBLEVBQUEsRUFBQTs7O0lBRDNILGVBQWlFO0lBQWpFLDZGQUFpRTtJQUN0RSxlQUFtQjtJQUFuQix3Q0FBbUIsOEJBQUE7OztJQVFuQyw0QkFBd0Q7SUFBQSwwRUFBMEQ7SUFBQSx5QkFBRztJQUFBLFlBQTZCOztJQUFBLGlCQUFJLEVBQUE7OztJQUFqQyxlQUE2QjtJQUE3Qiw0RkFBNkI7OztJQUNsSiw0QkFBdUQ7SUFBQSxzRUFBc0Q7SUFBQSx5QkFBRztJQUFBLFlBQWlDOztJQUFBLGlCQUFJLEVBQUE7OztJQUFyQyxlQUFpQztJQUFqQyxnR0FBaUM7OztJQUNqSiw0QkFBNEI7SUFBQSx1RUFBdUQ7SUFBQSx5QkFBRztJQUFBLFlBQWlDOztJQUFBLGlCQUFJLEVBQUE7OztJQUFyQyxlQUFpQztJQUFqQyxnR0FBaUM7OztJQUV6SCxpQ0FBNkQ7SUFDM0QsMkVBQ0Y7SUFBQSxpQkFBWTs7O0lBQ1osNEJBQXdEO0lBQUEscUJBQUssU0FBQTtJQUFLLGlCQUFPOzs7SUFFdkUsaUNBQTZDO0lBQUEsMEJBQVU7SUFBQSxpQkFBUTs7O0lBQy9ELGlDQUE0QztJQUFBLGdEQUFnQztJQUFBLGlCQUFROzs7O0lBR3BGLGdDQUllOzs7SUFKc0IsbUNBQWEseUJBQUEsc0NBQUE7OztJQU1wRCxvQ0FBcUM7SUFDbkMsbUNBQW9FO0lBQ3BFLHFDQUFpQztJQUFBLFlBQXVDOztJQUFBLGlCQUFZLEVBQUE7O0lBQW5ELGVBQXVDO0lBQXZDLG1FQUF1Qzs7O0lBSTVFLGlDQUE2QjtJQUFBLFlBQWE7SUFBQSxxQkFBTSxTQUFBO0lBQU0saUJBQVk7OztJQUFyQyxlQUFhO0lBQWIsdUNBQWE7OztJQUMxQyxxQ0FBcUU7SUFBQSxZQUFlO0lBQUEscUJBQUssU0FBQTtJQUFNLGlCQUFZOzs7SUFBdEMsZUFBZTtJQUFmLHlDQUFlOzs7SUFFbEYsNEJBQXdEO0lBQ3RELHVFQUFzRDtJQUFBLHlCQUFHO0lBQUEsWUFBZ0M7SUFBQSxpQkFBSTtJQUFBLGtCQUMvRjtJQUFBLGlCQUFPOzs7SUFEb0QsZUFBZ0M7SUFBaEMsbUVBQWdDOzs7O0lBRTNGLDRCQUF3RCxZQUFBO0lBQ3JDLHVMQUFlLGVBQUEsNENBQTRCLENBQUEsSUFBQyw4SkFBVSxlQUFBLDRDQUE0QixDQUFBLElBQXRDO0lBQXFELDRCQUFZO0lBQUEsaUJBQUksRUFBQTs7OztJQUVwSSw0QkFBdUQsWUFBQTtJQUNyQyx1TEFBZSxlQUFBLDRDQUE0QixDQUFBLElBQUMsOEpBQVUsZUFBQSw0Q0FBNEIsQ0FBQSxJQUF0QztJQUFxRCx3Q0FBd0I7SUFBQSxpQkFBSSxFQUFBOzs7SUFSakosaUNBQTRCO0lBQzFCLG1GQUVPLHNFQUFBLHNFQUFBO0lBT1QsaUJBQVk7OztJQVRILGVBQStDO0lBQS9DLGdGQUErQztJQUcvQyxlQUErQztJQUEvQyxnRkFBK0M7SUFHL0MsZUFBOEM7SUFBOUMsK0VBQThDOzs7O0lBSXZELHlCQUEwQixZQUFBO0lBQTZCLG9OQUFxQyxlQUFBLHVCQUF1QixDQUFBLElBQUMsMkxBQWdDLGVBQUEsdUJBQXVCLENBQUEsSUFBdkQ7SUFBeUQsWUFBcUU7SUFBQSxpQkFBSSxFQUFBOzs7SUFBekUsZUFBcUU7SUFBckUsd0dBQXFFOzs7SUFFbFAseUJBQXNDO0lBQ3BDLDJFQUEwRDtJQUFBLHFCQUFLO0lBQy9ELG1CQUFFO0lBQUEscUJBQUs7SUFDUCxZQUNGO0lBQUEsaUJBQUk7OztJQURGLGVBQ0Y7SUFERSxpTUFDRjs7OztJQS9DRiw4QkFBc0QsY0FBQSxnQkFBQTtJQUdoRCxzRUFBNkoseURBQUEseURBQUE7SUFHL0osaUJBQVk7SUFBQSxxQkFBSyxTQUFBO0lBQ2pCLGdGQUVZLHlEQUFBO0lBRVosK0JBQWlDO0lBQy9CLDBFQUErRDtJQUFBLHNCQUFLO0lBQ3BFLDBFQUFvRjtJQUFBLHNCQUFLO0lBQ3pGLDhDQUEwUztJQUEzUiw2TUFBMEIsS0FBSyxLQUFDLGdNQUEyQixLQUFLLEtBQWhDLGtLQUFxTSw4REFBaUMsZ0JBQVEsR0FBRyxnQkFBUSxDQUFBLElBQXpQO0lBQy9DLGlCQUFnQjtJQUNoQixrRkFJZTtJQUNqQixpQkFBTTtJQUNOLGdGQUdXO0lBQ2IsaUJBQU07SUFFTixrRkFBa0UscUVBQUEscUVBQUEscURBQUEscURBQUE7SUFvQnBFLGlCQUFNOzs7SUE3Q08sZUFBK0M7SUFBL0MsOEVBQStDO0lBQy9DLGVBQThDO0lBQTlDLDZFQUE4QztJQUM5QyxlQUFtQjtJQUFuQiwyQ0FBbUI7SUFFaEIsZUFBK0M7SUFBL0MsOEVBQStDO0lBR3BELGVBQStDO0lBQS9DLDhFQUErQztJQUU3QixlQUFvQjtJQUFwQiw0Q0FBb0I7SUFDcEIsZUFBbUI7SUFBbkIsMkNBQW1CO0lBQ2tILGVBQXFCO0lBQXJCLG1DQUFxQix1QkFBQTtJQUVySyxlQUF1QjtJQUF2QiwrQ0FBdUI7SUFNYixlQUFXO0lBQVgsNEJBQVc7SUFNekIsZUFBZTtJQUFmLHVDQUFlO0lBQ2YsZUFBaUI7SUFBakIseUNBQWlCO0lBQ2pCLGVBQWM7SUFBZCxzQ0FBYztJQVd0QixlQUFvQjtJQUFwQiw0Q0FBb0I7SUFFcEIsZUFBZ0M7SUFBaEMsK0RBQWdDOzs7SUFRcEMsK0JBQTZDO0lBQzNDLGtDQUF1QztJQUN6QyxpQkFBTTs7OztJQUtKLHNDQUF1SjtJQUFqRyx5TEFBZSxlQUFBLGdCQUFRLENBQUEsSUFBQyxnS0FBVSxlQUFBLGdCQUFRLENBQUEsSUFBbEI7SUFDNUUsd0JBQ0Y7SUFBQSxpQkFBYTs7OztJQUNiLHNDQUFxSjtJQUFoRyx5TEFBZSxlQUFBLGdCQUFRLENBQUEsSUFBQyxnS0FBVSxlQUFBLGdCQUFRLENBQUEsSUFBbEI7SUFDM0Usd0JBQ0Y7SUFBQSxpQkFBYTs7OztJQVRmLCtCQUFnRixxQkFBQTtJQUMxQiwyS0FBZSxlQUFBLGNBQU0sS0FBSyxDQUFDLENBQUEsSUFBQyxrSkFBVSxlQUFBLGNBQU0sS0FBSyxDQUFDLENBQUEsSUFBdEI7SUFDOUUsdUJBQ0Y7SUFBQSxpQkFBYTtJQUNiLGtGQUVhLHFFQUFBO0lBSWYsaUJBQU07OztJQU4rRyxlQUFrQztJQUFsQyxpRUFBa0M7SUFHbkMsZUFBaUM7SUFBakMsZ0VBQWlDOztBRHREekosTUFBTSxPQUFPLFlBQVk7SUE4RHZCLFlBQW1CLEVBQWdCLEVBQVMsRUFBdUIsRUFDL0MsSUFBaUIsRUFBUyxHQUFtQixFQUFVLEVBQWtCLEVBQ3hFLEVBQW1CLEVBQVUsTUFBYztRQUY3QyxPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFDL0MsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQWdCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBZ0I7UUFDeEUsT0FBRSxHQUFGLEVBQUUsQ0FBaUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBN0R4RCw0QkFBdUIsR0FBRyxpQkFBaUIsQ0FBQztRQU03QyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBbUIvQixnQkFBVyxHQUFhLEtBQUssQ0FBQztRQUs5QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRU4sVUFBSyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlDLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoRCxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFNakQsU0FBSSxHQUFHLEVBQUUsQ0FBQTtRQUNULGtCQUFhLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUNwQyxVQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSztRQUMzQixjQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELFlBQU8sR0FBNkIsSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFHM0QsWUFBTyxHQUFtQjtZQUMvQixFQUFDLEtBQUssRUFBRyxNQUFNLEVBQUUsSUFBSSxFQUFHLE1BQU0sRUFBQztZQUMvQixFQUFDLEtBQUssRUFBRyxPQUFPLEVBQUUsSUFBSSxFQUFHLE9BQU8sRUFBQztTQUNsQyxDQUFDO0lBTUYsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDekI7UUFDRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUcsY0FBYztZQUNqRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBR0QsV0FBVztRQUNULElBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFDO1lBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLHNCQUFzQjtRQUN0QixJQUFHLElBQUksQ0FBQyxXQUFXLEVBQUM7WUFDbEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2RSxJQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO2dCQUN2QixpQ0FBaUM7YUFDbEM7aUJBQUs7Z0JBQ0osSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xDO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtRQUNELFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDVCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBZ0I7UUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO2FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0NBQWdDLENBQUM7WUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNQLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQTtJQUNSLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUM7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3hELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDM0IsS0FBSyxFQUFHLENBQUMsSUFBSSxFQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTyxDQUFDLEVBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUcsU0FBUyxFQUFHLENBQUMsS0FBSyxDQUFDO1lBQ25CLFFBQVEsRUFBRyxDQUFFLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLEdBQUcsSUFBSTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBQztZQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBQztZQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixPQUFPO1NBQ1I7UUFDRCxJQUFJLElBQUksR0FBUyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUk7YUFDSixVQUFVLEVBQUU7YUFDWixJQUFJLENBQ0gsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7aUJBQ2hDLFNBQVMsQ0FDUixHQUFHLENBQUMsRUFBRTtnQkFDSixJQUFJLFNBQVMsR0FBZSxHQUFHLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDN0IsR0FBRyxDQUFDLEVBQUU7b0JBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3pCLENBQUMsQ0FDRixDQUFDO1lBQ0osQ0FBQyxFQUNELEdBQUcsQ0FBQyxFQUFFO2dCQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQixJQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLG9EQUFvRCxDQUFDLEVBQUM7b0JBQzNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztvQkFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsd0RBQXdELENBQUMsQ0FBQztvQkFDOUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUNkO3FCQUFNO29CQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztpQkFDMUI7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQ0YsQ0FBQztJQUNSLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBSztRQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBZ0I7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLG1FQUFtRTtRQUNwRixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQ3hELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLGdDQUFnQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUMzQixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7NkVBdk9VLFlBQVk7b0VBQVosWUFBWTs7Ozs7O1lDbkJ6QixrQ0FBdUQsWUFBQTtZQUNMLFlBQXFFOztZQUFBLGlCQUFLO1lBRTFILDZEQU9NLGtEQUFBO1lBb0ROLGdDQUFVO1lBQ1IsNkRBRU0sZ0RBQUE7WUFZUixpQkFBVyxFQUFBOztZQTdFUCx1Q0FBcUI7WUFDdUIsZUFBcUU7WUFBckUsd0dBQXFFO1lBRW5GLGVBQXFDO1lBQXJDLDhEQUFxQztZQVNyQyxlQUFrQjtZQUFsQix1Q0FBa0I7WUFtRDVDLGVBQWE7WUFBYixrQ0FBYTtZQUc2QixlQUE4QjtZQUE5Qix1REFBOEI7OztpRkQvQ3JFLFlBQVk7Y0FMeEIsU0FBUzsyQkFDRSxTQUFTO29OQU1JLFFBQVE7a0JBQTlCLFNBQVM7bUJBQUMsVUFBVTtZQWFyQixJQUFJO2tCQURILEtBQUs7WUFJRyxPQUFPO2tCQUFmLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFLTixJQUFJO2tCQURILEtBQUs7WUFJTixRQUFRO2tCQURQLEtBQUs7WUFJTixXQUFXO2tCQURWLEtBQUs7WUFJTixhQUFhO2tCQURaLEtBQUs7WUFHTixPQUFPO2tCQUROLEtBQUs7WUFHSSxLQUFLO2tCQUFkLE1BQU07WUFFRyxPQUFPO2tCQUFoQixNQUFNO1lBRUcsS0FBSztrQkFBZCxNQUFNOztrRkEzQ0ksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGludGVydmFsLCBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEVycm9yTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JNb2RlbCc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ29tYm9Nb2RlbCc7XHJcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnO1xyXG5pbXBvcnQgeyBDYXB0Y2hhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcHRjaGEvY2FwdGNoYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWN1cml0eS1zZXJ2aWNlL3NlY3VyaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWZhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWZhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZmEuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWZhQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJvdHBGaWVsZFwiKSBvdHBGaWVsZDtcclxuICBwcml2YXRlIFJFU0VORF9DT0RFX0FDVElPTl9OQU1FID0gXCJNRkFfUkVTRU5EX0NPREVcIjtcclxuICBcclxuICBwdWJsaWMgc3VjY2Vzc0R0bHM7XHJcblxyXG4gIHB1YmxpYyBibG9ja2VkOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgaXNDaGVja2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93SGVscDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgaGlkZU9wdFZhbGlkYXRvciA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICB1c2VyIDogVXNlck1vZGVsO1xyXG5cclxuICAvL0lmIHNwZWNpZmllZCwgaXQgd2lsbCBjaGFuZ2UgdGhlIGRlZmF1bHQgaGVhZGluZyBvbiB0aGUgY29tcG9uZW50IHdpdGggdGhlIG9uY2Ugc3BlY2lmaWVkIGluIHRoaXMgZmllbGQuXHJcbiAgQElucHV0KCkgaGVhZGluZyA6IHN0cmluZztcclxuXHJcbiAgLy9SZXF1ZXN0IG5ldyBhdXRoY29kZSB3aGVuIGNvbXBvbmVudHMgbG9hZC5cclxuICBASW5wdXQoKVxyXG4gIHJlcXVlc3RDb2RlIDogYm9vbGVhbjtcclxuXHJcbiAgLy9QYXNzIHRoaXMgZGF0YSBhbG9uZyB3aXRoIG91dHB1dCBzbyB0aGF0IGNhbGxpbmcgY29tcG9uZW50IGNhbiB0YWtlIGNhcmUgb2YgaXQuXHJcbiAgQElucHV0KClcclxuICBkYXRhIDogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1mYUVycm9yIDogRXJyb3JNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBoaWRlQnV0dG9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICByZXR1cm5pbmdVc2VyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzcGxheSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgY2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBvdHBGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgcHVibGljIGVycm9yRHRscztcclxuXHJcbiAgcHVibGljIHRpbWUgPSA2MFxyXG4gIHB1YmxpYyB0aW1lckludGVydmFsID0gaW50ZXJ2YWwoMTAwMCk7IC8vMXNcclxuICBwdWJsaWMgdGltZXIgPSB0aW1lcig2MDAwMCk7IC8vOTBzXHJcbiAgcHVibGljIGNvdW50RG93biA9IHRoaXMudGltZXJJbnRlcnZhbC5waXBlKHRha2UodGhpcy50aW1lKSk7XHJcbiAgcHVibGljIGNvdW50ZXIgOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XHJcbiAgY291bnRlclN1YnNjcmlwdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHVibGljIG9wdGlvbnMgOiBDb21ib09wdGlvbltdID0gW1xyXG4gICAge3ZhbHVlIDogJ3RleHQnLCB0ZXh0IDogJ3RleHQnfSxcclxuICAgIHt2YWx1ZSA6ICdlbWFpbCcsIHRleHQgOiAnZW1haWwnfVxyXG4gIF07XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbHM6IExvZ2luU2VydmljZSwgcHVibGljIGZiIDogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBuYXYgOiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGNzOiBDYXB0Y2hhU2VydmljZSxcclxuICAgICAgICAgICAgICAgcHJpdmF0ZSBzczogU2VjdXJpdHlTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7IFxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYoY2hhbmdlcy5tZmFFcnJvcj8uY3VycmVudFZhbHVlKXtcclxuICAgICAgdGhpcy5lcnJvckR0bHMgPSB0aGlzLm1mYUVycm9yLm1zZztcclxuICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlcy5kaXNwbGF5LmN1cnJlbnRWYWx1ZSkgeyAgLy8gd2luZG93IG9wZW5cclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBcclxuICBcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuY291bnRlclN1YnNjcmlwdGlvbil7XHJcbiAgICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRpbGl6ZUZvcm0oKTtcclxuICAgIC8vdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgIGlmKHRoaXMucmVxdWVzdENvZGUpe1xyXG4gICAgICBsZXQgbWZhT3B0aW9ucyA9IHRoaXMudXNlcj8uc3VwcG9ydGVkTWZhVHlwZXM/LnNwbGl0KFwiLFwiKSB8fCBbJ2VtYWlsJ107XHJcbiAgICAgIGlmKG1mYU9wdGlvbnMubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgLy9hbGxvdyB1c2VyIHRvIGNob29zZSBvdHAgb3B0aW9uXHJcbiAgICAgIH0gZWxzZXtcclxuICAgICAgICB0aGlzLnJlcXVlc3ROZXdBdXRoQ29kZSgnZW1haWwnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgIHRoaXMub3RwRmllbGQuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfSwgMTAwKVxyXG4gIH1cclxuXHJcbiAgcmVxdWVzdE5ld0F1dGhDb2RlKG90cFR5cGUgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMubHMuZ2V0TmV3QXV0aENvZGUob3RwVHlwZSlcclxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBcIkFjY2VzcyBjb2RlIHNlbnQgc3VjY2Vzc2Z1bGx5LlwiO1xyXG4gICAgICAgICAgdGhpcy5jb3VudGVyLm5leHQoNjApO1xyXG4gICAgICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JEdGxzID0gZXJyLm1zZztcclxuICAgICAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2V0Q291bnRkb3duKCl7XHJcbiAgICBpZih0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24pe1xyXG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbiA9IHRoaXMuY291bnREb3duLnN1YnNjcmliZSh2YWwgPT57XHJcbiAgICAgIGxldCB2YWx1ZSA9IHRoaXMudGltZSAtIHZhbDtcclxuICAgICAgdGhpcy5jb3VudGVyLm5leHQodmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWxpemVGb3JtKCl7XHJcbiAgICBsZXQgbWZhT3B0aW9ucyA9IHRoaXMudXNlcj8uc3VwcG9ydGVkTWZhVHlwZXM/LnNwbGl0KFwiLFwiKSB8fCBbJ2VtYWlsJ107XHJcbiAgICB0aGlzLm90cEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgJ290cCcgOiBbbnVsbCAsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgIFZhbGlkYXRvcnMubWluKDEwMF8wMDApLFZhbGlkYXRvcnMubWF4KDk5OV85OTkpXSldLFxyXG4gICAgICAnY2hlY2tlZCcgOiBbZmFsc2VdLFxyXG4gICAgICAnb3B0aW9uJyA6IFsgbWZhT3B0aW9ucyAmJiBtZmFPcHRpb25zLmxlbmd0aCA+IDEgPyBudWxsIDogbWZhT3B0aW9uc1swXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90cCgpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ290cCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9wdGlvbigpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ29wdGlvbicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNoZWNrZWQoKXtcclxuICAgIHJldHVybiB0aGlzLm90cEZvcm0uZ2V0KCdjaGVja2VkJyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSh0cmlnZ2VyRXhpdEFQSSA9IHRydWUpe1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbGVhci5lbWl0KHRyaWdnZXJFeGl0QVBJKSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKXtcclxuICAgIHRoaXMuaGlkZU9wdFZhbGlkYXRvciA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5vdHBGb3JtLmludmFsaWQpe1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLm90cEZvcm0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmxzLnNldEF1dGhDb2RlKHRoaXMub3RwLnZhbHVlKTtcclxuICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuZGF0YSk7XHJcbiAgfVxyXG4gIFxyXG4gIHNpZ25Jbigpe1xyXG4gICAgdGhpcy5oaWRlT3B0VmFsaWRhdG9yID0gZmFsc2U7XHJcbiAgICBpZih0aGlzLm90cEZvcm0uaW52YWxpZCl7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMub3RwRm9ybSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBhdXRoIDogYW55ID0ge307XHJcbiAgICBhdXRoLnVzZXJJZCA9IHRoaXMudXNlci51c2VybmFtZTtcclxuICAgIGF1dGgucGFzc3dvcmQgPSB0aGlzLnVzZXIucGFzc3dvcmQ7XHJcbiAgICBhdXRoLm90cCA9IHRoaXMub3RwLnZhbHVlO1xyXG4gICAgYXV0aC5pc3RydXN0ZWREZXZpY2UgPSB0aGlzLmNoZWNrZWQudmFsdWUgKyBcIlwiO1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xyXG4gICAgdGhpcy5lcnJvckR0bHMgPSBudWxsO1xyXG4gICAgdGhpcy51dGlsXHJcbiAgICAgICAgLnNob3dMb2FkZXIoKVxyXG4gICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxzLmxvZ2luQW5kQ2hlY2tGb3JNRkEoYXV0aClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVzZXJNb2RlbCA6IFVzZXJNb2RlbCA9IHJlcztcclxuICAgICAgICAgICAgICAgIHRoaXMubHMuc2V0VXNlcih1c2VyTW9kZWwpLnRoZW4oXHJcbiAgICAgICAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xyXG4gICAgICAgICAgICAgICAgaWYoZXJyLm1zZ1swXS5pbmNsdWRlcyhcIkNsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGV4Y2VlZGVkXCIpKXtcclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJSZWRpcmVjdGluZyB0byBpZGVudGl0eSBwcm9vZmluZy5cIik7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoJ0NsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGhhcyBleGNlZWRlZCcpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgfVxyXG5cclxuICBzZW5kT3RwKGV2ZW50KXtcclxuICAgIHRoaXMucmVzZW5kQXV0aENvZGUoZXZlbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcmVzZW5kQXV0aENvZGUob3RwVHlwZSA6IHN0cmluZyl7XHJcbiAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgIHRoaXMuZXJyb3JEdGxzID0gbnVsbDtcclxuICAgIG90cFR5cGUgPSBcIlRFWFwiOyAvL1RoaXMgaGFzIHRvIGJlIGNoYW5nZWQgaW4gdGhlIGJhY2tlbmQgb25jZSBtZmFQcmVmZXJlbmNlIGlzIHNhdmVkXHJcbiAgICB0aGlzLmxzLmdlbmVyYXRlT3RwKHRoaXMudXNlci51c2VybmFtZSwgb3RwVHlwZSkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9ICdBY2Nlc3MgY29kZSBzZW50IHN1Y2Nlc3NmdWxseS4nO1xyXG4gICAgICAgIHRoaXMuY291bnRlci5uZXh0KDYwKTtcclxuICAgICAgICB0aGlzLnNldENvdW50ZG93bigpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lcnJvckR0bHMgPSBlcnIubXNnO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIm90cEZvcm1cIiAjb3RwRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gIDxoNCBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiBjbGFzcz1cImhlYWRpbmdcIj57eyBoZWFkaW5nID8gaGVhZGluZyA6ICdDb25maXJtIGFjY2VzcyB0byB5b3VyIGFjY291bnQnIHwgdHJhbnNsYXRlfX08L2g0PlxyXG5cclxuICA8ZGl2IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxMHB4O1wiICpuZ0lmPVwiIW9wdGlvbi52YWx1ZSAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcCBwLWZvcm1ncmlkIHAtZ3JpZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJvdHBUeXBlXCI+e3snSG93IHdvdWxkIHlvdSBsaWtlIHVzIHRvIHNlbmQgeW91ciBhY2Nlc3MgY29kZT8nIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJvcHRpb25zXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJvcHRpb25cIiAob25DaGFuZ2UpPVwic2VuZE90cCgkZXZlbnQpXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiAqbmdJZj1cIm9wdGlvbi52YWx1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICdlbWFpbCcgJiYgIXJldHVybmluZ1VzZXJcIj5BbiBhY2Nlc3MgY29kZSBoYXMgYmVlbiBzZW50IHRvIHlvdXIgZW1haWwgYWRkcmVzczombmJzcDsgPGI+e3t1c2VyPy5lbWFpbElkIHwgbWFza0VtYWlsfX08L2I+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICd0ZXh0JyAmJiAhcmV0dXJuaW5nVXNlclwiPkFuIGFjY2VzcyBjb2RlIGhhcyBiZWVuIHNlbnQgdG8geW91ciBjZWxscGhvbmU6Jm5ic3A7IDxiPnt7dXNlcj8uY2VsbHBob25lTm8gfCBtYXNrRW1haWx9fTwvYj48L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJyZXR1cm5pbmdVc2VyXCI+QW4gYWNjZXNzIGNvZGUgaGFzIGJlZW4gc2VudCB0byB5b3VyIGNlbGxwaG9uZSA6Jm5ic3A7IDxiPnt7dXNlcj8uY2VsbHBob25lTm8gfCBtYXNrRW1haWx9fTwvYj48L3NwYW4+XHJcbiAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgPGlvbi1sYWJlbCAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnICYmICFyZXR1cm5pbmdVc2VyXCI+XHJcbiAgICAgICAgQ2hlY2sgeW91ciBqdW5rIGZvbGRlciBpZiB5b3UgZG9uJ3Qgc2VlIGl0IGluIHlvdXIgaW5ib3guXHJcbiAgICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnICYmICFyZXR1cm5pbmdVc2VyXCI+PGJyLz48YnIvPjwvc3Bhbj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXV0aENvZGVcIiAqbmdJZj1cIiFyZXR1cm5pbmdVc2VyXCI+RW50ZXIgY29kZTwvbGFiZWw+PGJyLz5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXV0aENvZGVcIiAqbmdJZj1cInJldHVybmluZ1VzZXJcIj5FbnRlciBWYWxpZGF0aW9uIENvZGUgUmVjZWl2ZWQgOjwvbGFiZWw+PGJyLz5cclxuICAgICAgICA8cC1pbnB1dE51bWJlciAoY2xpY2spPVwiaGlkZU9wdFZhbGlkYXRvcj1mYWxzZVwiIChrZXl1cCk9XCJoaWRlT3B0VmFsaWRhdG9yPWZhbHNlXCIgI290cEZpZWxkIGZvcm1Db250cm9sTmFtZT1cIm90cFwiIG1heGxlbmd0aD1cIjZcIiBtaW5sZW5ndGg9XCI2XCIgbW9kZT1cImRlY2ltYWxcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBzaXplPVwiNlwiIFtpbnB1dElkXT1cIidhdXRoQ29kZSdcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAoa2V5dXAuZW50ZXIpPVwiKCFyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWUpID8gc2lnbkluKCkgOiBzdWJtaXQoKVwiPlxyXG4gICAgICAgIDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8YXBwLWVycm9yICpuZ0lmPVwiIWhpZGVPcHRWYWxpZGF0b3JcIiBbZmllbGRdPSdvdHAnIFtmb3JtXT1cIm90cEZvcm1cIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICByZXF1aXJlZDogJ0FjY2VzcyBjb2RlIGlzIHJlcXVpcmVkLicsXHJcbiAgICAgICAgICBtaW46ICdBY2Nlc3MgY29kZSBzaG91bGQgaGF2ZSA2IG51bWJlcnMuJyxcclxuICAgICAgICAgIG1heDogJ0FjY2VzcyBjb2RlIHNob3VsZCBoYXZlIDYgbnVtYmVycy4nXHJcbiAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAgICA8aW9uLWNoZWNrYm94IHNsb3Q9XCJzdGFydFwiIGZvcm1Db250cm9sTmFtZT1cImNoZWNrZWRcIj48L2lvbi1jaGVja2JveD5cclxuICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiaW9uLXRleHQtd3JhcFwiPnt7J0kgdHJ1c3QgdGhpcyBicm93c2VyLicgfCB0cmFuc2xhdGV9fTwvaW9uLWxhYmVsPlxyXG4gICAgICA8L2lvbi1pdGVtPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJlcnJvckR0bHNcIj57e2Vycm9yRHRsc319PGJyIC8+PGJyIC8+PC9tYXQtZXJyb3I+XHJcbiAgICA8aW9uLWxhYmVsICpuZ0lmPVwic3VjY2Vzc0R0bHNcIiBzdHlsZT1cImNvbG9yOiB2YXIoLS1pb24tY29sb3ItZ3JlZW4pXCI+e3tzdWNjZXNzRHRsc319PGJyLz48YnIgLz48L2lvbi1sYWJlbD5cclxuICAgIDxpb24tbGFiZWwgKm5nSWY9XCIhYmxvY2tlZFwiPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXIuZ2V0VmFsdWUoKSAhPSAxICYmICFyZXR1cm5pbmdVc2VyXCI+XHJcbiAgICAgICAgSGF2ZW4ndCByZWNlaXZlZCB0aGUgY29kZT8gUmVzZW5kIG9wdGlvbiBhdmFpbGFibGUgaW4gPGI+e3tjb3VudGVyLmdldFZhbHVlKCl9fSBzZWNvbmQocyk8L2I+LlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpID09IDEgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleXVwLmVudGVyKT1cInJlc2VuZEF1dGhDb2RlKG9wdGlvbi52YWx1ZSlcIiAoY2xpY2spPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIGNsYXNzPVwibGlua1wiPkdldCBuZXcgY29kZTwvYT5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImNvdW50ZXIuZ2V0VmFsdWUoKSA9PSAxICYmIHJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICA8YSB0YWJpbmRleD1cIjBcIiAoa2V5dXAuZW50ZXIpPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIChjbGljayk9XCJyZXNlbmRBdXRoQ29kZShvcHRpb24udmFsdWUpXCIgY2xhc3M9XCJsaW5rXCI+UmVzZW5kIFZlcmlmaWNhdGlvbiBDb2RlPC9hPlxyXG4gICAgIDwvc3Bhbj5cclxuICAgIDwvaW9uLWxhYmVsPlxyXG4gICAgPHAgKm5nSWY9XCIhcmV0dXJuaW5nVXNlclwiPjxhIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwibGlua1wiIChrZXl1cC5lbnRlcik9XCJzaG93SGVscCA9ICFzaG93SGVscDsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiAoY2xpY2spPVwic2hvd0hlbHAgPSAhc2hvd0hlbHA7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCI+Q2FuJ3QgZ2V0IHRvIHlvdXIge3tvcHRpb24udmFsdWUgPT0gJ3RleHQnID8gJ2NlbGxwaG9uZScgOiAnZW1haWwnfX0/PC9hPjwvcD5cclxuICAgIDwhLS0gPHAgKm5nSWY9XCJyZXR1cm5pbmdVc2VyXCI+PGEgdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJsaW5rXCIgKGtleXVwLmVudGVyKT1cImNsb3NlKClcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlVuYWJsZSB0byB2ZXJpZnk8L2E+PC9wPiAtLT5cclxuICAgIDxwICpuZ0lmPVwic2hvd0hlbHAgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgICAgWW91ciBjb2RlIGlzIGdvb2QgZm9yIDE1IG1pbnV0ZXMuIFlvdSBjYW4gdHJ5IGFnYWluIGxhdGVyLjxici8+XHJcbiAgICAgIG9yPGJyLz5cclxuICAgICAgSWYgeW91ciB7e29wdGlvbi52YWx1ZSA9PSAndGV4dCcgPyAnY2VsbHBob25lIG51bWJlcicgOiAnZW1haWwgYWRkcmVzcyd9fSBoYXMgY2hhbmdlZCBjYWxsIEtET0wgYXQgNzg1LTU3NS0xNDYwLCBNb25kYXkgdGhyb3VnaCBGcmlkYXkgZnJvbSA4IGFtIHRvIDQ6MzAgcG0uXHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxwLWZvb3Rlcj5cclxuICAgIDxkaXYgKm5nSWY9XCJibG9ja2VkXCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJkb3RzXCI+PC9pb24tc3Bpbm5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0IGlvbi1wYWRkaW5nLWJvdHRvbVwiICpuZ0lmPVwiIWJsb2NrZWQgJiYgIWhpZGVCdXR0b25zXCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiB0eXBlPVwicmVzZXRcIiAoa2V5dXAuZW50ZXIpPVwiY2xvc2UoZmFsc2UpXCIgKGNsaWNrKT1cImNsb3NlKGZhbHNlKVwiIGNvbG9yPVwic3VjY2Vzc1wiIGZpbGw9XCJvdXRsaW5lXCI+XHJcbiAgICAgICAgQ2xvc2VcclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8aW9uLWJ1dHRvbiAgdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiAoa2V5dXAuZW50ZXIpPVwic2lnbkluKClcIiAoY2xpY2spPVwic2lnbkluKClcIiBjb2xvcj1cInN1Y2Nlc3NcIiAqbmdJZj1cIiFyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICBTdWJtaXRcclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIChrZXl1cC5lbnRlcik9XCJzdWJtaXQoKVwiIChjbGljayk9XCJzdWJtaXQoKVwiIGNvbG9yPVwic3VjY2Vzc1wiICpuZ0lmPVwicmVxdWVzdENvZGUgJiYgb3B0aW9uLnZhbHVlXCI+XHJcbiAgICAgICAgU3VibWl0XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvcC1mb290ZXI+XHJcbjwvZm9ybT4iXX0=
572
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MfaComponent, { className: "MfaComponent", filePath: "lib\\components\\mfa\\mfa.component.ts", lineNumber: 21 }); })();
573
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWZhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9tZmEvbWZhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRixPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEcEMsOEJBQXlFLGFBQUEsYUFBQSxlQUFBO0lBRzlDLFlBQTRCOztJQUFBLGlCQUFRO0lBQ3pELDBDQUErSDtJQUE3Qiw2S0FBWSxlQUFBLHNCQUFlLENBQUEsSUFBQztJQUFDLGlCQUFpQixFQUFBLEVBQUEsRUFBQTs7O0lBRDNILGVBQTRCO0lBQTVCLDBEQUE0QjtJQUNqQyxlQUFtQjtJQUFuQix3Q0FBbUIsOEJBQUE7OztJQVFuQyw0QkFBd0Q7SUFBQSxZQUEyQzs7SUFBQSx5QkFBRztJQUFBLFlBQTZCOztJQUFBLGlCQUFJLEVBQUE7OztJQUEvRSxlQUEyQztJQUEzQyxrRkFBMkM7SUFBRyxlQUE2QjtJQUE3Qiw0RkFBNkI7OztJQUNuSSw0QkFBdUQ7SUFBQSxZQUF5Qzs7SUFBQSx5QkFBRztJQUFBLFlBQWlDOztJQUFBLGlCQUFJLEVBQUE7OztJQUFqRixlQUF5QztJQUF6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LENBQUMsR0FBRyxDQUFDO1FBQzNCLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs2RUFwUFUsWUFBWTtvRUFBWixZQUFZOzs7Ozs7WUNwQnpCLGtDQUF1RCxZQUFBO1lBQ0wsWUFBc0M7WUFBQSxpQkFBSztZQUUzRiw2REFPTSxrREFBQTtZQW9ETixnQ0FBVTtZQUNSLDZEQUVNLGdEQUFBO1lBWVIsaUJBQVcsRUFBQTs7WUE3RVAsdUNBQXFCO1lBQ3VCLGVBQXNDO1lBQXRDLG1FQUFzQztZQUVwRCxlQUFxQztZQUFyQyw4REFBcUM7WUFTckMsZUFBa0I7WUFBbEIsdUNBQWtCO1lBbUQ1QyxlQUFhO1lBQWIsa0NBQWE7WUFHNkIsZUFBOEI7WUFBOUIsdURBQThCOzs7aUZEOUNyRSxZQUFZO2NBTHhCLFNBQVM7MkJBQ0UsU0FBUzttUEFNSSxRQUFRO2tCQUE5QixTQUFTO21CQUFDLFVBQVU7WUFhckIsSUFBSTtrQkFESCxLQUFLO1lBSUcsT0FBTztrQkFBZixLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBS04sSUFBSTtrQkFESCxLQUFLO1lBSU4sUUFBUTtrQkFEUCxLQUFLO1lBSU4sV0FBVztrQkFEVixLQUFLO1lBSU4sYUFBYTtrQkFEWixLQUFLO1lBR04sT0FBTztrQkFETixLQUFLO1lBR0ksS0FBSztrQkFBZCxNQUFNO1lBRUcsT0FBTztrQkFBaEIsTUFBTTtZQUVHLEtBQUs7a0JBQWQsTUFBTTs7a0ZBM0NJLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpbnRlcnZhbCwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFcnJvck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0Vycm9yTW9kZWwnO1xyXG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xyXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcclxuaW1wb3J0IHsgQ2FwdGNoYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXB0Y2hhL2NhcHRjaGEuc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VjdXJpdHktc2VydmljZS9zZWN1cml0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWZhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWZhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZmEuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWZhQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJvdHBGaWVsZFwiKSBvdHBGaWVsZDtcclxuICBwcml2YXRlIFJFU0VORF9DT0RFX0FDVElPTl9OQU1FID0gXCJNRkFfUkVTRU5EX0NPREVcIjtcclxuICBcclxuICBwdWJsaWMgc3VjY2Vzc0R0bHM7XHJcblxyXG4gIHB1YmxpYyBibG9ja2VkOiBib29sZWFuO1xyXG5cclxuICBwdWJsaWMgaXNDaGVja2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93SGVscDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgaGlkZU9wdFZhbGlkYXRvciA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICB1c2VyIDogVXNlck1vZGVsO1xyXG5cclxuICAvL0lmIHNwZWNpZmllZCwgaXQgd2lsbCBjaGFuZ2UgdGhlIGRlZmF1bHQgaGVhZGluZyBvbiB0aGUgY29tcG9uZW50IHdpdGggdGhlIG9uY2Ugc3BlY2lmaWVkIGluIHRoaXMgZmllbGQuXHJcbiAgQElucHV0KCkgaGVhZGluZyA6IHN0cmluZztcclxuXHJcbiAgLy9SZXF1ZXN0IG5ldyBhdXRoY29kZSB3aGVuIGNvbXBvbmVudHMgbG9hZC5cclxuICBASW5wdXQoKVxyXG4gIHJlcXVlc3RDb2RlIDogYm9vbGVhbjtcclxuXHJcbiAgLy9QYXNzIHRoaXMgZGF0YSBhbG9uZyB3aXRoIG91dHB1dCBzbyB0aGF0IGNhbGxpbmcgY29tcG9uZW50IGNhbiB0YWtlIGNhcmUgb2YgaXQuXHJcbiAgQElucHV0KClcclxuICBkYXRhIDogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1mYUVycm9yIDogRXJyb3JNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBoaWRlQnV0dG9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICByZXR1cm5pbmdVc2VyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlzcGxheSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgY2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBvdHBGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgcHVibGljIGVycm9yRHRscztcclxuXHJcbiAgcHVibGljIHRpbWUgPSA2MFxyXG4gIHB1YmxpYyB0aW1lckludGVydmFsID0gaW50ZXJ2YWwoMTAwMCk7IC8vMXNcclxuICBwdWJsaWMgdGltZXIgPSB0aW1lcig2MDAwMCk7IC8vOTBzXHJcbiAgcHVibGljIGNvdW50RG93biA9IHRoaXMudGltZXJJbnRlcnZhbC5waXBlKHRha2UodGhpcy50aW1lKSk7XHJcbiAgcHVibGljIGNvdW50ZXIgOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XHJcbiAgY291bnRlclN1YnNjcmlwdGlvbiA6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgcHVibGljIG9wdGlvbnMgOiBDb21ib09wdGlvbltdID0gW1xyXG4gICAge3ZhbHVlIDogJ3RleHQnLCB0ZXh0IDogJ3RleHQnfSxcclxuICAgIHt2YWx1ZSA6ICdlbWFpbCcsIHRleHQgOiAnZW1haWwnfVxyXG4gIF07XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbHM6IExvZ2luU2VydmljZSwgcHVibGljIGZiIDogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBuYXYgOiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGNzOiBDYXB0Y2hhU2VydmljZSxcclxuICAgICAgICAgICAgICAgcHJpdmF0ZSBzczogU2VjdXJpdHlTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgICAgICAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkgeyBcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZihjaGFuZ2VzLm1mYUVycm9yPy5jdXJyZW50VmFsdWUpe1xyXG4gICAgICB0aGlzLmVycm9yRHRscyA9IHRoaXMubWZhRXJyb3IubXNnO1xyXG4gICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzLmRpc3BsYXkuY3VycmVudFZhbHVlKSB7ICAvLyB3aW5kb3cgb3BlblxyXG4gICAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uKXtcclxuICAgICAgdGhpcy5jb3VudGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSk7XHJcbiAgICB0aGlzLmluaXRpbGl6ZUZvcm0oKTtcclxuICAgIC8vdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgIGlmKHRoaXMucmVxdWVzdENvZGUpe1xyXG4gICAgICBsZXQgbWZhT3B0aW9ucyA9IHRoaXMudXNlcj8uc3VwcG9ydGVkTWZhVHlwZXM/LnNwbGl0KFwiLFwiKSB8fCBbJ2VtYWlsJ107XHJcbiAgICAgIGlmKG1mYU9wdGlvbnMubGVuZ3RoID4gMSl7XHJcbiAgICAgICAgLy9hbGxvdyB1c2VyIHRvIGNob29zZSBvdHAgb3B0aW9uXHJcbiAgICAgIH0gZWxzZXtcclxuICAgICAgICB0aGlzLnJlcXVlc3ROZXdBdXRoQ29kZSgnZW1haWwnKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoXyA9PiB7XHJcbiAgICAgIHRoaXMub3RwRmllbGQuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfSwgMTAwKVxyXG4gIH1cclxuXHJcbiAgcmVxdWVzdE5ld0F1dGhDb2RlKG90cFR5cGUgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMubHMuZ2V0TmV3QXV0aENvZGUob3RwVHlwZSlcclxuICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBcIkFjY2VzcyBjb2RlIHNlbnQgc3VjY2Vzc2Z1bGx5LlwiO1xyXG4gICAgICAgICAgdGhpcy5jb3VudGVyLm5leHQoNjApO1xyXG4gICAgICAgICAgdGhpcy5zZXRDb3VudGRvd24oKTtcclxuICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdWNjZXNzRHRscyA9IG51bGw7XHJcbiAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZXJyb3JEdGxzID0gZXJyLm1zZztcclxuICAgICAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2V0Q291bnRkb3duKCl7XHJcbiAgICBpZih0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24pe1xyXG4gICAgICB0aGlzLmNvdW50ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY291bnRlclN1YnNjcmlwdGlvbiA9IHRoaXMuY291bnREb3duLnN1YnNjcmliZSh2YWwgPT57XHJcbiAgICAgIGxldCB2YWx1ZSA9IHRoaXMudGltZSAtIHZhbDtcclxuICAgICAgdGhpcy5jb3VudGVyLm5leHQodmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbml0aWxpemVGb3JtKCl7XHJcbiAgICBsZXQgbWZhT3B0aW9ucyA9IHRoaXMudXNlcj8uc3VwcG9ydGVkTWZhVHlwZXM/LnNwbGl0KFwiLFwiKSB8fCBbJ2VtYWlsJ107XHJcbiAgICB0aGlzLm90cEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgJ290cCcgOiBbbnVsbCAsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgIFZhbGlkYXRvcnMubWluKDEwMF8wMDApLFZhbGlkYXRvcnMubWF4KDk5OV85OTkpXSldLFxyXG4gICAgICAnY2hlY2tlZCcgOiBbZmFsc2VdLFxyXG4gICAgICAnb3B0aW9uJyA6IFsgbWZhT3B0aW9ucyAmJiBtZmFPcHRpb25zLmxlbmd0aCA+IDEgPyBudWxsIDogbWZhT3B0aW9uc1swXV1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90cCgpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ290cCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9wdGlvbigpe1xyXG4gICAgcmV0dXJuIHRoaXMub3RwRm9ybS5nZXQoJ29wdGlvbicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNoZWNrZWQoKXtcclxuICAgIHJldHVybiB0aGlzLm90cEZvcm0uZ2V0KCdjaGVja2VkJyk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSh0cmlnZ2VyRXhpdEFQSSA9IHRydWUpe1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbGVhci5lbWl0KHRyaWdnZXJFeGl0QVBJKSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKXtcclxuICAgIHRoaXMuaGlkZU9wdFZhbGlkYXRvciA9IGZhbHNlO1xyXG4gICAgaWYodGhpcy5vdHBGb3JtLmludmFsaWQpe1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLm90cEZvcm0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmxzLnNldEF1dGhDb2RlKHRoaXMub3RwLnZhbHVlKTtcclxuICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuZGF0YSk7XHJcbiAgfVxyXG4gIFxyXG4gIHNpZ25Jbigpe1xyXG4gICAgdGhpcy5oaWRlT3B0VmFsaWRhdG9yID0gZmFsc2U7XHJcbiAgICBpZih0aGlzLm90cEZvcm0uaW52YWxpZCl7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMub3RwRm9ybSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBhdXRoIDogYW55ID0ge307XHJcbiAgICBhdXRoLnVzZXJJZCA9IHRoaXMudXNlci51c2VybmFtZTtcclxuICAgIGF1dGgucGFzc3dvcmQgPSB0aGlzLnVzZXIucGFzc3dvcmQ7XHJcbiAgICBhdXRoLm90cCA9IHRoaXMub3RwLnZhbHVlO1xyXG4gICAgYXV0aC5pc3RydXN0ZWREZXZpY2UgPSB0aGlzLmNoZWNrZWQudmFsdWUgKyBcIlwiO1xyXG4gICAgdGhpcy5ibG9ja2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xyXG4gICAgdGhpcy5lcnJvckR0bHMgPSBudWxsO1xyXG4gICAgdGhpcy51dGlsXHJcbiAgICAgICAgLnNob3dMb2FkZXIoKVxyXG4gICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxzLmxvZ2luQW5kQ2hlY2tGb3JNRkEoYXV0aClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICByZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHVzZXJNb2RlbCA6IFVzZXJNb2RlbCA9IHJlcztcclxuICAgICAgICAgICAgICAgIHRoaXMubHMuc2V0VXNlcih1c2VyTW9kZWwpLnRoZW4oXHJcbiAgICAgICAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xyXG4gICAgICAgICAgICAgICAgaWYoZXJyLm1zZ1swXS5pbmNsdWRlcyhcIkNsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGV4Y2VlZGVkXCIpKXtcclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJSZWRpcmVjdGluZyB0byBpZGVudGl0eSBwcm9vZmluZy5cIik7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoJ0NsYWltYW50IEFjY291bnQgaXMgTG9ja2VkIC0gT1RQIGF0dGVtcHRzIGhhcyBleGNlZWRlZCcpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgfVxyXG5cclxuICBzZW5kT3RwKGV2ZW50KXtcclxuICAgIHRoaXMucmVzZW5kQXV0aENvZGUoZXZlbnQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEFjY2Vzc1ZlcmlmeSgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdtZmEuYWNjZXNzLnZlcmlmeS5zaXgnKTtcclxuICB9XHJcbiAgZ2V0IEFjY2Vzc1JlcXVpcmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ21mYS5hY2Nlc3MucmVxdWlyZWQnKTtcclxuICB9XHJcblxyXG4gIGdldCBBY2Nlc3NDb25maXJtKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ21mYS5hY2Nlc3MuY29uZmlybScpO1xyXG4gIH1cclxuICByZXNlbmRBdXRoQ29kZShvdHBUeXBlIDogc3RyaW5nKXtcclxuICAgIHRoaXMuc3VjY2Vzc0R0bHMgPSBudWxsO1xyXG4gICAgdGhpcy5lcnJvckR0bHMgPSBudWxsO1xyXG4gICAgb3RwVHlwZSA9IFwiVEVYXCI7IC8vVGhpcyBoYXMgdG8gYmUgY2hhbmdlZCBpbiB0aGUgYmFja2VuZCBvbmNlIG1mYVByZWZlcmVuY2UgaXMgc2F2ZWRcclxuICAgIHRoaXMubHMuZ2VuZXJhdGVPdHAodGhpcy51c2VyLnVzZXJuYW1lLCBvdHBUeXBlKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gJ0FjY2VzcyBjb2RlIHNlbnQgc3VjY2Vzc2Z1bGx5Lic7XHJcbiAgICAgICAgdGhpcy5jb3VudGVyLm5leHQoNjApO1xyXG4gICAgICAgIHRoaXMuc2V0Q291bnRkb3duKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLnN1Y2Nlc3NEdGxzID0gbnVsbDtcclxuICAgICAgICB0aGlzLmJsb2NrZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVycm9yRHRscyA9IGVyci5tc2c7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwib3RwRm9ybVwiICNvdHBGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgPGg0IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxMHB4O1wiIGNsYXNzPVwiaGVhZGluZ1wiPnt7IGhlYWRpbmcgPyBoZWFkaW5nIDogQWNjZXNzQ29uZmlybX19PC9oND5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiAqbmdJZj1cIiFvcHRpb24udmFsdWUgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy10b3AgcC1mb3JtZ3JpZCBwLWdyaWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwib3RwVHlwZVwiPnt7J21mYS5ob3cuc2VuZCd8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJvcHRpb25zXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJvcHRpb25cIiAob25DaGFuZ2UpPVwic2VuZE90cCgkZXZlbnQpXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTBweDtcIiAqbmdJZj1cIm9wdGlvbi52YWx1ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICdlbWFpbCcgJiYgIXJldHVybmluZ1VzZXJcIj57eydtZmEuY29kZS5zZW50LmVtYWlsJ3x0cmFuc2xhdGV9fTombmJzcDsgPGI+e3t1c2VyPy5lbWFpbElkIHwgbWFza0VtYWlsfX08L2I+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnZhbHVlID09ICd0ZXh0JyAmJiAhcmV0dXJuaW5nVXNlclwiPnt7J21mYS5jb2RlLnNlbnQuY2VsbCd8dHJhbnNsYXRlfX0mbmJzcDsgPGI+e3t1c2VyPy5jZWxscGhvbmVObyB8IG1hc2tFbWFpbH19PC9iPjwvc3Bhbj5cclxuICAgICAgICA8c3BhbiAqbmdJZj1cInJldHVybmluZ1VzZXJcIj57eydtZmEuY29kZS5zZW50LmNlbGwnfHRyYW5zbGF0ZX19Jm5ic3A7IDxiPnt7dXNlcj8uY2VsbHBob25lTm8gfCBtYXNrRW1haWx9fTwvYj48L3NwYW4+XHJcbiAgICAgIDwvaW9uLWxhYmVsPjxici8+PGJyLz5cclxuICAgICAgPGlvbi1sYWJlbCAqbmdJZj1cIm9wdGlvbi52YWx1ZSA9PSAnZW1haWwnICYmICFyZXR1cm5pbmdVc2VyXCI+XHJcbiAgICAgICAge3snbWZhLmNvZGUuc2VudC5qdW5rJ3x0cmFuc2xhdGV9fVxyXG4gICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJvcHRpb24udmFsdWUgPT0gJ2VtYWlsJyAmJiAhcmV0dXJuaW5nVXNlclwiPjxici8+PGJyLz48L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBpb24tdGV4dC1sZWZ0XCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImF1dGhDb2RlXCIgKm5nSWY9XCIhcmV0dXJuaW5nVXNlclwiPnt7J21mYS5lbnRlci5jb2RlJ3x0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXV0aENvZGVcIiAqbmdJZj1cInJldHVybmluZ1VzZXJcIj57eydtZmEuZW50ZXIuY29kZS5yZWNlaXZlZCd8dHJhbnNsYXRlfX08L2xhYmVsPjxici8+XHJcbiAgICAgICAgPHAtaW5wdXROdW1iZXIgKGNsaWNrKT1cImhpZGVPcHRWYWxpZGF0b3I9ZmFsc2VcIiAoa2V5dXApPVwiaGlkZU9wdFZhbGlkYXRvcj1mYWxzZVwiICNvdHBGaWVsZCBmb3JtQ29udHJvbE5hbWU9XCJvdHBcIiBtYXhsZW5ndGg9XCI2XCIgbWlubGVuZ3RoPVwiNlwiIG1vZGU9XCJkZWNpbWFsXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgc2l6ZT1cIjZcIiBbaW5wdXRJZF09XCInYXV0aENvZGUnXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKGtleXVwLmVudGVyKT1cIighcmVxdWVzdENvZGUgJiYgb3B0aW9uLnZhbHVlKSA/IHNpZ25JbigpIDogc3VibWl0KClcIj5cclxuICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgPGFwcC1lcnJvciAqbmdJZj1cIiFoaWRlT3B0VmFsaWRhdG9yXCIgW2ZpZWxkXT0nb3RwJyBbZm9ybV09XCJvdHBGb3JtXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgcmVxdWlyZWQ6IEFjY2Vzc1JlcXVpcmVkLFxyXG4gICAgICAgICAgbWluOiBBY2Nlc3NWZXJpZnksXHJcbiAgICAgICAgICBtYXg6IEFjY2Vzc1ZlcmlmeVxyXG4gICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAgICAgICAgPGlvbi1jaGVja2JveCBzbG90PVwic3RhcnRcIiBmb3JtQ29udHJvbE5hbWU9XCJjaGVja2VkXCI+PC9pb24tY2hlY2tib3g+XHJcbiAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIj57eydtZmEuYnJvd3Nlci50cnVzdCd8dHJhbnNsYXRlfX08L2lvbi1sYWJlbD5cclxuICAgICAgPC9pb24taXRlbT5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZXJyb3JEdGxzXCI+e3tlcnJvckR0bHN9fTxiciAvPjxiciAvPjwvbWF0LWVycm9yPlxyXG4gICAgPGlvbi1sYWJlbCAqbmdJZj1cInN1Y2Nlc3NEdGxzXCIgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZWVuKVwiPnt7c3VjY2Vzc0R0bHN9fTxici8+PGJyIC8+PC9pb24tbGFiZWw+XHJcbiAgICA8aW9uLWxhYmVsICpuZ0lmPVwiIWJsb2NrZWRcIj5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJjb3VudGVyLmdldFZhbHVlKCkgIT0gMSAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICAgIHt7J21mYS5jb2RlLm5vdC5yZWNlaXZlZCd8dHJhbnNsYXRlfX0gPGI+e3tjb3VudGVyLmdldFZhbHVlKCl9fSBzZWNvbmQocyk8L2I+LlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpID09IDEgJiYgIXJldHVybmluZ1VzZXJcIj5cclxuICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgKGtleXVwLmVudGVyKT1cInJlc2VuZEF1dGhDb2RlKG9wdGlvbi52YWx1ZSlcIiAoY2xpY2spPVwicmVzZW5kQXV0aENvZGUob3B0aW9uLnZhbHVlKVwiIGNsYXNzPVwibGlua1wiPnt7J21mYS5nZXQubmV3LmNvZGUnfHRyYW5zbGF0ZX19PC9hPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiY291bnRlci5nZXRWYWx1ZSgpID09IDEgJiYgcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICAgIDxhIHRhYmluZGV4PVwiMFwiIChrZXl1cC5lbnRlcik9XCJyZXNlbmRBdXRoQ29kZShvcHRpb24udmFsdWUpXCIgKGNsaWNrKT1cInJlc2VuZEF1dGhDb2RlKG9wdGlvbi52YWx1ZSlcIiBjbGFzcz1cImxpbmtcIj4ge3snbWZhLnJlc2VuZC52ZXJpZmljYXRpb24uY29kZSd8dHJhbnNsYXRlfX08L2E+XHJcbiAgICAgPC9zcGFuPlxyXG4gICAgPC9pb24tbGFiZWw+XHJcbiAgICA8cCAqbmdJZj1cIiFyZXR1cm5pbmdVc2VyXCI+PGEgdGFiaW5kZXg9XCIwXCIgY2xhc3M9XCJsaW5rXCIgKGtleXVwLmVudGVyKT1cInNob3dIZWxwID0gIXNob3dIZWxwOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChjbGljayk9XCJzaG93SGVscCA9ICFzaG93SGVscDsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5DYW4ndCBnZXQgdG8geW91ciB7e29wdGlvbi52YWx1ZSA9PSAndGV4dCcgPyAnY2VsbHBob25lJyA6ICdlbWFpbCd9fT88L2E+PC9wPlxyXG4gICAgPCEtLSA8cCAqbmdJZj1cInJldHVybmluZ1VzZXJcIj48YSB0YWJpbmRleD1cIjBcIiBjbGFzcz1cImxpbmtcIiAoa2V5dXAuZW50ZXIpPVwiY2xvc2UoKVwiIChjbGljayk9XCJjbG9zZSgpXCI+VW5hYmxlIHRvIHZlcmlmeTwvYT48L3A+IC0tPlxyXG4gICAgPHAgKm5nSWY9XCJzaG93SGVscCAmJiAhcmV0dXJuaW5nVXNlclwiPlxyXG4gICAgICB7eydtZmEuZ29vZC5mb3IudGltZSd8dHJhbnNsYXRlfX08YnIvPlxyXG4gICAgICBvcjxici8+XHJcbiAgICAgIElmIHlvdXIge3tvcHRpb24udmFsdWUgPT0gJ3RleHQnID8gJ2NlbGxwaG9uZSBudW1iZXInIDogJ2VtYWlsIGFkZHJlc3MnfX0gaGFzIGNoYW5nZWQgY2FsbCBLRE9MIGF0IDc4NS01NzUtMTQ2MCwgTW9uZGF5IHRocm91Z2ggRnJpZGF5IGZyb20gOCBhbSB0byA0OjMwIHBtLlxyXG4gICAgPC9wPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8cC1mb290ZXI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiYmxvY2tlZFwiIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiZG90c1wiPjwvaW9uLXNwaW5uZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1yaWdodCBpb24tcGFkZGluZy1ib3R0b21cIiAqbmdJZj1cIiFibG9ja2VkICYmICFoaWRlQnV0dG9uc1wiPlxyXG4gICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInJlc2V0XCIgKGtleXVwLmVudGVyKT1cImNsb3NlKGZhbHNlKVwiIChjbGljayk9XCJjbG9zZShmYWxzZSlcIiBjb2xvcj1cInN1Y2Nlc3NcIiBmaWxsPVwib3V0bGluZVwiPlxyXG4gICAgICAgIHt7J2NvbW1vbi5jbG9zZSd8dHJhbnNsYXRlfX1cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICA8aW9uLWJ1dHRvbiAgdGFiaW5kZXg9XCIwXCIgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiAoa2V5dXAuZW50ZXIpPVwic2lnbkluKClcIiAoY2xpY2spPVwic2lnbkluKClcIiBjb2xvcj1cInN1Y2Nlc3NcIiAqbmdJZj1cIiFyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICB7eydjb21tb24uc3VibWl0J3x0cmFuc2xhdGV9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDxpb24tYnV0dG9uIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgKGtleXVwLmVudGVyKT1cInN1Ym1pdCgpXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgY29sb3I9XCJzdWNjZXNzXCIgKm5nSWY9XCJyZXF1ZXN0Q29kZSAmJiBvcHRpb24udmFsdWVcIj5cclxuICAgICAgICB7eydjb21tb24uc3VibWl0J3x0cmFuc2xhdGV9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L3AtZm9vdGVyPlxyXG48L2Zvcm0+Il19