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

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 (153) hide show
  1. package/README.md +46 -46
  2. package/esm2022/lib/annimations/app-animations.mjs +1 -1
  3. package/esm2022/lib/components/add-employer/add-employer.component.mjs +755 -763
  4. package/esm2022/lib/components/add-participant/add-participant.component.mjs +24 -29
  5. package/esm2022/lib/components/add-payment/add-payment.component.mjs +31 -45
  6. package/esm2022/lib/components/address/address.component.mjs +46 -97
  7. package/esm2022/lib/components/bank-details/bank-details.component.mjs +75 -139
  8. package/esm2022/lib/components/captcha/captcha.component.mjs +6 -6
  9. package/esm2022/lib/components/card/card.component.mjs +1 -1
  10. package/esm2022/lib/components/contact-us/contact-us.component.mjs +28 -42
  11. package/esm2022/lib/components/content/content.component.mjs +1 -1
  12. package/esm2022/lib/components/email-update/email-update.component.mjs +62 -119
  13. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +84 -165
  14. package/esm2022/lib/components/error/error.component.mjs +1 -1
  15. package/esm2022/lib/components/file-download/file-download.component.mjs +1 -1
  16. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +1 -1
  17. package/esm2022/lib/components/footer/footer.component.mjs +11 -23
  18. package/esm2022/lib/components/header/header.component.mjs +109 -163
  19. package/esm2022/lib/components/help/help.component.mjs +1 -1
  20. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +18 -29
  21. package/esm2022/lib/components/info/info.component.mjs +1 -1
  22. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +16 -22
  23. package/esm2022/lib/components/job-title/job-title.component.mjs +16 -20
  24. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +208 -389
  25. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +21 -83
  26. package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +1 -1
  27. package/esm2022/lib/components/mask/mask.component.mjs +1 -1
  28. package/esm2022/lib/components/menu/menu.component.mjs +25 -63
  29. package/esm2022/lib/components/mfa/mfa.component.mjs +98 -155
  30. package/esm2022/lib/components/mfa2/mfa2.component.mjs +30 -54
  31. package/esm2022/lib/components/money-expect/money-expect.component.mjs +23 -31
  32. package/esm2022/lib/components/msg/msg.component.mjs +1 -1
  33. package/esm2022/lib/components/news/news.component.mjs +1 -1
  34. package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +1 -1
  35. package/esm2022/lib/components/page/page.component.mjs +1 -1
  36. package/esm2022/lib/components/profile/profile.component.mjs +14 -34
  37. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +10 -17
  38. package/esm2022/lib/components/questionnaire/FbConstants.mjs +1 -1
  39. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +27 -80
  40. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +8 -29
  41. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +119 -172
  42. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +41 -122
  43. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +7 -7
  44. package/esm2022/lib/components/questionnaire/question-base.mjs +1 -1
  45. package/esm2022/lib/components/questionnaire/question.service.mjs +1 -1
  46. package/esm2022/lib/components/read-more/read-more.component.mjs +6 -6
  47. package/esm2022/lib/components/search-employer/search-employer.component.mjs +7 -10
  48. package/esm2022/lib/components/security-question/security-question.component.mjs +9 -19
  49. package/esm2022/lib/components/select/select.component.mjs +5 -10
  50. package/esm2022/lib/components/ssn/ssn.component.mjs +1 -1
  51. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +52 -72
  52. package/esm2022/lib/components/test/test.component.mjs +1 -1
  53. package/esm2022/lib/components/user-login/user-login.component.mjs +82 -116
  54. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +174 -170
  55. package/esm2022/lib/directives/auto-focus/auto-focus.directive.mjs +1 -1
  56. package/esm2022/lib/directives/caps-lock.directive.mjs +1 -1
  57. package/esm2022/lib/directives/required-roles/required-roles.directive.mjs +1 -1
  58. package/esm2022/lib/enums/EmailStatusEnum.mjs +1 -1
  59. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +1 -1
  60. package/esm2022/lib/models/ErrorModel.mjs +1 -1
  61. package/esm2022/lib/models/FileModel.mjs +1 -1
  62. package/esm2022/lib/models/NotificationModel.mjs +1 -1
  63. package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
  64. package/esm2022/lib/models/TrendModel.mjs +1 -1
  65. package/esm2022/lib/models/UserDetailsModel.mjs +1 -1
  66. package/esm2022/lib/models/UserModel.mjs +1 -1
  67. package/esm2022/lib/models/claimant/ClaimantModel.mjs +1 -1
  68. package/esm2022/lib/models/claimant/JobResultsData.mjs +1 -1
  69. package/esm2022/lib/models/claimant/MatchingJobs.mjs +1 -1
  70. package/esm2022/lib/models/claimant/ResetPasswordModel.mjs +1 -1
  71. package/esm2022/lib/models/questionnaire/ComboModel.mjs +1 -480
  72. package/esm2022/lib/models/questionnaire/KeyValueModel.mjs +1 -1
  73. package/esm2022/lib/ngx-reusa-app-lib.component.mjs +5 -5
  74. package/esm2022/lib/ngx-reusa-app-lib.service.mjs +1 -1
  75. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +1 -1
  76. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +1 -1
  77. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +1 -1
  78. package/esm2022/lib/pages/common/login/login.component.mjs +2 -7
  79. package/esm2022/lib/pages/common/not-found/not-found.page.mjs +1 -1
  80. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +1 -1
  81. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +1 -1
  82. package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +1 -1
  83. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -2
  84. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +1 -1
  85. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +1 -1
  86. package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +1 -1
  87. package/esm2022/lib/pipes/filter.pipe.mjs +1 -1
  88. package/esm2022/lib/pipes/mask/mask.email.pipe.mjs +1 -1
  89. package/esm2022/lib/pipes/proper-case/proper-case.pipe.mjs +1 -1
  90. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  91. package/esm2022/lib/pipes/trust-html/trust-html.pipe.mjs +1 -1
  92. package/esm2022/lib/services/base-service.mjs +1 -1
  93. package/esm2022/lib/services/captcha/captcha.service.mjs +1 -1
  94. package/esm2022/lib/services/chatbot/script.const.mjs +1 -1
  95. package/esm2022/lib/services/claimant/claimant.service.mjs +1 -1
  96. package/esm2022/lib/services/dms-service/dms.service.mjs +1 -1
  97. package/esm2022/lib/services/fpjs/fingerprint.service.mjs +1 -1
  98. package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +1 -1
  99. package/esm2022/lib/services/idle/idle.service.mjs +1 -1
  100. package/esm2022/lib/services/maintenance/maintenance.service.mjs +1 -1
  101. package/esm2022/lib/services/notification/notification.service.mjs +1 -1
  102. package/esm2022/lib/services/tour/tour.service.mjs +1 -1
  103. package/esm2022/lib/validations/AppValidators.mjs +43 -6
  104. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +2290 -3782
  105. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  106. package/lib/components/add-employer/add-employer.component.d.ts +76 -22
  107. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  108. package/lib/components/add-participant/add-participant.component.d.ts +1 -4
  109. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  110. package/lib/components/add-payment/add-payment.component.d.ts +2 -1
  111. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  112. package/lib/components/address/address.component.d.ts +1 -10
  113. package/lib/components/address/address.component.d.ts.map +1 -1
  114. package/lib/components/bank-details/bank-details.component.d.ts +1 -17
  115. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  116. package/lib/components/contact-us/contact-us.component.d.ts +1 -4
  117. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  118. package/lib/components/email-update/email-update.component.d.ts +1 -6
  119. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  120. package/lib/components/employer-grid/employer-grid.component.d.ts +24 -6
  121. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  122. package/lib/components/footer/footer.component.d.ts.map +1 -1
  123. package/lib/components/header/header.component.d.ts +0 -3
  124. package/lib/components/header/header.component.d.ts.map +1 -1
  125. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +1 -3
  126. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  127. package/lib/components/job-title/job-title.component.d.ts +1 -3
  128. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  129. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +1 -5
  130. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  131. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -1
  132. package/lib/components/menu/menu.component.d.ts +1 -11
  133. package/lib/components/menu/menu.component.d.ts.map +1 -1
  134. package/lib/components/mfa/mfa.component.d.ts +1 -6
  135. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  136. package/lib/components/profile/profile.component.d.ts.map +1 -1
  137. package/lib/components/questionnaire/common-success/common-success.page.d.ts +0 -1
  138. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  139. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  140. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  141. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +1 -5
  142. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  143. package/lib/components/user-login/user-login.component.d.ts +1 -7
  144. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  145. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +1 -7
  146. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  147. package/lib/models/questionnaire/ComboModel.d.ts +0 -80
  148. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  149. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  150. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  151. package/lib/validations/AppValidators.d.ts +10 -0
  152. package/lib/validations/AppValidators.d.ts.map +1 -1
  153. package/package.json +2 -2
@@ -11,21 +11,21 @@ import * as i6 from "../../services/ovp/ovp.service";
11
11
  import * as i7 from "@angular/router";
12
12
  import * as i8 from "../../services/claimant-service/claimant.service";
13
13
  import * as i9 from "../../services/lexis-nexis/lexis.nexis.service";
14
- import * as i10 from "@ngx-translate/core";
15
- import * as i11 from "@angular/common";
16
- import * as i12 from "primeng/api";
17
- import * as i13 from "primeng/dialog";
18
- import * as i14 from "primeng/password";
19
- import * as i15 from "primeng/inputtext";
20
- import * as i16 from "../error/error.component";
21
- import * as i17 from "../captcha/captcha.component";
22
- import * as i18 from "../email-update/email-update.component";
23
- import * as i19 from "../mfa-popup/mfa-popup.component";
24
- import * as i20 from "../mfa2/mfa2.component";
25
- import * as i21 from "../lexis-nexis/lexis-nexis.component";
14
+ import * as i10 from "@angular/common";
15
+ import * as i11 from "primeng/api";
16
+ import * as i12 from "primeng/dialog";
17
+ import * as i13 from "primeng/password";
18
+ import * as i14 from "primeng/inputtext";
19
+ import * as i15 from "../error/error.component";
20
+ import * as i16 from "../captcha/captcha.component";
21
+ import * as i17 from "../email-update/email-update.component";
22
+ import * as i18 from "../mfa-popup/mfa-popup.component";
23
+ import * as i19 from "../mfa2/mfa2.component";
24
+ import * as i20 from "../lexis-nexis/lexis-nexis.component";
25
+ import * as i21 from "@ngx-translate/core";
26
26
  const _c0 = ["loginFormDirective"];
27
27
  const _c1 = ["resetFormDirective"];
28
- function UserLoginComponent_div_6_Template(rf, ctx) { if (rf & 1) {
28
+ function UserLoginComponent_div_4_Template(rf, ctx) { if (rf & 1) {
29
29
  i0.ɵɵelementStart(0, "div")(1, "ul")(2, "li");
30
30
  i0.ɵɵtext(3, "Employers may call 601-493-9427");
31
31
  i0.ɵɵelementEnd();
@@ -33,7 +33,7 @@ function UserLoginComponent_div_6_Template(rf, ctx) { if (rf & 1) {
33
33
  i0.ɵɵtext(5, "Claimants may call 601-493-9427.");
34
34
  i0.ɵɵelementEnd()()();
35
35
  } }
36
- function UserLoginComponent_div_7_Template(rf, ctx) { if (rf & 1) {
36
+ function UserLoginComponent_div_5_Template(rf, ctx) { if (rf & 1) {
37
37
  i0.ɵɵelementStart(0, "div")(1, "ul")(2, "li");
38
38
  i0.ɵɵtext(3, "Employers may call 207-621-5120");
39
39
  i0.ɵɵelementEnd();
@@ -41,26 +41,26 @@ function UserLoginComponent_div_7_Template(rf, ctx) { if (rf & 1) {
41
41
  i0.ɵɵtext(5, "Claimants may call 1-800-593-7660");
42
42
  i0.ɵɵelementEnd()()();
43
43
  } }
44
- function UserLoginComponent_app_mfa2_15_Template(rf, ctx) { if (rf & 1) {
44
+ function UserLoginComponent_app_mfa2_12_Template(rf, ctx) { if (rf & 1) {
45
45
  const _r9 = i0.ɵɵgetCurrentView();
46
46
  i0.ɵɵelementStart(0, "app-mfa2", 13);
47
- i0.ɵɵlistener("displayChange", function UserLoginComponent_app_mfa2_15_Template_app_mfa2_displayChange_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.isOtpModalEnabled = $event); })("success", function UserLoginComponent_app_mfa2_15_Template_app_mfa2_success_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.loginSuccess()); })("clear", function UserLoginComponent_app_mfa2_15_Template_app_mfa2_clear_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.enableLexisNexis()); });
47
+ i0.ɵɵlistener("displayChange", function UserLoginComponent_app_mfa2_12_Template_app_mfa2_displayChange_0_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.isOtpModalEnabled = $event); })("success", function UserLoginComponent_app_mfa2_12_Template_app_mfa2_success_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.loginSuccess()); })("clear", function UserLoginComponent_app_mfa2_12_Template_app_mfa2_clear_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.enableLexisNexis()); });
48
48
  i0.ɵɵelementEnd();
49
49
  } if (rf & 2) {
50
50
  const ctx_r2 = i0.ɵɵnextContext();
51
51
  i0.ɵɵproperty("display", ctx_r2.isOtpModalEnabled)("returningUser", ctx_r2.isReturningUser)("verificationPreference", ctx_r2.verificationPreference)("ssn", ctx_r2.ssn);
52
52
  } }
53
- function UserLoginComponent_app_lexis_nexis_16_Template(rf, ctx) { if (rf & 1) {
53
+ function UserLoginComponent_app_lexis_nexis_13_Template(rf, ctx) { if (rf & 1) {
54
54
  const _r13 = i0.ɵɵgetCurrentView();
55
55
  i0.ɵɵelementStart(0, "app-lexis-nexis", 14);
56
- i0.ɵɵlistener("success", function UserLoginComponent_app_lexis_nexis_16_Template_app_lexis_nexis_success_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.onLnSuccess()); })("error", function UserLoginComponent_app_lexis_nexis_16_Template_app_lexis_nexis_error_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.onLNError()); })("usps", function UserLoginComponent_app_lexis_nexis_16_Template_app_lexis_nexis_usps_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.triggerUSPS()); });
56
+ i0.ɵɵlistener("success", function UserLoginComponent_app_lexis_nexis_13_Template_app_lexis_nexis_success_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.onLnSuccess()); })("error", function UserLoginComponent_app_lexis_nexis_13_Template_app_lexis_nexis_error_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r14.onLNError()); })("usps", function UserLoginComponent_app_lexis_nexis_13_Template_app_lexis_nexis_usps_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.triggerUSPS()); });
57
57
  i0.ɵɵelementEnd();
58
58
  } if (rf & 2) {
59
59
  const ctx_r3 = i0.ɵɵnextContext();
60
60
  i0.ɵɵproperty("display", ctx_r3.isLexisNexisPopupEnabled)("userModel", ctx_r3.userModel);
61
61
  } }
62
- const _c2 = a0 => ({ required: a0 });
63
- function UserLoginComponent_form_18_div_15_Template(rf, ctx) { if (rf & 1) {
62
+ const _c2 = () => ({ required: "Captcha is required." });
63
+ function UserLoginComponent_form_15_div_15_Template(rf, ctx) { if (rf & 1) {
64
64
  i0.ɵɵelementStart(0, "div", 33);
65
65
  i0.ɵɵelement(1, "app-captcha", 34)(2, "app-error", 21);
66
66
  i0.ɵɵelementEnd();
@@ -71,10 +71,11 @@ function UserLoginComponent_form_18_div_15_Template(rf, ctx) { if (rf & 1) {
71
71
  i0.ɵɵadvance(1);
72
72
  i0.ɵɵproperty("formControl", ctx_r17.captcha);
73
73
  i0.ɵɵadvance(1);
74
- i0.ɵɵproperty("field", ctx_r17.captcha)("form", _r16)("errDef", i0.ɵɵpureFunction1(4, _c2, ctx_r17.captchaRequired));
74
+ i0.ɵɵproperty("field", ctx_r17.captcha)("form", _r16)("errDef", i0.ɵɵpureFunction0(4, _c2));
75
75
  } }
76
- const _c3 = (a0, a1) => ({ required: a0, minlength: a1 });
77
- function UserLoginComponent_form_18_Template(rf, ctx) { if (rf & 1) {
76
+ const _c3 = () => ({ required: "User ID is required.", minlength: "User ID should have minimum 5 characters." });
77
+ const _c4 = () => ({ required: "Password is required." });
78
+ function UserLoginComponent_form_15_Template(rf, ctx) { if (rf & 1) {
78
79
  const _r19 = i0.ɵɵgetCurrentView();
79
80
  i0.ɵɵelementStart(0, "form", 15, 16)(2, "div", 17)(3, "div", 18)(4, "label", 19);
80
81
  i0.ɵɵtext(5);
@@ -88,20 +89,20 @@ function UserLoginComponent_form_18_Template(rf, ctx) { if (rf & 1) {
88
89
  i0.ɵɵelementEnd();
89
90
  i0.ɵɵelement(13, "p-password", 23)(14, "app-error", 21);
90
91
  i0.ɵɵelementEnd()();
91
- i0.ɵɵtemplate(15, UserLoginComponent_form_18_div_15_Template, 3, 6, "div", 24);
92
+ i0.ɵɵtemplate(15, UserLoginComponent_form_15_div_15_Template, 3, 5, "div", 24);
92
93
  i0.ɵɵelementStart(16, "div", 25)(17, "div", 26)(18, "ion-button", 27);
93
- i0.ɵɵlistener("click", function UserLoginComponent_form_18_Template_ion_button_click_18_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.signIn()); });
94
+ i0.ɵɵlistener("click", function UserLoginComponent_form_15_Template_ion_button_click_18_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r18.signIn()); });
94
95
  i0.ɵɵelement(19, "ion-icon", 28);
95
96
  i0.ɵɵtext(20);
96
97
  i0.ɵɵpipe(21, "translate");
97
98
  i0.ɵɵelementEnd()();
98
99
  i0.ɵɵelementStart(22, "ion-row", 29)(23, "ion-col", 30)(24, "a", 31);
99
- i0.ɵɵlistener("click", function UserLoginComponent_form_18_Template_a_click_24_listener() { i0.ɵɵrestoreView(_r19); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.showDialog()); })("keydown.enter", function UserLoginComponent_form_18_Template_a_keydown_enter_24_listener() { i0.ɵɵrestoreView(_r19); const ctx_r21 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r21.showDialog()); });
100
+ i0.ɵɵlistener("click", function UserLoginComponent_form_15_Template_a_click_24_listener() { i0.ɵɵrestoreView(_r19); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.showDialog()); })("keydown.enter", function UserLoginComponent_form_15_Template_a_keydown_enter_24_listener() { i0.ɵɵrestoreView(_r19); const ctx_r21 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r21.showDialog()); });
100
101
  i0.ɵɵtext(25);
101
102
  i0.ɵɵpipe(26, "translate");
102
103
  i0.ɵɵelementEnd()();
103
104
  i0.ɵɵelementStart(27, "ion-col", 26)(28, "a", 32);
104
- i0.ɵɵlistener("click", function UserLoginComponent_form_18_Template_a_click_28_listener() { i0.ɵɵrestoreView(_r19); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.showForgotPassword = !ctx_r22.showForgotPassword); })("keydown.enter", function UserLoginComponent_form_18_Template_a_keydown_enter_28_listener() { i0.ɵɵrestoreView(_r19); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r23.showForgotPassword = !ctx_r23.showForgotPassword); });
105
+ i0.ɵɵlistener("click", function UserLoginComponent_form_15_Template_a_click_28_listener() { i0.ɵɵrestoreView(_r19); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.showForgotPassword = !ctx_r22.showForgotPassword); })("keydown.enter", function UserLoginComponent_form_15_Template_a_keydown_enter_28_listener() { i0.ɵɵrestoreView(_r19); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r23.showForgotPassword = !ctx_r23.showForgotPassword); });
105
106
  i0.ɵɵtext(29);
106
107
  i0.ɵɵpipe(30, "translate");
107
108
  i0.ɵɵelementEnd()()()()();
@@ -112,29 +113,29 @@ function UserLoginComponent_form_18_Template(rf, ctx) { if (rf & 1) {
112
113
  i0.ɵɵadvance(4);
113
114
  i0.ɵɵstyleProp("font-size", ctx_r4.fontSize)("color", ctx_r4.color);
114
115
  i0.ɵɵadvance(1);
115
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 25, "login.user.id"));
116
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 25, "User ID"));
116
117
  i0.ɵɵadvance(2);
117
118
  i0.ɵɵproperty("formControl", ctx_r4.username);
118
119
  i0.ɵɵadvance(1);
119
- i0.ɵɵproperty("field", ctx_r4.username)("form", _r16)("errDef", i0.ɵɵpureFunction2(35, _c3, ctx_r4.userIdRequired, ctx_r4.userIdMinimumLength));
120
+ i0.ɵɵproperty("field", ctx_r4.username)("form", _r16)("errDef", i0.ɵɵpureFunction0(35, _c3));
120
121
  i0.ɵɵadvance(2);
121
122
  i0.ɵɵstyleProp("font-size", ctx_r4.fontSize)("color", ctx_r4.color);
122
123
  i0.ɵɵadvance(1);
123
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 27, "login.password.case.sensitive"));
124
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 27, "Password (Case Sensitive)"));
124
125
  i0.ɵɵadvance(2);
125
126
  i0.ɵɵproperty("formControl", ctx_r4.password)("toggleMask", true)("feedback", false);
126
127
  i0.ɵɵadvance(1);
127
- i0.ɵɵproperty("field", ctx_r4.password)("form", _r16)("errDef", i0.ɵɵpureFunction1(38, _c2, ctx_r4.passwordRequired));
128
+ i0.ɵɵproperty("field", ctx_r4.password)("form", _r16)("errDef", i0.ɵɵpureFunction0(36, _c4));
128
129
  i0.ɵɵadvance(1);
129
130
  i0.ɵɵproperty("ngIf", false);
130
131
  i0.ɵɵadvance(5);
131
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 29, "login.login"), " ");
132
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 29, "Login"), " ");
132
133
  i0.ɵɵadvance(5);
133
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(26, 31, "login.user.id.forgot"));
134
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(26, 31, "Forgot user ID?"));
134
135
  i0.ɵɵadvance(4);
135
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(30, 33, "login.password.forgot"));
136
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(30, 33, "Forgot Password?"));
136
137
  } }
137
- function UserLoginComponent_form_19_Template(rf, ctx) { if (rf & 1) {
138
+ function UserLoginComponent_form_16_Template(rf, ctx) { if (rf & 1) {
138
139
  const _r26 = i0.ɵɵgetCurrentView();
139
140
  i0.ɵɵelementStart(0, "form", 15, 35)(2, "div", 17)(3, "div", 18)(4, "label", 19);
140
141
  i0.ɵɵtext(5);
@@ -146,13 +147,13 @@ function UserLoginComponent_form_19_Template(rf, ctx) { if (rf & 1) {
146
147
  i0.ɵɵelement(10, "app-captcha", 34)(11, "app-error", 21);
147
148
  i0.ɵɵelementEnd()();
148
149
  i0.ɵɵelementStart(12, "div", 25)(13, "div", 26)(14, "ion-button", 27);
149
- i0.ɵɵlistener("click", function UserLoginComponent_form_19_Template_ion_button_click_14_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r25.showForgotPassword = !ctx_r25.showForgotPassword); });
150
+ i0.ɵɵlistener("click", function UserLoginComponent_form_16_Template_ion_button_click_14_listener() { i0.ɵɵrestoreView(_r26); const ctx_r25 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r25.showForgotPassword = !ctx_r25.showForgotPassword); });
150
151
  i0.ɵɵelement(15, "ion-icon", 36);
151
152
  i0.ɵɵtext(16);
152
153
  i0.ɵɵpipe(17, "translate");
153
154
  i0.ɵɵelementEnd();
154
155
  i0.ɵɵelementStart(18, "ion-button", 37);
155
- i0.ɵɵlistener("click", function UserLoginComponent_form_19_Template_ion_button_click_18_listener() { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r27.initiateForgotPassword()); });
156
+ i0.ɵɵlistener("click", function UserLoginComponent_form_16_Template_ion_button_click_18_listener() { i0.ɵɵrestoreView(_r26); const ctx_r27 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r27.initiateForgotPassword()); });
156
157
  i0.ɵɵelement(19, "ion-icon", 38);
157
158
  i0.ɵɵtext(20);
158
159
  i0.ɵɵpipe(21, "translate");
@@ -164,31 +165,31 @@ function UserLoginComponent_form_19_Template(rf, ctx) { if (rf & 1) {
164
165
  i0.ɵɵadvance(4);
165
166
  i0.ɵɵstyleProp("font-size", ctx_r5.fontSize)("color", ctx_r5.color);
166
167
  i0.ɵɵadvance(1);
167
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 17, "login.user.id"));
168
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 17, "User ID"));
168
169
  i0.ɵɵadvance(2);
169
170
  i0.ɵɵproperty("formControl", ctx_r5.resetUsername);
170
171
  i0.ɵɵadvance(1);
171
- i0.ɵɵproperty("field", ctx_r5.resetUsername)("form", _r24)("errDef", i0.ɵɵpureFunction2(23, _c3, ctx_r5.userIdRequired, ctx_r5.userIdMinimumLength));
172
+ i0.ɵɵproperty("field", ctx_r5.resetUsername)("form", _r24)("errDef", i0.ɵɵpureFunction0(23, _c3));
172
173
  i0.ɵɵadvance(2);
173
174
  i0.ɵɵproperty("formControl", ctx_r5.resetCaptcha);
174
175
  i0.ɵɵadvance(1);
175
- i0.ɵɵproperty("field", ctx_r5.resetCaptcha)("form", _r24)("errDef", i0.ɵɵpureFunction1(26, _c2, ctx_r5.captchaRequired));
176
+ i0.ɵɵproperty("field", ctx_r5.resetCaptcha)("form", _r24)("errDef", i0.ɵɵpureFunction0(24, _c2));
176
177
  i0.ɵɵadvance(5);
177
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 19, "login.login"), " ");
178
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 19, "Login"), " ");
178
179
  i0.ɵɵadvance(2);
179
180
  i0.ɵɵpropertyInterpolate("disabled", ctx_r5.resetForm.invalid);
180
181
  i0.ɵɵadvance(2);
181
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 21, "login.send.email"), " ");
182
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 21, "Send email"), " ");
182
183
  } }
183
- function UserLoginComponent_ng_template_24_Template(rf, ctx) { if (rf & 1) {
184
+ function UserLoginComponent_ng_template_21_Template(rf, ctx) { if (rf & 1) {
184
185
  const _r29 = i0.ɵɵgetCurrentView();
185
186
  i0.ɵɵelementStart(0, "ion-button", 39);
186
- i0.ɵɵlistener("click", function UserLoginComponent_ng_template_24_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r28.close()); });
187
+ i0.ɵɵlistener("click", function UserLoginComponent_ng_template_21_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r28.close()); });
187
188
  i0.ɵɵtext(1);
188
189
  i0.ɵɵpipe(2, "translate");
189
190
  i0.ɵɵelementEnd();
190
191
  i0.ɵɵelementStart(3, "ion-button", 40);
191
- i0.ɵɵlistener("click", function UserLoginComponent_ng_template_24_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r29); const ctx_r30 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r30.triggerUSPSForExpiredProcess()); });
192
+ i0.ɵɵlistener("click", function UserLoginComponent_ng_template_21_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r29); const ctx_r30 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r30.triggerUSPSForExpiredProcess()); });
192
193
  i0.ɵɵtext(4);
193
194
  i0.ɵɵpipe(5, "translate");
194
195
  i0.ɵɵelementEnd();
@@ -198,19 +199,19 @@ function UserLoginComponent_ng_template_24_Template(rf, ctx) { if (rf & 1) {
198
199
  i0.ɵɵadvance(3);
199
200
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, "usps.expd.popup.process"), " ");
200
201
  } }
201
- function UserLoginComponent_app_email_update_25_Template(rf, ctx) { if (rf & 1) {
202
+ function UserLoginComponent_app_email_update_22_Template(rf, ctx) { if (rf & 1) {
202
203
  const _r32 = i0.ɵɵgetCurrentView();
203
204
  i0.ɵɵelementStart(0, "app-email-update", 41);
204
- i0.ɵɵlistener("onClose", function UserLoginComponent_app_email_update_25_Template_app_email_update_onClose_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r31.logout()); })("onSuccess", function UserLoginComponent_app_email_update_25_Template_app_email_update_onSuccess_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r33.emailVerificationSuccess()); });
205
+ i0.ɵɵlistener("onClose", function UserLoginComponent_app_email_update_22_Template_app_email_update_onClose_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r31.logout()); })("onSuccess", function UserLoginComponent_app_email_update_22_Template_app_email_update_onSuccess_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r33.emailVerificationSuccess()); });
205
206
  i0.ɵɵelementEnd();
206
207
  } if (rf & 2) {
207
208
  const ctx_r7 = i0.ɵɵnextContext();
208
209
  i0.ɵɵproperty("email", ctx_r7.userModel.emailId);
209
210
  } }
210
- const _c4 = () => ({ width: "45vw" });
211
- const _c5 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
211
+ const _c5 = () => ({ width: "45vw" });
212
+ const _c6 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
212
213
  export class UserLoginComponent {
213
- constructor(util, nav, fb, loginService, platform, wcService, ovpService, cdr, router, cs, ln, translateService) {
214
+ constructor(util, nav, fb, loginService, platform, wcService, ovpService, cdr, router, cs, ln) {
214
215
  this.util = util;
215
216
  this.nav = nav;
216
217
  this.fb = fb;
@@ -222,7 +223,6 @@ export class UserLoginComponent {
222
223
  this.router = router;
223
224
  this.cs = cs;
224
225
  this.ln = ln;
225
- this.translateService = translateService;
226
226
  this.show2FADialog = false;
227
227
  this.showForgotPassword = false;
228
228
  this.showUsernameError = false;
@@ -232,24 +232,16 @@ export class UserLoginComponent {
232
232
  this.showProgressBar = false;
233
233
  this.showEmailVerificationDialog = false;
234
234
  this.isLexisNexisPopupEnabled = false;
235
- this.mfaLoginHeader = "";
235
+ this.mfaLoginHeader = "Validation code has been sent to the phone number entered";
236
236
  this.isUSPSExpired = false;
237
237
  this.isPhoneMfaRequiredForAccountActivation = true;
238
238
  this.success = new EventEmitter();
239
239
  this.error = new EventEmitter();
240
- this.translateService.use(localStorage.getItem("language"));
241
240
  }
242
- ;
243
241
  ngOnInit() {
244
242
  this.isOtpModalEnabled = false;
245
243
  this.isLexisNexisEnabled = false;
246
244
  this.isReturningUser = true;
247
- if (localStorage.getItem("language") === "es") {
248
- this.mfaLoginHeader = "El código de validación ha sido enviado al número de teléfono ingresado";
249
- }
250
- else {
251
- this.mfaLoginHeader = "Validation code has been sent to the phone number entered";
252
- }
253
245
  this.initilizeLoginForm();
254
246
  }
255
247
  reset() {
@@ -478,12 +470,7 @@ export class UserLoginComponent {
478
470
  this.loginService
479
471
  .initiateForgotPasswordV2(this.resetUsername.value)
480
472
  .subscribe((res) => {
481
- if (localStorage.getItem("language") === "es") {
482
- this.util.success('Se ha restablecido su contraseña. Recibirá un correo electrónico con una contraseña temporal e instrucciones para iniciar sesión.');
483
- }
484
- else {
485
- this.util.success('Your password has been reset. You should receive an email with a temporary password and login instructions.');
486
- }
473
+ this.util.success('Your password has been reset. You should receive an email with a temporary password and login instructions.');
487
474
  this.loginForm.reset();
488
475
  this.loginService.reset();
489
476
  this.resetFormDirective.reset();
@@ -512,19 +499,7 @@ export class UserLoginComponent {
512
499
  this.util.hideLoader();
513
500
  this.isUSPSExpired = false;
514
501
  }
515
- get userIdRequired() {
516
- return this.translateService.instant('common.user.id.required');
517
- }
518
- get userIdMinimumLength() {
519
- return this.translateService.instant('common.user.id.minlength');
520
- }
521
- get passwordRequired() {
522
- return this.translateService.instant('common.password.required');
523
- }
524
- get captchaRequired() {
525
- return this.translateService.instant('common.captcha.required');
526
- }
527
- static { this.ɵfac = function UserLoginComponent_Factory(t) { return new (t || UserLoginComponent)(i0.ɵɵdirectiveInject(i1.UtilService), i0.ɵɵdirectiveInject(i2.NavController), i0.ɵɵdirectiveInject(i3.UntypedFormBuilder), i0.ɵɵdirectiveInject(i4.LoginService), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i5.WeeklyCertServiceV2), i0.ɵɵdirectiveInject(i6.OvpService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i7.Router), i0.ɵɵdirectiveInject(i8.ClaimantService), i0.ɵɵdirectiveInject(i9.LexisNexisService), i0.ɵɵdirectiveInject(i10.TranslateService)); }; }
502
+ static { this.ɵfac = function UserLoginComponent_Factory(t) { return new (t || UserLoginComponent)(i0.ɵɵdirectiveInject(i1.UtilService), i0.ɵɵdirectiveInject(i2.NavController), i0.ɵɵdirectiveInject(i3.UntypedFormBuilder), i0.ɵɵdirectiveInject(i4.LoginService), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i5.WeeklyCertServiceV2), i0.ɵɵdirectiveInject(i6.OvpService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i7.Router), i0.ɵɵdirectiveInject(i8.ClaimantService), i0.ɵɵdirectiveInject(i9.LexisNexisService)); }; }
528
503
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserLoginComponent, selectors: [["app-user-login"]], viewQuery: function UserLoginComponent_Query(rf, ctx) { if (rf & 1) {
529
504
  i0.ɵɵviewQuery(_c0, 5);
530
505
  i0.ɵɵviewQuery(_c1, 5);
@@ -532,48 +507,39 @@ export class UserLoginComponent {
532
507
  let _t;
533
508
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loginFormDirective = _t.first);
534
509
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.resetFormDirective = _t.first);
535
- } }, inputs: { fontSize: "fontSize", color: "color", isPhoneMfaRequiredForAccountActivation: "isPhoneMfaRequiredForAccountActivation" }, outputs: { success: "success", error: "error" }, decls: 26, vars: 35, consts: [["appendTo", "body", 3, "visible", "modal", "visibleChange"], [1, "heading"], [4, "ngIf"], [1, "ion-text-center"], ["shape", "round", "type", "submit", "color", "success", 3, "click"], ["slot", "start", "name", "close-sharp"], [3, "display", "returningUser", "verificationPreference", "ssn", "displayChange", "success", "clear", 4, "ngIf"], [3, "display", "userModel", "success", "error", "usps", 4, "ngIf"], [3, "display", "user", "returningUser", "heading", "displayChange", "success", "clear"], [3, "formGroup", 4, "ngIf"], ["appendTo", "body", "position", "top", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "baseZIndex", "draggable", "resizable"], ["pTemplate", "footer"], [3, "email", "onClose", "onSuccess", 4, "ngIf"], [3, "display", "returningUser", "verificationPreference", "ssn", "displayChange", "success", "clear"], [3, "display", "userModel", "success", "error", "usps"], [3, "formGroup"], ["loginFormDirective", "ngForm"], [1, "p-fluid", "p-formgrid", "p-grid"], [1, "field", "ion-text-left", 2, "width", "-webkit-fill-available"], ["for", "userProfileId"], ["id", "userProfileId", "type", "text", "pInputText", "", "maxlength", "30", "minlength", "5", 3, "formControl"], [3, "field", "form", "errDef"], ["for", "userProfilePassword"], ["inputId", "userProfilePassword", 3, "formControl", "toggleMask", "feedback"], ["class", "ion-padding-start ion-padding-end ion-text-left", "style", "margin-top: -8px;", 4, "ngIf"], [1, "p-fluid"], [1, "ion-text-right"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "click"], ["name", "power-outline", "slot", "start"], [1, "ion-padding-top"], [1, "ion-text-left"], ["tabindex", "0", "role", "button", 1, "link", 2, "font-size", "14px", 3, "click", "keydown.enter"], ["tabindex", "0", "role", "button", "type", "submit", 1, "link", 2, "font-size", "14px", 3, "click", "keydown.enter"], [1, "ion-padding-start", "ion-padding-end", "ion-text-left", 2, "margin-top", "-8px"], [3, "formControl"], ["resetFormDirective", "ngForm"], ["name", "arrow-back-outline", "slot", "start"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "disabled", "click"], ["name", "mail-outline", "slot", "start"], ["shape", "round", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "type", "submit", "fill", "solid", 3, "click"], [3, "email", "onClose", "onSuccess"]], template: function UserLoginComponent_Template(rf, ctx) { if (rf & 1) {
510
+ } }, inputs: { fontSize: "fontSize", color: "color", isPhoneMfaRequiredForAccountActivation: "isPhoneMfaRequiredForAccountActivation" }, outputs: { success: "success", error: "error" }, decls: 23, vars: 26, consts: [["appendTo", "body", 3, "visible", "modal", "visibleChange"], [1, "heading"], [4, "ngIf"], [1, "ion-text-center"], ["shape", "round", "type", "submit", "color", "success", 3, "click"], ["slot", "start", "name", "close-sharp"], [3, "display", "returningUser", "verificationPreference", "ssn", "displayChange", "success", "clear", 4, "ngIf"], [3, "display", "userModel", "success", "error", "usps", 4, "ngIf"], [3, "display", "user", "returningUser", "heading", "displayChange", "success", "clear"], [3, "formGroup", 4, "ngIf"], ["appendTo", "body", "position", "top", "closeOnEscape", "false", 3, "visible", "modal", "breakpoints", "baseZIndex", "draggable", "resizable"], ["pTemplate", "footer"], [3, "email", "onClose", "onSuccess", 4, "ngIf"], [3, "display", "returningUser", "verificationPreference", "ssn", "displayChange", "success", "clear"], [3, "display", "userModel", "success", "error", "usps"], [3, "formGroup"], ["loginFormDirective", "ngForm"], [1, "p-fluid", "p-formgrid", "p-grid"], [1, "field", "ion-text-left", 2, "width", "-webkit-fill-available"], ["for", "userProfileId"], ["id", "userProfileId", "type", "text", "pInputText", "", "maxlength", "30", "minlength", "5", 3, "formControl"], [3, "field", "form", "errDef"], ["for", "userProfilePassword"], ["inputId", "userProfilePassword", 3, "formControl", "toggleMask", "feedback"], ["class", "ion-padding-start ion-padding-end ion-text-left", "style", "margin-top: -8px;", 4, "ngIf"], [1, "p-fluid"], [1, "ion-text-right"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "click"], ["name", "power-outline", "slot", "start"], [1, "ion-padding-top"], [1, "ion-text-left"], ["tabindex", "0", "role", "button", 1, "link", 2, "font-size", "14px", 3, "click", "keydown.enter"], ["tabindex", "0", "role", "button", "type", "submit", 1, "link", 2, "font-size", "14px", 3, "click", "keydown.enter"], [1, "ion-padding-start", "ion-padding-end", "ion-text-left", 2, "margin-top", "-8px"], [3, "formControl"], ["resetFormDirective", "ngForm"], ["name", "arrow-back-outline", "slot", "start"], ["color", "primary", "type", "submit", "shape", "round", "fill", "outline", 1, "white-background", 3, "disabled", "click"], ["name", "mail-outline", "slot", "start"], ["shape", "round", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "type", "submit", "fill", "solid", 3, "click"], [3, "email", "onClose", "onSuccess"]], template: function UserLoginComponent_Template(rf, ctx) { if (rf & 1) {
536
511
  i0.ɵɵelementStart(0, "p-dialog", 0);
537
512
  i0.ɵɵlistener("visibleChange", function UserLoginComponent_Template_p_dialog_visibleChange_0_listener($event) { return ctx.displayDialog = $event; });
538
513
  i0.ɵɵelementStart(1, "h4", 1);
539
- i0.ɵɵtext(2);
540
- i0.ɵɵpipe(3, "translate");
514
+ i0.ɵɵtext(2, "Message");
541
515
  i0.ɵɵelementEnd();
542
- i0.ɵɵtext(4);
543
- i0.ɵɵpipe(5, "translate");
544
- i0.ɵɵtemplate(6, UserLoginComponent_div_6_Template, 6, 0, "div", 2)(7, UserLoginComponent_div_7_Template, 6, 0, "div", 2);
545
- i0.ɵɵelement(8, "br");
546
- i0.ɵɵelementStart(9, "p-footer")(10, "div", 3)(11, "ion-button", 4);
547
- i0.ɵɵlistener("click", function UserLoginComponent_Template_ion_button_click_11_listener() { return ctx.displayDialog = !ctx.displayDialog; });
548
- i0.ɵɵelement(12, "ion-icon", 5);
549
- i0.ɵɵtext(13);
550
- i0.ɵɵpipe(14, "translate");
516
+ i0.ɵɵtext(3, " If you forgot your User ID, a Customer Service Representative is available to assist you during normal business hours. ");
517
+ i0.ɵɵtemplate(4, UserLoginComponent_div_4_Template, 6, 0, "div", 2)(5, UserLoginComponent_div_5_Template, 6, 0, "div", 2);
518
+ i0.ɵɵelement(6, "br");
519
+ i0.ɵɵelementStart(7, "p-footer")(8, "div", 3)(9, "ion-button", 4);
520
+ i0.ɵɵlistener("click", function UserLoginComponent_Template_ion_button_click_9_listener() { return ctx.displayDialog = !ctx.displayDialog; });
521
+ i0.ɵɵelement(10, "ion-icon", 5);
522
+ i0.ɵɵtext(11, " Close ");
551
523
  i0.ɵɵelementEnd()()()();
552
- i0.ɵɵtemplate(15, UserLoginComponent_app_mfa2_15_Template, 1, 4, "app-mfa2", 6)(16, UserLoginComponent_app_lexis_nexis_16_Template, 1, 2, "app-lexis-nexis", 7);
553
- i0.ɵɵelementStart(17, "app-mfa-popup", 8);
554
- i0.ɵɵlistener("displayChange", function UserLoginComponent_Template_app_mfa_popup_displayChange_17_listener($event) { return ctx.show2FADialog = $event; })("success", function UserLoginComponent_Template_app_mfa_popup_success_17_listener() { return ctx.loginSuccess(); })("clear", function UserLoginComponent_Template_app_mfa_popup_clear_17_listener($event) { return ctx.enableLexisNexis($event); });
524
+ i0.ɵɵtemplate(12, UserLoginComponent_app_mfa2_12_Template, 1, 4, "app-mfa2", 6)(13, UserLoginComponent_app_lexis_nexis_13_Template, 1, 2, "app-lexis-nexis", 7);
525
+ i0.ɵɵelementStart(14, "app-mfa-popup", 8);
526
+ i0.ɵɵlistener("displayChange", function UserLoginComponent_Template_app_mfa_popup_displayChange_14_listener($event) { return ctx.show2FADialog = $event; })("success", function UserLoginComponent_Template_app_mfa_popup_success_14_listener() { return ctx.loginSuccess(); })("clear", function UserLoginComponent_Template_app_mfa_popup_clear_14_listener($event) { return ctx.enableLexisNexis($event); });
555
527
  i0.ɵɵelementEnd();
556
- i0.ɵɵtemplate(18, UserLoginComponent_form_18_Template, 31, 40, "form", 9)(19, UserLoginComponent_form_19_Template, 22, 28, "form", 9);
557
- i0.ɵɵelementStart(20, "p-dialog", 10);
558
- i0.ɵɵtext(21);
559
- i0.ɵɵpipe(22, "translate");
560
- i0.ɵɵelement(23, "br");
561
- i0.ɵɵtemplate(24, UserLoginComponent_ng_template_24_Template, 6, 6, "ng-template", 11);
528
+ i0.ɵɵtemplate(15, UserLoginComponent_form_15_Template, 31, 37, "form", 9)(16, UserLoginComponent_form_16_Template, 22, 25, "form", 9);
529
+ i0.ɵɵelementStart(17, "p-dialog", 10);
530
+ i0.ɵɵtext(18);
531
+ i0.ɵɵpipe(19, "translate");
532
+ i0.ɵɵelement(20, "br");
533
+ i0.ɵɵtemplate(21, UserLoginComponent_ng_template_21_Template, 6, 6, "ng-template", 11);
562
534
  i0.ɵɵelementEnd();
563
- i0.ɵɵtemplate(25, UserLoginComponent_app_email_update_25_Template, 1, 1, "app-email-update", 12);
535
+ i0.ɵɵtemplate(22, UserLoginComponent_app_email_update_22_Template, 1, 1, "app-email-update", 12);
564
536
  } if (rf & 2) {
565
537
  i0.ɵɵproperty("visible", ctx.displayDialog)("modal", true);
566
- i0.ɵɵadvance(2);
567
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 25, "common.message"));
568
- i0.ɵɵadvance(2);
569
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 27, "login.forgot.id.assist"), " ");
570
- i0.ɵɵadvance(2);
538
+ i0.ɵɵadvance(4);
571
539
  i0.ɵɵproperty("ngIf", ctx.util.isState("MS"));
572
540
  i0.ɵɵadvance(1);
573
541
  i0.ɵɵproperty("ngIf", ctx.util.isState("ME"));
574
- i0.ɵɵadvance(6);
575
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 29, "common.close"), " ");
576
- i0.ɵɵadvance(2);
542
+ i0.ɵɵadvance(7);
577
543
  i0.ɵɵproperty("ngIf", ctx.isOtpModalEnabled);
578
544
  i0.ɵɵadvance(1);
579
545
  i0.ɵɵproperty("ngIf", ctx.isLexisNexisPopupEnabled);
@@ -584,18 +550,18 @@ export class UserLoginComponent {
584
550
  i0.ɵɵadvance(1);
585
551
  i0.ɵɵproperty("ngIf", ctx.showForgotPassword);
586
552
  i0.ɵɵadvance(1);
587
- i0.ɵɵstyleMap(i0.ɵɵpureFunction0(33, _c4));
588
- i0.ɵɵproperty("visible", ctx.isUSPSExpired)("modal", true)("breakpoints", i0.ɵɵpureFunction0(34, _c5))("baseZIndex", 5000)("draggable", false)("resizable", false);
553
+ i0.ɵɵstyleMap(i0.ɵɵpureFunction0(24, _c5));
554
+ i0.ɵɵproperty("visible", ctx.isUSPSExpired)("modal", true)("breakpoints", i0.ɵɵpureFunction0(25, _c6))("baseZIndex", 5000)("draggable", false)("resizable", false);
589
555
  i0.ɵɵadvance(1);
590
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(22, 31, "usps.expd.popup.heading"), "");
556
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(19, 22, "usps.expd.popup.heading"), "");
591
557
  i0.ɵɵadvance(4);
592
558
  i0.ɵɵproperty("ngIf", ctx.showEmailVerificationDialog);
593
- } }, dependencies: [i2.IonButton, i2.IonCol, i2.IonIcon, i2.IonRow, i11.NgIf, i12.Footer, i12.PrimeTemplate, i3.ɵNgNoValidate, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.MinLengthValidator, i3.MaxLengthValidator, i3.FormControlDirective, i3.FormGroupDirective, i13.Dialog, i14.Password, i15.InputText, i16.ErrorComponent, i17.CaptchaComponent, i18.EmailUpdateComponent, i19.MfaPopupComponent, i20.Mfa2Component, i21.LexisNexisComponent, i10.TranslatePipe] }); }
559
+ } }, dependencies: [i2.IonButton, i2.IonCol, i2.IonIcon, i2.IonRow, i10.NgIf, i11.Footer, i11.PrimeTemplate, i3.ɵNgNoValidate, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.MinLengthValidator, i3.MaxLengthValidator, i3.FormControlDirective, i3.FormGroupDirective, i12.Dialog, i13.Password, i14.InputText, i15.ErrorComponent, i16.CaptchaComponent, i17.EmailUpdateComponent, i18.MfaPopupComponent, i19.Mfa2Component, i20.LexisNexisComponent, i21.TranslatePipe] }); }
594
560
  }
595
561
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserLoginComponent, [{
596
562
  type: Component,
597
- args: [{ selector: 'app-user-login', template: "<p-dialog [(visible)]=\"displayDialog\" [modal]=\"true\" appendTo=\"body\">\r\n <h4 class=\"heading\">{{\"common.message\" | translate}}</h4>\r\n {{\"login.forgot.id.assist\" | translate}}\r\n <div *ngIf=\"util.isState('MS')\">\r\n <ul>\r\n <li>Employers may call 601-493-9427</li>\r\n <li>Claimants may call 601-493-9427.</li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"util.isState('ME')\">\r\n <ul>\r\n <li>Employers may call 207-621-5120</li>\r\n <li>Claimants may call 1-800-593-7660</li>\r\n </ul>\r\n </div>\r\n <!-- todo: get KS number-->\r\n <br />\r\n <p-footer>\r\n <div class=\"ion-text-center\">\r\n <ion-button shape=\"round\" type=\"submit\" (click)=\"displayDialog = !displayDialog\" color=\"success\">\r\n <ion-icon slot=\"start\" name=\"close-sharp\"></ion-icon>\r\n {{\"common.close\" | translate}}\r\n </ion-button>\r\n </div>\r\n </p-footer>\r\n</p-dialog>\r\n<app-mfa2 *ngIf=\"isOtpModalEnabled\" [(display)]=\"isOtpModalEnabled\" [returningUser]=\"isReturningUser\" [verificationPreference]=\"verificationPreference\" [ssn]=\"ssn\" (success)=\"loginSuccess()\" (clear)=\"enableLexisNexis()\"></app-mfa2>\r\n<app-lexis-nexis *ngIf=\"isLexisNexisPopupEnabled\" [display]=\"isLexisNexisPopupEnabled\" [userModel] = \"userModel\" (success)=\"onLnSuccess()\" (error)=\"onLNError()\" (usps)=\"triggerUSPS()\"></app-lexis-nexis>\r\n<app-mfa-popup [(display)]=\"show2FADialog\" [user]=\"userModel\" [returningUser]=\"isReturningUser\" [heading]=\"mfaLoginHeader\" (success)=\"loginSuccess()\" (clear)=\"enableLexisNexis($event)\"></app-mfa-popup>\r\n\r\n\r\n<form [formGroup]=\"loginForm\" #loginFormDirective=\"ngForm\" *ngIf=\"!showForgotPassword\">\r\n <div class=\"p-fluid p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfileId\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'login.user.id' | translate}}</label>\r\n <input id=\"userProfileId\" type=\"text\" pInputText maxlength=\"30\" minlength=\"5\" [formControl]=\"username\">\r\n <app-error [field]='username' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: userIdRequired,\r\n minlength: userIdMinimumLength\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfilePassword\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'login.password.case.sensitive' | translate}}</label>\r\n <p-password [formControl]=\"password\" inputId=\"userProfilePassword\" [toggleMask]='true' [feedback]='false'></p-password>\r\n <app-error [field]='password' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: passwordRequired\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"ion-padding-start ion-padding-end ion-text-left\" style=\"margin-top: -8px;\" *ngIf=\"false\">\r\n <app-captcha [formControl]=\"captcha\"></app-captcha>\r\n <app-error [field]='captcha' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: captchaRequired\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <div class=\"p-fluid\">\r\n <div class=\"ion-text-right\">\r\n <ion-button (click)=\"signIn()\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\" class=\"white-background\">\r\n <ion-icon name=\"power-outline\" slot=\"start\"></ion-icon>\r\n {{'login.login' | translate}}\r\n </ion-button>\r\n </div>\r\n <ion-row class=\"ion-padding-top\">\r\n <ion-col class=\"ion-text-left\">\r\n <a tabindex=\"0\" role=\"button\" class=\"link\" style=\"font-size: 14px;\" (click)=\"showDialog()\" (keydown.enter)=\"showDialog()\">{{'login.user.id.forgot' | translate}}</a>\r\n </ion-col>\r\n <ion-col class=\"ion-text-right\">\r\n <a tabindex=\"0\" role=\"button\" class=\"link\" (click)=\"showForgotPassword = !showForgotPassword\" (keydown.enter)=\"showForgotPassword = !showForgotPassword\" style=\"font-size: 14px;\"\r\n type=\"submit\">{{'login.password.forgot' | translate}}</a>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n</form>\r\n\r\n<form *ngIf=\"showForgotPassword\" [formGroup]=\"resetForm\" #resetFormDirective=\"ngForm\">\r\n <div class=\"p-fluid p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfileId\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'login.user.id' | translate}}</label>\r\n <input id=\"userProfileId\" type=\"text\" pInputText maxlength=\"30\" minlength=\"5\" [formControl]=\"resetUsername\">\r\n <app-error [field]='resetUsername' [form]=\"resetFormDirective\" [errDef]=\"{ \r\n required: userIdRequired,\r\n minlength: userIdMinimumLength\r\n }\"></app-error>\r\n </div>\r\n <div class=\"ion-text-left\">\r\n <app-captcha [formControl]=\"resetCaptcha\"></app-captcha>\r\n <app-error [field]='resetCaptcha' [form]=\"resetFormDirective\" [errDef]=\"{ \r\n required: captchaRequired\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"p-fluid\">\r\n <div class=\"ion-text-right\">\r\n <ion-button (click)=\"showForgotPassword = !showForgotPassword\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\" class=\"white-background\">\r\n <ion-icon name=\"arrow-back-outline\" slot=\"start\"></ion-icon>\r\n {{'login.login' | translate}}\r\n </ion-button>\r\n\r\n <ion-button (click)=\"initiateForgotPassword()\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\"\r\n disabled=\"{{resetForm.invalid}}\" class=\"white-background\">\r\n <ion-icon name=\"mail-outline\" slot=\"start\"></ion-icon>\r\n {{'login.send.email' | translate}}\r\n </ion-button>\r\n </div>\r\n </div>\r\n\r\n \r\n</form>\r\n\r\n<p-dialog [visible]=\"isUSPSExpired\" [modal]=\"true\" appendTo=\"body\" position=\"top\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n[baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" closeOnEscape=\"false\">\r\n {{'usps.expd.popup.heading' | translate}}<br/>\r\n \r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"outline\" (click)=\"close()\">\r\n {{'usps.expd.popup.cancel' | translate}}\r\n </ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"solid\" (click)=\"triggerUSPSForExpiredProcess()\">\r\n {{'usps.expd.popup.process' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n</p-dialog>\r\n\r\n<app-email-update [email]=\"userModel.emailId\" *ngIf=\"showEmailVerificationDialog\" (onClose)=\"logout()\" (onSuccess)=\"emailVerificationSuccess()\"></app-email-update>" }]
598
- }], () => [{ type: i1.UtilService }, { type: i2.NavController }, { type: i3.UntypedFormBuilder }, { type: i4.LoginService }, { type: i2.Platform }, { type: i5.WeeklyCertServiceV2 }, { type: i6.OvpService }, { type: i0.ChangeDetectorRef }, { type: i7.Router }, { type: i8.ClaimantService }, { type: i9.LexisNexisService }, { type: i10.TranslateService }], { loginFormDirective: [{
563
+ args: [{ selector: 'app-user-login', template: "<p-dialog [(visible)]=\"displayDialog\" [modal]=\"true\" appendTo=\"body\">\r\n <h4 class=\"heading\">Message</h4>\r\n\r\n If you forgot your User ID, a Customer Service Representative is available to assist you during normal business hours.\r\n <div *ngIf=\"util.isState('MS')\">\r\n <ul>\r\n <li>Employers may call 601-493-9427</li>\r\n <li>Claimants may call 601-493-9427.</li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"util.isState('ME')\">\r\n <ul>\r\n <li>Employers may call 207-621-5120</li>\r\n <li>Claimants may call 1-800-593-7660</li>\r\n </ul>\r\n </div>\r\n <!-- todo: get KS number-->\r\n <br />\r\n <p-footer>\r\n <div class=\"ion-text-center\">\r\n <ion-button shape=\"round\" type=\"submit\" (click)=\"displayDialog = !displayDialog\" color=\"success\">\r\n <ion-icon slot=\"start\" name=\"close-sharp\"></ion-icon>\r\n Close\r\n </ion-button>\r\n </div>\r\n </p-footer>\r\n</p-dialog>\r\n<app-mfa2 *ngIf=\"isOtpModalEnabled\" [(display)]=\"isOtpModalEnabled\" [returningUser]=\"isReturningUser\" [verificationPreference]=\"verificationPreference\" [ssn]=\"ssn\" (success)=\"loginSuccess()\" (clear)=\"enableLexisNexis()\"></app-mfa2>\r\n<app-lexis-nexis *ngIf=\"isLexisNexisPopupEnabled\" [display]=\"isLexisNexisPopupEnabled\" [userModel] = \"userModel\" (success)=\"onLnSuccess()\" (error)=\"onLNError()\" (usps)=\"triggerUSPS()\"></app-lexis-nexis>\r\n<app-mfa-popup [(display)]=\"show2FADialog\" [user]=\"userModel\" [returningUser]=\"isReturningUser\" [heading]=\"mfaLoginHeader\" (success)=\"loginSuccess()\" (clear)=\"enableLexisNexis($event)\"></app-mfa-popup>\r\n\r\n\r\n<form [formGroup]=\"loginForm\" #loginFormDirective=\"ngForm\" *ngIf=\"!showForgotPassword\">\r\n <div class=\"p-fluid p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfileId\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'User ID' | translate}}</label>\r\n <input id=\"userProfileId\" type=\"text\" pInputText maxlength=\"30\" minlength=\"5\" [formControl]=\"username\">\r\n <app-error [field]='username' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: 'User ID is required.',\r\n minlength: 'User ID should have minimum 5 characters.'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfilePassword\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'Password (Case Sensitive)' | translate}}</label>\r\n <p-password [formControl]=\"password\" inputId=\"userProfilePassword\" [toggleMask]='true' [feedback]='false'></p-password>\r\n <app-error [field]='password' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: 'Password is required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"ion-padding-start ion-padding-end ion-text-left\" style=\"margin-top: -8px;\" *ngIf=\"false\">\r\n <app-captcha [formControl]=\"captcha\"></app-captcha>\r\n <app-error [field]='captcha' [form]=\"loginFormDirective\" [errDef]=\"{ \r\n required: 'Captcha is required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n\r\n <div class=\"p-fluid\">\r\n <div class=\"ion-text-right\">\r\n <ion-button (click)=\"signIn()\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\" class=\"white-background\">\r\n <ion-icon name=\"power-outline\" slot=\"start\"></ion-icon>\r\n {{'Login' | translate}}\r\n </ion-button>\r\n </div>\r\n <ion-row class=\"ion-padding-top\">\r\n <ion-col class=\"ion-text-left\">\r\n <a tabindex=\"0\" role=\"button\" class=\"link\" style=\"font-size: 14px;\" (click)=\"showDialog()\" (keydown.enter)=\"showDialog()\">{{'Forgot user ID?' | translate}}</a>\r\n </ion-col>\r\n <ion-col class=\"ion-text-right\">\r\n <a tabindex=\"0\" role=\"button\" class=\"link\" (click)=\"showForgotPassword = !showForgotPassword\" (keydown.enter)=\"showForgotPassword = !showForgotPassword\" style=\"font-size: 14px;\"\r\n type=\"submit\">{{'Forgot\r\n Password?' | translate}}</a>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n</form>\r\n\r\n<form *ngIf=\"showForgotPassword\" [formGroup]=\"resetForm\" #resetFormDirective=\"ngForm\">\r\n <div class=\"p-fluid p-formgrid p-grid\">\r\n <div class=\"field ion-text-left\" style=\"width: -webkit-fill-available;\">\r\n <label for=\"userProfileId\" [style.font-size]=\"fontSize\" [style.color]=\"color\">{{'User ID' | translate}}</label>\r\n <input id=\"userProfileId\" type=\"text\" pInputText maxlength=\"30\" minlength=\"5\" [formControl]=\"resetUsername\">\r\n <app-error [field]='resetUsername' [form]=\"resetFormDirective\" [errDef]=\"{ \r\n required: 'User ID is required.',\r\n minlength: 'User ID should have minimum 5 characters.'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"ion-text-left\">\r\n <app-captcha [formControl]=\"resetCaptcha\"></app-captcha>\r\n <app-error [field]='resetCaptcha' [form]=\"resetFormDirective\" [errDef]=\"{ \r\n required: 'Captcha is required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"p-fluid\">\r\n <div class=\"ion-text-right\">\r\n <ion-button (click)=\"showForgotPassword = !showForgotPassword\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\" class=\"white-background\">\r\n <ion-icon name=\"arrow-back-outline\" slot=\"start\"></ion-icon>\r\n {{'Login' | translate}}\r\n </ion-button>\r\n\r\n <ion-button (click)=\"initiateForgotPassword()\" color=\"primary\" type=\"submit\" shape=\"round\" fill=\"outline\"\r\n disabled=\"{{resetForm.invalid}}\" class=\"white-background\">\r\n <ion-icon name=\"mail-outline\" slot=\"start\"></ion-icon>\r\n {{'Send email' | translate}}\r\n </ion-button>\r\n </div>\r\n </div>\r\n\r\n \r\n</form>\r\n\r\n<p-dialog [visible]=\"isUSPSExpired\" [modal]=\"true\" appendTo=\"body\" position=\"top\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n[baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" closeOnEscape=\"false\">\r\n {{'usps.expd.popup.heading' | translate}}<br/>\r\n \r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"outline\" (click)=\"close()\">\r\n {{'usps.expd.popup.cancel' | translate}}\r\n </ion-button>\r\n <ion-button shape=\"round\" type=\"submit\" fill=\"solid\" (click)=\"triggerUSPSForExpiredProcess()\">\r\n {{'usps.expd.popup.process' | translate}}\r\n </ion-button>\r\n </ng-template>\r\n</p-dialog>\r\n\r\n<app-email-update [email]=\"userModel.emailId\" *ngIf=\"showEmailVerificationDialog\" (onClose)=\"logout()\" (onSuccess)=\"emailVerificationSuccess()\"></app-email-update>" }]
564
+ }], () => [{ type: i1.UtilService }, { type: i2.NavController }, { type: i3.UntypedFormBuilder }, { type: i4.LoginService }, { type: i2.Platform }, { type: i5.WeeklyCertServiceV2 }, { type: i6.OvpService }, { type: i0.ChangeDetectorRef }, { type: i7.Router }, { type: i8.ClaimantService }, { type: i9.LexisNexisService }], { loginFormDirective: [{
599
565
  type: ViewChild,
600
566
  args: ['loginFormDirective', { static: false }]
601
567
  }], resetFormDirective: [{
@@ -613,4 +579,4 @@ export class UserLoginComponent {
613
579
  type: Output
614
580
  }] }); })();
615
581
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserLoginComponent, { className: "UserLoginComponent", filePath: "lib\\components\\user-login\\user-login.component.ts", lineNumber: 21 }); })();
616
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1sb2dpbi91c2VyLWxvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy91c2VyLWxvZ2luL3VzZXItbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBb0UsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0FyRCwyQkFBZ0MsU0FBQSxTQUFBO0lBRXBCLCtDQUErQjtJQUFBLGlCQUFLO0lBQ3hDLDBCQUFJO0lBQUEsZ0RBQWdDO0lBQUEsaUJBQUssRUFBQSxFQUFBOzs7SUFHakQsMkJBQWdDLFNBQUEsU0FBQTtJQUVwQiwrQ0FBK0I7SUFBQSxpQkFBSztJQUN4QywwQkFBSTtJQUFBLGlEQUFpQztJQUFBLGlCQUFLLEVBQUEsRUFBQTs7OztJQWN0RCxvQ0FBNE47SUFBeEwsa1BBQStCLCtKQUE0RyxlQUFBLHNCQUFjLENBQUEsSUFBMUgsMkpBQXFJLGVBQUEsMEJBQWtCLENBQUEsSUFBdko7SUFBeUosaUJBQVc7OztJQUFuTSxrREFBK0IseUNBQUEseURBQUEsbUJBQUE7Ozs7SUFDbkUsMkNBQXdMO0lBQXZFLDJMQUFXLGVBQUEscUJBQWEsQ0FBQSxJQUFDLDBLQUFVLGVBQUEsbUJBQVcsQ0FBQSxJQUFyQix3S0FBK0IsZUFB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S0FBSztrQkFESixNQUFNOztrRkFwQ0ksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyLCBQbGF0Zm9ybSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2xhaW1hbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQtc2VydmljZS9jbGFpbWFudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFdlZWtseUNlcnRTZXJ2aWNlVjIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93ZWVrbHktY2VydC93ZWVrbHktY2VydC12Mi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3ZwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL292cC9vdnAuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZUV4cGlyeSB9IGZyb20gJ0BuZy1pZGxlL2NvcmUnO1xyXG5pbXBvcnQgeyBMZXhpc05leGlzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xleGlzLW5leGlzL2xleGlzLm5leGlzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC11c2VyLWxvZ2luJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1sb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1sb2dpbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckxvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdsb2dpbkZvcm1EaXJlY3RpdmUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgbG9naW5Gb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcbiAgQFZpZXdDaGlsZCgncmVzZXRGb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHJlc2V0Rm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG5cclxuICBwdWJsaWMgc2hvdzJGQURpYWxvZyA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93Rm9yZ290UGFzc3dvcmQgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1VzZXJuYW1lRXJyb3IgPSBmYWxzZTtcclxuICBwdWJsaWMgY2Fwc09uID0gZmFsc2U7XHJcbiAgcHVibGljIGRpc3BsYXlEaWFsb2cgPSBmYWxzZTtcclxuICBwdWJsaWMgbG9naW5Gb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyByZXNldEZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIGlzTG9naW5JblByb2dyZXNzID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2cgPSBmYWxzZTtcclxuICBwdWJsaWMgaXNMZXhpc05leGlzRW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgaXNPdHBNb2RhbEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGlzUmV0dXJuaW5nVXNlcjogYm9vbGVhbjtcclxuICBwdWJsaWMgdmVyaWZpY2F0aW9uUHJlZmVyZW5jZTtcclxuICBwdWJsaWMgc3NuOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBtZmFMb2dpbkhlYWRlciA6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIGlzVVNQU0V4cGlyZWQ6IGJvb2xlYW4gPWZhbHNlO1xyXG5cclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcblxyXG4gIEBJbnB1dCgpIGZvbnRTaXplOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGlzUGhvbmVNZmFSZXF1aXJlZEZvckFjY291bnRBY3RpdmF0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5hdjogTmF2Q29udHJvbGxlcixcclxuICAgIHB1YmxpYyBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxyXG4gICAgcHVibGljIGxvZ2luU2VydmljZTogTG9naW5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0sXHJcbiAgICBwcml2YXRlIHdjU2VydmljZTogV2Vla2x5Q2VydFNlcnZpY2VWMixcclxuICAgIHByaXZhdGUgb3ZwU2VydmljZTogT3ZwU2VydmljZSxcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGNzOiBDbGFpbWFudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgbG46IExleGlzTmV4aXNTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikpfTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlzT3RwTW9kYWxFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc0VuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNSZXR1cm5pbmdVc2VyID0gdHJ1ZTtcclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikgPT09IFwiZXNcIil7XHJcbiAgICAgIHRoaXMubWZhTG9naW5IZWFkZXIgPSBcIkVsIGPDs2RpZ28gZGUgdmFsaWRhY2nDs24gaGEgc2lkbyBlbnZpYWRvIGFsIG7Dum1lcm8gZGUgdGVsw6lmb25vIGluZ3Jlc2Fkb1wiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tZmFMb2dpbkhlYWRlciA9IFwiVmFsaWRhdGlvbiBjb2RlIGhhcyBiZWVuIHNlbnQgdG8gdGhlIHBob25lIG51bWJlciBlbnRlcmVkXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLmluaXRpbGl6ZUxvZ2luRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcclxuICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xyXG4gICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB0aGlzLnVzZXJNb2RlbCA9IG51bGw7XHJcbiAgICB0aGlzLnNob3cyRkFEaWFsb2cgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGluaXRpbGl6ZUxvZ2luRm9ybSgpIHtcclxuICAgIHRoaXMubG9naW5Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHVzZXJuYW1lOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIHBhc3N3b3JkOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIGNhcHRjaGE6IFtudWxsXSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVzZXRGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHVzZXJuYW1lOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIGNhcHRjaGE6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJuYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubG9naW5Gb3JtLmNvbnRyb2xzWyd1c2VybmFtZSddIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBwYXNzd29yZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmxvZ2luRm9ybS5jb250cm9sc1sncGFzc3dvcmQnXSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgY2FwdGNoYSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxvZ2luRm9ybS5jb250cm9sc1snY2FwdGNoYSddIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCByZXNldFVzZXJuYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucmVzZXRGb3JtLmNvbnRyb2xzWyd1c2VybmFtZSddIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCByZXNldENhcHRjaGEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNldEZvcm0uY29udHJvbHNbJ2NhcHRjaGEnXSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBzaWduSW4oKSB7XHJcbiAgICBpZiAodGhpcy5sb2dpbkZvcm0uaW52YWxpZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgYXV0aDogYW55ID0ge307XHJcbiAgICBhdXRoLnVzZXJJZCA9IHRoaXMudXNlcm5hbWUudmFsdWU7XHJcbiAgICBhdXRoLnBhc3N3b3JkID0gdGhpcy5wYXNzd29yZC52YWx1ZTtcclxuXHJcbiAgICB0aGlzLnV0aWxcclxuICAgICAgLnNob3dMb2FkZXIoKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UubG9naW5BbmRDaGVja0Zvck1GQShhdXRoKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgdXNlck1vZGVsOiBVc2VyTW9kZWwgPSByZXM7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlXHJcbiAgICAgICAgICAgICAgLnNldFVzZXIodXNlck1vZGVsKVxyXG4gICAgICAgICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXNlck1vZGVsID0gdXNlck1vZGVsO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zc24gPSB1c2VyTW9kZWw/LnNzbjtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9naW5TdWNjZXNzKCk7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXJyLmlzMkZBUmVxdWlyZWQgKyAnJyA9PSAndHJ1ZScpIHtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlck1vZGVsID0gZXJyO1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlck1vZGVsLnVzZXJuYW1lID0gdGhpcy51c2VybmFtZS52YWx1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJNb2RlbC5wYXNzd29yZCA9IHRoaXMucGFzc3dvcmQudmFsdWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93MkZBRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmKGVyci5kZXRhaWxzLmluY2x1ZGVzKFwiWW91ciBpZGVudGl0eSBtdXN0IGJlIHZlcmlmaWVkIGF0IFVTUFMgYnV0IHlvdXIgdGltZWZyYW1lIGhhcyBleHBpcmVkLlwiKSl7XHJcbiAgICAgICAgICAgICAvLyB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAvLyBcclxuICAgICAgICAgICAgIC8vIHRoaXMuZXJyb3IuZW1pdChlcnIpO1xyXG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50cmlnZ2VyVVNQU0ZvckV4cGlyZWQodGhpcy51c2VybmFtZS52YWx1ZSksIDIwMDApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpbnNpZGUgZWxzZScsIGVycik7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBlbmFibGVMZXhpc05leGlzKHRyaWdnZXJFeGl0QVBJID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5zaG93MkZBRGlhbG9nID0gZmFsc2U7XHJcbiAgICBpZiAoIXRyaWdnZXJFeGl0QVBJKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLypcclxuICAgICAgdGhpcy5sbi5pc0xleGlzTmV4aXNJZFByb29maW5nRW5hYmxlZFdpdGhVc2VySWQodGhpcy51c2VyTW9kZWwudXNlcm5hbWUpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgLy8gSWYgbGV4aXMtbmV4aXMgaWQgcHJvb2ZpbmcgaXMgZW5hYmxlZFxyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIHRoaXMuaXNMZXhpc05leGlzUG9wdXBFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy51dGlsLnNob3dFcnJvcihcIlRoZSBjbGFpbWFudCBhY2NvdW50IHdpdGggdXNlciBuYW1lXCIgKyB0aGlzLnVzZXJNb2RlbC51c2VybmFtZSArIFwiIGhhcyBiZWVuIGJsb2NrZWQuIFBsZWFzZSBjb250YWN0IEtET0wuXCIpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICovXHJcbiAgfVxyXG5cclxuICBvbkxuU3VjY2Vzcygpe1xyXG4gICAgdGhpcy5pc0xleGlzTmV4aXNQb3B1cEVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB0aGlzLnV0aWwuc3VjY2VzcygnWW91ciBJRCBwcm9vZmluZyB3YXMgc3VjY2Vzc2Z1bC4gVHJ5IHJlLWxvZ2luIG9yIGNoYW5nZSB5b3VyIHBhc3N3b3JkIHRvIGNvbnRpbnVlIScpO1xyXG4gICAgaWYgKHRoaXMucmVzZXRGb3JtLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5wYXNzd29yZC5yZXNldCgpO1xyXG4gICAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLmxvZ2luRm9ybURpcmVjdGl2ZS5yZXNldCgpO1xyXG4gICAgICB0aGlzLnJlc2V0Rm9ybS5yZXNldCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25MTkVycm9yKCl7XHJcbiAgICB0aGlzLnRyaWdnZXJVU1BTKCk7XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyVVNQUygpe1xyXG4gICAgdGhpcy5pc0xleGlzTmV4aXNQb3B1cEVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICBjb25zb2xlLmxvZyhcInVzcHMgaXMgdHJpZ2dlcmVkXCIpXHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlcklkJywgSlNPTi5zdHJpbmdpZnkodGhpcy51c2VyTW9kZWwudXNlcm5hbWUpKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvdXNwcy1yZWRpcmVjdCcsIFwiXCJdKSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyVVNQU0ZvckV4cGlyZWQodXNlcm5hbWUgOiBTdHJpbmcpe1xyXG4gICAgdGhpcy5pc0xleGlzTmV4aXNQb3B1cEVuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNVU1BTRXhwaXJlZD10cnVlOyAgXHJcbiAgICBjb25zb2xlLmxvZyhcInVzcHMgaXMgdHJpZ2dlcmVkXCIpXHJcbiAgIFxyXG4gICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlcklkJywgSlNPTi5zdHJpbmdpZnkodXNlcm5hbWUpKTtcclxuICAgIC8vc2V0VGltZW91dCgoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy91c3BzLXJlZGlyZWN0JywgXCJcIl0pLCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJVU1BTRm9yRXhwaXJlZFByb2Nlc3MoKXtcclxuICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1VTUFNFeHBpcmVkPXRydWU7ICBcclxuICAgIGNvbnNvbGUubG9nKFwidXNwcyBpcyB0cmlnZ2VyZWRcIilcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VySWQnLCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInVzZXJJZFwiKSk7ICBcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvdXNwcy1yZWRpcmVjdCcsIFwiXCJdKSwgMTAwMCk7XHJcbiAgICB0aGlzLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuIGFzeW5jIGxvZ2luU3VjY2VzcygpIHtcclxuICAgIGxldCB1c2VyTW9kZWwgPSB0aGlzLmxvZ2luU2VydmljZS5nZXRVc2VyKCk7XHJcbiAgICB0aGlzLnVzZXJNb2RlbCA9IHVzZXJNb2RlbDtcclxuICAgIGlmICh1c2VyTW9kZWwuY2hhbmdlUHdkKSB7XHJcbiAgICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnY2hhbmdlLXBhc3N3b3JkJyk7XHJcbiAgICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNMb2dpbkluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdXNlck1vZGVsLmVtYWlsU3RhdHVzICE9ICdWRVJGJyAmJlxyXG4gICAgICB1c2VyTW9kZWwuaXNFbWFpbFZlcmlmaWNhdGlvblJlcXVpcmVkXHJcbiAgICApIHtcclxuICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgdGhpcy5zaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2cgPSB0cnVlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVzZXJNb2RlbC5pczJGQVJlcXVpcmVkKSB7XHJcbiAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgIHRoaXMuc2hvdzJGQURpYWxvZyA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpc0NhcGFjaXRvciA9IHRoaXMucGxhdGZvcm0uaXMoJ2NhcGFjaXRvcicpO1xyXG4gICAgaWYgKFxyXG4gICAgICB1c2VyTW9kZWwuZGF5c1RpbGxQYXNzd29yZEV4cGlyZSAmJlxyXG4gICAgICB1c2VyTW9kZWwuZGF5c1RpbGxQYXNzd29yZEV4cGlyZSA8IDEwICYmXHJcbiAgICAgIExpYkNvbnN0YW50cy5sZWdhY3lNZW51ID09ICd0cnVlJyAmJlxyXG4gICAgICBpc0NhcGFjaXRvclxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnY2hhbmdlLXBhc3N3b3JkP2NoYW5nZVB3ZD10cnVlJyk7XHJcbiAgICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNMb2dpbkluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSAgICBcclxuICAgIGlmKHVzZXJNb2RlbC5zc24hPW51bGwpe1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkFJQyBGTE9XIGluIExvZ2luU2VydmljZVwiKTsgICAgXHJcbiAgICAgY29uc3QgZGF0YT0gYXdhaXQgdGhpcy53Y1NlcnZpY2UuZ2VuZXJhdGVFdmVudEZvclJlb3BlbkFpY0Zsb3codXNlck1vZGVsLnNzbilcclxuICAgICAgIC50aGVuKGFzeW5jID0+eyAgICAgICAgICBcclxuICAgICAgIH1cclxuXHJcbiAgICAgKS5jYXRjaChhc3luYyBlcnIgPT57XHJcbiAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICB9KSAgXHJcbiAgfVxyXG4gLyogICBpdCB3YXMgY29tbWVudGVkICAgZm9yIFBHTFAtMjI4MSAgIFxyXG4gaWYodXNlck1vZGVsLnNzbiE9bnVsbCl7XHJcbiAgICBjb25zb2xlLmxvZyhcIm92ZXJwYXltZW50IExvZ2luU2VydmljZVwiKTsgICAgXHJcbiAgIGNvbnN0IGRhdGE9IGF3YWl0IHRoaXMub3ZwU2VydmljZS50cmlnZ2VyUmVwYXltZW50RXZlbnQodXNlck1vZGVsLnNzbilcclxuICAgICAudGhlbihhc3luYyA9PnsgICAgICAgIFxyXG4gICAgIH1cclxuICAgKS5jYXRjaChhc3luYyBlcnIgPT57XHJcbiAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICB9KSAgXHJcbn0qL1xyXG5cclxuICAgIGlmICh1c2VyTW9kZWwuY2xhaW1hbnRJZCAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLm92cFNlcnZpY2UudHJpZ2dlck92ZXJwYXltZW50RXZlbnQoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHgpID0+IHt9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1c2VyTW9kZWwuY2xhaW1hbnRJZCAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLm92cFNlcnZpY2UudHJpZ2dlck92ZXJwYXltZW50RXZlbnRIaXN0b3J5KCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICh4KSA9PiB7fSxcclxuICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvdzJGQURpYWxvZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zdWNjZXNzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dEaWFsb2coKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlEaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhdGVGb3Jnb3RQYXNzd29yZCgpIHtcclxuICAgIGlmICh0aGlzLnJlc2V0Rm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMucGFzc3dvcmQucmVzZXQoKTtcclxuICAgICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcclxuICAgICAgdGhpcy5sb2dpbkZvcm1EaXJlY3RpdmUucmVzZXQoKTtcclxuICAgICAgdGhpcy5yZXNldEZvcm0ucmVzZXQoKTtcclxuICAgICAgdGhpcy5yZXNldEZvcm1EaXJlY3RpdmUucmVzZXQoKTtcclxuICAgICAgdGhpcy5yZXNldFVzZXJuYW1lLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHRoaXMucmVzZXRDYXB0Y2hhLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9naW5TZXJ2aWNlXHJcbiAgICAgICAgLmluaXRpYXRlRm9yZ290UGFzc3dvcmRWMih0aGlzLnJlc2V0VXNlcm5hbWUudmFsdWUpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcygnU2UgaGEgcmVzdGFibGVjaWRvIHN1IGNvbnRyYXNlw7FhLiBSZWNpYmlyw6EgdW4gY29ycmVvIGVsZWN0csOzbmljbyBjb24gdW5hIGNvbnRyYXNlw7FhIHRlbXBvcmFsIGUgaW5zdHJ1Y2Npb25lcyBwYXJhIGluaWNpYXIgc2VzacOzbi4nKTtcclxuICAgICAgICAgICAgfSBlbHNle1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKCdZb3VyIHBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0LiBZb3Ugc2hvdWxkIHJlY2VpdmUgYW4gZW1haWwgd2l0aCBhIHRlbXBvcmFyeSBwYXNzd29yZCBhbmQgbG9naW4gaW5zdHJ1Y3Rpb25zLicpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRGb3JtRGlyZWN0aXZlLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRVc2VybmFtZS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dGb3Jnb3RQYXNzd29yZCA9ICF0aGlzLnNob3dGb3Jnb3RQYXNzd29yZDtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNldEZvcm1EaXJlY3RpdmUucmVzZXRGb3JtKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0ZvcmdvdFBhc3N3b3JkID0gIXRoaXMuc2hvd0ZvcmdvdFBhc3N3b3JkO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIHRoaXMubG9naW5TZXJ2aWNlLmxvZ291dCgpO1xyXG4gICAgdGhpcy5zaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2cgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVtYWlsVmVyaWZpY2F0aW9uU3VjY2VzcygpIHtcclxuICAgIHRoaXMuc2hvd0VtYWlsVmVyaWZpY2F0aW9uRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLnN1Y2Nlc3MuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7ICBcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB0aGlzLmlzVVNQU0V4cGlyZWQgPSBmYWxzZTsgICBcclxuICAgXHJcbiAgfVxyXG5cclxuICBnZXQgdXNlcklkUmVxdWlyZWQoKXtcclxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24udXNlci5pZC5yZXF1aXJlZCcpO1xyXG4gIH1cclxuICBcclxuICBnZXQgdXNlcklkTWluaW11bUxlbmd0aCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24udXNlci5pZC5taW5sZW5ndGgnKTtcclxuICB9XHJcblxyXG4gIGdldCBwYXNzd29yZFJlcXVpcmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi5wYXNzd29yZC5yZXF1aXJlZCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNhcHRjaGFSZXF1aXJlZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24uY2FwdGNoYS5yZXF1aXJlZCcpO1xyXG4gIH1cclxufVxyXG4iLCI8cC1kaWFsb2cgWyh2aXNpYmxlKV09XCJkaXNwbGF5RGlhbG9nXCIgW21vZGFsXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIj5cclxuICAgIDxoNCBjbGFzcz1cImhlYWRpbmdcIj57e1wiY29tbW9uLm1lc3NhZ2VcIiB8IHRyYW5zbGF0ZX19PC9oND5cclxuICAgIHt7XCJsb2dpbi5mb3Jnb3QuaWQuYXNzaXN0XCIgfCB0cmFuc2xhdGV9fVxyXG4gICAgPGRpdiAqbmdJZj1cInV0aWwuaXNTdGF0ZSgnTVMnKVwiPlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgICAgPGxpPkVtcGxveWVycyBtYXkgY2FsbCA2MDEtNDkzLTk0Mjc8L2xpPlxyXG4gICAgICAgICAgICA8bGk+Q2xhaW1hbnRzIG1heSBjYWxsIDYwMS00OTMtOTQyNy48L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJ1dGlsLmlzU3RhdGUoJ01FJylcIj5cclxuICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaT5FbXBsb3llcnMgbWF5IGNhbGwgMjA3LTYyMS01MTIwPC9saT5cclxuICAgICAgICAgICAgPGxpPkNsYWltYW50cyBtYXkgY2FsbCAxLTgwMC01OTMtNzY2MDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSB0b2RvOiBnZXQgS1MgbnVtYmVyLS0+XHJcbiAgICA8YnIgLz5cclxuICAgIDxwLWZvb3Rlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImRpc3BsYXlEaWFsb2cgPSAhZGlzcGxheURpYWxvZ1wiIGNvbG9yPVwic3VjY2Vzc1wiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJjbG9zZS1zaGFycFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICB7e1wiY29tbW9uLmNsb3NlXCIgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3AtZm9vdGVyPlxyXG48L3AtZGlhbG9nPlxyXG48YXBwLW1mYTIgKm5nSWY9XCJpc090cE1vZGFsRW5hYmxlZFwiIFsoZGlzcGxheSldPVwiaXNPdHBNb2RhbEVuYWJsZWRcIiBbcmV0dXJuaW5nVXNlcl09XCJpc1JldHVybmluZ1VzZXJcIiBbdmVyaWZpY2F0aW9uUHJlZmVyZW5jZV09XCJ2ZXJpZmljYXRpb25QcmVmZXJlbmNlXCIgW3Nzbl09XCJzc25cIiAoc3VjY2Vzcyk9XCJsb2dpblN1Y2Nlc3MoKVwiIChjbGVhcik9XCJlbmFibGVMZXhpc05leGlzKClcIj48L2FwcC1tZmEyPlxyXG48YXBwLWxleGlzLW5leGlzICpuZ0lmPVwiaXNMZXhpc05leGlzUG9wdXBFbmFibGVkXCIgW2Rpc3BsYXldPVwiaXNMZXhpc05leGlzUG9wdXBFbmFibGVkXCIgW3VzZXJNb2RlbF0gPSBcInVzZXJNb2RlbFwiIChzdWNjZXNzKT1cIm9uTG5TdWNjZXNzKClcIiAoZXJyb3IpPVwib25MTkVycm9yKClcIiAodXNwcyk9XCJ0cmlnZ2VyVVNQUygpXCI+PC9hcHAtbGV4aXMtbmV4aXM+XHJcbjxhcHAtbWZhLXBvcHVwIFsoZGlzcGxheSldPVwic2hvdzJGQURpYWxvZ1wiIFt1c2VyXT1cInVzZXJNb2RlbFwiIFtyZXR1cm5pbmdVc2VyXT1cImlzUmV0dXJuaW5nVXNlclwiIFtoZWFkaW5nXT1cIm1mYUxvZ2luSGVhZGVyXCIgKHN1Y2Nlc3MpPVwibG9naW5TdWNjZXNzKClcIiAoY2xlYXIpPVwiZW5hYmxlTGV4aXNOZXhpcygkZXZlbnQpXCI+PC9hcHAtbWZhLXBvcHVwPlxyXG5cclxuXHJcbjxmb3JtIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCIgI2xvZ2luRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiICpuZ0lmPVwiIXNob3dGb3Jnb3RQYXNzd29yZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBwLWdyaWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiIHN0eWxlPVwid2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ1c2VyUHJvZmlsZUlkXCIgW3N0eWxlLmZvbnQtc2l6ZV09XCJmb250U2l6ZVwiIFtzdHlsZS5jb2xvcl09XCJjb2xvclwiPnt7J2xvZ2luLnVzZXIuaWQnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ1c2VyUHJvZmlsZUlkXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IG1heGxlbmd0aD1cIjMwXCIgbWlubGVuZ3RoPVwiNVwiIFtmb3JtQ29udHJvbF09XCJ1c2VybmFtZVwiPlxyXG4gICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3VzZXJuYW1lJyBbZm9ybV09XCJsb2dpbkZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdXNlcklkUmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICBtaW5sZW5ndGg6IHVzZXJJZE1pbmltdW1MZW5ndGhcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiIHN0eWxlPVwid2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ1c2VyUHJvZmlsZVBhc3N3b3JkXCIgW3N0eWxlLmZvbnQtc2l6ZV09XCJmb250U2l6ZVwiIFtzdHlsZS5jb2xvcl09XCJjb2xvclwiPnt7J2xvZ2luLnBhc3N3b3JkLmNhc2Uuc2Vuc2l0aXZlJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPHAtcGFzc3dvcmQgW2Zvcm1Db250cm9sXT1cInBhc3N3b3JkXCIgaW5wdXRJZD1cInVzZXJQcm9maWxlUGFzc3dvcmRcIiBbdG9nZ2xlTWFza109J3RydWUnIFtmZWVkYmFja109J2ZhbHNlJz48L3AtcGFzc3dvcmQ+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0ncGFzc3dvcmQnIFtmb3JtXT1cImxvZ2luRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBwYXNzd29yZFJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW9uLXBhZGRpbmctc3RhcnQgaW9uLXBhZGRpbmctZW5kIGlvbi10ZXh0LWxlZnRcIiBzdHlsZT1cIm1hcmdpbi10b3A6IC04cHg7XCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gICAgICAgIDxhcHAtY2FwdGNoYSBbZm9ybUNvbnRyb2xdPVwiY2FwdGNoYVwiPjwvYXBwLWNhcHRjaGE+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSdjYXB0Y2hhJyBbZm9ybV09XCJsb2dpbkZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgcmVxdWlyZWQ6IGNhcHRjaGFSZXF1aXJlZFxyXG4gICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInAtZmx1aWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInNpZ25JbigpXCIgY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwid2hpdGUtYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJwb3dlci1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgIHt7J2xvZ2luLmxvZ2luJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxhIHRhYmluZGV4PVwiMFwiIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cImxpbmtcIiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDtcIiAoY2xpY2spPVwic2hvd0RpYWxvZygpXCIgKGtleWRvd24uZW50ZXIpPVwic2hvd0RpYWxvZygpXCI+e3snbG9naW4udXNlci5pZC5mb3Jnb3QnIHwgdHJhbnNsYXRlfX08L2E+XHJcbiAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwibGlua1wiIChjbGljayk9XCJzaG93Rm9yZ290UGFzc3dvcmQgPSAhc2hvd0ZvcmdvdFBhc3N3b3JkXCIgKGtleWRvd24uZW50ZXIpPVwic2hvd0ZvcmdvdFBhc3N3b3JkID0gIXNob3dGb3Jnb3RQYXNzd29yZFwiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiPnt7J2xvZ2luLnBhc3N3b3JkLmZvcmdvdCcgfCB0cmFuc2xhdGV9fTwvYT5cclxuICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvZGl2PlxyXG48L2Zvcm0+XHJcblxyXG48Zm9ybSAqbmdJZj1cInNob3dGb3Jnb3RQYXNzd29yZFwiIFtmb3JtR3JvdXBdPVwicmVzZXRGb3JtXCIgI3Jlc2V0Rm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBwLWdyaWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiIHN0eWxlPVwid2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ1c2VyUHJvZmlsZUlkXCIgW3N0eWxlLmZvbnQtc2l6ZV09XCJmb250U2l6ZVwiIFtzdHlsZS5jb2xvcl09XCJjb2xvclwiPnt7J2xvZ2luLnVzZXIuaWQnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ1c2VyUHJvZmlsZUlkXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IG1heGxlbmd0aD1cIjMwXCIgbWlubGVuZ3RoPVwiNVwiIFtmb3JtQ29udHJvbF09XCJyZXNldFVzZXJuYW1lXCI+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0ncmVzZXRVc2VybmFtZScgW2Zvcm1dPVwicmVzZXRGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogdXNlcklkUmVxdWlyZWQsXHJcbiAgICAgICAgICAgIG1pbmxlbmd0aDogdXNlcklkTWluaW11bUxlbmd0aFxyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1sZWZ0XCI+XHJcbiAgICAgICAgICAgIDxhcHAtY2FwdGNoYSBbZm9ybUNvbnRyb2xdPVwicmVzZXRDYXB0Y2hhXCI+PC9hcHAtY2FwdGNoYT5cclxuICAgICAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSdyZXNldENhcHRjaGEnIFtmb3JtXT1cInJlc2V0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgIHJlcXVpcmVkOiBjYXB0Y2hhUmVxdWlyZWRcclxuICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJzaG93Rm9yZ290UGFzc3dvcmQgPSAhc2hvd0ZvcmdvdFBhc3N3b3JkXCIgY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwid2hpdGUtYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcnJvdy1iYWNrLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAge3snbG9naW4ubG9naW4nIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImluaXRpYXRlRm9yZ290UGFzc3dvcmQoKVwiIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9XCJ7e3Jlc2V0Rm9ybS5pbnZhbGlkfX1cIiBjbGFzcz1cIndoaXRlLWJhY2tncm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibWFpbC1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgIHt7J2xvZ2luLnNlbmQuZW1haWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgICAgXHJcbjwvZm9ybT5cclxuXHJcbjxwLWRpYWxvZyBbdmlzaWJsZV09XCJpc1VTUFNFeHBpcmVkXCIgW21vZGFsXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBwb3NpdGlvbj1cInRvcFwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQ1dncnfVwiXHJcbltiYXNlWkluZGV4XT1cIjUwMDBcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgW3Jlc2l6YWJsZV09XCJmYWxzZVwiIGNsb3NlT25Fc2NhcGU9XCJmYWxzZVwiPlxyXG4gICAge3sndXNwcy5leHBkLnBvcHVwLmhlYWRpbmcnIHwgdHJhbnNsYXRlfX08YnIvPlxyXG4gICAgXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICB7eyd1c3BzLmV4cGQucG9wdXAuY2FuY2VsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cInNvbGlkXCIgKGNsaWNrKT1cInRyaWdnZXJVU1BTRm9yRXhwaXJlZFByb2Nlc3MoKVwiPlxyXG4gICAgICAgICAge3sndXNwcy5leHBkLnBvcHVwLnByb2Nlc3MnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZGlhbG9nPlxyXG5cclxuPGFwcC1lbWFpbC11cGRhdGUgW2VtYWlsXT1cInVzZXJNb2RlbC5lbWFpbElkXCIgKm5nSWY9XCJzaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2dcIiAob25DbG9zZSk9XCJsb2dvdXQoKVwiIChvblN1Y2Nlc3MpPVwiZW1haWxWZXJpZmljYXRpb25TdWNjZXNzKClcIj48L2FwcC1lbWFpbC11cGRhdGU+Il19
582
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdXNlci1sb2dpbi91c2VyLWxvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy91c2VyLWxvZ2luL3VzZXItbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBb0UsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ0NyRCwyQkFBZ0MsU0FBQSxTQUFBO0lBRXBCLCtDQUErQjtJQUFBLGlCQUFLO0lBQ3hDLDBCQUFJO0lBQUEsZ0RBQWdDO0lBQUEsaUJBQUssRUFBQSxFQUFBOzs7SUFHakQsMkJBQWdDLFNBQUEsU0FBQTtJQUVwQiwrQ0FBK0I7SUFBQSxpQkFBSztJQUN4QywwQkFBSTtJQUFBLGlEQUFpQztJQUFBLGlCQUFLLEVBQUEsRUFBQTs7OztJQWN0RCxvQ0FBNE47SUFBeEwsa1BBQStCLCtKQUE0RyxlQUFBLHNCQUFjLENBQUEsSUFBMUgsMkpBQXFJLGVBQUEsMEJBQWtCLENBQUEsSUFBdko7SUFBeUosaUJBQVc7OztJQUFuTSxrREFBK0IseUNBQUEseURBQUEsbUJBQUE7Ozs7SUFDbkUsMkNBQXdMO0lBQXZFLDJMQUFXLGVBQUEscUJBQWEsQ0FBQSxJQUFDLDBLQUFVLGVBQUEsbUJBQVcsQ0FBQSxJQUFyQix3S0FBK0IsZUFB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LEtBQUs7WUFFRyxLQUFLO2tCQUFiLEtBQUs7WUFFRyxzQ0FBc0M7a0JBQTlDLEtBQUs7WUFHTixPQUFPO2tCQUROLE1BQU07WUFJUCxLQUFLO2tCQURKLE1BQU07O2tGQXBDSSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIsIFBsYXRmb3JtIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBMaWJDb25zdGFudHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvTGliQ29uc3RhbnRzJztcclxuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XHJcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbGFpbWFudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jbGFpbWFudC1zZXJ2aWNlL2NsYWltYW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2Vla2x5Q2VydFNlcnZpY2VWMiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dlZWtseS1jZXJ0L3dlZWtseS1jZXJ0LXYyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPdnBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZwL292cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlRXhwaXJ5IH0gZnJvbSAnQG5nLWlkbGUvY29yZSc7XHJcbmltcG9ydCB7IExleGlzTmV4aXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGV4aXMtbmV4aXMvbGV4aXMubmV4aXMuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdXNlci1sb2dpbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItbG9naW4uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VzZXItbG9naW4uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJMb2dpbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnbG9naW5Gb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIGxvZ2luRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG4gIEBWaWV3Q2hpbGQoJ3Jlc2V0Rm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyByZXNldEZvcm1EaXJlY3RpdmU6IE5nRm9ybTtcclxuXHJcbiAgcHVibGljIHNob3cyRkFEaWFsb2cgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0ZvcmdvdFBhc3N3b3JkID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dVc2VybmFtZUVycm9yID0gZmFsc2U7XHJcbiAgcHVibGljIGNhcHNPbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkaXNwbGF5RGlhbG9nID0gZmFsc2U7XHJcbiAgcHVibGljIGxvZ2luRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgcmVzZXRGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBpc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0VtYWlsVmVyaWZpY2F0aW9uRGlhbG9nID0gZmFsc2U7XHJcbiAgcHVibGljIGlzTGV4aXNOZXhpc0VuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGlzT3RwTW9kYWxFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBpc1JldHVybmluZ1VzZXI6IGJvb2xlYW47XHJcbiAgcHVibGljIHZlcmlmaWNhdGlvblByZWZlcmVuY2U7XHJcbiAgcHVibGljIHNzbjogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc0xleGlzTmV4aXNQb3B1cEVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbWZhTG9naW5IZWFkZXIgOiBzdHJpbmcgPSBcIlZhbGlkYXRpb24gY29kZSBoYXMgYmVlbiBzZW50IHRvIHRoZSBwaG9uZSBudW1iZXIgZW50ZXJlZFwiO1xyXG4gIHB1YmxpYyBpc1VTUFNFeHBpcmVkOiBib29sZWFuID1mYWxzZTtcclxuXHJcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xyXG5cclxuICBASW5wdXQoKSBmb250U2l6ZTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBpc1Bob25lTWZhUmVxdWlyZWRGb3JBY2NvdW50QWN0aXZhdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBuYXY6IE5hdkNvbnRyb2xsZXIsXHJcbiAgICBwdWJsaWMgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcclxuICAgIHB1YmxpYyBsb2dpblNlcnZpY2U6IExvZ2luU2VydmljZSxcclxuICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtLFxyXG4gICAgcHJpdmF0ZSB3Y1NlcnZpY2U6IFdlZWtseUNlcnRTZXJ2aWNlVjIsXHJcbiAgICBwcml2YXRlIG92cFNlcnZpY2U6IE92cFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBjczogQ2xhaW1hbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxuOiBMZXhpc05leGlzU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlzT3RwTW9kYWxFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc0VuYWJsZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNSZXR1cm5pbmdVc2VyID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5pdGlsaXplTG9naW5Gb3JtKCk7XHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xyXG4gICAgdGhpcy5sb2dpbkZvcm1EaXJlY3RpdmUucmVzZXRGb3JtKCk7XHJcbiAgICB0aGlzLmxvZ2luU2VydmljZS5yZXNldCgpO1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHRoaXMudXNlck1vZGVsID0gbnVsbDtcclxuICAgIHRoaXMuc2hvdzJGQURpYWxvZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlsaXplTG9naW5Gb3JtKCkge1xyXG4gICAgdGhpcy5sb2dpbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdXNlcm5hbWU6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgcGFzc3dvcmQ6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgY2FwdGNoYTogW251bGxdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5yZXNldEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdXNlcm5hbWU6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgY2FwdGNoYTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgdXNlcm5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ3VzZXJuYW1lJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhc3N3b3JkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubG9naW5Gb3JtLmNvbnRyb2xzWydwYXNzd29yZCddIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBjYXB0Y2hhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubG9naW5Gb3JtLmNvbnRyb2xzWydjYXB0Y2hhJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlc2V0VXNlcm5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNldEZvcm0uY29udHJvbHNbJ3VzZXJuYW1lJ10gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlc2V0Q2FwdGNoYSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJlc2V0Rm9ybS5jb250cm9sc1snY2FwdGNoYSddIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIHNpZ25JbigpIHtcclxuICAgIGlmICh0aGlzLmxvZ2luRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBhdXRoOiBhbnkgPSB7fTtcclxuICAgIGF1dGgudXNlcklkID0gdGhpcy51c2VybmFtZS52YWx1ZTtcclxuICAgIGF1dGgucGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkLnZhbHVlO1xyXG5cclxuICAgIHRoaXMudXRpbFxyXG4gICAgICAuc2hvd0xvYWRlcigpXHJcbiAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dpbkFuZENoZWNrRm9yTUZBKGF1dGgpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCB1c2VyTW9kZWw6IFVzZXJNb2RlbCA9IHJlcztcclxuICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2VcclxuICAgICAgICAgICAgICAuc2V0VXNlcih1c2VyTW9kZWwpXHJcbiAgICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwgPSB1c2VyTW9kZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNzbiA9IHVzZXJNb2RlbD8uc3NuO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpblN1Y2Nlc3MoKTtcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChlcnIuaXMyRkFSZXF1aXJlZCArICcnID09ICd0cnVlJykge1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwgPSBlcnI7XHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyTW9kZWwudXNlcm5hbWUgPSB0aGlzLnVzZXJuYW1lLnZhbHVlO1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlck1vZGVsLnBhc3N3b3JkID0gdGhpcy5wYXNzd29yZC52YWx1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNob3cyRkFEaWFsb2cgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYoZXJyLmRldGFpbHMuaW5jbHVkZXMoXCJZb3VyIGlkZW50aXR5IG11c3QgYmUgdmVyaWZpZWQgYXQgVVNQUyBidXQgeW91ciB0aW1lZnJhbWUgaGFzIGV4cGlyZWQuXCIpKXtcclxuICAgICAgICAgICAgIC8vIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgICAgIC8vIFxyXG4gICAgICAgICAgICAgLy8gdGhpcy5lcnJvci5lbWl0KGVycik7XHJcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRyaWdnZXJVU1BTRm9yRXhwaXJlZCh0aGlzLnVzZXJuYW1lLnZhbHVlKSwgMjAwMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2luc2lkZSBlbHNlJywgZXJyKTtcclxuICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGUpID0+IHtcclxuICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGVuYWJsZUxleGlzTmV4aXModHJpZ2dlckV4aXRBUEkgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnNob3cyRkFEaWFsb2cgPSBmYWxzZTtcclxuICAgIGlmICghdHJpZ2dlckV4aXRBUEkpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvKlxyXG4gICAgICB0aGlzLmxuLmlzTGV4aXNOZXhpc0lkUHJvb2ZpbmdFbmFibGVkV2l0aFVzZXJJZCh0aGlzLnVzZXJNb2RlbC51c2VybmFtZSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAvLyBJZiBsZXhpcy1uZXhpcyBpZCBwcm9vZmluZyBpcyBlbmFibGVkXHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgdGhpcy5pc0xleGlzTmV4aXNQb3B1cEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuc2hvd0Vycm9yKFwiVGhlIGNsYWltYW50IGFjY291bnQgd2l0aCB1c2VyIG5hbWVcIiArIHRoaXMudXNlck1vZGVsLnVzZXJuYW1lICsgXCIgaGFzIGJlZW4gYmxvY2tlZC4gUGxlYXNlIGNvbnRhY3QgS0RPTC5cIilcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgKi9cclxuICB9XHJcblxyXG4gIG9uTG5TdWNjZXNzKCl7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIHRoaXMudXRpbC5zdWNjZXNzKCdZb3VyIElEIHByb29maW5nIHdhcyBzdWNjZXNzZnVsLiBUcnkgcmUtbG9naW4gb3IgY2hhbmdlIHlvdXIgcGFzc3dvcmQgdG8gY29udGludWUhJyk7XHJcbiAgICBpZiAodGhpcy5yZXNldEZvcm0uaW52YWxpZCkge1xyXG4gICAgICB0aGlzLnBhc3N3b3JkLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMucmVzZXRGb3JtLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkxORXJyb3IoKXtcclxuICAgIHRoaXMudHJpZ2dlclVTUFMoKTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJVU1BTKCl7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIGNvbnNvbGUubG9nKFwidXNwcyBpcyB0cmlnZ2VyZWRcIilcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VySWQnLCBKU09OLnN0cmluZ2lmeSh0aGlzLnVzZXJNb2RlbC51c2VybmFtZSkpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy91c3BzLXJlZGlyZWN0JywgXCJcIl0pLCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHRyaWdnZXJVU1BTRm9yRXhwaXJlZCh1c2VybmFtZSA6IFN0cmluZyl7XHJcbiAgICB0aGlzLmlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1VTUFNFeHBpcmVkPXRydWU7ICBcclxuICAgIGNvbnNvbGUubG9nKFwidXNwcyBpcyB0cmlnZ2VyZWRcIilcclxuICAgXHJcbiAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd1c2VySWQnLCBKU09OLnN0cmluZ2lmeSh1c2VybmFtZSkpO1xyXG4gICAgLy9zZXRUaW1lb3V0KCgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3VzcHMtcmVkaXJlY3QnLCBcIlwiXSksIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlclVTUFNGb3JFeHBpcmVkUHJvY2Vzcygpe1xyXG4gICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcclxuICAgIHRoaXMuaXNMZXhpc05leGlzUG9wdXBFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzVVNQU0V4cGlyZWQ9dHJ1ZTsgIFxyXG4gICAgY29uc29sZS5sb2coXCJ1c3BzIGlzIHRyaWdnZXJlZFwiKVxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3VzZXJJZCcsIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidXNlcklkXCIpKTsgIFxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy91c3BzLXJlZGlyZWN0JywgXCJcIl0pLCAxMDAwKTtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gYXN5bmMgbG9naW5TdWNjZXNzKCkge1xyXG4gICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubG9naW5TZXJ2aWNlLmdldFVzZXIoKTtcclxuICAgIHRoaXMudXNlck1vZGVsID0gdXNlck1vZGVsO1xyXG4gICAgaWYgKHVzZXJNb2RlbC5jaGFuZ2VQd2QpIHtcclxuICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCdjaGFuZ2UtcGFzc3dvcmQnKTtcclxuICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB1c2VyTW9kZWwuZW1haWxTdGF0dXMgIT0gJ1ZFUkYnICYmXHJcbiAgICAgIHVzZXJNb2RlbC5pc0VtYWlsVmVyaWZpY2F0aW9uUmVxdWlyZWRcclxuICAgICkge1xyXG4gICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICB0aGlzLnNob3dFbWFpbFZlcmlmaWNhdGlvbkRpYWxvZyA9IHRydWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodXNlck1vZGVsLmlzMkZBUmVxdWlyZWQpIHtcclxuICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgdGhpcy5zaG93MkZBRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGlzQ2FwYWNpdG9yID0gdGhpcy5wbGF0Zm9ybS5pcygnY2FwYWNpdG9yJyk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHVzZXJNb2RlbC5kYXlzVGlsbFBhc3N3b3JkRXhwaXJlICYmXHJcbiAgICAgIHVzZXJNb2RlbC5kYXlzVGlsbFBhc3N3b3JkRXhwaXJlIDwgMTAgJiZcclxuICAgICAgTGliQ29uc3RhbnRzLmxlZ2FjeU1lbnUgPT0gJ3RydWUnICYmXHJcbiAgICAgIGlzQ2FwYWNpdG9yXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCdjaGFuZ2UtcGFzc3dvcmQ/Y2hhbmdlUHdkPXRydWUnKTtcclxuICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9ICAgIFxyXG4gICAgaWYodXNlck1vZGVsLnNzbiE9bnVsbCl7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQUlDIEZMT1cgaW4gTG9naW5TZXJ2aWNlXCIpOyAgICBcclxuICAgICBjb25zdCBkYXRhPSBhd2FpdCB0aGlzLndjU2VydmljZS5nZW5lcmF0ZUV2ZW50Rm9yUmVvcGVuQWljRmxvdyh1c2VyTW9kZWwuc3NuKVxyXG4gICAgICAgLnRoZW4oYXN5bmMgPT57ICAgICAgICAgIFxyXG4gICAgICAgfVxyXG5cclxuICAgICApLmNhdGNoKGFzeW5jIGVyciA9PntcclxuICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgIH0pICBcclxuICB9XHJcbiAvKiAgIGl0IHdhcyBjb21tZW50ZWQgICBmb3IgUEdMUC0yMjgxICAgXHJcbiBpZih1c2VyTW9kZWwuc3NuIT1udWxsKXtcclxuICAgIGNvbnNvbGUubG9nKFwib3ZlcnBheW1lbnQgTG9naW5TZXJ2aWNlXCIpOyAgICBcclxuICAgY29uc3QgZGF0YT0gYXdhaXQgdGhpcy5vdnBTZXJ2aWNlLnRyaWdnZXJSZXBheW1lbnRFdmVudCh1c2VyTW9kZWwuc3NuKVxyXG4gICAgIC50aGVuKGFzeW5jID0+eyAgICAgICAgXHJcbiAgICAgfVxyXG4gICApLmNhdGNoKGFzeW5jIGVyciA9PntcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgIH0pICBcclxufSovXHJcblxyXG4gICAgaWYgKHVzZXJNb2RlbC5jbGFpbWFudElkICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMub3ZwU2VydmljZS50cmlnZ2VyT3ZlcnBheW1lbnRFdmVudCgpLnN1YnNjcmliZShcclxuICAgICAgICAoeCkgPT4ge30sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVzZXJNb2RlbC5jbGFpbWFudElkICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMub3ZwU2VydmljZS50cmlnZ2VyT3ZlcnBheW1lbnRFdmVudEhpc3RvcnkoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHgpID0+IHt9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93MkZBRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLnN1Y2Nlc3MuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0RpYWxvZygpIHtcclxuICAgIHRoaXMuZGlzcGxheURpYWxvZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBpbml0aWF0ZUZvcmdvdFBhc3N3b3JkKCkge1xyXG4gICAgaWYgKHRoaXMucmVzZXRGb3JtLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5wYXNzd29yZC5yZXNldCgpO1xyXG4gICAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLmxvZ2luRm9ybURpcmVjdGl2ZS5yZXNldCgpO1xyXG4gICAgICB0aGlzLnJlc2V0Rm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLnJlc2V0Rm9ybURpcmVjdGl2ZS5yZXNldCgpO1xyXG4gICAgICB0aGlzLnJlc2V0VXNlcm5hbWUubWFya0FzRGlydHkoKTtcclxuICAgICAgdGhpcy5yZXNldENhcHRjaGEubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2dpblNlcnZpY2VcclxuICAgICAgICAuaW5pdGlhdGVGb3Jnb3RQYXNzd29yZFYyKHRoaXMucmVzZXRVc2VybmFtZS52YWx1ZSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHJlcykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcyhcclxuICAgICAgICAgICAgICAnWW91ciBwYXNzd29yZCBoYXMgYmVlbiByZXNldC4gWW91IHNob3VsZCByZWNlaXZlIGFuIGVtYWlsIHdpdGggYSB0ZW1wb3JhcnkgcGFzc3dvcmQgYW5kIGxvZ2luIGluc3RydWN0aW9ucy4nXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRGb3JtRGlyZWN0aXZlLnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRVc2VybmFtZS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dGb3Jnb3RQYXNzd29yZCA9ICF0aGlzLnNob3dGb3Jnb3RQYXNzd29yZDtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNldEZvcm1EaXJlY3RpdmUucmVzZXRGb3JtKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0ZvcmdvdFBhc3N3b3JkID0gIXRoaXMuc2hvd0ZvcmdvdFBhc3N3b3JkO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIHRoaXMubG9naW5TZXJ2aWNlLmxvZ291dCgpO1xyXG4gICAgdGhpcy5zaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2cgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVtYWlsVmVyaWZpY2F0aW9uU3VjY2VzcygpIHtcclxuICAgIHRoaXMuc2hvd0VtYWlsVmVyaWZpY2F0aW9uRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLnN1Y2Nlc3MuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7ICBcclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB0aGlzLmlzVVNQU0V4cGlyZWQgPSBmYWxzZTsgICBcclxuICAgXHJcbiAgfVxyXG59XHJcbiIsIjxwLWRpYWxvZyBbKHZpc2libGUpXT1cImRpc3BsYXlEaWFsb2dcIiBbbW9kYWxdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG4gICAgPGg0IGNsYXNzPVwiaGVhZGluZ1wiPk1lc3NhZ2U8L2g0PlxyXG5cclxuICAgIElmIHlvdSBmb3Jnb3QgeW91ciBVc2VyIElELCBhIEN1c3RvbWVyIFNlcnZpY2UgUmVwcmVzZW50YXRpdmUgaXMgYXZhaWxhYmxlIHRvIGFzc2lzdCB5b3UgZHVyaW5nIG5vcm1hbCBidXNpbmVzcyBob3Vycy5cclxuICAgIDxkaXYgKm5nSWY9XCJ1dGlsLmlzU3RhdGUoJ01TJylcIj5cclxuICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaT5FbXBsb3llcnMgbWF5IGNhbGwgNjAxLTQ5My05NDI3PC9saT5cclxuICAgICAgICAgICAgPGxpPkNsYWltYW50cyBtYXkgY2FsbCA2MDEtNDkzLTk0MjcuPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidXRpbC5pc1N0YXRlKCdNRScpXCI+XHJcbiAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICA8bGk+RW1wbG95ZXJzIG1heSBjYWxsIDIwNy02MjEtNTEyMDwvbGk+XHJcbiAgICAgICAgICAgIDxsaT5DbGFpbWFudHMgbWF5IGNhbGwgMS04MDAtNTkzLTc2NjA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gdG9kbzogZ2V0IEtTIG51bWJlci0tPlxyXG4gICAgPGJyIC8+XHJcbiAgICA8cC1mb290ZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJkaXNwbGF5RGlhbG9nID0gIWRpc3BsYXlEaWFsb2dcIiBjb2xvcj1cInN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwiY2xvc2Utc2hhcnBcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgQ2xvc2VcclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9wLWZvb3Rlcj5cclxuPC9wLWRpYWxvZz5cclxuPGFwcC1tZmEyICpuZ0lmPVwiaXNPdHBNb2RhbEVuYWJsZWRcIiBbKGRpc3BsYXkpXT1cImlzT3RwTW9kYWxFbmFibGVkXCIgW3JldHVybmluZ1VzZXJdPVwiaXNSZXR1cm5pbmdVc2VyXCIgW3ZlcmlmaWNhdGlvblByZWZlcmVuY2VdPVwidmVyaWZpY2F0aW9uUHJlZmVyZW5jZVwiIFtzc25dPVwic3NuXCIgKHN1Y2Nlc3MpPVwibG9naW5TdWNjZXNzKClcIiAoY2xlYXIpPVwiZW5hYmxlTGV4aXNOZXhpcygpXCI+PC9hcHAtbWZhMj5cclxuPGFwcC1sZXhpcy1uZXhpcyAqbmdJZj1cImlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZFwiIFtkaXNwbGF5XT1cImlzTGV4aXNOZXhpc1BvcHVwRW5hYmxlZFwiIFt1c2VyTW9kZWxdID0gXCJ1c2VyTW9kZWxcIiAoc3VjY2Vzcyk9XCJvbkxuU3VjY2VzcygpXCIgKGVycm9yKT1cIm9uTE5FcnJvcigpXCIgKHVzcHMpPVwidHJpZ2dlclVTUFMoKVwiPjwvYXBwLWxleGlzLW5leGlzPlxyXG48YXBwLW1mYS1wb3B1cCBbKGRpc3BsYXkpXT1cInNob3cyRkFEaWFsb2dcIiBbdXNlcl09XCJ1c2VyTW9kZWxcIiBbcmV0dXJuaW5nVXNlcl09XCJpc1JldHVybmluZ1VzZXJcIiBbaGVhZGluZ109XCJtZmFMb2dpbkhlYWRlclwiIChzdWNjZXNzKT1cImxvZ2luU3VjY2VzcygpXCIgKGNsZWFyKT1cImVuYWJsZUxleGlzTmV4aXMoJGV2ZW50KVwiPjwvYXBwLW1mYS1wb3B1cD5cclxuXHJcblxyXG48Zm9ybSBbZm9ybUdyb3VwXT1cImxvZ2luRm9ybVwiICNsb2dpbkZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIiAqbmdJZj1cIiFzaG93Rm9yZ290UGFzc3dvcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWQgcC1ncmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIiBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidXNlclByb2ZpbGVJZFwiIFtzdHlsZS5mb250LXNpemVdPVwiZm9udFNpemVcIiBbc3R5bGUuY29sb3JdPVwiY29sb3JcIj57eydVc2VyIElEJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IGlkPVwidXNlclByb2ZpbGVJZFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBtYXhsZW5ndGg9XCIzMFwiIG1pbmxlbmd0aD1cIjVcIiBbZm9ybUNvbnRyb2xdPVwidXNlcm5hbWVcIj5cclxuICAgICAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSd1c2VybmFtZScgW2Zvcm1dPVwibG9naW5Gb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ1VzZXIgSUQgaXMgcmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgbWlubGVuZ3RoOiAnVXNlciBJRCBzaG91bGQgaGF2ZSBtaW5pbXVtIDUgY2hhcmFjdGVycy4nXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGlvbi10ZXh0LWxlZnRcIiBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1wiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwidXNlclByb2ZpbGVQYXNzd29yZFwiIFtzdHlsZS5mb250LXNpemVdPVwiZm9udFNpemVcIiBbc3R5bGUuY29sb3JdPVwiY29sb3JcIj57eydQYXNzd29yZCAoQ2FzZSBTZW5zaXRpdmUpJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgPHAtcGFzc3dvcmQgW2Zvcm1Db250cm9sXT1cInBhc3N3b3JkXCIgaW5wdXRJZD1cInVzZXJQcm9maWxlUGFzc3dvcmRcIiBbdG9nZ2xlTWFza109J3RydWUnIFtmZWVkYmFja109J2ZhbHNlJz48L3AtcGFzc3dvcmQ+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0ncGFzc3dvcmQnIFtmb3JtXT1cImxvZ2luRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUGFzc3dvcmQgaXMgcmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImlvbi1wYWRkaW5nLXN0YXJ0IGlvbi1wYWRkaW5nLWVuZCBpb24tdGV4dC1sZWZ0XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtOHB4O1wiICpuZ0lmPVwiZmFsc2VcIj5cclxuICAgICAgICA8YXBwLWNhcHRjaGEgW2Zvcm1Db250cm9sXT1cImNhcHRjaGFcIj48L2FwcC1jYXB0Y2hhPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nY2FwdGNoYScgW2Zvcm1dPVwibG9naW5Gb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgIHJlcXVpcmVkOiAnQ2FwdGNoYSBpcyByZXF1aXJlZC4nXHJcbiAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic2lnbkluKClcIiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3aGl0ZS1iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBvd2VyLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAge3snTG9naW4nIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwibGlua1wiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiIChjbGljayk9XCJzaG93RGlhbG9nKClcIiAoa2V5ZG93bi5lbnRlcik9XCJzaG93RGlhbG9nKClcIj57eydGb3Jnb3QgdXNlciBJRD8nIHwgdHJhbnNsYXRlfX08L2E+XHJcbiAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGEgdGFiaW5kZXg9XCIwXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwibGlua1wiIChjbGljayk9XCJzaG93Rm9yZ290UGFzc3dvcmQgPSAhc2hvd0ZvcmdvdFBhc3N3b3JkXCIgKGtleWRvd24uZW50ZXIpPVwic2hvd0ZvcmdvdFBhc3N3b3JkID0gIXNob3dGb3Jnb3RQYXNzd29yZFwiIHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiPnt7J0ZvcmdvdFxyXG4gICAgICAgICAgICAgICAgICAgIFBhc3N3b3JkPycgfCB0cmFuc2xhdGV9fTwvYT5cclxuICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvZGl2PlxyXG48L2Zvcm0+XHJcblxyXG48Zm9ybSAqbmdJZj1cInNob3dGb3Jnb3RQYXNzd29yZFwiIFtmb3JtR3JvdXBdPVwicmVzZXRGb3JtXCIgI3Jlc2V0Rm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZCBwLWdyaWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaW9uLXRleHQtbGVmdFwiIHN0eWxlPVwid2lkdGg6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ1c2VyUHJvZmlsZUlkXCIgW3N0eWxlLmZvbnQtc2l6ZV09XCJmb250U2l6ZVwiIFtzdHlsZS5jb2xvcl09XCJjb2xvclwiPnt7J1VzZXIgSUQnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgaWQ9XCJ1c2VyUHJvZmlsZUlkXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IG1heGxlbmd0aD1cIjMwXCIgbWlubGVuZ3RoPVwiNVwiIFtmb3JtQ29udHJvbF09XCJyZXNldFVzZXJuYW1lXCI+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0ncmVzZXRVc2VybmFtZScgW2Zvcm1dPVwicmVzZXRGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ1VzZXIgSUQgaXMgcmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgbWlubGVuZ3RoOiAnVXNlciBJRCBzaG91bGQgaGF2ZSBtaW5pbXVtIDUgY2hhcmFjdGVycy4nXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWxlZnRcIj5cclxuICAgICAgICAgICAgPGFwcC1jYXB0Y2hhIFtmb3JtQ29udHJvbF09XCJyZXNldENhcHRjaGFcIj48L2FwcC1jYXB0Y2hhPlxyXG4gICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3Jlc2V0Q2FwdGNoYScgW2Zvcm1dPVwicmVzZXRGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgcmVxdWlyZWQ6ICdDYXB0Y2hhIGlzIHJlcXVpcmVkLidcclxuICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJzaG93Rm9yZ290UGFzc3dvcmQgPSAhc2hvd0ZvcmdvdFBhc3N3b3JkXCIgY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIGNsYXNzPVwid2hpdGUtYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcnJvdy1iYWNrLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAge3snTG9naW4nIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImluaXRpYXRlRm9yZ290UGFzc3dvcmQoKVwiIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIlxyXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9XCJ7e3Jlc2V0Rm9ybS5pbnZhbGlkfX1cIiBjbGFzcz1cIndoaXRlLWJhY2tncm91bmRcIj5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwibWFpbC1vdXRsaW5lXCIgc2xvdD1cInN0YXJ0XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgIHt7J1NlbmQgZW1haWwnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgICAgXHJcbjwvZm9ybT5cclxuXHJcbjxwLWRpYWxvZyBbdmlzaWJsZV09XCJpc1VTUFNFeHBpcmVkXCIgW21vZGFsXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiBwb3NpdGlvbj1cInRvcFwiIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQ1dncnfVwiXHJcbltiYXNlWkluZGV4XT1cIjUwMDBcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgW3Jlc2l6YWJsZV09XCJmYWxzZVwiIGNsb3NlT25Fc2NhcGU9XCJmYWxzZVwiPlxyXG4gICAge3sndXNwcy5leHBkLnBvcHVwLmhlYWRpbmcnIHwgdHJhbnNsYXRlfX08YnIvPlxyXG4gICAgXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICB7eyd1c3BzLmV4cGQucG9wdXAuY2FuY2VsJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZmlsbD1cInNvbGlkXCIgKGNsaWNrKT1cInRyaWdnZXJVU1BTRm9yRXhwaXJlZFByb2Nlc3MoKVwiPlxyXG4gICAgICAgICAge3sndXNwcy5leHBkLnBvcHVwLnByb2Nlc3MnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZGlhbG9nPlxyXG5cclxuPGFwcC1lbWFpbC11cGRhdGUgW2VtYWlsXT1cInVzZXJNb2RlbC5lbWFpbElkXCIgKm5nSWY9XCJzaG93RW1haWxWZXJpZmljYXRpb25EaWFsb2dcIiAob25DbG9zZSk9XCJsb2dvdXQoKVwiIChvblN1Y2Nlc3MpPVwiZW1haWxWZXJpZmljYXRpb25TdWNjZXNzKClcIj48L2FwcC1lbWFpbC11cGRhdGU+Il19