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

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 (528) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +2374 -1248
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +158 -99
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +36 -16
  4. package/esm2022/lib/components/add-wage/add-wage.component.mjs +161 -0
  5. package/esm2022/lib/components/address/address.component.mjs +267 -81
  6. package/esm2022/lib/components/address-popup/address-popup.component.mjs +97 -0
  7. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +289 -0
  8. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +245 -0
  9. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +203 -0
  10. package/esm2022/lib/components/bank-details/bank-details.component.mjs +47 -123
  11. package/esm2022/lib/components/claim-info/claim-info.component.mjs +408 -0
  12. package/esm2022/lib/components/contact-us/contact-us.component.mjs +4 -16
  13. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +3 -9
  14. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +32 -4
  15. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +30 -15
  16. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  17. package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
  18. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  19. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +596 -0
  20. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +356 -0
  21. package/esm2022/lib/components/email-update/email-update.component.mjs +16 -36
  22. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +319 -435
  23. package/esm2022/lib/components/employer-info/employer-info.component.mjs +319 -0
  24. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +238 -0
  25. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +302 -0
  26. package/esm2022/lib/components/error/error.component.mjs +22 -5
  27. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +172 -0
  28. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  29. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +178 -49
  30. package/esm2022/lib/components/footer/footer.component.mjs +90 -67
  31. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +201 -0
  32. package/esm2022/lib/components/header/header.component.mjs +456 -136
  33. package/esm2022/lib/components/history-page/history-page.component.mjs +571 -0
  34. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +13 -13
  35. package/esm2022/lib/components/idme/idme.component.mjs +84 -0
  36. package/esm2022/lib/components/info/info.component.mjs +4 -12
  37. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +1 -1
  38. package/esm2022/lib/components/job-title/job-title.component.mjs +93 -94
  39. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +142 -331
  40. package/esm2022/lib/components/link/link.component.mjs +1 -1
  41. package/esm2022/lib/components/menu/menu.component.mjs +60 -53
  42. package/esm2022/lib/components/mfa/mfa.component.mjs +116 -188
  43. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +11 -18
  44. package/esm2022/lib/components/money-expect/money-expect.component.mjs +148 -36
  45. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +3661 -0
  46. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +258 -0
  47. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +853 -0
  48. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +251 -0
  49. package/esm2022/lib/components/profile/profile.component.mjs +722 -338
  50. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +110 -33
  51. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +261 -0
  52. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +560 -0
  53. package/esm2022/lib/components/questionnaire/AppValidators.mjs +296 -47
  54. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +110 -65
  55. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +386 -129
  56. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +72 -70
  57. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +861 -1075
  58. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +186 -565
  59. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +28 -22
  60. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +113 -29
  61. package/esm2022/lib/components/questionnaire/question-control.service.mjs +2 -1
  62. package/esm2022/lib/components/questionnaire/question.service.mjs +5 -7
  63. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +15 -29
  64. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +491 -237
  65. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +25 -0
  66. package/esm2022/lib/components/search-employer/search-employer.component.mjs +155 -27
  67. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  68. package/esm2022/lib/components/sms/sms.component.mjs +336 -0
  69. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +4 -4
  70. package/esm2022/lib/components/user-login/user-login.component.mjs +116 -300
  71. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +527 -0
  72. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +274 -0
  73. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +147 -0
  74. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +167 -0
  75. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +613 -241
  76. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +114 -59
  77. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +806 -0
  78. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +129 -0
  79. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +136 -0
  80. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +72 -0
  81. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +50 -0
  82. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +92 -0
  83. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +1190 -0
  84. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +685 -0
  85. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +524 -0
  86. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +394 -0
  87. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +640 -0
  88. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +33 -0
  89. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +9 -0
  90. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +5 -0
  91. package/esm2022/lib/guards/auth.guard.mjs +50 -2
  92. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  93. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +51 -3
  94. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  95. package/esm2022/lib/models/ActiveClaimModel.mjs +3 -0
  96. package/esm2022/lib/models/CountyModel.mjs +3 -0
  97. package/esm2022/lib/models/DuaAppDataModel.mjs +3 -0
  98. package/esm2022/lib/models/DuaRequestModel.mjs +3 -0
  99. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +6 -0
  100. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  101. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +4 -0
  102. package/esm2022/lib/models/EmployerPayInfoModel.mjs +6 -0
  103. package/esm2022/lib/models/FarmUsageComponentModel.mjs +2 -0
  104. package/esm2022/lib/models/GrossEarningsModel.mjs +3 -0
  105. package/esm2022/lib/models/HelpConstants.mjs +5 -0
  106. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +3 -0
  107. package/esm2022/lib/models/LibConstants.mjs +45 -6
  108. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  109. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +3 -0
  110. package/esm2022/lib/models/RetroWeeksModel.mjs +3 -0
  111. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +3 -0
  112. package/esm2022/lib/models/SendOtpRequestModel.mjs +3 -0
  113. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +3 -0
  114. package/esm2022/lib/models/WageCalculatorModel.mjs +3 -0
  115. package/esm2022/lib/models/WageInfoModel.mjs +4 -0
  116. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +3 -0
  117. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +3 -0
  118. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +3 -0
  119. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +3 -0
  120. package/esm2022/lib/models/combo-model.mjs +343 -0
  121. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  122. package/esm2022/lib/models/dependent.model.mjs +1 -1
  123. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +7 -0
  124. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +3 -0
  125. package/esm2022/lib/models/fileupload/FileObject.mjs +3 -0
  126. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +7 -0
  127. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +8 -0
  128. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  129. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +2 -1
  130. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  131. package/esm2022/lib/models/questionnaire/ComboModel.mjs +101 -179
  132. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  133. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  134. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +3 -0
  135. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  136. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +3 -0
  137. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +3 -0
  138. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +2 -0
  139. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +7 -0
  140. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +7 -0
  141. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +6 -0
  142. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +34 -0
  143. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +15 -0
  144. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +11 -0
  145. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +135 -23
  146. package/esm2022/lib/pages/BasePage.mjs +4 -23
  147. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +22 -18
  148. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +142 -124
  149. package/esm2022/lib/pages/common/landing/landing.component.mjs +7 -8
  150. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  151. package/esm2022/lib/pages/common/login/login.component.mjs +6 -5
  152. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  153. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  154. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -1
  155. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  156. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +7 -2
  157. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +101 -0
  158. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +1 -1
  159. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +151 -0
  160. package/esm2022/lib/services/appeal/appeal.service.mjs +37 -0
  161. package/esm2022/lib/services/base-service.mjs +4 -1
  162. package/esm2022/lib/services/birt-service/birt.service.mjs +57 -0
  163. package/esm2022/lib/services/chatbot/chatbot.service.mjs +1 -2
  164. package/esm2022/lib/services/claimant-service/claimant.service.mjs +7 -13
  165. package/esm2022/lib/services/claims/claims.service.mjs +102 -14
  166. package/esm2022/lib/services/employer/employer-service.mjs +35 -0
  167. package/esm2022/lib/services/event-service/event-service.mjs +44 -0
  168. package/esm2022/lib/services/help/help.service.mjs +1 -1
  169. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  170. package/esm2022/lib/services/login/login.service.mjs +29 -11
  171. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +327 -0
  172. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +4 -1
  173. package/esm2022/lib/services/questionnaire/validation.service.mjs +4 -1
  174. package/esm2022/lib/services/security-service/security.service.mjs +23 -6
  175. package/esm2022/lib/services/util/util.service.mjs +61 -5
  176. package/esm2022/lib/services/weekly-cert/review.service.mjs +101 -0
  177. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +186 -14
  178. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +37 -0
  179. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +58 -0
  180. package/esm2022/lib/validations/AppRegex.mjs +1 -3
  181. package/esm2022/lib/validations/AppValidators.mjs +78 -62
  182. package/esm2022/public-api.mjs +47 -5
  183. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +41557 -22067
  184. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  185. package/lib/components/add-employer/add-employer.component.d.ts +85 -52
  186. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  187. package/lib/components/add-participant/add-participant.component.d.ts +11 -2
  188. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  189. package/lib/components/add-payment/add-payment.component.d.ts +7 -2
  190. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  191. package/lib/components/add-wage/add-wage.component.d.ts +30 -0
  192. package/lib/components/add-wage/add-wage.component.d.ts.map +1 -0
  193. package/lib/components/address/address.component.d.ts +41 -5
  194. package/lib/components/address/address.component.d.ts.map +1 -1
  195. package/lib/components/address-popup/address-popup.component.d.ts +16 -0
  196. package/lib/components/address-popup/address-popup.component.d.ts.map +1 -0
  197. package/lib/components/address-suggestion/address-suggestion.component.d.ts +43 -0
  198. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +1 -0
  199. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +37 -0
  200. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +1 -0
  201. package/lib/components/associate-ssn/associate-ssn.component.d.ts +33 -0
  202. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +1 -0
  203. package/lib/components/bank-details/bank-details.component.d.ts +0 -6
  204. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  205. package/lib/components/claim-info/claim-info.component.d.ts +49 -0
  206. package/lib/components/claim-info/claim-info.component.d.ts.map +1 -0
  207. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  208. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  209. package/lib/components/dua-request-page/dua-request-page.component.d.ts +74 -0
  210. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +1 -0
  211. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +61 -0
  212. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +1 -0
  213. package/lib/components/email-update/email-update.component.d.ts +1 -7
  214. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  215. package/lib/components/employer-grid/employer-grid.component.d.ts +1 -12
  216. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  217. package/lib/components/employer-info/employer-info.component.d.ts +50 -0
  218. package/lib/components/employer-info/employer-info.component.d.ts.map +1 -0
  219. package/lib/components/employer-pay/employer-pay.component.d.ts +51 -0
  220. package/lib/components/employer-pay/employer-pay.component.d.ts.map +1 -0
  221. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +43 -0
  222. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +1 -0
  223. package/lib/components/error/error.component.d.ts +3 -2
  224. package/lib/components/error/error.component.d.ts.map +1 -1
  225. package/lib/components/farm-usage/farm-usage.component.d.ts +33 -0
  226. package/lib/components/farm-usage/farm-usage.component.d.ts.map +1 -0
  227. package/lib/components/file-uploader/file-uploader.component.d.ts +5 -1
  228. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  229. package/lib/components/footer/footer.component.d.ts.map +1 -1
  230. package/lib/components/gross-earnings/gross-earnings.component.d.ts +42 -0
  231. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +1 -0
  232. package/lib/components/header/header.component.d.ts +17 -2
  233. package/lib/components/header/header.component.d.ts.map +1 -1
  234. package/lib/components/history-page/history-page.component.d.ts +80 -0
  235. package/lib/components/history-page/history-page.component.d.ts.map +1 -0
  236. package/lib/components/idme/idme.component.d.ts +19 -0
  237. package/lib/components/idme/idme.component.d.ts.map +1 -0
  238. package/lib/components/job-title/job-title.component.d.ts +22 -21
  239. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  240. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +5 -2
  241. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  242. package/lib/components/menu/menu.component.d.ts +2 -1
  243. package/lib/components/menu/menu.component.d.ts.map +1 -1
  244. package/lib/components/mfa/mfa.component.d.ts +7 -14
  245. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  246. package/lib/components/mfa-popup/mfa-popup.component.d.ts +6 -8
  247. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  248. package/lib/components/money-expect/money-expect.component.d.ts +15 -4
  249. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  250. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +311 -0
  251. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +1 -0
  252. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +33 -0
  253. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +1 -0
  254. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +97 -0
  255. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +1 -0
  256. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +33 -0
  257. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +1 -0
  258. package/lib/components/profile/profile.component.d.ts +81 -49
  259. package/lib/components/profile/profile.component.d.ts.map +1 -1
  260. package/lib/components/profile-redirect/profile-redirect.component.d.ts +9 -2
  261. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  262. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +54 -0
  263. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +1 -0
  264. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +74 -0
  265. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +1 -0
  266. package/lib/components/questionnaire/AppValidators.d.ts +1 -0
  267. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  268. package/lib/components/questionnaire/account-success/account-success.page.d.ts +13 -10
  269. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  270. package/lib/components/questionnaire/common-success/common-success.page.d.ts +7 -0
  271. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  272. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +3 -1
  273. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  274. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +31 -33
  275. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  276. package/lib/components/questionnaire/dynamic-form.component.d.ts +10 -34
  277. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  278. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +0 -7
  279. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  280. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +7 -1
  281. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  282. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  283. package/lib/components/questionnaire/question.service.d.ts +0 -1
  284. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  285. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +1 -7
  286. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  287. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +11 -3
  288. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  289. package/lib/components/scrollable-text/scrollable-text.component.d.ts +11 -0
  290. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +1 -0
  291. package/lib/components/search-employer/search-employer.component.d.ts +5 -4
  292. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  293. package/lib/components/sms/sms.component.d.ts +63 -0
  294. package/lib/components/sms/sms.component.d.ts.map +1 -0
  295. package/lib/components/user-login/user-login.component.d.ts +5 -32
  296. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  297. package/lib/components/wage-calculator/wage-calculator.component.d.ts +44 -0
  298. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +1 -0
  299. package/lib/components/wage-grid/wage-grid.component.d.ts +43 -0
  300. package/lib/components/wage-grid/wage-grid.component.d.ts.map +1 -0
  301. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +28 -0
  302. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +1 -0
  303. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +28 -0
  304. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +1 -0
  305. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +26 -3
  306. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  307. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +9 -3
  308. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  309. package/lib/components/weekly-certification/weekly-certification.component.d.ts +101 -0
  310. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +1 -0
  311. package/lib/components/weekly-confirmation/confirmation.component.d.ts +21 -0
  312. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +1 -0
  313. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +34 -0
  314. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +1 -0
  315. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +17 -0
  316. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +1 -0
  317. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +10 -0
  318. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +1 -0
  319. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +17 -0
  320. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +1 -0
  321. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +105 -0
  322. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +1 -0
  323. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +71 -0
  324. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +1 -0
  325. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +59 -0
  326. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +1 -0
  327. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +47 -0
  328. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +1 -0
  329. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +78 -0
  330. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +1 -0
  331. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +8 -0
  332. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +1 -0
  333. package/lib/enums/AddressValidationResponseEnum.d.ts +8 -0
  334. package/lib/enums/AddressValidationResponseEnum.d.ts.map +1 -0
  335. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +4 -0
  336. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +1 -0
  337. package/lib/guards/auth.guard.d.ts.map +1 -1
  338. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  339. package/lib/models/ActiveClaimModel.d.ts +8 -0
  340. package/lib/models/ActiveClaimModel.d.ts.map +1 -0
  341. package/lib/models/CountyModel.d.ts +8 -0
  342. package/lib/models/CountyModel.d.ts.map +1 -0
  343. package/lib/models/DuaAppDataModel.d.ts +5 -0
  344. package/lib/models/DuaAppDataModel.d.ts.map +1 -0
  345. package/lib/models/DuaRequestModel.d.ts +10 -0
  346. package/lib/models/DuaRequestModel.d.ts.map +1 -0
  347. package/lib/models/DuaRetroWeeksComponentModel.d.ts +5 -0
  348. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +1 -0
  349. package/lib/models/EmployerDetailSearchResult.d.ts +4 -1
  350. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  351. package/lib/models/EmployerInfoComponentModel.d.ts +9 -0
  352. package/lib/models/EmployerInfoComponentModel.d.ts.map +1 -0
  353. package/lib/models/EmployerPayInfoModel.d.ts +20 -0
  354. package/lib/models/EmployerPayInfoModel.d.ts.map +1 -0
  355. package/lib/models/FarmUsageComponentModel.d.ts +10 -0
  356. package/lib/models/FarmUsageComponentModel.d.ts.map +1 -0
  357. package/lib/models/GrossEarningsModel.d.ts +6 -0
  358. package/lib/models/GrossEarningsModel.d.ts.map +1 -0
  359. package/lib/models/HelpConstants.d.ts +5 -0
  360. package/lib/models/HelpConstants.d.ts.map +1 -0
  361. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +7 -0
  362. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +1 -0
  363. package/lib/models/LibConstants.d.ts +40 -1
  364. package/lib/models/LibConstants.d.ts.map +1 -1
  365. package/lib/models/PaymentComponentModel.d.ts +1 -1
  366. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  367. package/lib/models/ReasonSeparationRequestModel.d.ts +7 -0
  368. package/lib/models/ReasonSeparationRequestModel.d.ts.map +1 -0
  369. package/lib/models/RetroWeeksModel.d.ts +11 -0
  370. package/lib/models/RetroWeeksModel.d.ts.map +1 -0
  371. package/lib/models/SecurityQuestionAnswerModel.d.ts +7 -0
  372. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +1 -0
  373. package/lib/models/SendOtpRequestModel.d.ts +12 -0
  374. package/lib/models/SendOtpRequestModel.d.ts.map +1 -0
  375. package/lib/models/VerifyOtpRequestModel.d.ts +8 -0
  376. package/lib/models/VerifyOtpRequestModel.d.ts.map +1 -0
  377. package/lib/models/WageCalculatorModel.d.ts +15 -0
  378. package/lib/models/WageCalculatorModel.d.ts.map +1 -0
  379. package/lib/models/WageInfoModel.d.ts +9 -0
  380. package/lib/models/WageInfoModel.d.ts.map +1 -0
  381. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +12 -0
  382. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +1 -0
  383. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +11 -0
  384. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +1 -0
  385. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +6 -0
  386. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +1 -0
  387. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +16 -0
  388. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +1 -0
  389. package/lib/models/combo-model.d.ts +42 -0
  390. package/lib/models/combo-model.d.ts.map +1 -0
  391. package/lib/models/dashboard-model.d.ts +22 -0
  392. package/lib/models/dashboard-model.d.ts.map +1 -1
  393. package/lib/models/fileupload/DocUploadModel.d.ts +22 -0
  394. package/lib/models/fileupload/DocUploadModel.d.ts.map +1 -0
  395. package/lib/models/fileupload/EmployerDataModel.d.ts +6 -0
  396. package/lib/models/fileupload/EmployerDataModel.d.ts.map +1 -0
  397. package/lib/models/fileupload/FileObject.d.ts +8 -0
  398. package/lib/models/fileupload/FileObject.d.ts.map +1 -0
  399. package/lib/models/fileupload/FileObjectArray.d.ts +8 -0
  400. package/lib/models/fileupload/FileObjectArray.d.ts.map +1 -0
  401. package/lib/models/questionnaire/AppealParticipantModel.d.ts +17 -0
  402. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +1 -0
  403. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +3 -0
  404. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  405. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +13 -4
  406. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  407. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +4 -1
  408. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  409. package/lib/models/questionnaire/ComboModel.d.ts +28 -16
  410. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  411. package/lib/models/questionnaire/ElementsModel.d.ts +0 -1
  412. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  413. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +2 -0
  414. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  415. package/lib/models/questionnaire/ScrollableTextModel.d.ts +4 -0
  416. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +1 -0
  417. package/lib/models/questionnaire/StatusModel.d.ts +1 -0
  418. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  419. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +4 -0
  420. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +1 -0
  421. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +9 -0
  422. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +1 -0
  423. package/lib/models/weekly-cert/address-detail-model.d.ts +14 -0
  424. package/lib/models/weekly-cert/address-detail-model.d.ts.map +1 -0
  425. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +15 -0
  426. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +1 -0
  427. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +27 -0
  428. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +1 -0
  429. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +57 -0
  430. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +1 -0
  431. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +59 -0
  432. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +1 -0
  433. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +66 -0
  434. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +1 -0
  435. package/lib/models/weekly-cert/work-search-v2-model.d.ts +18 -0
  436. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +1 -0
  437. package/lib/ngx-reusa-app-lib.module.d.ts +124 -86
  438. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  439. package/lib/pages/BasePage.d.ts +3 -6
  440. package/lib/pages/BasePage.d.ts.map +1 -1
  441. package/lib/pages/common/change-password/change-password.page.d.ts +3 -0
  442. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  443. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  444. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  445. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +14 -0
  446. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +1 -0
  447. package/lib/services/address-validation-service/address-validation.service.d.ts +44 -0
  448. package/lib/services/address-validation-service/address-validation.service.d.ts.map +1 -0
  449. package/lib/services/appeal/appeal.service.d.ts +16 -0
  450. package/lib/services/appeal/appeal.service.d.ts.map +1 -0
  451. package/lib/services/base-service.d.ts +12 -0
  452. package/lib/services/base-service.d.ts.map +1 -1
  453. package/lib/services/birt-service/birt.service.d.ts +17 -0
  454. package/lib/services/birt-service/birt.service.d.ts.map +1 -0
  455. package/lib/services/claimant-service/claimant.service.d.ts +5 -6
  456. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  457. package/lib/services/claims/claims.service.d.ts +38 -5
  458. package/lib/services/claims/claims.service.d.ts.map +1 -1
  459. package/lib/services/employer/employer-service.d.ts +16 -0
  460. package/lib/services/employer/employer-service.d.ts.map +1 -0
  461. package/lib/services/event-service/event-service.d.ts +20 -0
  462. package/lib/services/event-service/event-service.d.ts.map +1 -0
  463. package/lib/services/login/login.service.d.ts +5 -3
  464. package/lib/services/login/login.service.d.ts.map +1 -1
  465. package/lib/services/offline-claims/offline-claims.service.d.ts +64 -0
  466. package/lib/services/offline-claims/offline-claims.service.d.ts.map +1 -0
  467. package/lib/services/questionnaire/questionnaire.service.d.ts +1 -0
  468. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  469. package/lib/services/questionnaire/validation.service.d.ts +3 -0
  470. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  471. package/lib/services/security-service/security.service.d.ts +12 -4
  472. package/lib/services/security-service/security.service.d.ts.map +1 -1
  473. package/lib/services/util/util.service.d.ts +6 -0
  474. package/lib/services/util/util.service.d.ts.map +1 -1
  475. package/lib/services/weekly-cert/review.service.d.ts +23 -0
  476. package/lib/services/weekly-cert/review.service.d.ts.map +1 -0
  477. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +47 -5
  478. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  479. package/lib/services/weekly-cert/weekly-cert.service.d.ts +17 -0
  480. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +1 -0
  481. package/lib/services/weekly-cert/work-search.service.d.ts +26 -0
  482. package/lib/services/weekly-cert/work-search.service.d.ts.map +1 -0
  483. package/lib/validations/AppRegex.d.ts +0 -2
  484. package/lib/validations/AppRegex.d.ts.map +1 -1
  485. package/lib/validations/AppValidators.d.ts +20 -24
  486. package/lib/validations/AppValidators.d.ts.map +1 -1
  487. package/package.json +2 -2
  488. package/public-api.d.ts +46 -4
  489. package/public-api.d.ts.map +1 -1
  490. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +0 -340
  491. package/esm2022/lib/components/mfa2/mfa2.component.mjs +0 -261
  492. package/esm2022/lib/components/security-question/security-question.component.mjs +0 -189
  493. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +0 -2
  494. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +0 -2
  495. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +0 -2
  496. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +0 -2
  497. package/esm2022/lib/models/LexisNexisResponseModel.mjs +0 -3
  498. package/esm2022/lib/models/PartialEmploymentModel.mjs +0 -3
  499. package/esm2022/lib/models/SecurityQuestionModel.mjs +0 -3
  500. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +0 -36
  501. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +0 -60
  502. package/esm2022/lib/services/ovp/ovp.service.mjs +0 -43
  503. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +0 -59
  504. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +0 -1
  505. package/lib/components/mfa2/mfa2.component.d.ts +0 -48
  506. package/lib/components/mfa2/mfa2.component.d.ts.map +0 -1
  507. package/lib/components/security-question/security-question.component.d.ts +0 -37
  508. package/lib/components/security-question/security-question.component.d.ts.map +0 -1
  509. package/lib/models/LexisNexisAccountCreationModel.d.ts +0 -15
  510. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +0 -1
  511. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +0 -16
  512. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +0 -1
  513. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +0 -39
  514. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +0 -1
  515. package/lib/models/LexisNexisEnabledResponseModel.d.ts +0 -5
  516. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +0 -1
  517. package/lib/models/LexisNexisResponseModel.d.ts +0 -7
  518. package/lib/models/LexisNexisResponseModel.d.ts.map +0 -1
  519. package/lib/models/PartialEmploymentModel.d.ts +0 -6
  520. package/lib/models/PartialEmploymentModel.d.ts.map +0 -1
  521. package/lib/models/SecurityQuestionModel.d.ts +0 -7
  522. package/lib/models/SecurityQuestionModel.d.ts.map +0 -1
  523. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +0 -16
  524. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +0 -1
  525. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +0 -26
  526. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +0 -1
  527. package/lib/services/ovp/ovp.service.d.ts +0 -17
  528. package/lib/services/ovp/ovp.service.d.ts.map +0 -1
@@ -0,0 +1,806 @@
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import { LibConstants } from '../../models/LibConstants';
3
+ import { BasePage } from '../../pages/BasePage';
4
+ import { HelpConstants } from '../../models/HelpConstants';
5
+ import { SummaryComponentV2 } from '../weekly-summary-v2/summary.component-v2';
6
+ import { WorkSearchQuestionComponentV2 } from '../weekly-work-search-question-v2/work-search-question.component-v2';
7
+ import { AcknowledgementMsComponent } from '../../components/weekly-acknowledgement-ms/acknowledgement-ms.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../services/weekly-cert/weekly-cert-v2.service";
10
+ import * as i2 from "@angular/forms";
11
+ import * as i3 from "../../services/util/util.service";
12
+ import * as i4 from "@ionic/angular";
13
+ import * as i5 from "@angular/platform-browser";
14
+ import * as i6 from "../../services/help/help.service";
15
+ import * as i7 from "../../services/login/login.service";
16
+ import * as i8 from "../../services/claimant-context/claimant-context.service";
17
+ import * as i9 from "@angular/common";
18
+ import * as i10 from "@angular/router";
19
+ import * as i11 from "primeng/divider";
20
+ import * as i12 from "primeng/steps";
21
+ import * as i13 from "../questionnaire/form-builder/form-builder.page";
22
+ import * as i14 from "../questionnaire/multi-questionnaire/multi-questionnaire.component";
23
+ import * as i15 from "../weekly-work-performed-popup/weekly-work-performed-popup.component";
24
+ import * as i16 from "../weekly-work-search-question-v2/work-search-question.component-v2";
25
+ import * as i17 from "../weekly-acknowledgement-ms/acknowledgement-ms.component";
26
+ import * as i18 from "../weekly-acknowledgement-v2/acknowledgement.component-v2";
27
+ import * as i19 from "../weekly-confirmation/confirmation.component";
28
+ import * as i20 from "../weekly-interim-confirmation/interim-confirmation.component";
29
+ import * as i21 from "@ngx-translate/core";
30
+ const _c0 = ["weeklyQuestions"];
31
+ function WeeklyCertificationComponent_app_dashboard_help_0_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelement(0, "app-dashboard-help", 4);
33
+ } if (rf & 2) {
34
+ i0.ɵɵproperty("activeIndex", 4);
35
+ } }
36
+ function WeeklyCertificationComponent_div_1_Template(rf, ctx) { if (rf & 1) {
37
+ i0.ɵɵelementStart(0, "div", 5);
38
+ i0.ɵɵelement(1, "ion-spinner", 6);
39
+ i0.ɵɵelementEnd();
40
+ } }
41
+ function WeeklyCertificationComponent_div_2_Template(rf, ctx) { if (rf & 1) {
42
+ i0.ɵɵelementStart(0, "div", 7);
43
+ i0.ɵɵelement(1, "ion-icon", 8)(2, "div", 9);
44
+ i0.ɵɵelementEnd();
45
+ } if (rf & 2) {
46
+ const ctx_r2 = i0.ɵɵnextContext();
47
+ i0.ɵɵadvance(2);
48
+ i0.ɵɵproperty("innerHTML", ctx_r2.sanitizer.bypassSecurityTrustHtml(ctx_r2.errorMsg), i0.ɵɵsanitizeHtml);
49
+ } }
50
+ function WeeklyCertificationComponent_div_3_ion_col_3_Template(rf, ctx) { if (rf & 1) {
51
+ i0.ɵɵelementStart(0, "ion-col", 14)(1, "h1", 15);
52
+ i0.ɵɵtext(2);
53
+ i0.ɵɵpipe(3, "translate");
54
+ i0.ɵɵelementEnd()();
55
+ } if (rf & 2) {
56
+ const ctx_r4 = i0.ɵɵnextContext(2);
57
+ i0.ɵɵadvance(2);
58
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 1, "weeklies.v2.task.heading", ctx_r4.dynamicParam));
59
+ } }
60
+ function WeeklyCertificationComponent_div_3_ion_col_4_Template(rf, ctx) { if (rf & 1) {
61
+ i0.ɵɵelementStart(0, "ion-col", 14)(1, "h1", 15);
62
+ i0.ɵɵtext(2);
63
+ i0.ɵɵpipe(3, "translate");
64
+ i0.ɵɵelementEnd()();
65
+ } if (rf & 2) {
66
+ const ctx_r5 = i0.ɵɵnextContext(2);
67
+ i0.ɵɵadvance(2);
68
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 1, "weeklies.v2.task.multiple.weeks.heading", ctx_r5.dynamicParam));
69
+ } }
70
+ function WeeklyCertificationComponent_div_3_ion_col_5_Template(rf, ctx) { if (rf & 1) {
71
+ i0.ɵɵelementStart(0, "ion-col", 14)(1, "h1", 15);
72
+ i0.ɵɵtext(2);
73
+ i0.ɵɵpipe(3, "translate");
74
+ i0.ɵɵelementEnd()();
75
+ } if (rf & 2) {
76
+ const ctx_r6 = i0.ɵɵnextContext(2);
77
+ i0.ɵɵadvance(2);
78
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 1, "weeklies.v2.task.multiple.weeks.heading.continued", ctx_r6.dynamicParam));
79
+ } }
80
+ function WeeklyCertificationComponent_div_3_section_6_app_work_search_question_v2_4_Template(rf, ctx) { if (rf & 1) {
81
+ const _r18 = i0.ɵɵgetCurrentView();
82
+ i0.ɵɵelementStart(0, "app-work-search-question-v2", 21);
83
+ i0.ɵɵlistener("success", function WeeklyCertificationComponent_div_3_section_6_app_work_search_question_v2_4_Template_app_work_search_question_v2_success_0_listener() { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r17.goToWeeklyCert()); })("hasHiredStatus", function WeeklyCertificationComponent_div_3_section_6_app_work_search_question_v2_4_Template_app_work_search_question_v2_hasHiredStatus_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r19 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r19.hasHiredStatus($event)); })("hasWorkedFullTimeOrStartedWorkingStatus", function WeeklyCertificationComponent_div_3_section_6_app_work_search_question_v2_4_Template_app_work_search_question_v2_hasWorkedFullTimeOrStartedWorkingStatus_0_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r20 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r20.hasWorkedFullTimeOrStartedWorkingStatus($event)); });
84
+ i0.ɵɵelementEnd();
85
+ } if (rf & 2) {
86
+ i0.ɵɵproperty("showCounter", true);
87
+ } }
88
+ function WeeklyCertificationComponent_div_3_section_6_Template(rf, ctx) { if (rf & 1) {
89
+ const _r22 = i0.ɵɵgetCurrentView();
90
+ i0.ɵɵelementStart(0, "section")(1, "ion-grid")(2, "ion-row")(3, "ion-col", 16);
91
+ i0.ɵɵtemplate(4, WeeklyCertificationComponent_div_3_section_6_app_work_search_question_v2_4_Template, 1, 1, "app-work-search-question-v2", 17);
92
+ i0.ɵɵelementEnd();
93
+ i0.ɵɵelementStart(5, "ion-col", 18)(6, "app-form-builder", 19, 20);
94
+ i0.ɵɵlistener("onError", function WeeklyCertificationComponent_div_3_section_6_Template_app_form_builder_onError_6_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.handleError($event)); })("onComplete", function WeeklyCertificationComponent_div_3_section_6_Template_app_form_builder_onComplete_6_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r23 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r23.success($event)); })("onLoadComplete", function WeeklyCertificationComponent_div_3_section_6_Template_app_form_builder_onLoadComplete_6_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r24 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r24.loadComplete($event)); });
95
+ i0.ɵɵelementEnd()()()()();
96
+ } if (rf & 2) {
97
+ const ctx_r7 = i0.ɵɵnextContext(2);
98
+ i0.ɵɵadvance(4);
99
+ i0.ɵɵproperty("ngIf", !ctx_r7.isLoading && !ctx_r7.errorMsg);
100
+ i0.ɵɵadvance(2);
101
+ i0.ɵɵproperty("flowKey", "weekly-cert")("autoSave", false)("showOnlyQuestion", true)("hideHeader", true)("hideFooter", true)("sizeXs", 12)("sizeSm", 12)("sizeMd", 12)("sizeLg", 12)("sizeXl", 12)("offsetXl", 0)("offsetLg", 0)("dynamicParam", ctx_r7.dynamicParam)("data", ctx_r7.dataToLoad)("multiMode", true)("readOnlyFields", ctx_r7.readOnlyFields);
102
+ } }
103
+ function WeeklyCertificationComponent_div_3_section_7_section_4_Template(rf, ctx) { if (rf & 1) {
104
+ i0.ɵɵelementStart(0, "section")(1, "h1", 29)(2, "b");
105
+ i0.ɵɵtext(3);
106
+ i0.ɵɵelementEnd()()();
107
+ } if (rf & 2) {
108
+ const ctx_r25 = i0.ɵɵnextContext(3);
109
+ i0.ɵɵadvance(3);
110
+ i0.ɵɵtextInterpolate1(" ", ctx_r25.contents[ctx_r25.activeIndex], " ");
111
+ } }
112
+ function WeeklyCertificationComponent_div_3_section_7_section_5_Template(rf, ctx) { if (rf & 1) {
113
+ i0.ɵɵelementStart(0, "section")(1, "h1", 30)(2, "b");
114
+ i0.ɵɵtext(3);
115
+ i0.ɵɵelementEnd()()();
116
+ } if (rf & 2) {
117
+ const ctx_r26 = i0.ɵɵnextContext(3);
118
+ i0.ɵɵadvance(3);
119
+ i0.ɵɵtextInterpolate1(" ", ctx_r26.contents[ctx_r26.activeIndex], " ");
120
+ } }
121
+ function WeeklyCertificationComponent_div_3_section_7_ion_grid_14_app_work_search_question_v2_3_Template(rf, ctx) { if (rf & 1) {
122
+ const _r32 = i0.ɵɵgetCurrentView();
123
+ i0.ɵɵelementStart(0, "app-work-search-question-v2", 33);
124
+ i0.ɵɵlistener("success", function WeeklyCertificationComponent_div_3_section_7_ion_grid_14_app_work_search_question_v2_3_Template_app_work_search_question_v2_success_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r31.goToWeeklyCert()); })("hasHiredStatus", function WeeklyCertificationComponent_div_3_section_7_ion_grid_14_app_work_search_question_v2_3_Template_app_work_search_question_v2_hasHiredStatus_0_listener($event) { i0.ɵɵrestoreView(_r32); const ctx_r33 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r33.hasHiredStatus($event)); });
125
+ i0.ɵɵelementEnd();
126
+ } if (rf & 2) {
127
+ i0.ɵɵproperty("showCounter", true);
128
+ } }
129
+ function WeeklyCertificationComponent_div_3_section_7_ion_grid_14_Template(rf, ctx) { if (rf & 1) {
130
+ i0.ɵɵelementStart(0, "ion-grid")(1, "ion-row")(2, "ion-col", 31);
131
+ i0.ɵɵtemplate(3, WeeklyCertificationComponent_div_3_section_7_ion_grid_14_app_work_search_question_v2_3_Template, 1, 1, "app-work-search-question-v2", 32);
132
+ i0.ɵɵelementEnd()()();
133
+ } if (rf & 2) {
134
+ const ctx_r27 = i0.ɵɵnextContext(3);
135
+ i0.ɵɵadvance(3);
136
+ i0.ɵɵproperty("ngIf", !ctx_r27.isLoading && !ctx_r27.errorMsg);
137
+ } }
138
+ function WeeklyCertificationComponent_div_3_section_7_ion_grid_15_ion_row_5_Template(rf, ctx) { if (rf & 1) {
139
+ i0.ɵɵelementStart(0, "ion-row");
140
+ i0.ɵɵelement(1, "app-weekly-work-performed-popup", 35);
141
+ i0.ɵɵelementEnd();
142
+ } if (rf & 2) {
143
+ i0.ɵɵadvance(1);
144
+ i0.ɵɵproperty("showWeeklyWorkPerformedPopup", true);
145
+ } }
146
+ function WeeklyCertificationComponent_div_3_section_7_ion_grid_15_Template(rf, ctx) { if (rf & 1) {
147
+ const _r37 = i0.ɵɵgetCurrentView();
148
+ i0.ɵɵelementStart(0, "ion-grid")(1, "ion-row")(2, "ion-col", 34)(3, "app-form-builder", 19, 20);
149
+ i0.ɵɵlistener("onError", function WeeklyCertificationComponent_div_3_section_7_ion_grid_15_Template_app_form_builder_onError_3_listener($event) { i0.ɵɵrestoreView(_r37); const ctx_r36 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r36.handleError($event)); })("onComplete", function WeeklyCertificationComponent_div_3_section_7_ion_grid_15_Template_app_form_builder_onComplete_3_listener($event) { i0.ɵɵrestoreView(_r37); const ctx_r38 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r38.success($event)); })("onLoadComplete", function WeeklyCertificationComponent_div_3_section_7_ion_grid_15_Template_app_form_builder_onLoadComplete_3_listener($event) { i0.ɵɵrestoreView(_r37); const ctx_r39 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r39.loadComplete($event)); });
150
+ i0.ɵɵelementEnd()()();
151
+ i0.ɵɵtemplate(5, WeeklyCertificationComponent_div_3_section_7_ion_grid_15_ion_row_5_Template, 2, 1, "ion-row", 3);
152
+ i0.ɵɵelementEnd();
153
+ } if (rf & 2) {
154
+ const ctx_r28 = i0.ɵɵnextContext(3);
155
+ i0.ɵɵadvance(3);
156
+ i0.ɵɵproperty("flowKey", "weekly-cert")("autoSave", true)("showOnlyQuestion", true)("hideHeader", true)("hideFooter", true)("sizeXs", 12)("sizeSm", 12)("sizeMd", 12)("sizeLg", 12)("sizeXl", 12)("offsetXl", 0)("offsetLg", 0)("dynamicParam", ctx_r28.dynamicParam)("data", ctx_r28.dataToLoad)("multiMode", true)("readOnlyFields", ctx_r28.readOnlyFields);
157
+ i0.ɵɵadvance(2);
158
+ i0.ɵɵproperty("ngIf", ctx_r28.weeklyWorkPerformedPopupFlag);
159
+ } }
160
+ function WeeklyCertificationComponent_div_3_section_7_ion_grid_16_app_acknowledgement_ms_3_Template(rf, ctx) { if (rf & 1) {
161
+ const _r42 = i0.ɵɵgetCurrentView();
162
+ i0.ɵɵelementStart(0, "app-acknowledgement-ms", 38);
163
+ i0.ɵɵlistener("success", function WeeklyCertificationComponent_div_3_section_7_ion_grid_16_app_acknowledgement_ms_3_Template_app_acknowledgement_ms_success_0_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r41 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r41.fileWeeklyCertDone($event)); })("onClose", function WeeklyCertificationComponent_div_3_section_7_ion_grid_16_app_acknowledgement_ms_3_Template_app_acknowledgement_ms_onClose_0_listener() { i0.ɵɵrestoreView(_r42); const ctx_r43 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r43.closeAck()); });
164
+ i0.ɵɵelementEnd();
165
+ } }
166
+ function WeeklyCertificationComponent_div_3_section_7_ion_grid_16_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵelementStart(0, "ion-grid")(1, "ion-row")(2, "ion-col", 36);
168
+ i0.ɵɵtemplate(3, WeeklyCertificationComponent_div_3_section_7_ion_grid_16_app_acknowledgement_ms_3_Template, 1, 0, "app-acknowledgement-ms", 37);
169
+ i0.ɵɵelementEnd()()();
170
+ } if (rf & 2) {
171
+ const ctx_r29 = i0.ɵɵnextContext(3);
172
+ i0.ɵɵadvance(3);
173
+ i0.ɵɵproperty("ngIf", ctx_r29.showAck);
174
+ } }
175
+ const _c1 = () => ({ "--step-width": "50px", "--step-height": "50px" });
176
+ function WeeklyCertificationComponent_div_3_section_7_Template(rf, ctx) { if (rf & 1) {
177
+ i0.ɵɵelementStart(0, "section")(1, "ion-row")(2, "ion-col", 22)(3, "div", 23);
178
+ i0.ɵɵtemplate(4, WeeklyCertificationComponent_div_3_section_7_section_4_Template, 4, 1, "section", 3)(5, WeeklyCertificationComponent_div_3_section_7_section_5_Template, 4, 1, "section", 3);
179
+ i0.ɵɵelementEnd()();
180
+ i0.ɵɵelement(6, "ion-col", 24);
181
+ i0.ɵɵelementStart(7, "ion-col", 25)(8, "div", 23);
182
+ i0.ɵɵelement(9, "p-steps", 26);
183
+ i0.ɵɵelementEnd()();
184
+ i0.ɵɵelement(10, "ion-col", 27);
185
+ i0.ɵɵelementEnd();
186
+ i0.ɵɵelementStart(11, "ion-row")(12, "ion-col", 28);
187
+ i0.ɵɵelement(13, "p-divider");
188
+ i0.ɵɵelementEnd()();
189
+ i0.ɵɵtemplate(14, WeeklyCertificationComponent_div_3_section_7_ion_grid_14_Template, 4, 1, "ion-grid", 3)(15, WeeklyCertificationComponent_div_3_section_7_ion_grid_15_Template, 6, 17, "ion-grid", 3)(16, WeeklyCertificationComponent_div_3_section_7_ion_grid_16_Template, 4, 1, "ion-grid", 3);
190
+ i0.ɵɵelementEnd();
191
+ } if (rf & 2) {
192
+ const ctx_r8 = i0.ɵɵnextContext(2);
193
+ i0.ɵɵadvance(4);
194
+ i0.ɵɵproperty("ngIf", ctx_r8.activeIndex == 0 || ctx_r8.activeIndex == 1);
195
+ i0.ɵɵadvance(1);
196
+ i0.ɵɵproperty("ngIf", ctx_r8.activeIndex == 2);
197
+ i0.ɵɵadvance(4);
198
+ i0.ɵɵproperty("model", ctx_r8.items)("activeIndex", ctx_r8.activeIndex)("styleClass", "completed-" + ctx_r8.activeIndex)("ngStyle", i0.ɵɵpureFunction0(9, _c1));
199
+ i0.ɵɵadvance(5);
200
+ i0.ɵɵproperty("ngIf", ctx_r8.activeIndex == 0);
201
+ i0.ɵɵadvance(1);
202
+ i0.ɵɵproperty("ngIf", ctx_r8.activeIndex == 1);
203
+ i0.ɵɵadvance(1);
204
+ i0.ɵɵproperty("ngIf", ctx_r8.activeIndex == 2);
205
+ } }
206
+ function WeeklyCertificationComponent_div_3_app_multi_questionnaire_8_Template(rf, ctx) { if (rf & 1) {
207
+ const _r45 = i0.ɵɵgetCurrentView();
208
+ i0.ɵɵelementStart(0, "app-multi-questionnaire", 39);
209
+ i0.ɵɵlistener("onComplete", function WeeklyCertificationComponent_div_3_app_multi_questionnaire_8_Template_app_multi_questionnaire_onComplete_0_listener($event) { i0.ɵɵrestoreView(_r45); const ctx_r44 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r44.openSummaryPostQuestionnaires($event)); })("modelCancel", function WeeklyCertificationComponent_div_3_app_multi_questionnaire_8_Template_app_multi_questionnaire_modelCancel_0_listener() { i0.ɵɵrestoreView(_r45); const ctx_r46 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r46.onQeClose()); });
210
+ i0.ɵɵpipe(1, "translate");
211
+ i0.ɵɵelementEnd();
212
+ } if (rf & 2) {
213
+ const ctx_r9 = i0.ɵɵnextContext(2);
214
+ i0.ɵɵproperty("qeQueryModels", ctx_r9.qeQueryModels)("header", i0.ɵɵpipeBind1(1, 3, "Follow-up Questions"))("showQuestionNumber", true);
215
+ } }
216
+ function WeeklyCertificationComponent_div_3_div_9_app_acknowledgement_v2_1_Template(rf, ctx) { if (rf & 1) {
217
+ const _r49 = i0.ɵɵgetCurrentView();
218
+ i0.ɵɵelementStart(0, "app-acknowledgement-v2", 38);
219
+ i0.ɵɵlistener("success", function WeeklyCertificationComponent_div_3_div_9_app_acknowledgement_v2_1_Template_app_acknowledgement_v2_success_0_listener($event) { i0.ɵɵrestoreView(_r49); const ctx_r48 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r48.fileWeeklyCertDone($event)); })("onClose", function WeeklyCertificationComponent_div_3_div_9_app_acknowledgement_v2_1_Template_app_acknowledgement_v2_onClose_0_listener() { i0.ɵɵrestoreView(_r49); const ctx_r50 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r50.closeAck()); });
220
+ i0.ɵɵelementEnd();
221
+ } }
222
+ function WeeklyCertificationComponent_div_3_div_9_Template(rf, ctx) { if (rf & 1) {
223
+ i0.ɵɵelementStart(0, "div");
224
+ i0.ɵɵtemplate(1, WeeklyCertificationComponent_div_3_div_9_app_acknowledgement_v2_1_Template, 1, 0, "app-acknowledgement-v2", 37);
225
+ i0.ɵɵelementEnd();
226
+ } if (rf & 2) {
227
+ const ctx_r10 = i0.ɵɵnextContext(2);
228
+ i0.ɵɵadvance(1);
229
+ i0.ɵɵproperty("ngIf", ctx_r10.showAck);
230
+ } }
231
+ function WeeklyCertificationComponent_div_3_app_confirmation_10_Template(rf, ctx) { if (rf & 1) {
232
+ const _r52 = i0.ɵɵgetCurrentView();
233
+ i0.ɵɵelementStart(0, "app-confirmation", 40);
234
+ i0.ɵɵlistener("onClose", function WeeklyCertificationComponent_div_3_app_confirmation_10_Template_app_confirmation_onClose_0_listener() { i0.ɵɵrestoreView(_r52); const ctx_r51 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r51.closeConfirmationPopup()); });
235
+ i0.ɵɵelementEnd();
236
+ } if (rf & 2) {
237
+ const ctx_r11 = i0.ɵɵnextContext(2);
238
+ i0.ɵɵproperty("data", ctx_r11.confirmationData)("dynamicParam", ctx_r11.dynamicParam);
239
+ } }
240
+ function WeeklyCertificationComponent_div_3_app_interim_confirmation_11_Template(rf, ctx) { if (rf & 1) {
241
+ const _r54 = i0.ɵɵgetCurrentView();
242
+ i0.ɵɵelementStart(0, "app-interim-confirmation", 41);
243
+ i0.ɵɵlistener("onClose", function WeeklyCertificationComponent_div_3_app_interim_confirmation_11_Template_app_interim_confirmation_onClose_0_listener() { i0.ɵɵrestoreView(_r54); const ctx_r53 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r53.closeConfirmationPopup()); })("onNext", function WeeklyCertificationComponent_div_3_app_interim_confirmation_11_Template_app_interim_confirmation_onNext_0_listener($event) { i0.ɵɵrestoreView(_r54); const ctx_r55 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r55.navigateToWeeklies($event)); });
244
+ i0.ɵɵelementEnd();
245
+ } if (rf & 2) {
246
+ const ctx_r12 = i0.ɵɵnextContext(2);
247
+ i0.ɵɵproperty("data", ctx_r12.confirmationData)("dynamicParam", ctx_r12.dynamicParam);
248
+ } }
249
+ function WeeklyCertificationComponent_div_3_ion_footer_12_Template(rf, ctx) { if (rf & 1) {
250
+ const _r57 = i0.ɵɵgetCurrentView();
251
+ i0.ɵɵelementStart(0, "ion-footer")(1, "ion-row", 42)(2, "ion-col", 43)(3, "ion-button", 44);
252
+ i0.ɵɵlistener("click", function WeeklyCertificationComponent_div_3_ion_footer_12_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r57); const ctx_r56 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r56.goHome()); });
253
+ i0.ɵɵtext(4, "Close ");
254
+ i0.ɵɵelementEnd()();
255
+ i0.ɵɵelementStart(5, "ion-col", 45)(6, "ion-button", 46);
256
+ i0.ɵɵlistener("click", function WeeklyCertificationComponent_div_3_ion_footer_12_Template_ion_button_click_6_listener() { i0.ɵɵrestoreView(_r57); const ctx_r58 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r58.openNextPage()); });
257
+ i0.ɵɵtext(7, "Submit ");
258
+ i0.ɵɵelementEnd()()()();
259
+ } }
260
+ function WeeklyCertificationComponent_div_3_section_13_ion_button_4_Template(rf, ctx) { if (rf & 1) {
261
+ const _r64 = i0.ɵɵgetCurrentView();
262
+ i0.ɵɵelementStart(0, "ion-button", 54);
263
+ i0.ɵɵlistener("click", function WeeklyCertificationComponent_div_3_section_13_ion_button_4_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r64); const ctx_r63 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r63.goHome()); });
264
+ i0.ɵɵtext(1, "Close ");
265
+ i0.ɵɵelementEnd();
266
+ } }
267
+ function WeeklyCertificationComponent_div_3_section_13_ion_button_5_Template(rf, ctx) { if (rf & 1) {
268
+ const _r66 = i0.ɵɵgetCurrentView();
269
+ i0.ɵɵelementStart(0, "ion-button", 55);
270
+ i0.ɵɵlistener("click", function WeeklyCertificationComponent_div_3_section_13_ion_button_5_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r66); const ctx_r65 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r65.activeIndex = ctx_r65.activeIndex - 1); });
271
+ i0.ɵɵtext(1, " Back");
272
+ i0.ɵɵelementEnd();
273
+ } }
274
+ function WeeklyCertificationComponent_div_3_section_13_ion_button_7_Template(rf, ctx) { if (rf & 1) {
275
+ const _r68 = i0.ɵɵgetCurrentView();
276
+ i0.ɵɵelementStart(0, "ion-button", 56);
277
+ i0.ɵɵlistener("click", function WeeklyCertificationComponent_div_3_section_13_ion_button_7_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r68); const ctx_r67 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r67.openNextPage()); });
278
+ i0.ɵɵtext(1, "Next ");
279
+ i0.ɵɵelementEnd();
280
+ } }
281
+ function WeeklyCertificationComponent_div_3_section_13_ion_button_8_Template(rf, ctx) { if (rf & 1) {
282
+ const _r70 = i0.ɵɵgetCurrentView();
283
+ i0.ɵɵelementStart(0, "ion-button", 57);
284
+ i0.ɵɵlistener("click", function WeeklyCertificationComponent_div_3_section_13_ion_button_8_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r70); const ctx_r69 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r69.showAcknowledgement()); });
285
+ i0.ɵɵtext(1, " Submit");
286
+ i0.ɵɵelementEnd();
287
+ } }
288
+ function WeeklyCertificationComponent_div_3_section_13_Template(rf, ctx) { if (rf & 1) {
289
+ i0.ɵɵelementStart(0, "section")(1, "ion-row", 47);
290
+ i0.ɵɵelement(2, "ion-col", 27);
291
+ i0.ɵɵelementStart(3, "ion-col", 48);
292
+ i0.ɵɵtemplate(4, WeeklyCertificationComponent_div_3_section_13_ion_button_4_Template, 2, 0, "ion-button", 49)(5, WeeklyCertificationComponent_div_3_section_13_ion_button_5_Template, 2, 0, "ion-button", 50);
293
+ i0.ɵɵelementEnd();
294
+ i0.ɵɵelementStart(6, "ion-col", 51);
295
+ i0.ɵɵtemplate(7, WeeklyCertificationComponent_div_3_section_13_ion_button_7_Template, 2, 0, "ion-button", 52)(8, WeeklyCertificationComponent_div_3_section_13_ion_button_8_Template, 2, 0, "ion-button", 53);
296
+ i0.ɵɵelementEnd();
297
+ i0.ɵɵelement(9, "ion-col", 27);
298
+ i0.ɵɵelementEnd()();
299
+ } if (rf & 2) {
300
+ const ctx_r14 = i0.ɵɵnextContext(2);
301
+ i0.ɵɵadvance(4);
302
+ i0.ɵɵproperty("ngIf", ctx_r14.activeIndex == 0);
303
+ i0.ɵɵadvance(1);
304
+ i0.ɵɵproperty("ngIf", ctx_r14.activeIndex != 0);
305
+ i0.ɵɵadvance(2);
306
+ i0.ɵɵproperty("ngIf", ctx_r14.activeIndex != 2);
307
+ i0.ɵɵadvance(1);
308
+ i0.ɵɵproperty("ngIf", ctx_r14.activeIndex == 2);
309
+ } }
310
+ function WeeklyCertificationComponent_div_3_Template(rf, ctx) { if (rf & 1) {
311
+ i0.ɵɵelementStart(0, "div")(1, "ion-grid")(2, "ion-row");
312
+ i0.ɵɵtemplate(3, WeeklyCertificationComponent_div_3_ion_col_3_Template, 4, 4, "ion-col", 10)(4, WeeklyCertificationComponent_div_3_ion_col_4_Template, 4, 4, "ion-col", 10)(5, WeeklyCertificationComponent_div_3_ion_col_5_Template, 4, 4, "ion-col", 10);
313
+ i0.ɵɵelementEnd()();
314
+ i0.ɵɵtemplate(6, WeeklyCertificationComponent_div_3_section_6_Template, 8, 17, "section", 3)(7, WeeklyCertificationComponent_div_3_section_7_Template, 17, 10, "section", 3)(8, WeeklyCertificationComponent_div_3_app_multi_questionnaire_8_Template, 2, 5, "app-multi-questionnaire", 11)(9, WeeklyCertificationComponent_div_3_div_9_Template, 2, 1, "div", 3)(10, WeeklyCertificationComponent_div_3_app_confirmation_10_Template, 1, 2, "app-confirmation", 12)(11, WeeklyCertificationComponent_div_3_app_interim_confirmation_11_Template, 1, 2, "app-interim-confirmation", 13)(12, WeeklyCertificationComponent_div_3_ion_footer_12_Template, 8, 0, "ion-footer", 3)(13, WeeklyCertificationComponent_div_3_section_13_Template, 10, 4, "section", 3);
315
+ i0.ɵɵelementEnd();
316
+ } if (rf & 2) {
317
+ const ctx_r3 = i0.ɵɵnextContext();
318
+ i0.ɵɵadvance(3);
319
+ i0.ɵɵproperty("ngIf", !ctx_r3.isMS() || ctx_r3.isMS() && !ctx_r3.multipleWeeksDue && !ctx_r3.displayContinuedWeeksFiledHeading);
320
+ i0.ɵɵadvance(1);
321
+ i0.ɵɵproperty("ngIf", ctx_r3.isMS() && ctx_r3.multipleWeeksDue && !ctx_r3.displayContinuedWeeksFiledHeading);
322
+ i0.ɵɵadvance(1);
323
+ i0.ɵɵproperty("ngIf", ctx_r3.isMS() && ctx_r3.multipleWeeksDue && ctx_r3.displayContinuedWeeksFiledHeading);
324
+ i0.ɵɵadvance(1);
325
+ i0.ɵɵproperty("ngIf", !ctx_r3.isMS());
326
+ i0.ɵɵadvance(1);
327
+ i0.ɵɵproperty("ngIf", ctx_r3.isMS());
328
+ i0.ɵɵadvance(1);
329
+ i0.ɵɵproperty("ngIf", ctx_r3.isOpenQe);
330
+ i0.ɵɵadvance(1);
331
+ i0.ɵɵproperty("ngIf", !ctx_r3.isMS());
332
+ i0.ɵɵadvance(1);
333
+ i0.ɵɵproperty("ngIf", ctx_r3.showConfirmation);
334
+ i0.ɵɵadvance(1);
335
+ i0.ɵɵproperty("ngIf", ctx_r3.showInterimConfirmation);
336
+ i0.ɵɵadvance(1);
337
+ i0.ɵɵproperty("ngIf", !ctx_r3.isMS());
338
+ i0.ɵɵadvance(1);
339
+ i0.ɵɵproperty("ngIf", ctx_r3.isMS());
340
+ } }
341
+ export class WeeklyCertificationComponent extends BasePage {
342
+ constructor(wcService, fb, util, nav, sanitizer, hs, ls, contextService, datepipe, router) {
343
+ super();
344
+ this.wcService = wcService;
345
+ this.fb = fb;
346
+ this.util = util;
347
+ this.nav = nav;
348
+ this.sanitizer = sanitizer;
349
+ this.hs = hs;
350
+ this.ls = ls;
351
+ this.contextService = contextService;
352
+ this.datepipe = datepipe;
353
+ this.router = router;
354
+ this.showAck = false;
355
+ this.showConfirmation = false;
356
+ this.activeIndex = 0;
357
+ this.isLoading = false;
358
+ this.isOpenQe = false;
359
+ this.readOnlyFields = null;
360
+ this.waiverReason = null;
361
+ this.multipleWeeksDue = false;
362
+ this.showInterimConfirmation = false;
363
+ this.displayContinuedWeeksFiledHeading = false;
364
+ this.weeklyWorkPerformedPopupFlag = false;
365
+ this.count = 0;
366
+ this.reemWorkSearchRecordCount = 0;
367
+ }
368
+ ngOnInit() {
369
+ this.wcService.resetWeeklyCertData();
370
+ this.isLoading = true;
371
+ this.wcService.checkWeeklyEligibility()
372
+ .subscribe(res => {
373
+ this.processWeeklyCertEligibiltySuccess(res);
374
+ }, err => {
375
+ this.processWeeklyCertEligibilityError(err);
376
+ });
377
+ }
378
+ onStepChange(index) {
379
+ this.activeIndex = index;
380
+ }
381
+ processWeeklyCertEligibiltySuccess(res) {
382
+ this.wcService.weeklyCertServerData = res;
383
+ this.errorMsg = null;
384
+ this.getLabelMaxRTWDate();
385
+ this.dynamicParam = {
386
+ 'saturday_date': this.wcService.getSaturdayDateAsString(),
387
+ 'sunday_date': this.wcService.getSundayDateAsString(),
388
+ 'min_rtw_date': this.wcService.weeklyCertServerData.minAllowedRtwDate,
389
+ 'max_rtw_date': this.wcService.weeklyCertServerData.maxAllowedRtwDate,
390
+ 'pension_employers': this.wcService.weeklyCertServerData.pensionEmployers,
391
+ 'duaDeclaration': this.wcService.weeklyCertServerData.duaDeclaration,
392
+ 'claimWeekEndDate': this.wcService.weeklyCertServerData.claimWeekEndDate,
393
+ 'claimantId': this.wcService.weeklyCertServerData.claimantId,
394
+ 'label_maxRtwDate': this.parsedMaxRTWDate,
395
+ };
396
+ // if the user is navigating to weeklies from interim confirmation to continue filing data will be stored
397
+ const storedData = localStorage.getItem('interimConfirmationData');
398
+ if (storedData) {
399
+ const deencodedParams = atob((storedData));
400
+ this.receivedData = JSON.parse(decodeURIComponent(deencodedParams));
401
+ if (this.dynamicParam.claimantId != this.receivedData.claimantId) {
402
+ this.receivedData = null;
403
+ }
404
+ }
405
+ // checking data for flag to continue to file for multiple weeks
406
+ if (this.receivedData && (this.dynamicParam.claimantId == this.receivedData.claimantId) &&
407
+ this.receivedData.continueToFileForMultipleWeeks == true) {
408
+ this.multipleWeeksDue = true;
409
+ this.displayContinuedWeeksFiledHeading = true;
410
+ this.dynamicParam.nextCertificationToFileCount = this.receivedData.currentNumberFiling;
411
+ this.dynamicParam.totalToCertify = this.receivedData.total;
412
+ // this.numberOfMultipleWeeksDue = this.receivedData.count;
413
+ // if more weeks are due set the next sunday and saturday days
414
+ if (this.wcService.weeklyCertServerData.weeksToBeCertified.length > 1) {
415
+ this.dynamicParam.next_saturday = this.wcService.weeklyCertServerData.weeksToBeCertified[1];
416
+ this.dynamicParam.next_sunday = this.getPreviousSunday(this.wcService.weeklyCertServerData.weeksToBeCertified[1]);
417
+ this.dynamicParam.numberOfMultipleWeeksDue = this.receivedData.total;
418
+ }
419
+ }
420
+ // if claimant filing and has multiple certifications due
421
+ // will go through interim process until final latest week filed
422
+ else if (this.wcService.weeklyCertServerData.weeksToBeCertified.length > 1) {
423
+ this.numberOfMultipleWeeksDue = this.wcService.weeklyCertServerData.weeksToBeCertified.length;
424
+ this.multipleWeeksDue = true;
425
+ this.dynamicParam.numberOfMultipleWeeksDue = this.wcService.weeklyCertServerData.weeksToBeCertified.length;
426
+ this.dynamicParam.next_saturday = this.wcService.weeklyCertServerData.weeksToBeCertified[1];
427
+ this.dynamicParam.next_sunday = this.getPreviousSunday(this.wcService.weeklyCertServerData.weeksToBeCertified[1]);
428
+ }
429
+ if (LibConstants.legacyMenu == 'false') {
430
+ this.hs.showDialogIfPreferenceAllow(HelpConstants.WEEKLY_HELP);
431
+ }
432
+ this.handleHiddenFields(res);
433
+ this.initializeDataForWorkSearchForm();
434
+ if (this.isMS()) {
435
+ this.items = [
436
+ { label: '', command: () => { this.onStepChange(0); } },
437
+ { label: '', command: () => { this.onStepChange(1); } },
438
+ { label: '', command: () => { this.onStepChange(2); } }
439
+ ];
440
+ }
441
+ this.contents = [' Work Search Activities', ' Weekly Questions', ' Acknowledge & Certify'];
442
+ }
443
+ getLabelMaxRTWDate() {
444
+ this.parsedMaxRTWDate = new Date(this.wcService.weeklyCertServerData.maxAllowedRtwDate);
445
+ this.parsedMaxRTWDate.setDate(this.parsedMaxRTWDate.getDate() + 1);
446
+ this.parsedMaxRTWDate = this.datepipe.transform(this.parsedMaxRTWDate, 'MM/dd/yyyy');
447
+ }
448
+ processWeeklyCertEligibilityError(err) {
449
+ if (err.msg != null && err.msg[0] == 'No Weeks are pending to be filed.') {
450
+ this.util.getState() === 'CT' ? this.nav.navigateRoot("weekly-not-eligible") : this.nav.navigateRoot("work-search-journal");
451
+ }
452
+ else {
453
+ this.errorMsg = err.msg;
454
+ }
455
+ this.wcService.weeklyCertServerData = null;
456
+ this.isLoading = false;
457
+ }
458
+ initializeDataForWorkSearchForm() {
459
+ this.workSearchWaived = this.wcService.weeklyCertServerData.isWorkSearchWaived;
460
+ this.waiverReason = this.wcService.weeklyCertServerData.waiverReason;
461
+ //REEM ACTIVITY TYPE COUNT ASSIGNMENT
462
+ this.reemWorkSearchRecordCount = Number(this.wcService.weeklyCertServerData?.hidReemWorkSearchRecordCount ?? 0);
463
+ this.wcService.weeklyCertServerData.hidReemWorkSearchRecordCount = this.reemWorkSearchRecordCount;
464
+ //
465
+ this.wcService.getClaimantWorkSearchJournalRecords(this.wcService.getSaturdayDateAsString()).subscribe(res => {
466
+ this.wcService.workSearchJournal = res;
467
+ this.wcService.weeklyCertData.workSearchRecords = res.workSearchRecords;
468
+ if (this.isME() && this.wcService.weeklyCertData.workSearchRecords) {
469
+ const hasStartedWorking = (this.wcService.weeklyCertData.workSearchRecords ?? []).some(rec => rec?.searchResult === 'STWK');
470
+ if (hasStartedWorking) {
471
+ this.hasWorkedFullTimeOrStartedWorkingStatus(true);
472
+ }
473
+ }
474
+ this.isLoading = false;
475
+ }, err => {
476
+ this.wcService.workSearchJournal = null;
477
+ });
478
+ if (this.isMS()) {
479
+ this.activeIndex = 0;
480
+ }
481
+ }
482
+ openNextPage() {
483
+ if (this.workSearchComponent) {
484
+ if (this.wcService.getDisplayWorkSearchScreen()) {
485
+ this.workSearchComponent.submitForm();
486
+ }
487
+ else {
488
+ this.goToWeeklyCert();
489
+ }
490
+ }
491
+ else if (this.workSearchWaived) {
492
+ this.goToWeeklyCert();
493
+ }
494
+ else {
495
+ this.goToWeeklyCert();
496
+ }
497
+ }
498
+ goToWeeklyCert() {
499
+ if (this.isMS()) {
500
+ if (this.activeIndex == 0) {
501
+ this.activeIndex = 1;
502
+ }
503
+ else {
504
+ if (this.weeklyQuestions) {
505
+ this.count = this.count + 1;
506
+ if (this.count > 1 && this.ls.isCsr()) {
507
+ this.weeklyQuestions.questionnaire.questionnaire.questionnaireForm.form.controls['hidCsrFirstPass'].setValue('Y');
508
+ }
509
+ this.weeklyQuestions.submitQuestionnaire();
510
+ }
511
+ }
512
+ }
513
+ else {
514
+ if (this.weeklyQuestions) {
515
+ this.weeklyQuestions.submitQuestionnaire();
516
+ }
517
+ }
518
+ }
519
+ success(weeklyQuestionsResponse) {
520
+ const formData = JSON.parse(weeklyQuestionsResponse.screenQuestionnaireData[0]);
521
+ formData.workSearchRecords = this.wcService.getWorkSearchRecords();
522
+ formData.workSearchData = this.wcService.getWorkSearchData();
523
+ this.wcService.weeklyCertData = formData;
524
+ this.wcService.weeklyCertData.claimWeekEndDate = this.wcService.weeklyCertServerData.weekToCertify;
525
+ this.wcService.weeklyCertData.hidInApprovedTraining = this.wcService.weeklyCertServerData.hidInApprovedTraining;
526
+ this.openFollowupQuestions();
527
+ }
528
+ openFollowupQuestions() {
529
+ this.util.showLoader();
530
+ this.wcService.weeklyCertData.showWorkSearchScreen = this.wcService.getDisplayWorkSearchScreen();
531
+ if (this.wcService.getWorkSearchRecordsCount() > 0) {
532
+ this.wcService.weeklyCertData.workSearchData.isWorkSearchPerformedFlag = '1';
533
+ }
534
+ else if (this.wcService.weeklyCertData.workSearchData != null) {
535
+ this.wcService.weeklyCertData.workSearchData.isWorkSearchPerformedFlag = '0';
536
+ }
537
+ if (this.wcService.getEmployerRecordsCount() > 0) {
538
+ this.wcService.weeklyCertData.workPerformed = 'Y';
539
+ }
540
+ else {
541
+ this.wcService.weeklyCertData.workPerformed = 'N';
542
+ }
543
+ this.wcService.weeklyCertData.workPerformedSeapNotParttime = (this.wcService.getEmployerRecordsCount() > 0 && this.wcService.getHidIsSeapParticipant()) ? 'Y' : 'N';
544
+ if (this.isMS() && this.wcService.weeklyCertServerData.hidIsSeapParticipant == 'Y') {
545
+ //Done to handle new verbiage for workPerformed for Seap Participants.
546
+ this.wcService.weeklyCertData.workPerformed = this.wcService.weeklyCertData.workPerformedSeapNotParttime;
547
+ //Done to handle new verbiage for SEAP Participants for available question.
548
+ this.wcService.weeklyCertData.available = (this.wcService.weeklyCertData.availableSeap);
549
+ }
550
+ this.wcService.determineQuestionniareToOpen().subscribe(res => {
551
+ this.statusModel = res.statusModel;
552
+ this.qeQueryModels = res.statusModel.qeQueryModels;
553
+ this.wcService.weeklyCertData.potentialIssues = res.potentialIssueIds;
554
+ this.wcService.weeklyCertData.pensionDeniedPotentialIssues = res.pensionDeniedPotentialIssues;
555
+ this.wcService.weeklyCertData.bonusPayPotentialIssues = res.bonusPayPotentialIssues;
556
+ this.wcService.weeklyCertData.otherPayPotentialIssues = res.otherPayPotentialIssues;
557
+ if (this.statusModel.showQe) {
558
+ this.isOpenQe = true;
559
+ if (this.wcService.weeklyCertData.employerDetailsList != null
560
+ && this.wcService.weeklyCertData.employerDetailsList.length > 0
561
+ && res.tempEmployerSepPotentialIssueMap != null) {
562
+ this.wcService.weeklyCertData.tempEmployerSepPotentialIssueMap = res.tempEmployerSepPotentialIssueMap;
563
+ }
564
+ }
565
+ else {
566
+ this.showAcknowledgement();
567
+ }
568
+ this.util.hideLoader();
569
+ }, err => {
570
+ this.util.showError(err.msg);
571
+ this.util.hideLoader();
572
+ });
573
+ }
574
+ openSummaryPostQuestionnaires(event) {
575
+ if (event && event.size > 0) {
576
+ if (event.has(9001)) {
577
+ let workSearchReason = event.get(9001).reasonInadequateWorkSearch;
578
+ if (this.isCT()) {
579
+ this.wcService.weeklyCertData.workSearchData.reasonInadequateWorkSearch = workSearchReason;
580
+ }
581
+ if (this.wcService.weeklyCertData.workSearchData.isWorkSearchPerformedFlag == '1'
582
+ && this.wcService.checkIfInadequateWorkSearchQuestionnaireShouldBeOpened()
583
+ && this.isMS()) {
584
+ this.wcService.weeklyCertData.workSearchData.reasonInadequateWorkSearch = workSearchReason;
585
+ }
586
+ else if (this.wcService.weeklyCertData.workSearchData.isWorkSearchPerformedFlag == '0') {
587
+ this.wcService.weeklyCertData.workSearchData.explainWhyDidNotLookForWork = workSearchReason;
588
+ }
589
+ }
590
+ if (event.has(179)) {
591
+ this.wcService.weeklyCertData.adminLeaveDetails = event.get(179);
592
+ }
593
+ if (event.has(9002)) {
594
+ this.wcService.weeklyCertData.adminLeaveDetails = event.get(9002);
595
+ }
596
+ }
597
+ this.showAcknowledgement();
598
+ this.isOpenQe = false;
599
+ this.util.hideLoader();
600
+ }
601
+ onQeClose() {
602
+ this.isOpenQe = false;
603
+ this.util.hideLoader();
604
+ }
605
+ goToSummary() {
606
+ this.activeIndex = 1;
607
+ }
608
+ closeAck() {
609
+ this.showAck = false;
610
+ }
611
+ fileWeeklyCertDone(event) {
612
+ this.showAck = false;
613
+ this.confirmationData = event;
614
+ if (this.isMS() && this.multipleWeeksDue == true && this.receivedData) {
615
+ // if this is the last time filing weeklies through interim confirmation flow
616
+ if (this.receivedData.currentNumberFiling == this.receivedData.total && this.wcService.weeklyCertServerData.weeksToBeCertified.length == 1) {
617
+ this.showInterimConfirmation = false;
618
+ this.showConfirmation = true;
619
+ this.multipleWeeksDue = false;
620
+ localStorage.removeItem('interimConfirmationData');
621
+ }
622
+ // if more weeks remain for weeklies through interim confirmation flow
623
+ else if (this.receivedData.count <= this.receivedData.total && this.wcService.weeklyCertServerData.weeksToBeCertified.length > 1) {
624
+ this.showInterimConfirmation = true;
625
+ this.showConfirmation = false;
626
+ }
627
+ } // if first time filing weeklies through interim confirmation flow
628
+ if (this.isMS() && this.multipleWeeksDue == true && !this.receivedData) {
629
+ this.showInterimConfirmation = true;
630
+ this.showConfirmation = false;
631
+ }
632
+ else if ((!this.isMS()) || (this.isMS() && this.multipleWeeksDue == false)) {
633
+ this.showConfirmation = true;
634
+ }
635
+ }
636
+ closeConfirmationPopup() {
637
+ if (this.isMS() && this.multipleWeeksDue == true) {
638
+ this.showInterimConfirmation = false;
639
+ }
640
+ else {
641
+ this.showConfirmation = false;
642
+ }
643
+ this.wcService.resetWeeklyCertData();
644
+ // This is added as the navigation was too quick for the confirmation to close in time, leaving confirmation open, even though the page was updated in backend
645
+ setTimeout(() => this.goHome(), 100);
646
+ }
647
+ navigateToWeeklies(data) {
648
+ if (this.isMS() && this.multipleWeeksDue == true) {
649
+ this.showInterimConfirmation = false;
650
+ localStorage.setItem('interimConfirmationData', data);
651
+ }
652
+ this.wcService.resetWeeklyCertData();
653
+ window.location.reload();
654
+ }
655
+ goHome() {
656
+ if (this.ls.isClaimant()) {
657
+ this.router.navigateByUrl('welcome?wcDone=true');
658
+ }
659
+ else if (this.ls.isCsr()) {
660
+ this.util.openPageByContextRootWithData(this.util.getSecurityAppContextRoot(), "search-ssn", this.contextService.getUnEncodedSsn(), this.nav);
661
+ }
662
+ else {
663
+ this.router.navigateByUrl('/welcome');
664
+ }
665
+ this.util.hideLoader();
666
+ }
667
+ showAcknowledgement() {
668
+ if (this.summaryComponent) {
669
+ this.summaryComponent.submitForm();
670
+ }
671
+ else {
672
+ if (this.isMS()) {
673
+ this.activeIndex = 2;
674
+ if (this.acknowledgementMsComponent) {
675
+ this.acknowledgementMsComponent.submit();
676
+ }
677
+ }
678
+ this.showAck = true;
679
+ }
680
+ }
681
+ onQeSuccess() {
682
+ this.showAck = true;
683
+ }
684
+ ionViewWillLeave() {
685
+ this.hs.setHelpAvailability(false);
686
+ }
687
+ ionViewDidEnter() {
688
+ this.wcService.resetWeeklyCertData();
689
+ this.hs.setHelpAvailability(true);
690
+ }
691
+ handleError(err) {
692
+ this.errorMsg = err.msg;
693
+ }
694
+ hasHiredStatus(status) {
695
+ //TODO: Update this for return to work for hired cases
696
+ if (!this.isME()) {
697
+ this.readOnlyFields = status ? ['returningToWork'] : null;
698
+ if (status) {
699
+ this.readOnlyData = { returningToWork: "Y" };
700
+ }
701
+ }
702
+ }
703
+ hasWorkedFullTimeOrStartedWorkingStatus(status) {
704
+ const form = this.weeklyQuestions?.questionnaire?.questionnaire?.questionnaireForm?.form;
705
+ if (this.isME()) {
706
+ if (status && form) {
707
+ this.readOnlyFields = status ? ['workPerformed'] : null;
708
+ this.readOnlyData = { workPerformed: "Y" };
709
+ form.get('workPerformed')?.setValue('Y');
710
+ }
711
+ else {
712
+ this.readOnlyFields = status ? ['workPerformed'] : null;
713
+ this.readOnlyData = { workPerformed: null };
714
+ if (form) {
715
+ form.get('workPerformed').setValue(null);
716
+ }
717
+ }
718
+ }
719
+ }
720
+ handleHiddenFields(res) {
721
+ this.readOnlyFields = ['hidShowReturnToWorkQuestion', 'hidShowReturnedToWorkQuestion', 'hidShowNewPensionQuestion', 'hidShowPensionChangedQuestion', 'hidShowDismissalPayChangedQuestion', 'hidPartTimeEmployerAvailable', 'hidRemunerationIssueExists', 'hidIsEligibleForDua', 'claimantId', 'claimWeekEndDate', 'duaAppId', 'hidPartialClaimEmploymentFlag', 'hidWorkSearchAuditFlag'];
722
+ this.readOnlyData = { hidShowReturnToWorkQuestion: res.hidShowReturnToWorkQuestion, hidShowReturnedToWorkQuestion: res.hidShowReturnedToWorkQuestion, hidShowNewPensionQuestion: res.hidShowNewPensionQuestion, hidShowPensionChangedQuestion: res.hidShowPensionChangedQuestion, hidShowDismissalPayChangedQuestion: res.hidShowDismissalPayChangedQuestion, hidPartTimeEmployerAvailable: res.hidPartTimeEmployerAvailable, hidRemunerationIssueExists: res.hidRemunerationIssueExists, hidIsEligibleForDua: res.hidIsEligibleForDua, claimantId: res.claimantId, claimWeekEndDate: res.claimWeekEndDate, duaAppId: res.duaAppId, hidPartialClaimEmploymentFlag: res.hidPartialClaimEmploymentFlag, hidWorkSearchAuditFlag: res.hidWorkSearchAuditFlag };
723
+ }
724
+ loadComplete(event) {
725
+ /* For MS, the back button needs to load complete filled data along with eligibility data.
726
+ For other states, everything is in popup, so on close, data still is there in model.
727
+ Needs work */
728
+ /* if (this.isMS() && this.activeIndex == 1 && this.wcService.weeklyCertData) {
729
+
730
+ this.wcService.weeklyCertData.weeklycertEligibilityModelV2 = this.wcService.weeklyCertServerData;
731
+ this.dataToLoad = this.wcService.weeklyCertData;
732
+ this.handleHiddenFields(this.wcService.weeklyCertServerData);
733
+ } else{
734
+ this.dataToLoad = this.wcService.weeklyCertServerData;
735
+ } */
736
+ this.dataToLoad = this.wcService.weeklyCertServerData;
737
+ /** NEW: For Loading the Pre-selected question in case of Started Working(STWK) for WS Records and setting the value Y for workPerformed */
738
+ this.workSearchRecords = this.wcService.getWorkSearchRecords();
739
+ if (this.isME() && this.workSearchRecords) {
740
+ const hasStartedWorking = (this.workSearchRecords ?? []).some(rec => rec?.searchResult === 'STWK');
741
+ if (hasStartedWorking) {
742
+ this.dataToLoad.workPerformed = "Y";
743
+ this.readOnlyFields = ['workPerformed'];
744
+ this.readOnlyData = { workPerformed: "Y" };
745
+ }
746
+ }
747
+ /** END */
748
+ if (this.wcService.getWorkSearchRecordsCountWithHiredStatus() > 0) {
749
+ this.hasHiredStatus(true);
750
+ this.dataToLoad.returningToWork = "Y";
751
+ }
752
+ //Weekly Earnings reminder popup - shown every week except for waiting period week
753
+ if (this.wcService.weeklyCertServerData.isWaitingWeekServed === true) {
754
+ setTimeout(() => (this.weeklyWorkPerformedPopupFlag = true), 1000);
755
+ }
756
+ }
757
+ getPreviousSunday(inputDate) {
758
+ let utcDate = new Date(inputDate + "T00:00:00Z");
759
+ utcDate.setUTCDate(utcDate.getUTCDate() - 6);
760
+ let year = utcDate.getUTCFullYear();
761
+ let month = String(utcDate.getUTCMonth() + 1).padStart(2, '0');
762
+ let day = String(utcDate.getUTCDate()).padStart(2, '0');
763
+ return `${year}-${month}-${day}`;
764
+ }
765
+ static { this.ɵfac = function WeeklyCertificationComponent_Factory(t) { return new (t || WeeklyCertificationComponent)(i0.ɵɵdirectiveInject(i1.WeeklyCertServiceV2), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.NavController), i0.ɵɵdirectiveInject(i5.DomSanitizer), i0.ɵɵdirectiveInject(i6.HelpService), i0.ɵɵdirectiveInject(i7.LoginService), i0.ɵɵdirectiveInject(i8.ClaimantContextService), i0.ɵɵdirectiveInject(i9.DatePipe), i0.ɵɵdirectiveInject(i10.Router)); }; }
766
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WeeklyCertificationComponent, selectors: [["app-weekly-certification"]], viewQuery: function WeeklyCertificationComponent_Query(rf, ctx) { if (rf & 1) {
767
+ i0.ɵɵviewQuery(WorkSearchQuestionComponentV2, 5);
768
+ i0.ɵɵviewQuery(AcknowledgementMsComponent, 5);
769
+ i0.ɵɵviewQuery(SummaryComponentV2, 5);
770
+ i0.ɵɵviewQuery(_c0, 5);
771
+ } if (rf & 2) {
772
+ let _t;
773
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.workSearchComponent = _t.first);
774
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.acknowledgementMsComponent = _t.first);
775
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.summaryComponent = _t.first);
776
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.weeklyQuestions = _t.first);
777
+ } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 4, consts: [[3, "activeIndex", 4, "ngIf"], ["class", "ion-text-center", 4, "ngIf"], ["class", "ion-text-center ion-padding-top", "style", "padding-top: 50px;", 4, "ngIf"], [4, "ngIf"], [3, "activeIndex"], [1, "ion-text-center"], ["name", "dots"], [1, "ion-text-center", "ion-padding-top", 2, "padding-top", "50px"], ["name", "alert-circle-outline", 2, "font-size", "60px", "color", "var(--ion-color-danger)"], [1, "ion-text-center", "ion-padding", 2, "color", "var(--ion-color-danger)", "font-size", "larger", 3, "innerHTML"], ["size", "12", "offsetXl", "1", 4, "ngIf"], [3, "qeQueryModels", "header", "showQuestionNumber", "onComplete", "modelCancel", 4, "ngIf"], [3, "data", "dynamicParam", "onClose", 4, "ngIf"], [3, "data", "dynamicParam", "onClose", "onNext", 4, "ngIf"], ["size", "12", "offsetXl", "1"], [1, "app-heading"], ["size", "12", "sizeXl", "5", "offsetXl", "1", "sizeLg", "6"], [3, "showCounter", "success", "hasHiredStatus", "hasWorkedFullTimeOrStartedWorkingStatus", 4, "ngIf"], ["size", "12", "sizeXl", "5", "sizeLg", "6"], [3, "flowKey", "autoSave", "showOnlyQuestion", "hideHeader", "hideFooter", "sizeXs", "sizeSm", "sizeMd", "sizeLg", "sizeXl", "offsetXl", "offsetLg", "dynamicParam", "data", "multiMode", "readOnlyFields", "onError", "onComplete", "onLoadComplete"], ["weeklyQuestions", ""], [3, "showCounter", "success", "hasHiredStatus", "hasWorkedFullTimeOrStartedWorkingStatus"], ["size", "3", "offsetLg", "3", "offsetXl", "3"], [1, "p-fluid", "p-formgrid"], ["size", "2"], ["size", "1", 1, "weeklies-steps"], [3, "model", "activeIndex", "styleClass", "ngStyle"], ["size", "3"], ["size", "12", "sizeSm", "8", "sizeXs", "12", "sizeMd", "8", "sizeLg", "6", "sizeXl", "5", "offsetLg", "3", "offsetXl", "3", "offsetMd", "1", 2, "margin-top", "-35px"], [1, "heading-weeklies"], [1, "heading-weeklies-ack"], ["size", "12", "sizeSm", "8", "sizeXs", "12", "sizeMd", "8", "sizeLg", "6", "sizeXl", "5", "offsetLg", "3", "offsetXl", "3", "offsetMd", "1"], [3, "showCounter", "success", "hasHiredStatus", 4, "ngIf"], [3, "showCounter", "success", "hasHiredStatus"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "10", "sizeLg", "5.25", "sizeXl", "5.25", "offsetLg", "3", "offsetXl", "3", "offsetMd", "1"], [3, "showWeeklyWorkPerformedPopup"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "10", "sizeLg", "6", "sizeXl", "6", "offsetLg", "3", "offsetXl", "3", "offsetMd", "1"], [3, "success", "onClose", 4, "ngIf"], [3, "success", "onClose"], [3, "qeQueryModels", "header", "showQuestionNumber", "onComplete", "modelCancel"], [3, "data", "dynamicParam", "onClose"], [3, "data", "dynamicParam", "onClose", "onNext"], [1, "ion-padding"], ["ion-col", "", "size", "12", "sizeXl", "5", "offsetXl", "1", "sizeLg", "6", 1, "ion-text-left"], ["shape", "round", "fill", "outline", 3, "click"], ["size", "12", "sizeXl", "5", "sizeLg", "6", 1, "ion-text-right"], ["shape", "round", "fill", "solid", "type", "submit", 3, "click"], [1, "ion-padding", "buttons-row"], ["size", "3", 1, "weeklies-left-buttons"], ["id", "close", "shape", "round", "fill", "outline", 3, "click", 4, "ngIf"], ["id", "back", "shape", "round", "fill", "outline", 3, "click", 4, "ngIf"], ["size", "3", 1, "weeklies-right-buttons"], ["id", "next", "shape", "round", "fill", "solid", "type", "submit", 3, "click", 4, "ngIf"], ["id", "submit", "shape", "round", "fill", "solid", "type", "submit", 3, "click", 4, "ngIf"], ["id", "close", "shape", "round", "fill", "outline", 3, "click"], ["id", "back", "shape", "round", "fill", "outline", 3, "click"], ["id", "next", "shape", "round", "fill", "solid", "type", "submit", 3, "click"], ["id", "submit", "shape", "round", "fill", "solid", "type", "submit", 3, "click"]], template: function WeeklyCertificationComponent_Template(rf, ctx) { if (rf & 1) {
778
+ i0.ɵɵtemplate(0, WeeklyCertificationComponent_app_dashboard_help_0_Template, 1, 1, "app-dashboard-help", 0)(1, WeeklyCertificationComponent_div_1_Template, 2, 0, "div", 1)(2, WeeklyCertificationComponent_div_2_Template, 3, 1, "div", 2)(3, WeeklyCertificationComponent_div_3_Template, 14, 11, "div", 3);
779
+ } if (rf & 2) {
780
+ i0.ɵɵproperty("ngIf", ctx.hs.isShowing());
781
+ i0.ɵɵadvance(1);
782
+ i0.ɵɵproperty("ngIf", ctx.isLoading);
783
+ i0.ɵɵadvance(1);
784
+ i0.ɵɵproperty("ngIf", !ctx.isLoading && ctx.errorMsg);
785
+ i0.ɵɵadvance(1);
786
+ i0.ɵɵproperty("ngIf", !ctx.isLoading && !ctx.errorMsg);
787
+ } }, dependencies: [i4.IonButton, i4.IonCol, i4.IonFooter, i4.IonGrid, i4.IonIcon, i4.IonRow, i4.IonSpinner, i9.NgIf, i9.NgStyle, i11.Divider, i12.Steps, i13.FormBuilderPage, i14.MultiQuestionnaireComponent, i15.WeeklyWorkPerformedPopupComponent, i16.WorkSearchQuestionComponentV2, i17.AcknowledgementMsComponent, i18.AcknowledgementComponentV2, i19.ConfirmationComponent, i20.InterimConfirmationComponent, i21.TranslatePipe], styles: ["[_nghost-%COMP%] .p-steps-item{flex:0 0;text-align:center}[_nghost-%COMP%] .p-steps .p-steps-item.p-highlight .p-steps-number{background-color:var(--ion-color-primary)}[_nghost-%COMP%] .p-steps ul{justify-content:center}.app-heading[_ngcontent-%COMP%]{font-family:var(--app-font-light);font-size:36px;color:var(--ion-color-medium-gray)}.p-steps-item[_ngcontent-%COMP%] .p-steps[_ngcontent-%COMP%] .p-steps-number[_ngcontent-%COMP%]{width:var(--step-width)!important;height:var(--step-height)!important}.buttons-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:0 10px}.weeklies-left-buttons[_ngcontent-%COMP%], .weeklies-right-buttons[_ngcontent-%COMP%]{display:flex;gap:40px}ion-button[_ngcontent-%COMP%]{min-width:80px;flex-shrink:1}.weeklies-steps[_ngcontent-%COMP%]{margin-left:-135px!important}@media (max-width: 320px){.weeklies-left-buttons[_ngcontent-%COMP%], .weeklies-right-buttons[_ngcontent-%COMP%]{flex-direction:column;gap:6px}}@media (max-width: 360px){ion-button[_ngcontent-%COMP%]{font-size:14px}.buttons-row[_ngcontent-%COMP%]{padding:0 5px}}@media (min-width: 600px){.buttons-row[_ngcontent-%COMP%], .weeklies-left-buttons[_ngcontent-%COMP%], .weeklies-right-buttons[_ngcontent-%COMP%]{justify-content:center}ion-col.size-3[_ngcontent-%COMP%]{max-width:200px}ion-button[_ngcontent-%COMP%]{min-width:100px}}@media (min-width: 1280px){.buttons-row[_ngcontent-%COMP%]{justify-content:unset}.weeklies-left-buttons[_ngcontent-%COMP%]{text-align:left;padding-left:0;justify-content:unset}.weeklies-right-buttons[_ngcontent-%COMP%]{text-align:right;position:relative;padding-right:10px}}@media (min-width: 391px) and (max-width: 420px){.weeklies-steps[_ngcontent-%COMP%]{margin-left:95px!important}}@media (min-width: 320px) and (max-width: 350px){.heading-weeklies[_ngcontent-%COMP%]{font-family:var(--app-font-regular);font-size:15px;width:max-content}.heading-weeklies-ack[_ngcontent-%COMP%]{font-size:15px!important;width:max-content}.weeklies-steps[_ngcontent-%COMP%]{margin-left:100px!important}}@media (min-width: 351px) and (max-width: 470px){.heading-weeklies[_ngcontent-%COMP%]{font-family:var(--app-font-regular);font-size:17px;width:max-content}.heading-weeklies-ack[_ngcontent-%COMP%]{font-size:16px!important;width:max-content}.weeklies-steps[_ngcontent-%COMP%]{margin-left:110px!important}}@media (min-width: 470px) and (max-width: 680px){.heading-weeklies[_ngcontent-%COMP%]{font-size:18px;width:250px}.heading-weeklies-ack[_ngcontent-%COMP%]{font-size:18px!important;width:max-content}.weeklies-steps[_ngcontent-%COMP%]{margin-left:195px!important}}@media (min-width: 681px) and (max-width: 767px){.heading-weeklies[_ngcontent-%COMP%]{font-size:20px;width:250px;margin-top:50px}.weeklies-steps[_ngcontent-%COMP%]{margin-left:70px!important;margin-top:30px}}@media (min-width: 768px) and (max-width: 991px){.heading-weeklies[_ngcontent-%COMP%]{font-size:20px;width:250px;margin-top:50px;margin-left:65px}.weeklies-steps[_ngcontent-%COMP%]{margin-left:150px!important;margin-top:30px}}@media (min-width: 992px) and (max-width: 1020px){.heading-weeklies[_ngcontent-%COMP%]{font-size:20px;width:250px;margin-top:50px}.weeklies-steps[_ngcontent-%COMP%]{margin-left:-40px!important;margin-top:30px}}@media (min-width: 1021px) and (max-width: 1176px){.heading-weeklies[_ngcontent-%COMP%]{font-size:20px;margin-top:50px}.weeklies-steps[_ngcontent-%COMP%]{margin-left:-35px!important;margin-top:30px}}"] }); }
788
+ }
789
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WeeklyCertificationComponent, [{
790
+ type: Component,
791
+ args: [{ selector: 'app-weekly-certification', template: "<app-dashboard-help *ngIf=\"hs.isShowing()\" [activeIndex]=\"4\"></app-dashboard-help>\r\n <div *ngIf=\"isLoading\" class=\"ion-text-center\">\r\n <ion-spinner name=\"dots\"></ion-spinner>\r\n </div>\r\n\r\n <div *ngIf=\"!isLoading && errorMsg\" class=\"ion-text-center ion-padding-top\" style=\"padding-top: 50px;\">\r\n <ion-icon name=\"alert-circle-outline\" style=\"font-size: 60px; color: var(--ion-color-danger);\"></ion-icon>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(errorMsg)\" style=\"color: var(--ion-color-danger); font-size: larger;\" class=\"ion-text-center ion-padding\"></div>\r\n </div>\r\n\r\n <div *ngIf=\"!isLoading && !errorMsg\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col size=\"12\" offsetXl=\"1\" *ngIf=\"!isMS() || (isMS() && !multipleWeeksDue && !displayContinuedWeeksFiledHeading)\">\r\n <h1 class=\"app-heading\">{{'weeklies.v2.task.heading' | translate:dynamicParam }}</h1>\r\n </ion-col>\r\n\r\n <ion-col size=\"12\" offsetXl=\"1\" *ngIf=\"(isMS() && multipleWeeksDue && !displayContinuedWeeksFiledHeading)\">\r\n <h1 class=\"app-heading\">{{'weeklies.v2.task.multiple.weeks.heading' | translate:dynamicParam }}</h1>\r\n </ion-col>\r\n\r\n <ion-col size=\"12\" offsetXl=\"1\" *ngIf=\"(isMS() && multipleWeeksDue && displayContinuedWeeksFiledHeading)\">\r\n <h1 class=\"app-heading\">{{'weeklies.v2.task.multiple.weeks.heading.continued' | translate:dynamicParam }}</h1>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n\r\n <section *ngIf=\"!isMS()\">\r\n <ion-grid>\r\n <ion-row>\r\n <ion-col size=\"12\" sizeXl=\"5\" offsetXl=\"1\" sizeLg=\"6\">\r\n <app-work-search-question-v2 *ngIf=\"!isLoading && !errorMsg\" (success)=\"goToWeeklyCert()\" [showCounter]=\"true\" (hasHiredStatus)=\"hasHiredStatus($event)\"\r\n (hasWorkedFullTimeOrStartedWorkingStatus)=\"hasWorkedFullTimeOrStartedWorkingStatus($event)\"></app-work-search-question-v2>\r\n </ion-col>\r\n <ion-col size=\"12\" sizeXl=\"5\" sizeLg=\"6\"> \r\n <app-form-builder #weeklyQuestions [flowKey]=\"'weekly-cert'\" [autoSave]=\"false\" [showOnlyQuestion]=\"true\" [hideHeader]=\"true\"\r\n [hideFooter]=\"true\" [sizeXs]=\"12\" [sizeSm]=\"12\" [sizeMd]=\"12\" [sizeLg]=\"12\" [sizeXl]=\"12\" [offsetXl]=\"0\" [offsetLg]=\"0\" \r\n (onError)=\"handleError($event)\" (onComplete)=\"success($event)\" [dynamicParam]=\"dynamicParam\" [data]=\"dataToLoad\" \r\n [multiMode]=\"true\" [readOnlyFields]=\"readOnlyFields\" (onLoadComplete)=\"loadComplete($event)\">\r\n </app-form-builder> \r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </section>\r\n\r\n <section *ngIf=\"isMS()\">\r\n <ion-row>\r\n <ion-col size=\"3\" offsetLg=\"3\" offsetXl=\"3\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <section *ngIf=\"activeIndex == 0 || activeIndex == 1\">\r\n <h1 class=\"heading-weeklies\"><b> {{ contents[activeIndex] }} </b></h1>\r\n </section>\r\n <section *ngIf=\"activeIndex == 2\">\r\n <h1 class=\"heading-weeklies-ack\"><b> {{ contents[activeIndex] }} </b></h1>\r\n </section>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"2\"></ion-col>\r\n <ion-col class=\"weeklies-steps\" size=\"1\">\r\n <div class=\"p-fluid p-formgrid\" >\r\n <p-steps [model]=\"items\" [activeIndex]=\"activeIndex\" [styleClass]=\"'completed-'+activeIndex\" [ngStyle]=\"{'--step-width':'50px','--step-height':'50px'}\">\r\n </p-steps>\r\n </div>\r\n \r\n </ion-col>\r\n <ion-col size=\"3\">\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col style=\"margin-top: -35px;\"size=\"12\" sizeSm=\"8\" sizeXs=\"12\" sizeMd=\"8\" sizeLg=\"6\" sizeXl=\"5\" offsetLg=\"3\" offsetXl=\"3\" offsetMd=\"1\">\r\n <p-divider></p-divider>\r\n </ion-col> \r\n </ion-row>\r\n \r\n <ion-grid *ngIf=\"activeIndex == 0\">\r\n <ion-row>\r\n <ion-col size=\"12\" sizeSm=\"8\" sizeXs=\"12\" sizeMd=\"8\" sizeLg=\"6\" sizeXl=\"5\" offsetLg=\"3\" offsetXl=\"3\" offsetMd=\"1\">\r\n <app-work-search-question-v2 *ngIf=\"!isLoading && !errorMsg\" (success)=\"goToWeeklyCert()\" [showCounter]=\"true\" (hasHiredStatus)=\"hasHiredStatus($event)\"></app-work-search-question-v2>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n <ion-grid *ngIf=\"activeIndex == 1\">\r\n <ion-row>\r\n <ion-col size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"5.25\" sizeXl=\"5.25\" offsetLg=\"3\" offsetXl=\"3\" offsetMd=\"1\"> \r\n <app-form-builder #weeklyQuestions [flowKey]=\"'weekly-cert'\" [autoSave]=\"true\" [showOnlyQuestion]=\"true\" [hideHeader]=\"true\"\r\n [hideFooter]=\"true\" [sizeXs]=\"12\" [sizeSm]=\"12\" [sizeMd]=\"12\" [sizeLg]=\"12\" [sizeXl]=\"12\" [offsetXl]=\"0\" [offsetLg]=\"0\" \r\n (onError)=\"handleError($event)\" (onComplete)=\"success($event)\" [dynamicParam]=\"dynamicParam\" [data]=\"dataToLoad\" \r\n [multiMode]=\"true\" [readOnlyFields]=\"readOnlyFields\" (onLoadComplete)=\"loadComplete($event)\">\r\n </app-form-builder> \r\n </ion-col>\r\n </ion-row>\r\n <!-- Weekly Earnings reminder popup - shown every week except for waiting period week -->\r\n <ion-row *ngIf=\"weeklyWorkPerformedPopupFlag\">\r\n <app-weekly-work-performed-popup [showWeeklyWorkPerformedPopup]=\"true\"></app-weekly-work-performed-popup>\r\n </ion-row>\r\n </ion-grid>\r\n <ion-grid *ngIf=\"activeIndex == 2\">\r\n <ion-row>\r\n <ion-col size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"10\" sizeLg=\"6\" sizeXl=\"6\" offsetLg=\"3\" offsetXl=\"3\" offsetMd=\"1\">\r\n <app-acknowledgement-ms *ngIf=\"showAck\" (success)=\"fileWeeklyCertDone($event)\" (onClose)=\"closeAck()\">\r\n </app-acknowledgement-ms> \r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </section>\r\n\r\n <app-multi-questionnaire [qeQueryModels]=\"qeQueryModels\" *ngIf=\"isOpenQe\" \r\n (onComplete)=\"openSummaryPostQuestionnaires($event)\" (modelCancel)=\"onQeClose()\" \r\n [header]=\"'Follow-up Questions' | translate\" [showQuestionNumber]=\"true\"></app-multi-questionnaire>\r\n\r\n <div *ngIf=\"!isMS()\">\r\n <app-acknowledgement-v2 *ngIf=\"showAck\" (success)=\"fileWeeklyCertDone($event)\" (onClose)=\"closeAck()\">\r\n </app-acknowledgement-v2> \r\n </div>\r\n\r\n <app-confirmation *ngIf=\"showConfirmation\" (onClose)=\"closeConfirmationPopup()\" [data]=\"confirmationData\" [dynamicParam]=\"dynamicParam\"></app-confirmation>\r\n \r\n <app-interim-confirmation *ngIf=\"showInterimConfirmation\" (onClose)=\"closeConfirmationPopup()\" (onNext)=\"navigateToWeeklies($event)\" [data]=\"confirmationData\" [dynamicParam]=\"dynamicParam\"></app-interim-confirmation>\r\n\r\n <ion-footer *ngIf=\"!isMS()\">\r\n <ion-row class=\"ion-padding\">\r\n <ion-col class=\"ion-text-left\" ion-col size=\"12\" sizeXl=\"5\" offsetXl=\"1\" sizeLg=\"6\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"goHome()\">Close\r\n </ion-button>\r\n </ion-col>\r\n <ion-col class=\"ion-text-right\" size=\"12\" sizeXl=\"5\" sizeLg=\"6\">\r\n <ion-button shape=\"round\" fill=\"solid\" type=\"submit\" (click)=\"openNextPage()\" >Submit\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-footer>\r\n <section *ngIf=\"isMS()\">\r\n <ion-row class=\"ion-padding buttons-row\">\r\n <ion-col size=\"3\"></ion-col>\r\n <ion-col class=\"weeklies-left-buttons\" size=\"3\">\r\n <ion-button id=\"close\" shape=\"round\" fill=\"outline\" *ngIf=\"activeIndex == 0\" (click)=\"goHome()\">Close\r\n </ion-button>\r\n <ion-button id=\"back\" shape=\"round\" fill=\"outline\" *ngIf=\"activeIndex != 0\" (click)=\"activeIndex = activeIndex - 1\">\r\n Back</ion-button>\r\n </ion-col>\r\n <ion-col class=\"weeklies-right-buttons\" size=\"3\">\r\n <ion-button id=\"next\" shape=\"round\" fill=\"solid\" type=\"submit\" (click)=\"openNextPage()\" *ngIf=\"activeIndex != 2\">Next\r\n </ion-button>\r\n <ion-button id=\"submit\" shape=\"round\" fill=\"solid\" type=\"submit\" (click)=\"showAcknowledgement()\" *ngIf=\"activeIndex == 2\">\r\n Submit</ion-button>\r\n </ion-col>\r\n <ion-col size=\"3\"></ion-col>\r\n </ion-row>\r\n </section>\r\n </div>", styles: [":host ::ng-deep .p-steps-item{flex:0 0;text-align:center}:host ::ng-deep .p-steps .p-steps-item.p-highlight .p-steps-number{background-color:var(--ion-color-primary)}:host ::ng-deep .p-steps ul{justify-content:center}.app-heading{font-family:var(--app-font-light);font-size:36px;color:var(--ion-color-medium-gray)}.p-steps-item .p-steps .p-steps-number{width:var(--step-width)!important;height:var(--step-height)!important}.buttons-row{display:flex;justify-content:space-between;align-items:center;padding:0 10px}.weeklies-left-buttons,.weeklies-right-buttons{display:flex;gap:40px}ion-button{min-width:80px;flex-shrink:1}.weeklies-steps{margin-left:-135px!important}@media (max-width: 320px){.weeklies-left-buttons,.weeklies-right-buttons{flex-direction:column;gap:6px}}@media (max-width: 360px){ion-button{font-size:14px}.buttons-row{padding:0 5px}}@media (min-width: 600px){.buttons-row,.weeklies-left-buttons,.weeklies-right-buttons{justify-content:center}ion-col.size-3{max-width:200px}ion-button{min-width:100px}}@media (min-width: 1280px){.buttons-row{justify-content:unset}.weeklies-left-buttons{text-align:left;padding-left:0;justify-content:unset}.weeklies-right-buttons{text-align:right;position:relative;padding-right:10px}}@media (min-width: 391px) and (max-width: 420px){.weeklies-steps{margin-left:95px!important}}@media (min-width: 320px) and (max-width: 350px){.heading-weeklies{font-family:var(--app-font-regular);font-size:15px;width:max-content}.heading-weeklies-ack{font-size:15px!important;width:max-content}.weeklies-steps{margin-left:100px!important}}@media (min-width: 351px) and (max-width: 470px){.heading-weeklies{font-family:var(--app-font-regular);font-size:17px;width:max-content}.heading-weeklies-ack{font-size:16px!important;width:max-content}.weeklies-steps{margin-left:110px!important}}@media (min-width: 470px) and (max-width: 680px){.heading-weeklies{font-size:18px;width:250px}.heading-weeklies-ack{font-size:18px!important;width:max-content}.weeklies-steps{margin-left:195px!important}}@media (min-width: 681px) and (max-width: 767px){.heading-weeklies{font-size:20px;width:250px;margin-top:50px}.weeklies-steps{margin-left:70px!important;margin-top:30px}}@media (min-width: 768px) and (max-width: 991px){.heading-weeklies{font-size:20px;width:250px;margin-top:50px;margin-left:65px}.weeklies-steps{margin-left:150px!important;margin-top:30px}}@media (min-width: 992px) and (max-width: 1020px){.heading-weeklies{font-size:20px;width:250px;margin-top:50px}.weeklies-steps{margin-left:-40px!important;margin-top:30px}}@media (min-width: 1021px) and (max-width: 1176px){.heading-weeklies{font-size:20px;margin-top:50px}.weeklies-steps{margin-left:-35px!important;margin-top:30px}}\n"] }]
792
+ }], () => [{ type: i1.WeeklyCertServiceV2 }, { type: i2.FormBuilder }, { type: i3.UtilService }, { type: i4.NavController }, { type: i5.DomSanitizer }, { type: i6.HelpService }, { type: i7.LoginService }, { type: i8.ClaimantContextService }, { type: i9.DatePipe }, { type: i10.Router }], { workSearchComponent: [{
793
+ type: ViewChild,
794
+ args: [WorkSearchQuestionComponentV2]
795
+ }], acknowledgementMsComponent: [{
796
+ type: ViewChild,
797
+ args: [AcknowledgementMsComponent]
798
+ }], summaryComponent: [{
799
+ type: ViewChild,
800
+ args: [SummaryComponentV2]
801
+ }], weeklyQuestions: [{
802
+ type: ViewChild,
803
+ args: ['weeklyQuestions']
804
+ }] }); })();
805
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WeeklyCertificationComponent, { className: "WeeklyCertificationComponent", filePath: "lib\\components\\weekly-certification\\weekly-certification.component.ts", lineNumber: 32 }); })();
806
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vla2x5LWNlcnRpZmljYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS1jZXJ0aWZpY2F0aW9uL3dlZWtseS1jZXJ0aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy93ZWVrbHktY2VydGlmaWNhdGlvbi93ZWVrbHktY2VydGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBTWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUlwSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ3BCckgsd0NBQWtGOztJQUF2QywrQkFBaUI7OztJQUN4RCw4QkFBK0M7SUFDM0MsaUNBQXVDO0lBQzNDLGlCQUFNOzs7SUFFTiw4QkFBdUc7SUFDckcsOEJBQTBHLGFBQUE7SUFFNUcsaUJBQU07OztJQURDLGVBQXlEO0lBQXpELHdHQUF5RDs7O0lBTTFELG1DQUF1SCxhQUFBO0lBQzdGLFlBQXdEOztJQUFBLGlCQUFLLEVBQUE7OztJQUE3RCxlQUF3RDtJQUF4RCwyRkFB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QUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4RCxPQUFPLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzZGQWpnQlUsNEJBQTRCO29FQUE1Qiw0QkFBNEI7MkJBRTlCLDZCQUE2QjsyQkFJM0IsMEJBQTBCOzJCQUcxQixrQkFBa0I7Ozs7Ozs7OztZQ3hDL0IsMkdBQWtGLGdFQUFBLGdFQUFBLGtFQUFBOztZQUE3RCx5Q0FBb0I7WUFDL0IsZUFBZTtZQUFmLG9DQUFlO1lBSWYsZUFBNEI7WUFBNUIscURBQTRCO1lBSzVCLGVBQTZCO1lBQTdCLHNEQUE2Qjs7O2lGRHFCMUIsNEJBQTRCO2NBTHhDLFNBQVM7MkJBQ0UsMEJBQTBCO3NTQU9wQyxtQkFBbUI7a0JBRHBCLFNBQVM7bUJBQUMsNkJBQTZCO1lBS3RDLDBCQUEwQjtrQkFEekIsU0FBUzttQkFBQywwQkFBMEI7WUFJckMsZ0JBQWdCO2tCQURmLFNBQVM7bUJBQUMsa0JBQWtCO1lBR0MsZUFBZTtrQkFBNUMsU0FBUzttQkFBQyxpQkFBaUI7O2tGQVpqQiw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuaW1wb3J0IHsgQ2xhaW1hbnRDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltYW50LWNvbnRleHQvY2xhaW1hbnQtY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEhlbHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaGVscC9oZWxwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRdWVzdGlvbm5haXJlUXVlcnlNb2RlbCB9IGZyb20gJy4uLy4uLy9tb2RlbHMvcXVlc3Rpb25uYWlyZS9RdWVzdGlvbm5haXJlUXVlcnlNb2RlbCc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBIZWxwQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0hlbHBDb25zdGFudHMnO1xyXG5pbXBvcnQgeyBXZWVrbHlDZXJ0U2VydmljZVYyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1bW1hcnlDb21wb25lbnRWMiB9IGZyb20gJy4uL3dlZWtseS1zdW1tYXJ5LXYyL3N1bW1hcnkuY29tcG9uZW50LXYyJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXJQYWdlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9xdWVzdGlvbm5haXJlL2Zvcm0tYnVpbGRlci9mb3JtLWJ1aWxkZXIucGFnZSc7XHJcbmltcG9ydCB7IFdvcmtTZWFyY2hRdWVzdGlvbkNvbXBvbmVudFYyIH0gZnJvbSAnLi4vd2Vla2x5LXdvcmstc2VhcmNoLXF1ZXN0aW9uLXYyL3dvcmstc2VhcmNoLXF1ZXN0aW9uLmNvbXBvbmVudC12Mic7XHJcbmltcG9ydCB7IFdlZWtseUNlcnRpZmljYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93ZWVrbHktY2VydC93ZWVrbHktY2VydGlmaWNhdGlvbi12Mi1tb2RlbCc7XHJcbmltcG9ydCB7IFdlZWtseUNlcnRFbGlnaWJpbGl0eU1vZGVsVjIgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtZWxpZ2liaWxpdHktdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBTdGF0dXNNb2RlbCB9IGZyb20gJy4uLy4uLy9tb2RlbHMvcXVlc3Rpb25uYWlyZS9TdGF0dXNNb2RlbCc7XHJcbmltcG9ydCB7IEFja25vd2xlZGdlbWVudE1zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy93ZWVrbHktYWNrbm93bGVkZ2VtZW50LW1zL2Fja25vd2xlZGdlbWVudC1tcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXb3JrU2VhcmNoTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvd2Vla2x5LWNlcnQvd29yay1zZWFyY2gtdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93ZWVrbHktY2VydC93b3JrLXNlYXJjaC1yZWNvcmQtdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd2Vla2x5LWNlcnRpZmljYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93ZWVrbHktY2VydGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3dlZWtseS1jZXJ0aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2Vla2x5Q2VydGlmaWNhdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VQYWdlIGltcGxlbWVudHMgT25Jbml0e1xyXG5cclxuQFZpZXdDaGlsZChXb3JrU2VhcmNoUXVlc3Rpb25Db21wb25lbnRWMilcclxuICB3b3JrU2VhcmNoQ29tcG9uZW50OiBXb3JrU2VhcmNoUXVlc3Rpb25Db21wb25lbnRWMjtcclxuXHJcbiAgLy9UcmlnZ2VyaW5nIFN1Ym1pdCBpbiB0aGUgY29tcG9uZW50XHJcbiAgQFZpZXdDaGlsZChBY2tub3dsZWRnZW1lbnRNc0NvbXBvbmVudClcclxuICBhY2tub3dsZWRnZW1lbnRNc0NvbXBvbmVudDogQWNrbm93bGVkZ2VtZW50TXNDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoU3VtbWFyeUNvbXBvbmVudFYyKVxyXG4gIHN1bW1hcnlDb21wb25lbnQ6IFN1bW1hcnlDb21wb25lbnRWMjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnd2Vla2x5UXVlc3Rpb25zJykgd2Vla2x5UXVlc3Rpb25zOiBGb3JtQnVpbGRlclBhZ2VcclxuXHJcbiAgcHVibGljIHNob3dBY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0NvbmZpcm1hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjb25maXJtYXRpb25EYXRhOiBhbnk7XHJcblxyXG4gIHB1YmxpYyBpdGVtczogTWVudUl0ZW1bXTtcclxuICBwdWJsaWMgY29udGVudHM6IHN0cmluZ1tdO1xyXG4gIHB1YmxpYyBhY3RpdmVJbmRleCA9IDA7XHJcbiAgcHVibGljIGVycm9yTXNnOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93V29ya1NlYXJjaDogYm9vbGVhbjtcclxuICBwdWJsaWMgZHluYW1pY1BhcmFtOiBhbnk7XHJcbiAgaXNPcGVuUWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBxZVF1ZXJ5TW9kZWxzOiBRdWVzdGlvbm5haXJlUXVlcnlNb2RlbFtdO1xyXG4gIHBvdGVudGlhbElzc3VlczogbnVtYmVyW107XHJcbiAgc3RhdHVzTW9kZWw6IFN0YXR1c01vZGVsO1xyXG4gIHJlYWRPbmx5RmllbGRzOiBzdHJpbmdbXSA9IG51bGw7XHJcbiAgcmVhZE9ubHlEYXRhOiBhbnk7XHJcbiAgZGF0YVRvTG9hZDogYW55O1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoV2FpdmVkOiBhbnk7XHJcbiAgcHVibGljIHdhaXZlclJlYXNvbjogU3RyaW5nID0gbnVsbDtcclxuICBwdWJsaWMgd29ya1NlYXJjaERhdGFNczogV29ya1NlYXJjaE1vZGVsO1xyXG5cclxuICBwdWJsaWMgbXVsdGlwbGVXZWVrc0R1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93SW50ZXJpbUNvbmZpcm1hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBudW1iZXJPZk11bHRpcGxlV2Vla3NEdWU6IG51bWJlcjtcclxuICByZWNlaXZlZERhdGE6IGFueTtcclxuICBwdWJsaWMgZGlzcGxheUNvbnRpbnVlZFdlZWtzRmlsZWRIZWFkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGFyc2VkTWF4UlRXRGF0ZTogYW55O1xyXG4gIHB1YmxpYyB3ZWVrbHlXb3JrUGVyZm9ybWVkUG9wdXBGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgd29ya1NlYXJjaFJlY29yZHM6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbFtdO1xyXG5cclxuICBjb3VudCA9IDA7XHJcbiAgcmVlbVdvcmtTZWFyY2hSZWNvcmRDb3VudCA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd2NTZXJ2aWNlOiBXZWVrbHlDZXJ0U2VydmljZVYyLCBwdWJsaWMgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHV0aWw6IFV0aWxTZXJ2aWNlLCBwcml2YXRlIG5hdjogTmF2Q29udHJvbGxlcixcclxuICAgIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplciwgcHVibGljIGhzOiBIZWxwU2VydmljZSwgcHVibGljIGxzOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENsYWltYW50Q29udGV4dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGVwaXBlOkRhdGVQaXBlLCBwcml2YXRlIHJvdXRlcjogUm91dGVyKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLndjU2VydmljZS5yZXNldFdlZWtseUNlcnREYXRhKCk7XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53Y1NlcnZpY2UuY2hlY2tXZWVrbHlFbGlnaWJpbGl0eSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgIHRoaXMucHJvY2Vzc1dlZWtseUNlcnRFbGlnaWJpbHR5U3VjY2VzcyhyZXMpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMucHJvY2Vzc1dlZWtseUNlcnRFbGlnaWJpbGl0eUVycm9yKGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICB9XHJcblxyXG4gIG9uU3RlcENoYW5nZShpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICBwcm9jZXNzV2Vla2x5Q2VydEVsaWdpYmlsdHlTdWNjZXNzKHJlczogV2Vla2x5Q2VydEVsaWdpYmlsaXR5TW9kZWxWMikge1xyXG4gICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEgPSByZXM7XHJcbiAgICB0aGlzLmVycm9yTXNnID0gbnVsbDtcclxuICAgIHRoaXMuZ2V0TGFiZWxNYXhSVFdEYXRlKCk7XHJcbiAgICB0aGlzLmR5bmFtaWNQYXJhbSA9IHtcclxuICAgICAgJ3NhdHVyZGF5X2RhdGUnOiB0aGlzLndjU2VydmljZS5nZXRTYXR1cmRheURhdGVBc1N0cmluZygpLFxyXG4gICAgICAnc3VuZGF5X2RhdGUnOiB0aGlzLndjU2VydmljZS5nZXRTdW5kYXlEYXRlQXNTdHJpbmcoKSxcclxuICAgICAgJ21pbl9ydHdfZGF0ZSc6IHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLm1pbkFsbG93ZWRSdHdEYXRlLFxyXG4gICAgICAnbWF4X3J0d19kYXRlJzogdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEubWF4QWxsb3dlZFJ0d0RhdGUsXHJcbiAgICAgICdwZW5zaW9uX2VtcGxveWVycyc6IHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLnBlbnNpb25FbXBsb3llcnMsXHJcbiAgICAgICdkdWFEZWNsYXJhdGlvbic6IHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLmR1YURlY2xhcmF0aW9uLFxyXG4gICAgICAnY2xhaW1XZWVrRW5kRGF0ZSc6IHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLmNsYWltV2Vla0VuZERhdGUsXHJcbiAgICAgICdjbGFpbWFudElkJzogdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEuY2xhaW1hbnRJZCxcclxuICAgICAgJ2xhYmVsX21heFJ0d0RhdGUnOiB0aGlzLnBhcnNlZE1heFJUV0RhdGUsXHJcbiAgICB9O1xyXG5cclxuICAgIC8vIGlmIHRoZSB1c2VyIGlzIG5hdmlnYXRpbmcgdG8gd2Vla2xpZXMgZnJvbSBpbnRlcmltIGNvbmZpcm1hdGlvbiB0byBjb250aW51ZSBmaWxpbmcgZGF0YSB3aWxsIGJlIHN0b3JlZFxyXG4gICAgY29uc3Qgc3RvcmVkRGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdpbnRlcmltQ29uZmlybWF0aW9uRGF0YScpO1xyXG4gICAgaWYgKHN0b3JlZERhdGEpIHtcclxuICAgICAgY29uc3QgZGVlbmNvZGVkUGFyYW1zID0gYXRvYigoc3RvcmVkRGF0YSkpO1xyXG4gICAgICB0aGlzLnJlY2VpdmVkRGF0YSA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGRlZW5jb2RlZFBhcmFtcykpO1xyXG4gICAgICBpZih0aGlzLmR5bmFtaWNQYXJhbS5jbGFpbWFudElkICE9IHRoaXMucmVjZWl2ZWREYXRhLmNsYWltYW50SWQpXHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLnJlY2VpdmVkRGF0YSA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgICAgLy8gY2hlY2tpbmcgZGF0YSBmb3IgZmxhZyB0byBjb250aW51ZSB0byBmaWxlIGZvciBtdWx0aXBsZSB3ZWVrc1xyXG4gICAgICBpZih0aGlzLnJlY2VpdmVkRGF0YSAmJiAodGhpcy5keW5hbWljUGFyYW0uY2xhaW1hbnRJZCA9PSB0aGlzLnJlY2VpdmVkRGF0YS5jbGFpbWFudElkKSAmJlxyXG4gICAgICAgIHRoaXMucmVjZWl2ZWREYXRhLmNvbnRpbnVlVG9GaWxlRm9yTXVsdGlwbGVXZWVrcyA9PSB0cnVlKVxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZVdlZWtzRHVlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmRpc3BsYXlDb250aW51ZWRXZWVrc0ZpbGVkSGVhZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5keW5hbWljUGFyYW0ubmV4dENlcnRpZmljYXRpb25Ub0ZpbGVDb3VudCA9IHRoaXMucmVjZWl2ZWREYXRhLmN1cnJlbnROdW1iZXJGaWxpbmc7IFxyXG4gICAgICAgIHRoaXMuZHluYW1pY1BhcmFtLnRvdGFsVG9DZXJ0aWZ5ID0gdGhpcy5yZWNlaXZlZERhdGEudG90YWw7XHJcbiAgICAgICAgLy8gdGhpcy5udW1iZXJPZk11bHRpcGxlV2Vla3NEdWUgPSB0aGlzLnJlY2VpdmVkRGF0YS5jb3VudDtcclxuXHJcbiAgICAgICAgLy8gaWYgbW9yZSB3ZWVrcyBhcmUgZHVlIHNldCB0aGUgbmV4dCBzdW5kYXkgYW5kIHNhdHVyZGF5IGRheXNcclxuICAgICAgICBpZih0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0U2VydmVyRGF0YS53ZWVrc1RvQmVDZXJ0aWZpZWQubGVuZ3RoPjEpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljUGFyYW0ubmV4dF9zYXR1cmRheSA9IHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLndlZWtzVG9CZUNlcnRpZmllZFsxXTtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY1BhcmFtLm5leHRfc3VuZGF5ID0gdGhpcy5nZXRQcmV2aW91c1N1bmRheSh0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0U2VydmVyRGF0YS53ZWVrc1RvQmVDZXJ0aWZpZWRbMV0pXHJcbiAgICAgICAgICB0aGlzLmR5bmFtaWNQYXJhbS5udW1iZXJPZk11bHRpcGxlV2Vla3NEdWUgPSB0aGlzLnJlY2VpdmVkRGF0YS50b3RhbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gXHJcbiAgICAgIC8vIGlmIGNsYWltYW50IGZpbGluZyBhbmQgaGFzIG11bHRpcGxlIGNlcnRpZmljYXRpb25zIGR1ZVxyXG4gICAgICAvLyB3aWxsIGdvIHRocm91Z2ggaW50ZXJpbSBwcm9jZXNzIHVudGlsIGZpbmFsIGxhdGVzdCB3ZWVrIGZpbGVkXHJcbiAgICAgIGVsc2UgaWYodGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEud2Vla3NUb0JlQ2VydGlmaWVkLmxlbmd0aD4xKVxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5udW1iZXJPZk11bHRpcGxlV2Vla3NEdWUgPSB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0U2VydmVyRGF0YS53ZWVrc1RvQmVDZXJ0aWZpZWQubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVXZWVrc0R1ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5keW5hbWljUGFyYW0ubnVtYmVyT2ZNdWx0aXBsZVdlZWtzRHVlID0gdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEud2Vla3NUb0JlQ2VydGlmaWVkLmxlbmd0aDtcclxuICAgICAgICB0aGlzLmR5bmFtaWNQYXJhbS5uZXh0X3NhdHVyZGF5ID0gdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEud2Vla3NUb0JlQ2VydGlmaWVkWzFdO1xyXG4gICAgICAgIHRoaXMuZHluYW1pY1BhcmFtLm5leHRfc3VuZGF5ID0gdGhpcy5nZXRQcmV2aW91c1N1bmRheSh0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0U2VydmVyRGF0YS53ZWVrc1RvQmVDZXJ0aWZpZWRbMV0pXHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgaWYgKExpYkNvbnN0YW50cy5sZWdhY3lNZW51ID09ICdmYWxzZScpIHtcclxuICAgICAgdGhpcy5ocy5zaG93RGlhbG9nSWZQcmVmZXJlbmNlQWxsb3coSGVscENvbnN0YW50cy5XRUVLTFlfSEVMUCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5oYW5kbGVIaWRkZW5GaWVsZHMocmVzKTtcclxuXHJcbiAgICB0aGlzLmluaXRpYWxpemVEYXRhRm9yV29ya1NlYXJjaEZvcm0oKTtcclxuICAgIGlmICh0aGlzLmlzTVMoKSkge1xyXG4gICAgICB0aGlzLml0ZW1zID0gW1xyXG4gICAgICAgIHsgbGFiZWw6ICcnLCBjb21tYW5kOiAoKSA9PiB7IHRoaXMub25TdGVwQ2hhbmdlKDApOyB9IH0sXHJcbiAgICAgICAgeyBsYWJlbDogJycsIGNvbW1hbmQ6ICgpID0+IHsgdGhpcy5vblN0ZXBDaGFuZ2UoMSk7IH0gfSxcclxuICAgICAgICB7IGxhYmVsOiAnJywgY29tbWFuZDogKCkgPT4geyB0aGlzLm9uU3RlcENoYW5nZSgyKTsgfSB9XHJcbiAgICAgIF07XHJcbiAgICB9IFxyXG5cclxuICAgIHRoaXMuY29udGVudHMgPSBbJyAgIFdvcmsgU2VhcmNoIEFjdGl2aXRpZXMnLCAnICAgV2Vla2x5IFF1ZXN0aW9ucycsICcgICBBY2tub3dsZWRnZSAmIENlcnRpZnknXTtcclxuICB9XHJcblxyXG4gIGdldExhYmVsTWF4UlRXRGF0ZSgpe1xyXG4gICAgdGhpcy5wYXJzZWRNYXhSVFdEYXRlID0gbmV3IERhdGUodGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEubWF4QWxsb3dlZFJ0d0RhdGUpO1xyXG4gICAgdGhpcy5wYXJzZWRNYXhSVFdEYXRlLnNldERhdGUodGhpcy5wYXJzZWRNYXhSVFdEYXRlLmdldERhdGUoKSArIDEpO1xyXG4gICAgdGhpcy5wYXJzZWRNYXhSVFdEYXRlPXRoaXMuZGF0ZXBpcGUudHJhbnNmb3JtKHRoaXMucGFyc2VkTWF4UlRXRGF0ZSwgJ01NL2RkL3l5eXknKTtcclxuICB9XHJcblxyXG4gIHByb2Nlc3NXZWVrbHlDZXJ0RWxpZ2liaWxpdHlFcnJvcihlcnI6IGFueSkge1xyXG4gICAgaWYgKGVyci5tc2cgIT0gbnVsbCAmJiBlcnIubXNnWzBdID09ICdObyBXZWVrcyBhcmUgcGVuZGluZyB0byBiZSBmaWxlZC4nKSB7XHJcbiAgICAgIHRoaXMudXRpbC5nZXRTdGF0ZSgpPT09J0NUJyA/IHRoaXMubmF2Lm5hdmlnYXRlUm9vdChcIndlZWtseS1ub3QtZWxpZ2libGVcIikgOiB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoXCJ3b3JrLXNlYXJjaC1qb3VybmFsXCIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lcnJvck1zZyA9IGVyci5tc2c7XHJcbiAgICB9XHJcbiAgICB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0U2VydmVyRGF0YSA9IG51bGw7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZURhdGFGb3JXb3JrU2VhcmNoRm9ybSgpIHtcclxuICAgIHRoaXMud29ya1NlYXJjaFdhaXZlZCA9IHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLmlzV29ya1NlYXJjaFdhaXZlZDtcclxuICAgIHRoaXMud2FpdmVyUmVhc29uID0gdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEud2FpdmVyUmVhc29uO1xyXG4gICAgLy9SRUVNIEFDVElWSVRZIFRZUEUgQ09VTlQgQVNTSUdOTUVOVFxyXG4gICAgdGhpcy5yZWVtV29ya1NlYXJjaFJlY29yZENvdW50ID0gTnVtYmVyKHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhPy5oaWRSZWVtV29ya1NlYXJjaFJlY29yZENvdW50ID8/IDApO1xyXG4gICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEuaGlkUmVlbVdvcmtTZWFyY2hSZWNvcmRDb3VudCA9IHRoaXMucmVlbVdvcmtTZWFyY2hSZWNvcmRDb3VudDtcclxuICAgIC8vXHJcbiAgICB0aGlzLndjU2VydmljZS5nZXRDbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsUmVjb3Jkcyh0aGlzLndjU2VydmljZS5nZXRTYXR1cmRheURhdGVBc1N0cmluZygpKS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy53Y1NlcnZpY2Uud29ya1NlYXJjaEpvdXJuYWwgPSByZXM7XHJcbiAgICAgICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaFJlY29yZHMgPSByZXMud29ya1NlYXJjaFJlY29yZHM7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNNRSgpICYmIHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnREYXRhLndvcmtTZWFyY2hSZWNvcmRzKSB7XHJcbiAgICAgICAgICBjb25zdCBoYXNTdGFydGVkV29ya2luZyA9ICh0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YS53b3JrU2VhcmNoUmVjb3JkcyA/PyBbXSkuc29tZShcclxuICAgICAgICAgICAgcmVjID0+IHJlYz8uc2VhcmNoUmVzdWx0ID09PSAnU1RXSydcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZihoYXNTdGFydGVkV29ya2luZyl7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzV29ya2VkRnVsbFRpbWVPclN0YXJ0ZWRXb3JraW5nU3RhdHVzKHRydWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnIgPT4ge1xyXG4gICAgICAgIHRoaXMud2NTZXJ2aWNlLndvcmtTZWFyY2hKb3VybmFsID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIFxyXG4gICAgaWYgKHRoaXMuaXNNUygpKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3Blbk5leHRQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMud29ya1NlYXJjaENvbXBvbmVudCkge1xyXG4gICAgICBpZiAodGhpcy53Y1NlcnZpY2UuZ2V0RGlzcGxheVdvcmtTZWFyY2hTY3JlZW4oKSkge1xyXG4gICAgICAgIHRoaXMud29ya1NlYXJjaENvbXBvbmVudC5zdWJtaXRGb3JtKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5nb1RvV2Vla2x5Q2VydCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMud29ya1NlYXJjaFdhaXZlZCkge1xyXG4gICAgICB0aGlzLmdvVG9XZWVrbHlDZXJ0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdvVG9XZWVrbHlDZXJ0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvV2Vla2x5Q2VydCgpIHtcclxuICAgIGlmICh0aGlzLmlzTVMoKSkge1xyXG4gICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMud2Vla2x5UXVlc3Rpb25zKSB7XHJcbiAgICAgICAgICB0aGlzLmNvdW50ID0gdGhpcy5jb3VudCArIDE7XHJcbiAgICAgICAgICBpZih0aGlzLmNvdW50ID4gMSAmJiB0aGlzLmxzLmlzQ3NyKCkpe1xyXG4gICAgICAgICAgICB0aGlzLndlZWtseVF1ZXN0aW9ucy5xdWVzdGlvbm5haXJlLnF1ZXN0aW9ubmFpcmUucXVlc3Rpb25uYWlyZUZvcm0uZm9ybS5jb250cm9sc1snaGlkQ3NyRmlyc3RQYXNzJ10uc2V0VmFsdWUoJ1knKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMud2Vla2x5UXVlc3Rpb25zLnN1Ym1pdFF1ZXN0aW9ubmFpcmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLndlZWtseVF1ZXN0aW9ucykge1xyXG4gICAgICAgIHRoaXMud2Vla2x5UXVlc3Rpb25zLnN1Ym1pdFF1ZXN0aW9ubmFpcmUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuIFxyXG4gIHN1Y2Nlc3Mod2Vla2x5UXVlc3Rpb25zUmVzcG9uc2UpIHtcclxuICAgIGNvbnN0IGZvcm1EYXRhOiBXZWVrbHlDZXJ0aWZpY2F0aW9uTW9kZWwgPVxyXG4gICAgICBKU09OLnBhcnNlKHdlZWtseVF1ZXN0aW9uc1Jlc3BvbnNlLnNjcmVlblF1ZXN0aW9ubmFpcmVEYXRhWzBdKTtcclxuICAgIGZvcm1EYXRhLndvcmtTZWFyY2hSZWNvcmRzID0gdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHMoKTtcclxuICAgIGZvcm1EYXRhLndvcmtTZWFyY2hEYXRhID0gdGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaERhdGEoKTtcclxuICAgIHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnREYXRhID0gZm9ybURhdGE7XHJcbiAgICB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YS5jbGFpbVdlZWtFbmREYXRlID0gdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEud2Vla1RvQ2VydGlmeTtcclxuICAgIHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnREYXRhLmhpZEluQXBwcm92ZWRUcmFpbmluZyA9IHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLmhpZEluQXBwcm92ZWRUcmFpbmluZztcclxuICAgIHRoaXMub3BlbkZvbGxvd3VwUXVlc3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuRm9sbG93dXBRdWVzdGlvbnMoKSB7XHJcbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xyXG4gICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEuc2hvd1dvcmtTZWFyY2hTY3JlZW4gPSB0aGlzLndjU2VydmljZS5nZXREaXNwbGF5V29ya1NlYXJjaFNjcmVlbigpO1xyXG4gICAgaWYgKHRoaXMud2NTZXJ2aWNlLmdldFdvcmtTZWFyY2hSZWNvcmRzQ291bnQoKSA+IDApIHtcclxuICAgICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaERhdGEuaXNXb3JrU2VhcmNoUGVyZm9ybWVkRmxhZyA9ICcxJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaERhdGEgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YS53b3JrU2VhcmNoRGF0YS5pc1dvcmtTZWFyY2hQZXJmb3JtZWRGbGFnID0gJzAnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLndjU2VydmljZS5nZXRFbXBsb3llclJlY29yZHNDb3VudCgpID4gMCkge1xyXG4gICAgICB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YS53b3JrUGVyZm9ybWVkID0gJ1knO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEud29ya1BlcmZvcm1lZCA9ICdOJztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YS53b3JrUGVyZm9ybWVkU2VhcE5vdFBhcnR0aW1lID0gKHRoaXMud2NTZXJ2aWNlLmdldEVtcGxveWVyUmVjb3Jkc0NvdW50KCkgPiAwICYmIHRoaXMud2NTZXJ2aWNlLmdldEhpZElzU2VhcFBhcnRpY2lwYW50KCkpID8gJ1knIDogJ04nO1xyXG5cclxuICAgIGlmKHRoaXMuaXNNUygpICYmIHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLmhpZElzU2VhcFBhcnRpY2lwYW50PT0nWScpe1xyXG4gICAgICAvL0RvbmUgdG8gaGFuZGxlIG5ldyB2ZXJiaWFnZSBmb3Igd29ya1BlcmZvcm1lZCBmb3IgU2VhcCBQYXJ0aWNpcGFudHMuXHJcbiAgICB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YS53b3JrUGVyZm9ybWVkID0gdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEud29ya1BlcmZvcm1lZFNlYXBOb3RQYXJ0dGltZTtcclxuXHJcbiAgICAvL0RvbmUgdG8gaGFuZGxlIG5ldyB2ZXJiaWFnZSBmb3IgU0VBUCBQYXJ0aWNpcGFudHMgZm9yIGF2YWlsYWJsZSBxdWVzdGlvbi5cclxuICAgIHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnREYXRhLmF2YWlsYWJsZSA9ICh0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YS5hdmFpbGFibGVTZWFwKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLndjU2VydmljZS5kZXRlcm1pbmVRdWVzdGlvbm5pYXJlVG9PcGVuKCkuc3Vic2NyaWJlKFxyXG4gICAgICByZXMgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzTW9kZWwgPSByZXMuc3RhdHVzTW9kZWw7XHJcbiAgICAgICAgdGhpcy5xZVF1ZXJ5TW9kZWxzID0gcmVzLnN0YXR1c01vZGVsLnFlUXVlcnlNb2RlbHM7XHJcbiAgICAgICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEucG90ZW50aWFsSXNzdWVzID0gcmVzLnBvdGVudGlhbElzc3VlSWRzO1xyXG4gICAgICAgIHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnREYXRhLnBlbnNpb25EZW5pZWRQb3RlbnRpYWxJc3N1ZXMgPSByZXMucGVuc2lvbkRlbmllZFBvdGVudGlhbElzc3VlcztcclxuICAgICAgICB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YS5ib251c1BheVBvdGVudGlhbElzc3VlcyA9IHJlcy5ib251c1BheVBvdGVudGlhbElzc3VlcztcclxuICAgICAgICB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YS5vdGhlclBheVBvdGVudGlhbElzc3VlcyA9IHJlcy5vdGhlclBheVBvdGVudGlhbElzc3VlcztcclxuICAgICAgICBpZiAodGhpcy5zdGF0dXNNb2RlbC5zaG93UWUpIHtcclxuICAgICAgICAgIHRoaXMuaXNPcGVuUWUgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnREYXRhLmVtcGxveWVyRGV0YWlsc0xpc3QgIT0gbnVsbFxyXG4gICAgICAgICAgICAmJiB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YS5lbXBsb3llckRldGFpbHNMaXN0Lmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgJiYgcmVzLnRlbXBFbXBsb3llclNlcFBvdGVudGlhbElzc3VlTWFwICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEudGVtcEVtcGxveWVyU2VwUG90ZW50aWFsSXNzdWVNYXAgPSByZXMudGVtcEVtcGxveWVyU2VwUG90ZW50aWFsSXNzdWVNYXA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0Fja25vd2xlZGdlbWVudCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnIgPT4ge1xyXG4gICAgICAgIHRoaXMudXRpbC5zaG93RXJyb3IoZXJyLm1zZyk7XHJcbiAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9wZW5TdW1tYXJ5UG9zdFF1ZXN0aW9ubmFpcmVzKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudCAmJiBldmVudC5zaXplID4gMCkge1xyXG4gICAgICBpZiAoZXZlbnQuaGFzKDkwMDEpKSB7XHJcbiAgICAgICAgbGV0IHdvcmtTZWFyY2hSZWFzb24gPSBldmVudC5nZXQoOTAwMSkucmVhc29uSW5hZGVxdWF0ZVdvcmtTZWFyY2g7XHJcbiAgICAgICAgaWYodGhpcy5pc0NUKCkpe1xyXG4gICAgICAgICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaERhdGEucmVhc29uSW5hZGVxdWF0ZVdvcmtTZWFyY2ggPSB3b3JrU2VhcmNoUmVhc29uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaERhdGEuaXNXb3JrU2VhcmNoUGVyZm9ybWVkRmxhZyA9PSAnMSdcclxuICAgICAgICAgICYmIHRoaXMud2NTZXJ2aWNlLmNoZWNrSWZJbmFkZXF1YXRlV29ya1NlYXJjaFF1ZXN0aW9ubmFpcmVTaG91bGRCZU9wZW5lZCgpXHJcbiAgICAgICAgICAmJiB0aGlzLmlzTVMoKSkge1xyXG4gICAgICAgICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaERhdGEucmVhc29uSW5hZGVxdWF0ZVdvcmtTZWFyY2ggPSB3b3JrU2VhcmNoUmVhc29uO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEud29ya1NlYXJjaERhdGEuaXNXb3JrU2VhcmNoUGVyZm9ybWVkRmxhZyA9PSAnMCcpIHtcclxuICAgICAgICAgIHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnREYXRhLndvcmtTZWFyY2hEYXRhLmV4cGxhaW5XaHlEaWROb3RMb29rRm9yV29yayA9IHdvcmtTZWFyY2hSZWFzb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChldmVudC5oYXMoMTc5KSkge1xyXG4gICAgICAgIHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnREYXRhLmFkbWluTGVhdmVEZXRhaWxzID0gZXZlbnQuZ2V0KDE3OSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV2ZW50Lmhhcyg5MDAyKSkge1xyXG4gICAgICAgIHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnREYXRhLmFkbWluTGVhdmVEZXRhaWxzID0gZXZlbnQuZ2V0KDkwMDIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zaG93QWNrbm93bGVkZ2VtZW50KCk7XHJcbiAgICB0aGlzLmlzT3BlblFlID0gZmFsc2U7XHJcbiAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gIH1cclxuXHJcbiAgb25RZUNsb3NlKCkge1xyXG4gICAgdGhpcy5pc09wZW5RZSA9IGZhbHNlO1xyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICB9XHJcblxyXG4gIGdvVG9TdW1tYXJ5KCkge1xyXG4gICAgdGhpcy5hY3RpdmVJbmRleCA9IDE7XHJcbiAgfVxyXG5cclxuICBjbG9zZUFjaygpIHtcclxuICAgIHRoaXMuc2hvd0FjayA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZmlsZVdlZWtseUNlcnREb25lKGV2ZW50KSB7XHJcbiAgICB0aGlzLnNob3dBY2sgPSBmYWxzZTtcclxuICAgIHRoaXMuY29uZmlybWF0aW9uRGF0YSA9IGV2ZW50O1xyXG4gICAgaWYodGhpcy5pc01TKCkgJiYgdGhpcy5tdWx0aXBsZVdlZWtzRHVlID09IHRydWUgJiYgdGhpcy5yZWNlaXZlZERhdGEpXHJcbiAgICB7XHJcbiAgICAgIC8vIGlmIHRoaXMgaXMgdGhlIGxhc3QgdGltZSBmaWxpbmcgd2Vla2xpZXMgdGhyb3VnaCBpbnRlcmltIGNvbmZpcm1hdGlvbiBmbG93IFxyXG4gICAgICBpZih0aGlzLnJlY2VpdmVkRGF0YS5jdXJyZW50TnVtYmVyRmlsaW5nID09IHRoaXMucmVjZWl2ZWREYXRhLnRvdGFsICYmIHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhLndlZWtzVG9CZUNlcnRpZmllZC5sZW5ndGg9PTEpXHJcbiAgICAgIHtcclxuICAgICAgICB0aGlzLnNob3dJbnRlcmltQ29uZmlybWF0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybWF0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm11bHRpcGxlV2Vla3NEdWUgPSBmYWxzZTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnaW50ZXJpbUNvbmZpcm1hdGlvbkRhdGEnKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBpZiBtb3JlIHdlZWtzIHJlbWFpbiBmb3Igd2Vla2xpZXMgdGhyb3VnaCBpbnRlcmltIGNvbmZpcm1hdGlvbiBmbG93IFxyXG4gICAgICBlbHNlIGlmICh0aGlzLnJlY2VpdmVkRGF0YS5jb3VudCA8PSB0aGlzLnJlY2VpdmVkRGF0YS50b3RhbCAgJiYgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEud2Vla3NUb0JlQ2VydGlmaWVkLmxlbmd0aD4xKVxyXG4gICAgICB7XHJcbiAgICAgICAgdGhpcy5zaG93SW50ZXJpbUNvbmZpcm1hdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93Q29uZmlybWF0aW9uID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0gLy8gaWYgZmlyc3QgdGltZSBmaWxpbmcgd2Vla2xpZXMgdGhyb3VnaCBpbnRlcmltIGNvbmZpcm1hdGlvbiBmbG93XHJcbiAgICBpZih0aGlzLmlzTVMoKSAmJiB0aGlzLm11bHRpcGxlV2Vla3NEdWUgPT0gdHJ1ZSAmJiAhdGhpcy5yZWNlaXZlZERhdGEpXHJcbiAgICB7XHJcbiAgICAgIHRoaXMuc2hvd0ludGVyaW1Db25maXJtYXRpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLnNob3dDb25maXJtYXRpb24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCghdGhpcy5pc01TKCkpIHx8ICh0aGlzLmlzTVMoKSAmJiB0aGlzLm11bHRpcGxlV2Vla3NEdWUgPT0gZmFsc2UpKSB7XHJcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIGNsb3NlQ29uZmlybWF0aW9uUG9wdXAoKSB7XHJcbiAgICBpZih0aGlzLmlzTVMoKSAmJiB0aGlzLm11bHRpcGxlV2Vla3NEdWUgPT0gdHJ1ZSlcclxuICAgIHtcclxuICAgICAgdGhpcy5zaG93SW50ZXJpbUNvbmZpcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy53Y1NlcnZpY2UucmVzZXRXZWVrbHlDZXJ0RGF0YSgpO1xyXG5cclxuICAgIC8vIFRoaXMgaXMgYWRkZWQgYXMgdGhlIG5hdmlnYXRpb24gd2FzIHRvbyBxdWljayBmb3IgdGhlIGNvbmZpcm1hdGlvbiB0byBjbG9zZSBpbiB0aW1lLCBsZWF2aW5nIGNvbmZpcm1hdGlvbiBvcGVuLCBldmVuIHRob3VnaCB0aGUgcGFnZSB3YXMgdXBkYXRlZCBpbiBiYWNrZW5kXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZ29Ib21lKCksIDEwMCk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZVRvV2Vla2xpZXMoZGF0YTogYW55KSB7XHJcbiAgICBpZih0aGlzLmlzTVMoKSAmJiB0aGlzLm11bHRpcGxlV2Vla3NEdWUgPT0gdHJ1ZSlcclxuICAgIHtcclxuICAgICAgdGhpcy5zaG93SW50ZXJpbUNvbmZpcm1hdGlvbiA9IGZhbHNlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2ludGVyaW1Db25maXJtYXRpb25EYXRhJywgZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy53Y1NlcnZpY2UucmVzZXRXZWVrbHlDZXJ0RGF0YSgpO1xyXG5cclxuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ29Ib21lKCkge1xyXG4gICAgaWYgKHRoaXMubHMuaXNDbGFpbWFudCgpKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJ3dlbGNvbWU/d2NEb25lPXRydWUnKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5scy5pc0NzcigpKSB7XHJcbiAgICAgIHRoaXMudXRpbC5vcGVuUGFnZUJ5Q29udGV4dFJvb3RXaXRoRGF0YSh0aGlzLnV0aWwuZ2V0U2VjdXJpdHlBcHBDb250ZXh0Um9vdCgpLCBcInNlYXJjaC1zc25cIiwgdGhpcy5jb250ZXh0U2VydmljZS5nZXRVbkVuY29kZWRTc24oKSwgdGhpcy5uYXYpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3dlbGNvbWUnKTtcclxuICAgIH1cclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgfVxyXG5cclxuICBzaG93QWNrbm93bGVkZ2VtZW50KCkge1xyXG4gICAgaWYgKHRoaXMuc3VtbWFyeUNvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLnN1bW1hcnlDb21wb25lbnQuc3VibWl0Rm9ybSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuaXNNUygpKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDI7XHJcbiAgICAgICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VtZW50TXNDb21wb25lbnQpIHtcclxuICAgICAgICAgIHRoaXMuYWNrbm93bGVkZ2VtZW50TXNDb21wb25lbnQuc3VibWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2hvd0FjayA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblFlU3VjY2VzcygpIHtcclxuICAgIHRoaXMuc2hvd0FjayA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBpb25WaWV3V2lsbExlYXZlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5ocy5zZXRIZWxwQXZhaWxhYmlsaXR5KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGlvblZpZXdEaWRFbnRlcigpIHtcclxuICAgIHRoaXMud2NTZXJ2aWNlLnJlc2V0V2Vla2x5Q2VydERhdGEoKTtcclxuICAgIHRoaXMuaHMuc2V0SGVscEF2YWlsYWJpbGl0eSh0cnVlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUVycm9yKGVycikge1xyXG4gICAgdGhpcy5lcnJvck1zZyA9IGVyci5tc2c7XHJcbiAgfVxyXG5cclxuICBoYXNIaXJlZFN0YXR1cyhzdGF0dXM6IGJvb2xlYW4pIHtcclxuICAgIC8vVE9ETzogVXBkYXRlIHRoaXMgZm9yIHJldHVybiB0byB3b3JrIGZvciBoaXJlZCBjYXNlc1xyXG4gICAgIGlmICghdGhpcy5pc01FKCkpIHtcclxuICAgICAgdGhpcy5yZWFkT25seUZpZWxkcyA9IHN0YXR1cyA/IFsncmV0dXJuaW5nVG9Xb3JrJ10gOiBudWxsO1xyXG4gICAgICBpZiAoc3RhdHVzKSB7XHJcbiAgICAgICAgdGhpcy5yZWFkT25seURhdGEgPSB7IHJldHVybmluZ1RvV29yazogXCJZXCJ9O1xyXG4gICAgICB9XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgaGFzV29ya2VkRnVsbFRpbWVPclN0YXJ0ZWRXb3JraW5nU3RhdHVzKHN0YXR1czogYm9vbGVhbil7XHJcbiAgICBjb25zdCBmb3JtID0gdGhpcy53ZWVrbHlRdWVzdGlvbnM/LnF1ZXN0aW9ubmFpcmU/LnF1ZXN0aW9ubmFpcmU/LnF1ZXN0aW9ubmFpcmVGb3JtPy5mb3JtO1xyXG4gICAgaWYodGhpcy5pc01FKCkpe1xyXG4gICAgICBpZihzdGF0dXMgJiYgZm9ybSl7XHJcbiAgICAgICAgdGhpcy5yZWFkT25seUZpZWxkcyA9IHN0YXR1cyA/IFsnd29ya1BlcmZvcm1lZCddOiBudWxsO1xyXG4gICAgICAgIHRoaXMucmVhZE9ubHlEYXRhID0ge3dvcmtQZXJmb3JtZWQ6IFwiWVwifTtcclxuICAgICAgICBmb3JtLmdldCgnd29ya1BlcmZvcm1lZCcpPy5zZXRWYWx1ZSgnWScpO1xyXG4gICAgICB9IGVsc2V7XHJcbiAgICAgICAgdGhpcy5yZWFkT25seUZpZWxkcyA9IHN0YXR1cyA/IFsnd29ya1BlcmZvcm1lZCddOiBudWxsO1xyXG4gICAgICAgIHRoaXMucmVhZE9ubHlEYXRhID0ge3dvcmtQZXJmb3JtZWQ6IG51bGx9O1xyXG4gICAgICAgIGlmKGZvcm0pe1xyXG4gICAgICAgICAgZm9ybS5nZXQoJ3dvcmtQZXJmb3JtZWQnKS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUhpZGRlbkZpZWxkcyhyZXM6IFdlZWtseUNlcnRFbGlnaWJpbGl0eU1vZGVsVjIpIHtcclxuXHJcbiAgICB0aGlzLnJlYWRPbmx5RmllbGRzID0gWydoaWRTaG93UmV0dXJuVG9Xb3JrUXVlc3Rpb24nLCAnaGlkU2hvd1JldHVybmVkVG9Xb3JrUXVlc3Rpb24nLCAnaGlkU2hvd05ld1BlbnNpb25RdWVzdGlvbicsICdoaWRTaG93UGVuc2lvbkNoYW5nZWRRdWVzdGlvbicsICdoaWRTaG93RGlzbWlzc2FsUGF5Q2hhbmdlZFF1ZXN0aW9uJywgJ2hpZFBhcnRUaW1lRW1wbG95ZXJBdmFpbGFibGUnLCAnaGlkUmVtdW5lcmF0aW9uSXNzdWVFeGlzdHMnLCAnaGlkSXNFbGlnaWJsZUZvckR1YScsICdjbGFpbWFudElkJywgJ2NsYWltV2Vla0VuZERhdGUnLCdkdWFBcHBJZCcsJ2hpZFBhcnRpYWxDbGFpbUVtcGxveW1lbnRGbGFnJywnaGlkV29ya1NlYXJjaEF1ZGl0RmxhZyddO1xyXG4gICAgdGhpcy5yZWFkT25seURhdGEgPSB7IGhpZFNob3dSZXR1cm5Ub1dvcmtRdWVzdGlvbjogcmVzLmhpZFNob3dSZXR1cm5Ub1dvcmtRdWVzdGlvbiwgaGlkU2hvd1JldHVybmVkVG9Xb3JrUXVlc3Rpb246IHJlcy5oaWRTaG93UmV0dXJuZWRUb1dvcmtRdWVzdGlvbiwgaGlkU2hvd05ld1BlbnNpb25RdWVzdGlvbjogcmVzLmhpZFNob3dOZXdQZW5zaW9uUXVlc3Rpb24sIGhpZFNob3dQZW5zaW9uQ2hhbmdlZFF1ZXN0aW9uOiByZXMuaGlkU2hvd1BlbnNpb25DaGFuZ2VkUXVlc3Rpb24sIGhpZFNob3dEaXNtaXNzYWxQYXlDaGFuZ2VkUXVlc3Rpb246IHJlcy5oaWRTaG93RGlzbWlzc2FsUGF5Q2hhbmdlZFF1ZXN0aW9uLCBoaWRQYXJ0VGltZUVtcGxveWVyQXZhaWxhYmxlOiByZXMuaGlkUGFydFRpbWVFbXBsb3llckF2YWlsYWJsZSwgaGlkUmVtdW5lcmF0aW9uSXNzdWVFeGlzdHM6IHJlcy5oaWRSZW11bmVyYXRpb25Jc3N1ZUV4aXN0cywgaGlkSXNFbGlnaWJsZUZvckR1YTogcmVzLmhpZElzRWxpZ2libGVGb3JEdWEsIGNsYWltYW50SWQ6IHJlcy5jbGFpbWFudElkLCBjbGFpbVdlZWtFbmREYXRlOiByZXMuY2xhaW1XZWVrRW5kRGF0ZSwgZHVhQXBwSWQ6cmVzLmR1YUFwcElkLCBoaWRQYXJ0aWFsQ2xhaW1FbXBsb3ltZW50RmxhZzogcmVzLmhpZFBhcnRpYWxDbGFpbUVtcGxveW1lbnRGbGFnLCBoaWRXb3JrU2VhcmNoQXVkaXRGbGFnOiByZXMuaGlkV29ya1NlYXJjaEF1ZGl0RmxhZyB9O1xyXG5cclxuICB9XHJcblxyXG5cclxuXHJcbiAgbG9hZENvbXBsZXRlKGV2ZW50KSB7XHJcbiAgICAgLyogRm9yIE1TLCB0aGUgYmFjayBidXR0b24gbmVlZHMgdG8gbG9hZCBjb21wbGV0ZSBmaWxsZWQgZGF0YSBhbG9uZyB3aXRoIGVsaWdpYmlsaXR5IGRhdGEuXHJcbiAgICAgRm9yIG90aGVyIHN0YXRlcywgZXZlcnl0aGluZyBpcyBpbiBwb3B1cCwgc28gb24gY2xvc2UsIGRhdGEgc3RpbGwgaXMgdGhlcmUgaW4gbW9kZWwuXHJcbiAgICAgTmVlZHMgd29yayAqL1xyXG4gICAvKiAgaWYgKHRoaXMuaXNNUygpICYmIHRoaXMuYWN0aXZlSW5kZXggPT0gMSAmJiB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YSkge1xyXG4gICAgICBcclxuICAgICAgdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydERhdGEud2Vla2x5Y2VydEVsaWdpYmlsaXR5TW9kZWxWMiA9IHRoaXMud2NTZXJ2aWNlLndlZWtseUNlcnRTZXJ2ZXJEYXRhO1xyXG4gICAgICB0aGlzLmRhdGFUb0xvYWQgPSB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0RGF0YTtcclxuICAgICAgdGhpcy5oYW5kbGVIaWRkZW5GaWVsZHModGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGEpO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLmRhdGFUb0xvYWQgPSB0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0U2VydmVyRGF0YTtcclxuICAgIH0gKi9cclxuICAgICAgdGhpcy5kYXRhVG9Mb2FkID0gdGhpcy53Y1NlcnZpY2Uud2Vla2x5Q2VydFNlcnZlckRhdGE7XHJcbiAgICAvKiogTkVXOiBGb3IgTG9hZGluZyB0aGUgUHJlLXNlbGVjdGVkIHF1ZXN0aW9uIGluIGNhc2Ugb2YgU3RhcnRlZCBXb3JraW5nKFNUV0spIGZvciBXUyBSZWNvcmRzIGFuZCBzZXR0aW5nIHRoZSB2YWx1ZSBZIGZvciB3b3JrUGVyZm9ybWVkICovXHJcbiAgICAgIHRoaXMud29ya1NlYXJjaFJlY29yZHMgPSB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpO1xyXG4gICAgaWYgKHRoaXMuaXNNRSgpICYmIHRoaXMud29ya1NlYXJjaFJlY29yZHMpIHtcclxuICAgICAgY29uc3QgaGFzU3RhcnRlZFdvcmtpbmcgPSAodGhpcy53b3JrU2VhcmNoUmVjb3JkcyA/PyBbXSkuc29tZShcclxuICAgICAgICByZWMgPT4gcmVjPy5zZWFyY2hSZXN1bHQgPT09ICdTVFdLJ1xyXG4gICAgICApO1xyXG4gICAgICBpZiAoaGFzU3RhcnRlZFdvcmtpbmcpIHtcclxuICAgICAgICB0aGlzLmRhdGFUb0xvYWQud29ya1BlcmZvcm1lZCA9IFwiWVwiO1xyXG4gICAgICAgIHRoaXMucmVhZE9ubHlGaWVsZHMgPSBbJ3dvcmtQZXJmb3JtZWQnXTtcclxuICAgICAgICB0aGlzLnJlYWRPbmx5RGF0YSA9IHsgd29ya1BlcmZvcm1lZDogXCJZXCIgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLyoqIEVORCAqL1xyXG4gICAgICBpZiAodGhpcy53Y1NlcnZpY2UuZ2V0V29ya1NlYXJjaFJlY29yZHNDb3VudFdpdGhIaXJlZFN0YXR1cygpID4gMCkgeyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5oYXNIaXJlZFN0YXR1cyh0cnVlKTtcclxuICAgICAgICB0aGlzLmRhdGFUb0xvYWQucmV0dXJuaW5nVG9Xb3JrID0gXCJZXCI7XHJcbiAgICAgIH1cclxuICAgICAgLy9XZWVrbHkgRWFybmluZ3MgcmVtaW5kZXIgcG9wdXAgLSBzaG93biBldmVyeSB3ZWVrIGV4Y2VwdCBmb3Igd2FpdGluZyBwZXJpb2Qgd2Vla1xyXG4gICAgICBpZih0aGlzLndjU2VydmljZS53ZWVrbHlDZXJ0U2VydmVyRGF0YS5pc1dhaXRpbmdXZWVrU2VydmVkID09PSB0cnVlKXtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLndlZWtseVdvcmtQZXJmb3JtZWRQb3B1cEZsYWcgPSB0cnVlKSwgMTAwMCk7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIGdldFByZXZpb3VzU3VuZGF5KGlucHV0RGF0ZSlcclxuICB7XHJcbiAgICBsZXQgdXRjRGF0ZSA9IG5ldyBEYXRlKGlucHV0RGF0ZSArIFwiVDAwOjAwOjAwWlwiKTtcclxuICAgIHV0Y0RhdGUuc2V0VVRDRGF0ZSh1dGNEYXRlLmdldFVUQ0RhdGUoKSAtIDYpO1xyXG4gICAgbGV0IHllYXIgPSB1dGNEYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XHJcbiAgICBsZXQgbW9udGggPSBTdHJpbmcodXRjRGF0ZS5nZXRVVENNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGxldCBkYXkgPSBTdHJpbmcodXRjRGF0ZS5nZXRVVENEYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICByZXR1cm4gYCR7eWVhcn0tJHttb250aH0tJHtkYXl9YDtcclxuICB9XHJcblxyXG59XHJcbiIsIjxhcHAtZGFzaGJvYXJkLWhlbHAgKm5nSWY9XCJocy5pc1Nob3dpbmcoKVwiIFthY3RpdmVJbmRleF09XCI0XCI+PC9hcHAtZGFzaGJvYXJkLWhlbHA+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nXCIgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aW9uLXNwaW5uZXIgbmFtZT1cImRvdHNcIj48L2lvbi1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgZXJyb3JNc2dcIiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZy10b3BcIiBzdHlsZT1cInBhZGRpbmctdG9wOiA1MHB4O1wiPlxyXG4gICAgICA8aW9uLWljb24gbmFtZT1cImFsZXJ0LWNpcmNsZS1vdXRsaW5lXCIgc3R5bGU9XCJmb250LXNpemU6IDYwcHg7IGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcIj48L2lvbi1pY29uPlxyXG4gICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGVycm9yTXNnKVwiIHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpOyBmb250LXNpemU6IGxhcmdlcjtcIiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZ1wiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIWVycm9yTXNnXCI+XHJcbiAgICAgIDxpb24tZ3JpZD5cclxuICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIG9mZnNldFhsPVwiMVwiICpuZ0lmPVwiIWlzTVMoKSB8fCAoaXNNUygpICYmICFtdWx0aXBsZVdlZWtzRHVlICYmICFkaXNwbGF5Q29udGludWVkV2Vla3NGaWxlZEhlYWRpbmcpXCI+XHJcbiAgICAgICAgICAgIDxoMSBjbGFzcz1cImFwcC1oZWFkaW5nXCI+e3snd2Vla2xpZXMudjIudGFzay5oZWFkaW5nJyB8IHRyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfX08L2gxPlxyXG4gICAgICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIG9mZnNldFhsPVwiMVwiICpuZ0lmPVwiKGlzTVMoKSAmJiBtdWx0aXBsZVdlZWtzRHVlICYmICFkaXNwbGF5Q29udGludWVkV2Vla3NGaWxlZEhlYWRpbmcpXCI+XHJcbiAgICAgICAgICAgIDxoMSBjbGFzcz1cImFwcC1oZWFkaW5nXCI+e3snd2Vla2xpZXMudjIudGFzay5tdWx0aXBsZS53ZWVrcy5oZWFkaW5nJyB8IHRyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfX08L2gxPlxyXG4gICAgICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIG9mZnNldFhsPVwiMVwiICpuZ0lmPVwiKGlzTVMoKSAmJiBtdWx0aXBsZVdlZWtzRHVlICYmIGRpc3BsYXlDb250aW51ZWRXZWVrc0ZpbGVkSGVhZGluZylcIj5cclxuICAgICAgICAgICAgPGgxIGNsYXNzPVwiYXBwLWhlYWRpbmdcIj57eyd3ZWVrbGllcy52Mi50YXNrLm11bHRpcGxlLndlZWtzLmhlYWRpbmcuY29udGludWVkJyB8IHRyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfX08L2gxPlxyXG4gICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPC9pb24tZ3JpZD5cclxuXHJcbiAgICAgIDxzZWN0aW9uICpuZ0lmPVwiIWlzTVMoKVwiPlxyXG4gICAgICAgIDxpb24tZ3JpZD5cclxuICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplWGw9XCI1XCIgb2Zmc2V0WGw9XCIxXCIgc2l6ZUxnPVwiNlwiPlxyXG4gICAgICAgICAgICAgIDxhcHAtd29yay1zZWFyY2gtcXVlc3Rpb24tdjIgICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhZXJyb3JNc2dcIiAoc3VjY2Vzcyk9XCJnb1RvV2Vla2x5Q2VydCgpXCIgW3Nob3dDb3VudGVyXT1cInRydWVcIiAoaGFzSGlyZWRTdGF0dXMpPVwiaGFzSGlyZWRTdGF0dXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKGhhc1dvcmtlZEZ1bGxUaW1lT3JTdGFydGVkV29ya2luZ1N0YXR1cyk9XCJoYXNXb3JrZWRGdWxsVGltZU9yU3RhcnRlZFdvcmtpbmdTdGF0dXMoJGV2ZW50KVwiPjwvYXBwLXdvcmstc2VhcmNoLXF1ZXN0aW9uLXYyPlxyXG4gICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemVYbD1cIjVcIiBzaXplTGc9XCI2XCI+ICAgXHJcbiAgICAgICAgICAgICAgPGFwcC1mb3JtLWJ1aWxkZXIgI3dlZWtseVF1ZXN0aW9ucyBbZmxvd0tleV09XCInd2Vla2x5LWNlcnQnXCIgW2F1dG9TYXZlXT1cImZhbHNlXCIgW3Nob3dPbmx5UXVlc3Rpb25dPVwidHJ1ZVwiIFtoaWRlSGVhZGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtoaWRlRm9vdGVyXT1cInRydWVcIiBbc2l6ZVhzXT1cIjEyXCIgW3NpemVTbV09XCIxMlwiIFtzaXplTWRdPVwiMTJcIiBbc2l6ZUxnXT1cIjEyXCIgW3NpemVYbF09XCIxMlwiIFtvZmZzZXRYbF09XCIwXCIgW29mZnNldExnXT1cIjBcIiBcclxuICAgICAgICAgICAgICAgKG9uRXJyb3IpPVwiaGFuZGxlRXJyb3IoJGV2ZW50KVwiIChvbkNvbXBsZXRlKT1cInN1Y2Nlc3MoJGV2ZW50KVwiIFtkeW5hbWljUGFyYW1dPVwiZHluYW1pY1BhcmFtXCIgW2RhdGFdPVwiZGF0YVRvTG9hZFwiIFxyXG4gICAgICAgICAgICAgICBbbXVsdGlNb2RlXT1cInRydWVcIiBbcmVhZE9ubHlGaWVsZHNdPVwicmVhZE9ubHlGaWVsZHNcIiAob25Mb2FkQ29tcGxldGUpPVwibG9hZENvbXBsZXRlKCRldmVudClcIj5cclxuICAgICAgICAgICAgIDwvYXBwLWZvcm0tYnVpbGRlcj4gICAgICAgICBcclxuICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWdyaWQ+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgIDxzZWN0aW9uICpuZ0lmPVwiaXNNUygpXCI+XHJcbiAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiM1wiIG9mZnNldExnPVwiM1wiIG9mZnNldFhsPVwiM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJhY3RpdmVJbmRleCA9PSAwIHx8IGFjdGl2ZUluZGV4ID09IDFcIj5cclxuICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cImhlYWRpbmctd2Vla2xpZXNcIj48Yj4ge3sgY29udGVudHNbYWN0aXZlSW5kZXhdIH19IDwvYj48L2gxPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImFjdGl2ZUluZGV4ID09IDJcIj5cclxuICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cImhlYWRpbmctd2Vla2xpZXMtYWNrXCI+PGI+IHt7IGNvbnRlbnRzW2FjdGl2ZUluZGV4XSB9fSA8L2I+PC9oMT5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCIyXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJ3ZWVrbGllcy1zdGVwc1wiIHNpemU9XCIxXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIiA+XHJcbiAgICAgICAgICAgICAgPHAtc3RlcHMgW21vZGVsXT1cIml0ZW1zXCIgW2FjdGl2ZUluZGV4XT1cImFjdGl2ZUluZGV4XCIgW3N0eWxlQ2xhc3NdPVwiJ2NvbXBsZXRlZC0nK2FjdGl2ZUluZGV4XCIgW25nU3R5bGVdPVwieyctLXN0ZXAtd2lkdGgnOic1MHB4JywnLS1zdGVwLWhlaWdodCc6JzUwcHgnfVwiPlxyXG4gICAgICAgICAgICAgIDwvcC1zdGVwcz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjNcIj5cclxuICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cIm1hcmdpbi10b3A6IC0zNXB4O1wic2l6ZT1cIjEyXCIgc2l6ZVNtPVwiOFwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiOFwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI1XCIgb2Zmc2V0TGc9XCIzXCIgb2Zmc2V0WGw9XCIzXCIgb2Zmc2V0TWQ9XCIxXCI+XHJcbiAgICAgICAgICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XHJcbiAgICAgICAgICA8L2lvbi1jb2w+ICAgICAgXHJcbiAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxpb24tZ3JpZCAqbmdJZj1cImFjdGl2ZUluZGV4ID09IDBcIj5cclxuICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIiBzaXplU209XCI4XCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI4XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjVcIiBvZmZzZXRMZz1cIjNcIiBvZmZzZXRYbD1cIjNcIiBvZmZzZXRNZD1cIjFcIj5cclxuICAgICAgICAgICAgICA8YXBwLXdvcmstc2VhcmNoLXF1ZXN0aW9uLXYyICAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIWVycm9yTXNnXCIgKHN1Y2Nlc3MpPVwiZ29Ub1dlZWtseUNlcnQoKVwiIFtzaG93Q291bnRlcl09XCJ0cnVlXCIgKGhhc0hpcmVkU3RhdHVzKT1cImhhc0hpcmVkU3RhdHVzKCRldmVudClcIj48L2FwcC13b3JrLXNlYXJjaC1xdWVzdGlvbi12Mj5cclxuICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWdyaWQ+XHJcbiAgICAgICAgPGlvbi1ncmlkICpuZ0lmPVwiYWN0aXZlSW5kZXggPT0gMVwiPlxyXG4gICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCIxMFwiIHNpemVMZz1cIjUuMjVcIiBzaXplWGw9XCI1LjI1XCIgb2Zmc2V0TGc9XCIzXCIgb2Zmc2V0WGw9XCIzXCIgb2Zmc2V0TWQ9XCIxXCI+ICAgXHJcbiAgICAgICAgICAgICAgPGFwcC1mb3JtLWJ1aWxkZXIgI3dlZWtseVF1ZXN0aW9ucyBbZmxvd0tleV09XCInd2Vla2x5LWNlcnQnXCIgW2F1dG9TYXZlXT1cInRydWVcIiBbc2hvd09ubHlRdWVzdGlvbl09XCJ0cnVlXCIgW2hpZGVIZWFkZXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2hpZGVGb290ZXJdPVwidHJ1ZVwiIFtzaXplWHNdPVwiMTJcIiBbc2l6ZVNtXT1cIjEyXCIgW3NpemVNZF09XCIxMlwiIFtzaXplTGddPVwiMTJcIiBbc2l6ZVhsXT1cIjEyXCIgW29mZnNldFhsXT1cIjBcIiBbb2Zmc2V0TGddPVwiMFwiIFxyXG4gICAgICAgICAgICAgICAob25FcnJvcik9XCJoYW5kbGVFcnJvcigkZXZlbnQpXCIgKG9uQ29tcGxldGUpPVwic3VjY2VzcygkZXZlbnQpXCIgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIiBbZGF0YV09XCJkYXRhVG9Mb2FkXCIgXHJcbiAgICAgICAgICAgICAgIFttdWx0aU1vZGVdPVwidHJ1ZVwiIFtyZWFkT25seUZpZWxkc109XCJyZWFkT25seUZpZWxkc1wiIChvbkxvYWRDb21wbGV0ZSk9XCJsb2FkQ29tcGxldGUoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgPC9hcHAtZm9ybS1idWlsZGVyPiAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICA8IS0tIFdlZWtseSBFYXJuaW5ncyByZW1pbmRlciBwb3B1cCAtIHNob3duIGV2ZXJ5IHdlZWsgZXhjZXB0IGZvciB3YWl0aW5nIHBlcmlvZCB3ZWVrIC0tPlxyXG4gICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJ3ZWVrbHlXb3JrUGVyZm9ybWVkUG9wdXBGbGFnXCI+XHJcbiAgICAgICAgICAgIDxhcHAtd2Vla2x5LXdvcmstcGVyZm9ybWVkLXBvcHVwIFtzaG93V2Vla2x5V29ya1BlcmZvcm1lZFBvcHVwXT1cInRydWVcIj48L2FwcC13ZWVrbHktd29yay1wZXJmb3JtZWQtcG9wdXA+XHJcbiAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPC9pb24tZ3JpZD5cclxuICAgICAgICA8aW9uLWdyaWQgKm5nSWY9XCJhY3RpdmVJbmRleCA9PSAyXCI+XHJcbiAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjEwXCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIiBvZmZzZXRMZz1cIjNcIiBvZmZzZXRYbD1cIjNcIiBvZmZzZXRNZD1cIjFcIj5cclxuICAgICAgICAgICAgICA8YXBwLWFja25vd2xlZGdlbWVudC1tcyAqbmdJZj1cInNob3dBY2tcIiAoc3VjY2Vzcyk9XCJmaWxlV2Vla2x5Q2VydERvbmUoJGV2ZW50KVwiIChvbkNsb3NlKT1cImNsb3NlQWNrKClcIj5cclxuICAgICAgICAgICAgICA8L2FwcC1hY2tub3dsZWRnZW1lbnQtbXM+ICAgXHJcbiAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICA8L2lvbi1ncmlkPlxyXG4gICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICA8YXBwLW11bHRpLXF1ZXN0aW9ubmFpcmUgW3FlUXVlcnlNb2RlbHNdPVwicWVRdWVyeU1vZGVsc1wiICpuZ0lmPVwiaXNPcGVuUWVcIiBcclxuICAgIChvbkNvbXBsZXRlKT1cIm9wZW5TdW1tYXJ5UG9zdFF1ZXN0aW9ubmFpcmVzKCRldmVudClcIiAobW9kZWxDYW5jZWwpPVwib25RZUNsb3NlKClcIiBcclxuICAgIFtoZWFkZXJdPVwiJ0ZvbGxvdy11cCBRdWVzdGlvbnMnIHwgdHJhbnNsYXRlXCIgW3Nob3dRdWVzdGlvbk51bWJlcl09XCJ0cnVlXCI+PC9hcHAtbXVsdGktcXVlc3Rpb25uYWlyZT5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhaXNNUygpXCI+XHJcbiAgICAgICAgPGFwcC1hY2tub3dsZWRnZW1lbnQtdjIgKm5nSWY9XCJzaG93QWNrXCIgKHN1Y2Nlc3MpPVwiZmlsZVdlZWtseUNlcnREb25lKCRldmVudClcIiAob25DbG9zZSk9XCJjbG9zZUFjaygpXCI+XHJcbiAgICAgICAgPC9hcHAtYWNrbm93bGVkZ2VtZW50LXYyPiBcclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8YXBwLWNvbmZpcm1hdGlvbiAqbmdJZj1cInNob3dDb25maXJtYXRpb25cIiAob25DbG9zZSk9XCJjbG9zZUNvbmZpcm1hdGlvblBvcHVwKClcIiBbZGF0YV09XCJjb25maXJtYXRpb25EYXRhXCIgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIj48L2FwcC1jb25maXJtYXRpb24+XHJcbiAgICAgIFxyXG4gICAgICA8YXBwLWludGVyaW0tY29uZmlybWF0aW9uICpuZ0lmPVwic2hvd0ludGVyaW1Db25maXJtYXRpb25cIiAob25DbG9zZSk9XCJjbG9zZUNvbmZpcm1hdGlvblBvcHVwKClcIiAob25OZXh0KT1cIm5hdmlnYXRlVG9XZWVrbGllcygkZXZlbnQpXCIgW2RhdGFdPVwiY29uZmlybWF0aW9uRGF0YVwiIFtkeW5hbWljUGFyYW1dPVwiZHluYW1pY1BhcmFtXCI+PC9hcHAtaW50ZXJpbS1jb25maXJtYXRpb24+XHJcblxyXG4gICAgICA8aW9uLWZvb3RlciAqbmdJZj1cIiFpc01TKClcIj5cclxuICAgICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XHJcbiAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWxlZnRcIiBpb24tY29sIHNpemU9XCIxMlwiIHNpemVYbD1cIjVcIiBvZmZzZXRYbD1cIjFcIiBzaXplTGc9XCI2XCI+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJnb0hvbWUoKVwiPkNsb3NlXHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIiBzaXplPVwiMTJcIiBzaXplWGw9XCI1XCIgc2l6ZUxnPVwiNlwiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cInNvbGlkXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJvcGVuTmV4dFBhZ2UoKVwiID5TdWJtaXRcclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPC9pb24tZm9vdGVyPlxyXG4gICAgICA8c2VjdGlvbiAqbmdJZj1cImlzTVMoKVwiPlxyXG4gICAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLXBhZGRpbmcgYnV0dG9ucy1yb3dcIj5cclxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCIzXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJ3ZWVrbGllcy1sZWZ0LWJ1dHRvbnNcIiBzaXplPVwiM1wiPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImNsb3NlXCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgKm5nSWY9XCJhY3RpdmVJbmRleCA9PSAwXCIgKGNsaWNrKT1cImdvSG9tZSgpXCI+Q2xvc2VcclxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiBpZD1cImJhY2tcIiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiAqbmdJZj1cImFjdGl2ZUluZGV4ICE9IDBcIiAoY2xpY2spPVwiYWN0aXZlSW5kZXggPSBhY3RpdmVJbmRleCAtIDFcIj5cclxuICAgICAgICAgICAgICBCYWNrPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJ3ZWVrbGllcy1yaWdodC1idXR0b25zXCIgc2l6ZT1cIjNcIj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJuZXh0XCIgc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJzb2xpZFwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwib3Blbk5leHRQYWdlKClcIiAqbmdJZj1cImFjdGl2ZUluZGV4ICE9IDJcIj5OZXh0XHJcbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJzdWJtaXRcIiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cInNvbGlkXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJzaG93QWNrbm93bGVkZ2VtZW50KClcIiAqbmdJZj1cImFjdGl2ZUluZGV4ID09IDJcIj5cclxuICAgICAgICAgICAgICBTdWJtaXQ8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiM1wiPjwvaW9uLWNvbD5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgIDwvZGl2PiJdfQ==