@reusa/ngx-reusa-app-lib 0.0.731 → 0.1.731
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.
- package/{esm2020 → esm2022}/lib/annimations/app-animations.mjs +36 -36
- package/esm2022/lib/components/add-employer/add-employer.component.mjs +3027 -0
- package/esm2022/lib/components/add-participant/add-participant.component.mjs +394 -0
- package/esm2022/lib/components/add-payment/add-payment.component.mjs +187 -0
- package/esm2022/lib/components/address/address.component.mjs +487 -0
- package/esm2022/lib/components/bank-details/bank-details.component.mjs +276 -0
- package/esm2022/lib/components/captcha/captcha.component.mjs +181 -0
- package/esm2022/lib/components/card/card.component.mjs +55 -0
- package/esm2022/lib/components/contact-us/contact-us.component.mjs +970 -0
- package/esm2022/lib/components/content/content.component.mjs +61 -0
- package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +83 -0
- package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +223 -0
- package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +292 -0
- package/esm2022/lib/components/disclosure/disclosure.component.mjs +60 -0
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +1974 -0
- package/esm2022/lib/components/dropdown/dropdown.interface.mjs +2 -0
- package/esm2022/lib/components/email-update/email-update.component.mjs +283 -0
- package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +794 -0
- package/esm2022/lib/components/error/error.component.mjs +86 -0
- package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +163 -0
- package/{esm2020 → esm2022}/lib/components/file-download/file-download.component.mjs +104 -104
- package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +315 -0
- package/esm2022/lib/components/footer/footer.component.mjs +332 -0
- package/esm2022/lib/components/header/header.component.mjs +558 -0
- package/esm2022/lib/components/help/help.component.mjs +49 -0
- package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +65 -0
- package/{esm2020 → esm2022}/lib/components/info/info.component.mjs +187 -188
- package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +206 -0
- package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +193 -0
- package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +43 -0
- package/esm2022/lib/components/mask/mask.component.mjs +48 -0
- package/esm2022/lib/components/menu/menu.component.mjs +423 -0
- package/esm2022/lib/components/mfa/mfa.component.mjs +444 -0
- package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +50 -0
- package/esm2022/lib/components/money-expect/money-expect.component.mjs +90 -0
- package/esm2022/lib/components/msg/msg.component.mjs +48 -0
- package/esm2022/lib/components/news/news.component.mjs +90 -0
- package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +213 -0
- package/esm2022/lib/components/page/page.component.mjs +136 -0
- package/esm2022/lib/components/profile/profile.component.mjs +177 -0
- package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +63 -0
- package/esm2022/lib/components/questionnaire/AppValidators.mjs +487 -0
- package/{esm2020 → esm2022}/lib/components/questionnaire/FbConstants.mjs +7 -7
- package/{esm2020 → esm2022}/lib/components/questionnaire/SelectItem.mjs +1 -1
- package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +256 -0
- package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +475 -0
- package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +1094 -0
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1882 -0
- package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +1263 -0
- package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +244 -0
- package/{esm2020 → esm2022}/lib/components/questionnaire/input-focus.directive.mjs +44 -44
- package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +256 -0
- package/{esm2020 → esm2022}/lib/components/questionnaire/question-base.mjs +2 -2
- package/{esm2020 → esm2022}/lib/components/questionnaire/question-control.service.mjs +420 -419
- package/{esm2020 → esm2022}/lib/components/questionnaire/question.service.mjs +33 -33
- package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +262 -0
- package/{esm2020 → esm2022}/lib/components/read-more/read-more.component.mjs +67 -67
- package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +690 -0
- package/esm2022/lib/components/search-employer/search-employer.component.mjs +142 -0
- package/esm2022/lib/components/select/select.component.mjs +154 -0
- package/esm2022/lib/components/ssn/ssn.component.mjs +44 -0
- package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +151 -0
- package/esm2022/lib/components/test/test.component.mjs +19 -0
- package/esm2022/lib/components/user-login/user-login.component.mjs +398 -0
- package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +442 -0
- package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +307 -0
- package/{esm2020 → esm2022}/lib/directives/auto-focus/auto-focus.directive.mjs +31 -31
- package/{esm2020 → esm2022}/lib/directives/caps-lock.directive.mjs +38 -38
- package/{esm2020 → esm2022}/lib/directives/required-roles/required-roles.directive.mjs +30 -30
- package/{esm2020 → esm2022}/lib/enums/EmailStatusEnum.mjs +8 -8
- package/{esm2020 → esm2022}/lib/guards/auth.guard.mjs +138 -138
- package/esm2022/lib/guards/no-login/no-login.guard.mjs +21 -0
- package/{esm2020 → esm2022}/lib/interceptors/error-interceptor/http-error-interceptor.mjs +107 -107
- package/{esm2020 → esm2022}/lib/interceptors/header-interceptor/http-header.interceptor.mjs +99 -99
- package/{esm2020 → esm2022}/lib/models/AddressComponentModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/BankDetailsComponentModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/BankDetailsModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/CinRequalificationCriteriaModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/EmployerDetailSearchResult.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/ErrorModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/FileModel.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/LibConstants.mjs +119 -119
- package/{esm2020 → esm2022}/lib/models/NewsAndAnnouncementModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/NotificationModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/OtpAuthModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/PaymentComponentModel.mjs +2 -2
- package/esm2022/lib/models/RequalifyLiftPageModel.mjs +11 -0
- package/{esm2020 → esm2022}/lib/models/SsaVerificationModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/TrendModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/UserDetailsModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/UserModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/case/CaseAttachmentModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/claimant/ClaimantModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/claimant/JobResultsData.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/claimant/MatchingJobs.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/claimant/ResetPasswordModel.mjs +2 -2
- package/esm2022/lib/models/cmp/CaseCoreModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryOutputModel.mjs +5 -5
- package/esm2022/lib/models/cmp/ContactUsModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/cmp/EmailTemplateModel.mjs +3 -3
- package/esm2022/lib/models/cmp/contactUsInqueryModel.mjs +7 -0
- package/{esm2020 → esm2022}/lib/models/cmp/messageRourceModel.mjs +3 -3
- package/esm2022/lib/models/dashboard-model.mjs +3 -0
- package/esm2022/lib/models/dependent.model.mjs +8 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpRequestModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +2 -2
- package/esm2022/lib/models/questionnaire/ComboModel.mjs +337 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ElementsModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerDetailSearchResult.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerWagesModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/questionnaire/FBConfigModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/questionnaire/KeyValueModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/LegalDiscaimarModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/LoaderModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/PollingStatusModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/questionnaire/QtrYearEmployerWageModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireQueryModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireReturnModel.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireSaveModel.mjs +2 -2
- package/esm2022/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ServiceActionResponseModel.mjs +3 -3
- package/esm2022/lib/models/questionnaire/StatusModel.mjs +6 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/SuccessPageElement.mjs +2 -2
- package/esm2022/lib/models/questionnaire/UI512AResponseModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ValidationModel.mjs +2 -2
- package/esm2022/lib/ngx-reusa-app-lib.component.mjs +23 -0
- package/esm2022/lib/ngx-reusa-app-lib.module.mjs +402 -0
- package/{esm2020 → esm2022}/lib/ngx-reusa-app-lib.service.mjs +14 -14
- package/{esm2020 → esm2022}/lib/pages/BasePage.mjs +76 -76
- package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +81 -0
- package/esm2022/lib/pages/common/change-password/change-password.page.mjs +463 -0
- package/esm2022/lib/pages/common/landing/landing.component.mjs +208 -0
- package/esm2022/lib/pages/common/landing2/landing2.component.mjs +244 -0
- package/esm2022/lib/pages/common/login/login.component.mjs +526 -0
- package/esm2022/lib/pages/common/not-found/not-found.page.mjs +24 -0
- package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +306 -0
- package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +61 -0
- package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +24 -0
- package/esm2022/lib/pages/popovers/language/language.page.mjs +61 -0
- package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +204 -0
- package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +129 -0
- package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +251 -0
- package/{esm2020 → esm2022}/lib/pipes/filter.pipe.mjs +30 -30
- package/{esm2020 → esm2022}/lib/pipes/mask/mask.email.pipe.mjs +23 -23
- package/{esm2020 → esm2022}/lib/pipes/proper-case/proper-case.pipe.mjs +27 -27
- package/{esm2020 → esm2022}/lib/pipes/translate/dynamic-translate.pipe.mjs +44 -44
- package/{esm2020 → esm2022}/lib/pipes/trust-html/trust-html.pipe.mjs +20 -20
- package/{esm2020 → esm2022}/lib/services/base-service.mjs +49 -49
- package/{esm2020 → esm2022}/lib/services/captcha/captcha.service.mjs +46 -46
- package/{esm2020 → esm2022}/lib/services/case-service/case.service.mjs +47 -47
- package/{esm2020 → esm2022}/lib/services/chatbot/chatbot.service.mjs +257 -257
- package/esm2022/lib/services/chatbot/script.const.mjs +42 -0
- package/{esm2020 → esm2022}/lib/services/claimant/claimant.service.mjs +31 -31
- package/esm2022/lib/services/claimant-context/claimant-context.service.mjs +48 -0
- package/{esm2020 → esm2022}/lib/services/claimant-service/claimant.service.mjs +47 -47
- package/{esm2020 → esm2022}/lib/services/claims/claims.service.mjs +99 -99
- package/{esm2020 → esm2022}/lib/services/cmp-service/cmp.service.mjs +84 -84
- package/{esm2020 → esm2022}/lib/services/dms-service/dms.service.mjs +60 -60
- package/{esm2020 → esm2022}/lib/services/fpjs/fingerprint.service.mjs +70 -70
- package/{esm2020 → esm2022}/lib/services/google-analytics/google-analytics.service.mjs +29 -29
- package/{esm2020 → esm2022}/lib/services/help/help.service.mjs +63 -63
- package/{esm2020 → esm2022}/lib/services/idle/idle.service.mjs +159 -159
- package/{esm2020 → esm2022}/lib/services/logger/logger.service.mjs +67 -67
- package/esm2022/lib/services/login/login.service.mjs +330 -0
- package/{esm2020 → esm2022}/lib/services/maintenance/maintenance.service.mjs +21 -21
- package/{esm2020 → esm2022}/lib/services/notification/notification.service.mjs +113 -113
- package/{esm2020 → esm2022}/lib/services/questionnaire/questionnaire.service.mjs +69 -69
- package/{esm2020 → esm2022}/lib/services/questionnaire/validation.service.mjs +59 -59
- package/{esm2020 → esm2022}/lib/services/security-service/security.service.mjs +35 -35
- package/{esm2020 → esm2022}/lib/services/tour/tour.service.mjs +60 -60
- package/{esm2020 → esm2022}/lib/services/util/util.service.mjs +424 -424
- package/esm2022/lib/validations/AppRegex.mjs +45 -0
- package/{esm2020 → esm2022}/lib/validations/AppValidators.mjs +165 -165
- package/{esm2020 → esm2022}/public-api.mjs +131 -131
- package/{esm2020 → esm2022}/reusa-ngx-reusa-app-lib.mjs +4 -4
- package/{fesm2020 → fesm2022}/reusa-ngx-reusa-app-lib.mjs +27966 -27877
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/annimations/app-animations.d.ts +3 -3
- package/lib/components/add-employer/add-employer.component.d.ts +276 -276
- package/lib/components/add-participant/add-participant.component.d.ts +45 -45
- package/lib/components/add-payment/add-payment.component.d.ts +33 -33
- package/lib/components/address/address.component.d.ts +68 -68
- package/lib/components/address/address.component.d.ts.map +1 -1
- package/lib/components/bank-details/bank-details.component.d.ts +39 -39
- package/lib/components/captcha/captcha.component.d.ts +44 -44
- package/lib/components/card/card.component.d.ts +11 -11
- package/lib/components/contact-us/contact-us.component.d.ts +105 -107
- package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
- package/lib/components/content/content.component.d.ts +13 -13
- package/lib/components/correspondence-download/correspondence-download.component.d.ts +21 -21
- package/lib/components/dashboard-card/dashboard-card.component.d.ts +25 -25
- package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
- package/lib/components/dependent-grid/dependent-grid.component.d.ts +35 -35
- package/lib/components/disclosure/disclosure.component.d.ts +12 -12
- package/lib/components/dropdown/dropdown.component.d.ts +581 -207
- package/lib/components/dropdown/dropdown.component.d.ts.map +1 -1
- package/lib/components/dropdown/dropdown.interface.d.ts +155 -0
- package/lib/components/dropdown/dropdown.interface.d.ts.map +1 -0
- package/lib/components/email-update/email-update.component.d.ts +31 -31
- package/lib/components/employer-grid/employer-grid.component.d.ts +95 -94
- package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
- package/lib/components/error/error.component.d.ts +17 -17
- package/lib/components/fav-menu/fav-menu.component.d.ts +21 -21
- package/lib/components/file-download/file-download.component.d.ts +22 -22
- package/lib/components/file-uploader/file-uploader.component.d.ts +47 -47
- package/lib/components/footer/footer.component.d.ts +36 -36
- package/lib/components/header/header.component.d.ts +59 -58
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/help/help.component.d.ts +10 -10
- package/lib/components/idle-detector/idle-detector.component.d.ts +15 -15
- package/lib/components/info/info.component.d.ts +22 -22
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +21 -21
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +33 -33
- package/lib/components/maintenance-detector/maintenance-detector.component.d.ts +15 -15
- package/lib/components/mask/mask.component.d.ts +11 -11
- package/lib/components/menu/menu.component.d.ts +43 -43
- package/lib/components/mfa/mfa.component.d.ts +59 -59
- package/lib/components/mfa-popup/mfa-popup.component.d.ts +16 -16
- package/lib/components/money-expect/money-expect.component.d.ts +18 -18
- package/lib/components/msg/msg.component.d.ts +10 -10
- package/lib/components/news/news.component.d.ts +14 -14
- package/lib/components/overlay-info/overlay-info.component.d.ts +34 -34
- package/lib/components/page/page.component.d.ts +23 -23
- package/lib/components/profile/profile.component.d.ts +28 -28
- package/lib/components/profile-redirect/profile-redirect.component.d.ts +13 -13
- package/lib/components/questionnaire/AppValidators.d.ts +14 -14
- package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
- package/lib/components/questionnaire/FbConstants.d.ts +7 -7
- package/lib/components/questionnaire/SelectItem.d.ts +4 -4
- package/lib/components/questionnaire/account-success/account-success.page.d.ts +53 -53
- package/lib/components/questionnaire/common-success/common-success.page.d.ts +75 -75
- package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +46 -46
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts +82 -82
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form.component.d.ts +130 -130
- package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +66 -64
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
- package/lib/components/questionnaire/input-focus.directive.d.ts +11 -11
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +38 -38
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
- package/lib/components/questionnaire/question-base.d.ts +16 -16
- package/lib/components/questionnaire/question-control.service.d.ts +19 -19
- package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
- package/lib/components/questionnaire/question.service.d.ts +18 -18
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +75 -74
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
- package/lib/components/read-more/read-more.component.d.ts +14 -14
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +67 -67
- package/lib/components/search-employer/search-employer.component.d.ts +37 -36
- package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
- package/lib/components/select/select.component.d.ts +55 -55
- package/lib/components/ssn/ssn.component.d.ts +11 -11
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +22 -22
- package/lib/components/test/test.component.d.ts +8 -8
- package/lib/components/user-login/user-login.component.d.ts +48 -48
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +59 -59
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +45 -45
- package/lib/directives/auto-focus/auto-focus.directive.d.ts +12 -12
- package/lib/directives/caps-lock.directive.d.ts +11 -11
- package/lib/directives/required-roles/required-roles.directive.d.ts +14 -14
- package/lib/enums/EmailStatusEnum.d.ts +7 -7
- package/lib/guards/auth.guard.d.ts +28 -28
- package/lib/guards/auth.guard.d.ts.map +1 -1
- package/lib/guards/no-login/no-login.guard.d.ts +11 -11
- package/lib/guards/no-login/no-login.guard.d.ts.map +1 -1
- package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts +22 -22
- package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts +21 -21
- package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts.map +1 -1
- package/lib/models/AddressComponentModel.d.ts +12 -12
- package/lib/models/BankDetailsComponentModel.d.ts +11 -11
- package/lib/models/BankDetailsModel.d.ts +4 -4
- package/lib/models/CinRequalificationCriteriaModel.d.ts +10 -10
- package/lib/models/EmployerDetailSearchResult.d.ts +47 -47
- package/lib/models/ErrorModel.d.ts +6 -6
- package/lib/models/FileModel.d.ts +4 -4
- package/lib/models/LibConstants.d.ts +112 -112
- package/lib/models/NewsAndAnnouncementModel.d.ts +5 -5
- package/lib/models/NotificationModel.d.ts +10 -10
- package/lib/models/OtpAuthModel.d.ts +6 -6
- package/lib/models/PaymentComponentModel.d.ts +7 -7
- package/lib/models/RequalifyLiftPageModel.d.ts +11 -11
- package/lib/models/SsaVerificationModel.d.ts +8 -8
- package/lib/models/TrendModel.d.ts +13 -13
- package/lib/models/UserDetailsModel.d.ts +9 -9
- package/lib/models/UserModel.d.ts +46 -46
- package/lib/models/case/CaseAttachmentModel.d.ts +5 -5
- package/lib/models/claimant/ClaimantModel.d.ts +22 -22
- package/lib/models/claimant/JobResultsData.d.ts +7 -7
- package/lib/models/claimant/MatchingJobs.d.ts +12 -12
- package/lib/models/claimant/ResetPasswordModel.d.ts +8 -8
- package/lib/models/cmp/CaseCoreModel.d.ts +20 -20
- package/lib/models/cmp/ComplaintCategoryModel.d.ts +8 -8
- package/lib/models/cmp/ComplaintCategoryOutputModel.d.ts +5 -5
- package/lib/models/cmp/ContactUsModel.d.ts +22 -22
- package/lib/models/cmp/EmailTemplateModel.d.ts +6 -6
- package/lib/models/cmp/contactUsInqueryModel.d.ts +46 -46
- package/lib/models/cmp/messageRourceModel.d.ts +5 -5
- package/lib/models/dashboard-model.d.ts +43 -43
- package/lib/models/dependent.model.d.ts +11 -18
- package/lib/models/dependent.model.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimAppEmpRequestModel.d.ts +8 -8
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +16 -16
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +151 -151
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +16 -16
- package/lib/models/questionnaire/ComboModel.d.ts +85 -85
- package/lib/models/questionnaire/ElementsModel.d.ts +68 -68
- package/lib/models/questionnaire/EmployerDetailSearchResult.d.ts +17 -17
- package/lib/models/questionnaire/EmployerWagesModel.d.ts +4 -4
- package/lib/models/questionnaire/FBConfigModel.d.ts +11 -11
- package/lib/models/questionnaire/KeyValueModel.d.ts +10 -10
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +10 -10
- package/lib/models/questionnaire/LoaderModel.d.ts +4 -4
- package/lib/models/questionnaire/PollingStatusModel.d.ts +6 -6
- package/lib/models/questionnaire/QtrYearEmployerWageModel.d.ts +8 -8
- package/lib/models/questionnaire/QuestionnaireQueryModel.d.ts +23 -23
- package/lib/models/questionnaire/QuestionnaireReturnModel.d.ts +20 -20
- package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +24 -24
- package/lib/models/questionnaire/RequalifyLiftIssuesModel.d.ts +13 -13
- package/lib/models/questionnaire/ServiceActionResponseModel.d.ts +6 -6
- package/lib/models/questionnaire/StatusModel.d.ts +15 -15
- package/lib/models/questionnaire/SuccessPageElement.d.ts +8 -8
- package/lib/models/questionnaire/UI512AResponseModel.d.ts +12 -12
- package/lib/models/questionnaire/ValidationModel.d.ts +17 -17
- package/lib/ngx-reusa-app-lib.component.d.ts +8 -8
- package/lib/ngx-reusa-app-lib.module.d.ts +148 -145
- package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
- package/lib/ngx-reusa-app-lib.service.d.ts +6 -6
- package/lib/pages/BasePage.d.ts +26 -26
- package/lib/pages/common/accessibility-policy/accessibility-policy.page.d.ts +11 -11
- package/lib/pages/common/change-password/change-password.page.d.ts +40 -40
- package/lib/pages/common/landing/landing.component.d.ts +24 -24
- package/lib/pages/common/landing2/landing2.component.d.ts +30 -30
- package/lib/pages/common/login/login.component.d.ts +64 -64
- package/lib/pages/common/not-found/not-found.page.d.ts +8 -8
- package/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.d.ts +11 -11
- package/lib/pages/common/security-policy/security-policy.page.d.ts +11 -11
- package/lib/pages/common/unauthorized/unauthorized.page.d.ts +8 -8
- package/lib/pages/popovers/language/language.page.d.ts +16 -16
- package/lib/pages/popovers/my-notifications/my-notifications.page.d.ts +21 -21
- package/lib/pages/popovers/my-profile/my-profile.page.d.ts +20 -20
- package/lib/pages/popovers/user-search/user-search.component.d.ts +31 -31
- package/lib/pipes/filter.pipe.d.ts +7 -7
- package/lib/pipes/mask/mask.email.pipe.d.ts +10 -10
- package/lib/pipes/proper-case/proper-case.pipe.d.ts +8 -8
- package/lib/pipes/translate/dynamic-translate.pipe.d.ts +10 -10
- package/lib/pipes/trust-html/trust-html.pipe.d.ts +10 -10
- package/lib/services/base-service.d.ts +92 -92
- package/lib/services/captcha/captcha.service.d.ts +15 -15
- package/lib/services/case-service/case.service.d.ts +19 -19
- package/lib/services/chatbot/chatbot.service.d.ts +60 -60
- package/lib/services/chatbot/script.const.d.ts +15 -15
- package/lib/services/claimant/claimant.service.d.ts +17 -17
- package/lib/services/claimant-context/claimant-context.service.d.ts +18 -18
- package/lib/services/claimant-context/claimant-context.service.d.ts.map +1 -1
- package/lib/services/claimant-service/claimant.service.d.ts +19 -19
- package/lib/services/claims/claims.service.d.ts +39 -39
- package/lib/services/cmp-service/cmp.service.d.ts +33 -33
- package/lib/services/dms-service/dms.service.d.ts +23 -23
- package/lib/services/fpjs/fingerprint.service.d.ts +18 -18
- package/lib/services/google-analytics/google-analytics.service.d.ts +8 -8
- package/lib/services/help/help.service.d.ts +25 -25
- package/lib/services/help/help.service.d.ts.map +1 -1
- package/lib/services/idle/idle.service.d.ts +43 -43
- package/lib/services/logger/logger.service.d.ts +31 -31
- package/lib/services/logger/logger.service.d.ts.map +1 -1
- package/lib/services/login/login.service.d.ts +75 -75
- package/lib/services/login/login.service.d.ts.map +1 -1
- package/lib/services/maintenance/maintenance.service.d.ts +15 -15
- package/lib/services/notification/notification.service.d.ts +38 -38
- package/lib/services/questionnaire/questionnaire.service.d.ts +35 -35
- package/lib/services/questionnaire/validation.service.d.ts +81 -81
- package/lib/services/security-service/security.service.d.ts +14 -14
- package/lib/services/tour/tour.service.d.ts +24 -24
- package/lib/services/util/util.service.d.ts +190 -190
- package/lib/validations/AppRegex.d.ts +43 -43
- package/lib/validations/AppValidators.d.ts +53 -53
- package/package.json +6 -11
- package/public-api.d.ts +121 -121
- package/esm2020/lib/components/add-employer/add-employer.component.mjs +0 -3099
- package/esm2020/lib/components/add-participant/add-participant.component.mjs +0 -396
- package/esm2020/lib/components/add-payment/add-payment.component.mjs +0 -186
- package/esm2020/lib/components/address/address.component.mjs +0 -480
- package/esm2020/lib/components/bank-details/bank-details.component.mjs +0 -275
- package/esm2020/lib/components/captcha/captcha.component.mjs +0 -180
- package/esm2020/lib/components/card/card.component.mjs +0 -54
- package/esm2020/lib/components/contact-us/contact-us.component.mjs +0 -1004
- package/esm2020/lib/components/content/content.component.mjs +0 -60
- package/esm2020/lib/components/correspondence-download/correspondence-download.component.mjs +0 -82
- package/esm2020/lib/components/dashboard-card/dashboard-card.component.mjs +0 -219
- package/esm2020/lib/components/dependent-grid/dependent-grid.component.mjs +0 -297
- package/esm2020/lib/components/disclosure/disclosure.component.mjs +0 -59
- package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -1552
- package/esm2020/lib/components/email-update/email-update.component.mjs +0 -287
- package/esm2020/lib/components/employer-grid/employer-grid.component.mjs +0 -800
- package/esm2020/lib/components/error/error.component.mjs +0 -85
- package/esm2020/lib/components/fav-menu/fav-menu.component.mjs +0 -163
- package/esm2020/lib/components/file-uploader/file-uploader.component.mjs +0 -317
- package/esm2020/lib/components/footer/footer.component.mjs +0 -337
- package/esm2020/lib/components/header/header.component.mjs +0 -566
- package/esm2020/lib/components/help/help.component.mjs +0 -48
- package/esm2020/lib/components/idle-detector/idle-detector.component.mjs +0 -64
- package/esm2020/lib/components/job-search-result-page/job-search-result-page.component.mjs +0 -209
- package/esm2020/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +0 -192
- package/esm2020/lib/components/maintenance-detector/maintenance-detector.component.mjs +0 -42
- package/esm2020/lib/components/mask/mask.component.mjs +0 -48
- package/esm2020/lib/components/menu/menu.component.mjs +0 -430
- package/esm2020/lib/components/mfa/mfa.component.mjs +0 -451
- package/esm2020/lib/components/mfa-popup/mfa-popup.component.mjs +0 -49
- package/esm2020/lib/components/money-expect/money-expect.component.mjs +0 -89
- package/esm2020/lib/components/msg/msg.component.mjs +0 -48
- package/esm2020/lib/components/news/news.component.mjs +0 -89
- package/esm2020/lib/components/overlay-info/overlay-info.component.mjs +0 -235
- package/esm2020/lib/components/page/page.component.mjs +0 -138
- package/esm2020/lib/components/profile/profile.component.mjs +0 -182
- package/esm2020/lib/components/profile-redirect/profile-redirect.component.mjs +0 -62
- package/esm2020/lib/components/questionnaire/AppValidators.mjs +0 -523
- package/esm2020/lib/components/questionnaire/account-success/account-success.page.mjs +0 -259
- package/esm2020/lib/components/questionnaire/common-success/common-success.page.mjs +0 -483
- package/esm2020/lib/components/questionnaire/dynamic-form-panel.component.mjs +0 -1137
- package/esm2020/lib/components/questionnaire/dynamic-form-question.component.mjs +0 -1948
- package/esm2020/lib/components/questionnaire/dynamic-form.component.mjs +0 -1257
- package/esm2020/lib/components/questionnaire/form-builder/form-builder.page.mjs +0 -240
- package/esm2020/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +0 -259
- package/esm2020/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +0 -260
- package/esm2020/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +0 -703
- package/esm2020/lib/components/search-employer/search-employer.component.mjs +0 -142
- package/esm2020/lib/components/select/select.component.mjs +0 -153
- package/esm2020/lib/components/ssn/ssn.component.mjs +0 -43
- package/esm2020/lib/components/ssn-reverify/ssn-reverify.component.mjs +0 -150
- package/esm2020/lib/components/test/test.component.mjs +0 -18
- package/esm2020/lib/components/user-login/user-login.component.mjs +0 -401
- package/esm2020/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +0 -445
- package/esm2020/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +0 -308
- package/esm2020/lib/guards/no-login/no-login.guard.mjs +0 -21
- package/esm2020/lib/models/RequalifyLiftPageModel.mjs +0 -11
- package/esm2020/lib/models/cmp/CaseCoreModel.mjs +0 -3
- package/esm2020/lib/models/cmp/ContactUsModel.mjs +0 -3
- package/esm2020/lib/models/cmp/contactUsInqueryModel.mjs +0 -7
- package/esm2020/lib/models/dashboard-model.mjs +0 -3
- package/esm2020/lib/models/dependent.model.mjs +0 -8
- package/esm2020/lib/models/questionnaire/ComboModel.mjs +0 -337
- package/esm2020/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +0 -3
- package/esm2020/lib/models/questionnaire/StatusModel.mjs +0 -6
- package/esm2020/lib/models/questionnaire/UI512AResponseModel.mjs +0 -3
- package/esm2020/lib/ngx-reusa-app-lib.component.mjs +0 -22
- package/esm2020/lib/ngx-reusa-app-lib.module.mjs +0 -390
- package/esm2020/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +0 -80
- package/esm2020/lib/pages/common/change-password/change-password.page.mjs +0 -477
- package/esm2020/lib/pages/common/landing/landing.component.mjs +0 -207
- package/esm2020/lib/pages/common/landing2/landing2.component.mjs +0 -244
- package/esm2020/lib/pages/common/login/login.component.mjs +0 -542
- package/esm2020/lib/pages/common/not-found/not-found.page.mjs +0 -23
- package/esm2020/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +0 -305
- package/esm2020/lib/pages/common/security-policy/security-policy.page.mjs +0 -60
- package/esm2020/lib/pages/common/unauthorized/unauthorized.page.mjs +0 -23
- package/esm2020/lib/pages/popovers/language/language.page.mjs +0 -60
- package/esm2020/lib/pages/popovers/my-notifications/my-notifications.page.mjs +0 -205
- package/esm2020/lib/pages/popovers/my-profile/my-profile.page.mjs +0 -129
- package/esm2020/lib/pages/popovers/user-search/user-search.component.mjs +0 -253
- package/esm2020/lib/services/chatbot/script.const.mjs +0 -42
- package/esm2020/lib/services/claimant-context/claimant-context.service.mjs +0 -47
- package/esm2020/lib/services/login/login.service.mjs +0 -330
- package/esm2020/lib/validations/AppRegex.mjs +0 -45
- package/fesm2015/reusa-ngx-reusa-app-lib.mjs +0 -30728
- package/fesm2015/reusa-ngx-reusa-app-lib.mjs.map +0 -1
- package/fesm2020/reusa-ngx-reusa-app-lib.mjs.map +0 -1
|
@@ -1,257 +1,257 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { LibConstants } from '../../models/LibConstants';
|
|
4
|
-
import { ScriptConstant } from './script.const';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../logger/logger.service";
|
|
7
|
-
import * as i2 from "../login/login.service";
|
|
8
|
-
import * as i3 from "../util/util.service";
|
|
9
|
-
export class ChatbotService {
|
|
10
|
-
constructor(rendererFactory, logger, ls, util) {
|
|
11
|
-
this.logger = logger;
|
|
12
|
-
this.ls = ls;
|
|
13
|
-
this.util = util;
|
|
14
|
-
this.map = new Map();
|
|
15
|
-
this.msCustomData = {
|
|
16
|
-
connectingMessage: "Welcome to ReEmployMS. I am your virtual assistant to help you with MDES related queries.",
|
|
17
|
-
hoverMessage: "Ask chat bot",
|
|
18
|
-
botState: "MS",
|
|
19
|
-
showCollectUserDetailForm: true,
|
|
20
|
-
showDisclaimerPopUp: true,
|
|
21
|
-
showChatBubbleAtClosed: false,
|
|
22
|
-
botAvatarImageName: "AvatarIcon.png",
|
|
23
|
-
botIconImageName: "AvatarIcon.png",
|
|
24
|
-
formBannerPath: "",
|
|
25
|
-
rootFilePath: "UI/",
|
|
26
|
-
supportedLanguages: ["en"],
|
|
27
|
-
initialLanguage: "en",
|
|
28
|
-
// starterTask: {en:"Forgot Password", es:"Forgot Password"},
|
|
29
|
-
disclaimerPopup: {
|
|
30
|
-
header: "Important message",
|
|
31
|
-
message: `MDES' virtual assistant will ask for specific identifying information, such as Social Security Number and Date of Birth, that is needed to answer your question(s).</br></br> MDES follows strict federal security guidelines to protect your sensitive information.</br></br>To further protect your information you should close the chat window and browser when you are finished.</p>`
|
|
32
|
-
},
|
|
33
|
-
headerConfig: {
|
|
34
|
-
showLanguageToggle: false,
|
|
35
|
-
showMinimizeButton: false,
|
|
36
|
-
showExpandButton: false,
|
|
37
|
-
showReloadButton: false,
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
this.meCustomData = {
|
|
41
|
-
connectingMessage: "Welcome to ReEmployME. I am your virtual assistant to help you with ME related queries.",
|
|
42
|
-
hoverMessage: "Ask Blue",
|
|
43
|
-
botState: "ME",
|
|
44
|
-
showCollectUserDetailForm: false,
|
|
45
|
-
showDisclaimerPopUp: true,
|
|
46
|
-
showChatBubbleAtClosed: false,
|
|
47
|
-
botIconImageName: "BlueIcon.svg",
|
|
48
|
-
botAvatarImageName: "BlueIcon.svg",
|
|
49
|
-
formBannerPath: "",
|
|
50
|
-
rootFilePath: "UI/",
|
|
51
|
-
supportedLanguages: ["en"],
|
|
52
|
-
initialLanguage: "en",
|
|
53
|
-
disclaimerPopup: {
|
|
54
|
-
header: "Important message",
|
|
55
|
-
message: `MEDOL's virtual assistant may ask you specific identifying information, such as Social Security Number and Date of Birth, that is needed to answer your question(s). ME DOL follows strict federal security guidelines to protect your sensitive information. To further protect your information you should close the chat window and browser when you are finished.`
|
|
56
|
-
},
|
|
57
|
-
headerConfig: {
|
|
58
|
-
showLanguageToggle: false,
|
|
59
|
-
showMinimizeButton: true,
|
|
60
|
-
showExpandButton: false,
|
|
61
|
-
showReloadButton: true,
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
this.ctCustomData = {
|
|
65
|
-
connectingMessage: "Welcome to ReEmployCT. I am your virtual assistant to help you with ME related queries.",
|
|
66
|
-
hoverMessage: "Ask Blue",
|
|
67
|
-
botState: "CT",
|
|
68
|
-
showCollectUserDetailForm: true,
|
|
69
|
-
showDisclaimerPopUp: true,
|
|
70
|
-
showChatBubbleAtClosed: false,
|
|
71
|
-
botIconImageName: "chatboticon.png",
|
|
72
|
-
botAvatarImageName: "chatboticon.png",
|
|
73
|
-
formBannerPath: "",
|
|
74
|
-
rootFilePath: "UI/",
|
|
75
|
-
supportedLanguages: ["en", "es"],
|
|
76
|
-
initialLanguage: "en",
|
|
77
|
-
disclaimerPopup: {
|
|
78
|
-
header: "Important message",
|
|
79
|
-
message: `The CTDOL virtual assistant will need to ask for specific identifying information that is needed to answer your question(s) such as date of birth or Social Security number. The agency follows strict federal security guidelines to protect your sensitive information. To further protect your information, if you are on a public computer, please log out and close your browser when you are finished.`
|
|
80
|
-
},
|
|
81
|
-
headerConfig: {
|
|
82
|
-
showLanguageToggle: true,
|
|
83
|
-
showMinimizeButton: true,
|
|
84
|
-
showExpandButton: false,
|
|
85
|
-
showReloadButton: true,
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
this.botOptions = {};
|
|
89
|
-
this.koreBot = {};
|
|
90
|
-
this.initChatbot = new BehaviorSubject(false);
|
|
91
|
-
this.showChatbot = (LibConstants.enableChatbot == 'true');
|
|
92
|
-
this.renderer = rendererFactory.createRenderer(null, null);
|
|
93
|
-
this.logger.info('ChatbotService initializzed successfully.');
|
|
94
|
-
this.map.set("ms", this.msCustomData);
|
|
95
|
-
this.map.set("me", this.meCustomData);
|
|
96
|
-
this.map.set("ct", this.ctCustomData);
|
|
97
|
-
this.getChatbotBs().subscribe(val => {
|
|
98
|
-
if (val) {
|
|
99
|
-
this.logger.info('Initializing Chatbot.');
|
|
100
|
-
this.initializeChatbot();
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
getChatbotBs() {
|
|
105
|
-
return this.initChatbot;
|
|
106
|
-
}
|
|
107
|
-
initialize() {
|
|
108
|
-
this.initChatbot.next(true);
|
|
109
|
-
}
|
|
110
|
-
loadScripAndStyle() {
|
|
111
|
-
if (!LibConstants.production && this.showChatbot) { //set this property to true if you want to test this in local env.
|
|
112
|
-
this.logger.info('Not Loading Chatbot as current environment is not production. Set "production=true" and "showChatbot=true" if you want to test chatbot in local env.');
|
|
113
|
-
return;
|
|
114
|
-
;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
this.logger.info('Loading chatbot ...');
|
|
118
|
-
}
|
|
119
|
-
ScriptConstant.importUrls.forEach(scriptElement => {
|
|
120
|
-
// other than js and stylesheet are ignored
|
|
121
|
-
if (scriptElement.type === ScriptConstant.jsProperty) {
|
|
122
|
-
const jsScriptNode = document.createElement('script');
|
|
123
|
-
//// jsScriptNode.src = environment.koreAiWebSdkUrl + scriptElement.url;
|
|
124
|
-
jsScriptNode.src = LibConstants.koreAiWebSdkUrl + scriptElement.url;
|
|
125
|
-
jsScriptNode.type = 'text/javascript';
|
|
126
|
-
if (scriptElement.async == null) {
|
|
127
|
-
this.logger.info(jsScriptNode.src + " will be loaded as async because of null async value");
|
|
128
|
-
jsScriptNode.async = true;
|
|
129
|
-
}
|
|
130
|
-
else if (scriptElement.async == true) {
|
|
131
|
-
this.logger.info(scriptElement.url + " will be loaded as async because of null async true");
|
|
132
|
-
jsScriptNode.async = true;
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
this.logger.info(scriptElement.url + " will be loaded as async=false");
|
|
136
|
-
jsScriptNode.async = false;
|
|
137
|
-
}
|
|
138
|
-
this.renderer.appendChild(document.getElementsByTagName('head')[0], jsScriptNode);
|
|
139
|
-
document.getElementsByTagName('head')[0].appendChild(jsScriptNode);
|
|
140
|
-
}
|
|
141
|
-
else if (scriptElement.type === ScriptConstant.cssProperty) {
|
|
142
|
-
const styleNode = document.createElement('link');
|
|
143
|
-
styleNode.rel = 'stylesheet';
|
|
144
|
-
styleNode.href = LibConstants.koreAiWebSdkUrl + scriptElement.url;
|
|
145
|
-
this.renderer.appendChild(document.getElementsByTagName('head')[0], styleNode);
|
|
146
|
-
}
|
|
147
|
-
else if (scriptElement.type === ScriptConstant.cssPropertyAbsolute) {
|
|
148
|
-
const styleNode = document.createElement('link');
|
|
149
|
-
styleNode.rel = 'stylesheet';
|
|
150
|
-
styleNode.href = scriptElement.url;
|
|
151
|
-
this.renderer.appendChild(document.getElementsByTagName('head')[0], styleNode);
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
this.logger.error('url ' + scriptElement.url + ' is not going to be loaded because of invalid type ' + scriptElement.type);
|
|
155
|
-
}
|
|
156
|
-
}); // for each
|
|
157
|
-
}
|
|
158
|
-
initializeChatbot() {
|
|
159
|
-
this.openbot();
|
|
160
|
-
}
|
|
161
|
-
/***
|
|
162
|
-
*
|
|
163
|
-
* @description Initialize the chatbot with logged-in user. If user is not logged-in then bot session will be created using unique timestamp.
|
|
164
|
-
*/
|
|
165
|
-
openbot() {
|
|
166
|
-
let userId = null;
|
|
167
|
-
if (this.ls.getUser()) {
|
|
168
|
-
userId = this.ls.getUser().username + '_' + this.ls.getUser().userType;
|
|
169
|
-
this.botOptions.accessToken = this.ls.getUser().access_token;
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
userId = Math.floor((Math.random() * 10000000) + 1) + "_" + new Date().getMilliseconds() + "@mdes.ms.gov";
|
|
173
|
-
}
|
|
174
|
-
//***CODE_START
|
|
175
|
-
this.botOptions.logLevel = 'debug';
|
|
176
|
-
this.botOptions.koreAPIUrl = LibConstants.koreAiChatbotServer;
|
|
177
|
-
//botOptions.koreSpeechAPIUrl = "https://speech.kore.ai/";
|
|
178
|
-
//botOptions.bearer = "bearer xyz-------------------";
|
|
179
|
-
//botOptions.ttsSocketUrl = 'wss://speech.kore.ai/tts/ws';
|
|
180
|
-
this.botOptions.recorderWorkerPath = './libs/recorderWorker.js';
|
|
181
|
-
this.botOptions.assertionFn = (options, callback) => this.assertion(options, callback);
|
|
182
|
-
//botOptions.koreAnonymousFn = koreAnonymousFn;
|
|
183
|
-
this.botOptions.JWTUrl = LibConstants.koreAiJwtService;
|
|
184
|
-
this.botOptions.userIdentity = userId; // Provide users email id here
|
|
185
|
-
this.botOptions.botInfo = {
|
|
186
|
-
name: LibConstants.koreAiBotName,
|
|
187
|
-
"_id": LibConstants.koreAiBotId,
|
|
188
|
-
customData: this.map.get(this.util.getStateLowercase()) ? this.map.get(this.util.getStateLowercase()) : this.map.get('ms'),
|
|
189
|
-
// customData: { connectingMessage: "Welcome to ReEmployME. I am your virtual assistant to help you with ME related queries.", hoverMessage: "Ask Blue", botState: "ME", showCollectUserDetailForm: false, showDisclaimerPopUp: true, botIconImageName: "chatboticon.png", botAvatarImageName: "chatboticon.png", rootFilePath: "UI/", supportedLanguages: ["en", "es"], initialLanguage: "en", disclaimerPopup: { header: "Important Message", message: `The virtual assistant will need to ask for specific identifying information that is needed to answer you question(s) such as date of birth or Social Security number. The agency follows strict federal security guidelines to protect your sensitive information. To further protect your information, if you are on a public computer, please log out and close your browser when you are finished.`, }, headerConfig: { showLanguageToggle: true, showMinimizeButton: true, showExpandbutton: false, showReloadButton: true, } }
|
|
190
|
-
}; // bot name is case sensitive
|
|
191
|
-
this.botOptions.clientId = LibConstants.koreAiClientId;
|
|
192
|
-
//this.botOptions.clientSecret = LibConstants.koreAiClientSecret;
|
|
193
|
-
//this.botOptions.reemployUsBearerToken= "";
|
|
194
|
-
// will need to pass token to koreAiChatBotServer when authentication needs to be validated for server side api call
|
|
195
|
-
var chatConfig = {
|
|
196
|
-
botOptions: this.botOptions,
|
|
197
|
-
allowIframe: false,
|
|
198
|
-
isSendButton: true,
|
|
199
|
-
isTTSEnabled: false,
|
|
200
|
-
isSpeechEnabled: false,
|
|
201
|
-
allowGoogleSpeech: false,
|
|
202
|
-
allowLocation: false,
|
|
203
|
-
loadHistory: false,
|
|
204
|
-
messageHistoryLimit: 10,
|
|
205
|
-
autoEnableSpeechAndTTS: false,
|
|
206
|
-
graphLib: "d3"
|
|
207
|
-
};
|
|
208
|
-
if (Object.keys(this.koreBot).length === 0) {
|
|
209
|
-
this.koreBot = koreBotChat();
|
|
210
|
-
this.koreBot.show(chatConfig);
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
this.koreBot.resumeChatWindow();
|
|
214
|
-
}
|
|
215
|
-
//***CODE_END
|
|
216
|
-
}
|
|
217
|
-
assertion(options, callback) {
|
|
218
|
-
var jsonData = {
|
|
219
|
-
"clientId": this.botOptions.clientId,
|
|
220
|
-
"clientSecret": this.botOptions.clientSecret,
|
|
221
|
-
"identity": options.userIdentity || this.botOptions.userIdentity,
|
|
222
|
-
"aud": "",
|
|
223
|
-
"isAnonymous": (this.ls.getUser() == null),
|
|
224
|
-
"accessToken": this.botOptions.accessToken
|
|
225
|
-
};
|
|
226
|
-
$.ajax({
|
|
227
|
-
url: this.botOptions.JWTUrl,
|
|
228
|
-
type: 'post',
|
|
229
|
-
data: jsonData,
|
|
230
|
-
dataType: 'json',
|
|
231
|
-
success: (data) => {
|
|
232
|
-
options.assertion = data.jwt;
|
|
233
|
-
options.handleError = this.koreBot.showError;
|
|
234
|
-
options.chatHistory = this.koreBot.chatHistory;
|
|
235
|
-
options.botDetails = this.koreBot.botDetails;
|
|
236
|
-
callback(null, options);
|
|
237
|
-
setTimeout(function () {
|
|
238
|
-
if (this.koreBot && this.koreBot.initToken) {
|
|
239
|
-
this.koreBot.initToken(options);
|
|
240
|
-
}
|
|
241
|
-
}, 2000);
|
|
242
|
-
},
|
|
243
|
-
error: (err) => {
|
|
244
|
-
this.koreBot.showError(err.responseText);
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
(
|
|
252
|
-
type: Injectable,
|
|
253
|
-
args: [{
|
|
254
|
-
providedIn: 'root'
|
|
255
|
-
}]
|
|
256
|
-
}],
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jaGF0Ym90L2NoYXRib3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBcUNoRCxNQUFNLE9BQU8sY0FBYztJQW1GekIsWUFBWSxlQUFpQyxFQUFVLE1BQXFCLEVBQVUsRUFBZ0IsRUFBVSxJQUFpQjtRQUExRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFqRmpJLFFBQUcsR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV6QyxpQkFBWSxHQUFlO1lBQ3pCLGlCQUFpQixFQUFFLDJGQUEyRjtZQUM5RyxZQUFZLEVBQUUsY0FBYztZQUM1QixRQUFRLEVBQUUsSUFBSTtZQUNkLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGtCQUFrQixFQUFFLGdCQUFnQjtZQUNwQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDMUIsZUFBZSxFQUFFLElBQUk7WUFDckIsNkRBQTZEO1lBQzdELGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixP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QUksRUFBRSxFQUFFO2dCQUNoQixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQzdDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQy9DLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQzdDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3hCLFVBQVUsQ0FBQztvQkFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7d0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNqQztnQkFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDWCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzs0RUEzUFUsY0FBYztvRUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGYixNQUFNO3VGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTY3JpcHRDb25zdGFudCB9IGZyb20gJy4vc2NyaXB0LmNvbnN0JztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi91dGlsL3V0aWwuc2VydmljZSc7XG5cbmRlY2xhcmUgY29uc3Qga29yZUJvdENoYXQ6IGFueTtcbmRlY2xhcmUgY29uc3QgJDogYW55O1xuXG5pbnRlcmZhY2UgRGlzY2xhaW1lclBvcHVwIHtcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZ1xufVxuaW50ZXJmYWNlIEhlYWRlckNvbmZpZyB7XG4gIHNob3dMYW5ndWFnZVRvZ2dsZTogYm9vbGVhbjtcbiAgc2hvd01pbmltaXplQnV0dG9uOiBib29sZWFuO1xuICBzaG93RXhwYW5kQnV0dG9uOiBib29sZWFuO1xuICBzaG93UmVsb2FkQnV0dG9uOiBib29sZWFuO1xufVxuaW50ZXJmYWNlIEN1c3RvbURhdGEge1xuICBjb25uZWN0aW5nTWVzc2FnZTogc3RyaW5nO1xuICBob3Zlck1lc3NhZ2U6IHN0cmluZztcbiAgYm90U3RhdGU6IHN0cmluZztcbiAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogYm9vbGVhbjtcbiAgc2hvd0Rpc2NsYWltZXJQb3BVcDogYm9vbGVhbjtcbiAgc2hvd0NoYXRCdWJibGVBdENsb3NlZDogYm9vbGVhbjtcbiAgYm90QXZhdGFySW1hZ2VOYW1lOiBzdHJpbmc7XG4gIGJvdEljb25JbWFnZU5hbWU6IHN0cmluZztcbiAgZm9ybUJhbm5lclBhdGg6IHN0cmluZyxcbiAgcm9vdEZpbGVQYXRoOiBzdHJpbmc7XG4gIHN1cHBvcnRlZExhbmd1YWdlczogc3RyaW5nW107XG4gIGluaXRpYWxMYW5ndWFnZTogc3RyaW5nO1xuICBkaXNjbGFpbWVyUG9wdXA6IERpc2NsYWltZXJQb3B1cDtcbiAgaGVhZGVyQ29uZmlnOiBIZWFkZXJDb25maWc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENoYXRib3RTZXJ2aWNlIHtcblxuICBtYXA6IE1hcDxzdHJpbmcsIEN1c3RvbURhdGE+ID0gbmV3IE1hcCgpO1xuXG4gIG1zQ3VzdG9tRGF0YTogQ3VzdG9tRGF0YSA9IHtcbiAgICBjb25uZWN0aW5nTWVzc2FnZTogXCJXZWxjb21lIHRvIFJlRW1wbG95TVMuIEkgYW0geW91ciB2aXJ0dWFsIGFzc2lzdGFudCB0byBoZWxwIHlvdSB3aXRoIE1ERVMgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgY2hhdCBib3RcIixcbiAgICBib3RTdGF0ZTogXCJNU1wiLFxuICAgIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IHRydWUsXG4gICAgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSxcbiAgICBzaG93Q2hhdEJ1YmJsZUF0Q2xvc2VkOiBmYWxzZSxcbiAgICBib3RBdmF0YXJJbWFnZU5hbWU6IFwiQXZhdGFySWNvbi5wbmdcIixcbiAgICBib3RJY29uSW1hZ2VOYW1lOiBcIkF2YXRhckljb24ucG5nXCIsXG4gICAgZm9ybUJhbm5lclBhdGg6IFwiXCIsXG4gICAgcm9vdEZpbGVQYXRoOiBcIlVJL1wiLFxuICAgIHN1cHBvcnRlZExhbmd1YWdlczogW1wiZW5cIl0sXG4gICAgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsXG4gICAgLy8gc3RhcnRlclRhc2s6IHtlbjpcIkZvcmdvdCBQYXNzd29yZFwiLCBlczpcIkZvcmdvdCBQYXNzd29yZFwifSxcbiAgICBkaXNjbGFpbWVyUG9wdXA6IHtcbiAgICAgIGhlYWRlcjogXCJJbXBvcnRhbnQgbWVzc2FnZVwiLFxuICAgICAgbWVzc2FnZTogYE1ERVMnIHZpcnR1YWwgYXNzaXN0YW50IHdpbGwgYXNrIGZvciBzcGVjaWZpYyBpZGVudGlmeWluZyBpbmZvcm1hdGlvbiwgc3VjaCBhcyBTb2NpYWwgU2VjdXJpdHkgTnVtYmVyIGFuZCBEYXRlIG9mIEJpcnRoLCB0aGF0IGlzIG5lZWRlZCB0byBhbnN3ZXIgeW91ciBxdWVzdGlvbihzKS48L2JyPjwvYnI+IE1ERVMgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uPC9icj48L2JyPlRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uIHlvdSBzaG91bGQgY2xvc2UgdGhlIGNoYXQgd2luZG93IGFuZCBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC48L3A+YFxuICAgIH0sXG4gICAgaGVhZGVyQ29uZmlnOiB7XG4gICAgICBzaG93TGFuZ3VhZ2VUb2dnbGU6IGZhbHNlLFxuICAgICAgc2hvd01pbmltaXplQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogZmFsc2UsXG4gICAgfVxuICB9XG5cbiAgbWVDdXN0b21EYXRhOiBDdXN0b21EYXRhID0ge1xuICAgIGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lNRS4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgQmx1ZVwiLFxuICAgIGJvdFN0YXRlOiBcIk1FXCIsXG4gICAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogZmFsc2UsXG4gICAgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSxcbiAgICBzaG93Q2hhdEJ1YmJsZUF0Q2xvc2VkOiBmYWxzZSxcbiAgICBib3RJY29uSW1hZ2VOYW1lOiBcIkJsdWVJY29uLnN2Z1wiLFxuICAgIGJvdEF2YXRhckltYWdlTmFtZTogXCJCbHVlSWNvbi5zdmdcIixcbiAgICBmb3JtQmFubmVyUGF0aDogXCJcIixcbiAgICByb290RmlsZVBhdGg6IFwiVUkvXCIsXG4gICAgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBbXCJlblwiXSxcbiAgICBpbml0aWFsTGFuZ3VhZ2U6IFwiZW5cIixcbiAgICBkaXNjbGFpbWVyUG9wdXA6IHtcbiAgICAgIGhlYWRlcjogXCJJbXBvcnRhbnQgbWVzc2FnZVwiLFxuICAgICAgbWVzc2FnZTogYE1FRE9MJ3MgdmlydHVhbCBhc3Npc3RhbnQgbWF5IGFzayB5b3Ugc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24sIHN1Y2ggYXMgU29jaWFsIFNlY3VyaXR5IE51bWJlciBhbmQgRGF0ZSBvZiBCaXJ0aCwgdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24ocykuIE1FIERPTCBmb2xsb3dzIHN0cmljdCBmZWRlcmFsIHNlY3VyaXR5IGd1aWRlbGluZXMgdG8gcHJvdGVjdCB5b3VyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi4gVG8gZnVydGhlciBwcm90ZWN0IHlvdXIgaW5mb3JtYXRpb24geW91IHNob3VsZCBjbG9zZSB0aGUgY2hhdCB3aW5kb3cgYW5kIGJyb3dzZXIgd2hlbiB5b3UgYXJlIGZpbmlzaGVkLmBcbiAgICB9LFxuICAgIGhlYWRlckNvbmZpZzoge1xuICAgICAgc2hvd0xhbmd1YWdlVG9nZ2xlOiBmYWxzZSxcbiAgICAgIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgY3RDdXN0b21EYXRhOiBDdXN0b21EYXRhID0ge1xuICAgIGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lDVC4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgQmx1ZVwiLFxuICAgIGJvdFN0YXRlOiBcIkNUXCIsXG4gICAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogdHJ1ZSxcbiAgICBzaG93RGlzY2xhaW1lclBvcFVwOiB0cnVlLFxuICAgIHNob3dDaGF0QnViYmxlQXRDbG9zZWQ6IGZhbHNlLFxuICAgIGJvdEljb25JbWFnZU5hbWU6IFwiY2hhdGJvdGljb24ucG5nXCIsXG4gICAgYm90QXZhdGFySW1hZ2VOYW1lOiBcImNoYXRib3RpY29uLnBuZ1wiLFxuICAgIGZvcm1CYW5uZXJQYXRoOiBcIlwiLFxuICAgIHJvb3RGaWxlUGF0aDogXCJVSS9cIixcbiAgICBzdXBwb3J0ZWRMYW5ndWFnZXM6IFtcImVuXCIsIFwiZXNcIl0sXG4gICAgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsXG4gICAgZGlzY2xhaW1lclBvcHVwOiB7XG4gICAgICBoZWFkZXI6IFwiSW1wb3J0YW50IG1lc3NhZ2VcIixcbiAgICAgIG1lc3NhZ2U6IGBUaGUgQ1RET0wgdmlydHVhbCBhc3Npc3RhbnQgd2lsbCBuZWVkIHRvIGFzayBmb3Igc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24gdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24ocykgc3VjaCBhcyBkYXRlIG9mIGJpcnRoIG9yIFNvY2lhbCBTZWN1cml0eSBudW1iZXIuIFRoZSBhZ2VuY3kgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIFRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uLCBpZiB5b3UgYXJlIG9uIGEgcHVibGljIGNvbXB1dGVyLCBwbGVhc2UgbG9nIG91dCBhbmQgY2xvc2UgeW91ciBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC5gXG4gICAgfSxcbiAgICBoZWFkZXJDb25maWc6IHtcbiAgICAgIHNob3dMYW5ndWFnZVRvZ2dsZTogdHJ1ZSxcbiAgICAgIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcHVibGljIGJvdE9wdGlvbnM6IGFueSA9IHt9O1xuICBwdWJsaWMga29yZUJvdDogYW55ID0ge307XG4gIGluaXRDaGF0Ym90OiBCZWhhdmlvclN1YmplY3Q8Qm9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuICBwdWJsaWMgc2hvd0NoYXRib3Q6IGJvb2xlYW4gPSAoTGliQ29uc3RhbnRzLmVuYWJsZUNoYXRib3QgPT0gJ3RydWUnKTtcbiAgY29uc3RydWN0b3IocmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgcHJpdmF0ZSBsczogTG9naW5TZXJ2aWNlLCBwcml2YXRlIHV0aWw6IFV0aWxTZXJ2aWNlKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdDaGF0Ym90U2VydmljZSBpbml0aWFsaXp6ZWQgc3VjY2Vzc2Z1bGx5LicpO1xuXG4gICAgdGhpcy5tYXAuc2V0KFwibXNcIiwgdGhpcy5tc0N1c3RvbURhdGEpO1xuICAgIHRoaXMubWFwLnNldChcIm1lXCIsIHRoaXMubWVDdXN0b21EYXRhKTtcbiAgICB0aGlzLm1hcC5zZXQoXCJjdFwiLCB0aGlzLmN0Q3VzdG9tRGF0YSk7XG4gICAgdGhpcy5nZXRDaGF0Ym90QnMoKS5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbygnSW5pdGlhbGl6aW5nIENoYXRib3QuJyk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNoYXRib3QoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldENoYXRib3RCcygpIHtcbiAgICByZXR1cm4gdGhpcy5pbml0Q2hhdGJvdDtcbiAgfVxuXG4gIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5pbml0Q2hhdGJvdC5uZXh0KHRydWUpO1xuICB9XG5cbiAgbG9hZFNjcmlwQW5kU3R5bGUoKSB7XG4gICAgaWYgKCFMaWJDb25zdGFudHMucHJvZHVjdGlvbiAmJiB0aGlzLnNob3dDaGF0Ym90KSB7IC8vc2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSBpZiB5b3Ugd2FudCB0byB0ZXN0IHRoaXMgaW4gbG9jYWwgZW52LlxuICAgICAgdGhpcy5sb2dnZXIuaW5mbygnTm90IExvYWRpbmcgQ2hhdGJvdCBhcyBjdXJyZW50IGVudmlyb25tZW50IGlzIG5vdCBwcm9kdWN0aW9uLiBTZXQgXCJwcm9kdWN0aW9uPXRydWVcIiBhbmQgXCJzaG93Q2hhdGJvdD10cnVlXCIgaWYgeW91IHdhbnQgdG8gdGVzdCBjaGF0Ym90IGluIGxvY2FsIGVudi4nKTtcbiAgICAgIHJldHVybjs7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0xvYWRpbmcgY2hhdGJvdCAuLi4nKTtcbiAgICB9XG5cbiAgICBTY3JpcHRDb25zdGFudC5pbXBvcnRVcmxzLmZvckVhY2goc2NyaXB0RWxlbWVudCA9PiB7XG4gICAgICAvLyBvdGhlciB0aGFuIGpzIGFuZCBzdHlsZXNoZWV0IGFyZSBpZ25vcmVkXG4gICAgICBpZiAoc2NyaXB0RWxlbWVudC50eXBlID09PSBTY3JpcHRDb25zdGFudC5qc1Byb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IGpzU2NyaXB0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAvLy8vIGpzU2NyaXB0Tm9kZS5zcmMgPSBlbnZpcm9ubWVudC5rb3JlQWlXZWJTZGtVcmwgKyBzY3JpcHRFbGVtZW50LnVybDtcbiAgICAgICAganNTY3JpcHROb2RlLnNyYyA9IExpYkNvbnN0YW50cy5rb3JlQWlXZWJTZGtVcmwgKyBzY3JpcHRFbGVtZW50LnVybDtcblxuICAgICAgICBqc1NjcmlwdE5vZGUudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuXG4gICAgICAgIGlmIChzY3JpcHRFbGVtZW50LmFzeW5jID09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKGpzU2NyaXB0Tm9kZS5zcmMgKyBcIiB3aWxsIGJlIGxvYWRlZCBhcyBhc3luYyBiZWNhdXNlIG9mIG51bGwgYXN5bmMgdmFsdWVcIik7XG4gICAgICAgICAganNTY3JpcHROb2RlLmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChzY3JpcHRFbGVtZW50LmFzeW5jID09IHRydWUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKHNjcmlwdEVsZW1lbnQudXJsICsgXCIgd2lsbCBiZSBsb2FkZWQgYXMgYXN5bmMgYmVjYXVzZSBvZiBudWxsIGFzeW5jIHRydWVcIik7XG5cbiAgICAgICAgICBqc1NjcmlwdE5vZGUuYXN5bmMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oc2NyaXB0RWxlbWVudC51cmwgKyBcIiB3aWxsIGJlIGxvYWRlZCBhcyBhc3luYz1mYWxzZVwiKTtcblxuICAgICAgICAgIGpzU2NyaXB0Tm9kZS5hc3luYyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSwganNTY3JpcHROb2RlKTtcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChqc1NjcmlwdE5vZGUpO1xuICAgICAgfSBlbHNlIGlmIChzY3JpcHRFbGVtZW50LnR5cGUgPT09IFNjcmlwdENvbnN0YW50LmNzc1Byb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IHN0eWxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgc3R5bGVOb2RlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgc3R5bGVOb2RlLmhyZWYgPSBMaWJDb25zdGFudHMua29yZUFpV2ViU2RrVXJsICsgc2NyaXB0RWxlbWVudC51cmw7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSwgc3R5bGVOb2RlKTtcbiAgICAgIH0gZWxzZSBpZiAoc2NyaXB0RWxlbWVudC50eXBlID09PSBTY3JpcHRDb25zdGFudC5jc3NQcm9wZXJ0eUFic29sdXRlKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgc3R5bGVOb2RlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgc3R5bGVOb2RlLmhyZWYgPSBzY3JpcHRFbGVtZW50LnVybDtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLCBzdHlsZU5vZGUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCd1cmwgJyArIHNjcmlwdEVsZW1lbnQudXJsICsgJyBpcyBub3QgZ29pbmcgdG8gYmUgbG9hZGVkIGJlY2F1c2Ugb2YgaW52YWxpZCB0eXBlICcgKyBzY3JpcHRFbGVtZW50LnR5cGUpO1xuICAgICAgfVxuICAgIH0pOyAvLyBmb3IgZWFjaFxuICB9XG5cblxuXG4gIHB1YmxpYyBpbml0aWFsaXplQ2hhdGJvdCgpIHtcbiAgICB0aGlzLm9wZW5ib3QoKTtcbiAgfVxuXG4gIC8qKipcbiAgICogXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIHRoZSBjaGF0Ym90IHdpdGggbG9nZ2VkLWluIHVzZXIuIElmIHVzZXIgaXMgbm90IGxvZ2dlZC1pbiB0aGVuIGJvdCBzZXNzaW9uIHdpbGwgYmUgY3JlYXRlZCB1c2luZyB1bmlxdWUgdGltZXN0YW1wLlxuICAgKi9cbiAgb3BlbmJvdCgpIHtcbiAgICBsZXQgdXNlcklkID0gbnVsbDtcbiAgICBpZiAodGhpcy5scy5nZXRVc2VyKCkpIHtcbiAgICAgIHVzZXJJZCA9IHRoaXMubHMuZ2V0VXNlcigpLnVzZXJuYW1lICsgJ18nICsgdGhpcy5scy5nZXRVc2VyKCkudXNlclR5cGU7XG4gICAgICB0aGlzLmJvdE9wdGlvbnMuYWNjZXNzVG9rZW4gPSB0aGlzLmxzLmdldFVzZXIoKS5hY2Nlc3NfdG9rZW47XG4gICAgfSBlbHNlIHtcbiAgICAgIHVzZXJJZCA9IE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMCkgKyAxKSArIFwiX1wiICsgbmV3IERhdGUoKS5nZXRNaWxsaXNlY29uZHMoKSArIFwiQG1kZXMubXMuZ292XCI7XG4gICAgfVxuICAgIC8vKioqQ09ERV9TVEFSVFxuICAgIHRoaXMuYm90T3B0aW9ucy5sb2dMZXZlbCA9ICdkZWJ1Zyc7XG4gICAgdGhpcy5ib3RPcHRpb25zLmtvcmVBUElVcmwgPSBMaWJDb25zdGFudHMua29yZUFpQ2hhdGJvdFNlcnZlcjtcbiAgICAvL2JvdE9wdGlvbnMua29yZVNwZWVjaEFQSVVybCA9IFwiaHR0cHM6Ly9zcGVlY2gua29yZS5haS9cIjtcbiAgICAvL2JvdE9wdGlvbnMuYmVhcmVyID0gXCJiZWFyZXIgeHl6LS0tLS0tLS0tLS0tLS0tLS0tLVwiO1xuICAgIC8vYm90T3B0aW9ucy50dHNTb2NrZXRVcmwgPSAnd3NzOi8vc3BlZWNoLmtvcmUuYWkvdHRzL3dzJztcbiAgICB0aGlzLmJvdE9wdGlvbnMucmVjb3JkZXJXb3JrZXJQYXRoID0gJy4vbGlicy9yZWNvcmRlcldvcmtlci5qcyc7XG4gICAgdGhpcy5ib3RPcHRpb25zLmFzc2VydGlvbkZuID0gKG9wdGlvbnMsIGNhbGxiYWNrKSA9PiB0aGlzLmFzc2VydGlvbihvcHRpb25zLCBjYWxsYmFjayk7XG4gICAgLy9ib3RPcHRpb25zLmtvcmVBbm9ueW1vdXNGbiA9IGtvcmVBbm9ueW1vdXNGbjtcblxuICAgIHRoaXMuYm90T3B0aW9ucy5KV1RVcmwgPSBMaWJDb25zdGFudHMua29yZUFpSnd0U2VydmljZTtcbiAgICBcbiAgICB0aGlzLmJvdE9wdGlvbnMudXNlcklkZW50aXR5ID0gdXNlcklkOy8vIFByb3ZpZGUgdXNlcnMgZW1haWwgaWQgaGVyZVxuICAgIHRoaXMuYm90T3B0aW9ucy5ib3RJbmZvID0ge1xuICAgICAgbmFtZTogTGliQ29uc3RhbnRzLmtvcmVBaUJvdE5hbWUsXG4gICAgICBcIl9pZFwiOiBMaWJDb25zdGFudHMua29yZUFpQm90SWQsXG4gICAgICBjdXN0b21EYXRhIDogdGhpcy5tYXAuZ2V0KHRoaXMudXRpbC5nZXRTdGF0ZUxvd2VyY2FzZSgpKSA/IHRoaXMubWFwLmdldCh0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSkgOiB0aGlzLm1hcC5nZXQoJ21zJyksXG4gICAgICAvLyBjdXN0b21EYXRhOiB7IGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lNRS4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLCBob3Zlck1lc3NhZ2U6IFwiQXNrIEJsdWVcIiwgYm90U3RhdGU6IFwiTUVcIiwgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogZmFsc2UsIHNob3dEaXNjbGFpbWVyUG9wVXA6IHRydWUsIGJvdEljb25JbWFnZU5hbWU6IFwiY2hhdGJvdGljb24ucG5nXCIsIGJvdEF2YXRhckltYWdlTmFtZTogXCJjaGF0Ym90aWNvbi5wbmdcIiwgcm9vdEZpbGVQYXRoOiBcIlVJL1wiLCBzdXBwb3J0ZWRMYW5ndWFnZXM6IFtcImVuXCIsIFwiZXNcIl0sIGluaXRpYWxMYW5ndWFnZTogXCJlblwiLCBkaXNjbGFpbWVyUG9wdXA6IHsgaGVhZGVyOiBcIkltcG9ydGFudCBNZXNzYWdlXCIsIG1lc3NhZ2U6IGBUaGUgdmlydHVhbCBhc3Npc3RhbnQgd2lsbCBuZWVkIHRvIGFzayBmb3Igc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24gdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdSBxdWVzdGlvbihzKSBzdWNoIGFzIGRhdGUgb2YgYmlydGggb3IgU29jaWFsIFNlY3VyaXR5IG51bWJlci4gVGhlIGFnZW5jeSBmb2xsb3dzIHN0cmljdCBmZWRlcmFsIHNlY3VyaXR5IGd1aWRlbGluZXMgdG8gcHJvdGVjdCB5b3VyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi4gVG8gZnVydGhlciBwcm90ZWN0IHlvdXIgaW5mb3JtYXRpb24sIGlmIHlvdSBhcmUgb24gYSBwdWJsaWMgY29tcHV0ZXIsIHBsZWFzZSBsb2cgb3V0IGFuZCBjbG9zZSB5b3VyIGJyb3dzZXIgd2hlbiB5b3UgYXJlIGZpbmlzaGVkLmAsIH0sIGhlYWRlckNvbmZpZzogeyBzaG93TGFuZ3VhZ2VUb2dnbGU6IHRydWUsIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSwgc2hvd0V4cGFuZGJ1dHRvbjogZmFsc2UsIHNob3dSZWxvYWRCdXR0b246IHRydWUsIH0gfVxuICAgIH07IC8vIGJvdCBuYW1lIGlzIGNhc2Ugc2Vuc2l0aXZlXG4gICAgdGhpcy5ib3RPcHRpb25zLmNsaWVudElkID0gTGliQ29uc3RhbnRzLmtvcmVBaUNsaWVudElkO1xuICAgIC8vdGhpcy5ib3RPcHRpb25zLmNsaWVudFNlY3JldCA9IExpYkNvbnN0YW50cy5rb3JlQWlDbGllbnRTZWNyZXQ7XG5cbiAgICAvL3RoaXMuYm90T3B0aW9ucy5yZWVtcGxveVVzQmVhcmVyVG9rZW49IFwiXCI7ICBcbiAgICAvLyB3aWxsIG5lZWQgdG8gcGFzcyB0b2tlbiB0byBrb3JlQWlDaGF0Qm90U2VydmVyIHdoZW4gYXV0aGVudGljYXRpb24gbmVlZHMgdG8gYmUgdmFsaWRhdGVkIGZvciBzZXJ2ZXIgc2lkZSBhcGkgY2FsbFxuXG4gICAgdmFyIGNoYXRDb25maWcgPSB7XG4gICAgICBib3RPcHRpb25zOiB0aGlzLmJvdE9wdGlvbnMsXG4gICAgICBhbGxvd0lmcmFtZTogZmFsc2UsXG4gICAgICBpc1NlbmRCdXR0b246IHRydWUsXG4gICAgICBpc1RUU0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgaXNTcGVlY2hFbmFibGVkOiBmYWxzZSxcbiAgICAgIGFsbG93R29vZ2xlU3BlZWNoOiBmYWxzZSxcbiAgICAgIGFsbG93TG9jYXRpb246IGZhbHNlLFxuICAgICAgbG9hZEhpc3Rvcnk6IGZhbHNlLFxuICAgICAgbWVzc2FnZUhpc3RvcnlMaW1pdDogMTAsXG4gICAgICBhdXRvRW5hYmxlU3BlZWNoQW5kVFRTOiBmYWxzZSxcbiAgICAgIGdyYXBoTGliOiBcImQzXCJcbiAgICB9O1xuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmtvcmVCb3QpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5rb3JlQm90ID0ga29yZUJvdENoYXQoKTtcbiAgICAgIHRoaXMua29yZUJvdC5zaG93KGNoYXRDb25maWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmtvcmVCb3QucmVzdW1lQ2hhdFdpbmRvdygpXG4gICAgfVxuICAgIC8vKioqQ09ERV9FTkRcblxuICB9XG5cbiAgYXNzZXJ0aW9uKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGpzb25EYXRhID0ge1xuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmJvdE9wdGlvbnMuY2xpZW50SWQsXG4gICAgICBcImNsaWVudFNlY3JldFwiOiB0aGlzLmJvdE9wdGlvbnMuY2xpZW50U2VjcmV0LFxuICAgICAgXCJpZGVudGl0eVwiOiBvcHRpb25zLnVzZXJJZGVudGl0eSB8fCB0aGlzLmJvdE9wdGlvbnMudXNlcklkZW50aXR5LFxuICAgICAgXCJhdWRcIjogXCJcIixcbiAgICAgIFwiaXNBbm9ueW1vdXNcIjogKHRoaXMubHMuZ2V0VXNlcigpID09IG51bGwpLFxuICAgICAgXCJhY2Nlc3NUb2tlblwiOiB0aGlzLmJvdE9wdGlvbnMuYWNjZXNzVG9rZW5cbiAgICB9O1xuICAgICQuYWpheCh7XG4gICAgICB1cmw6IHRoaXMuYm90T3B0aW9ucy5KV1RVcmwsXG4gICAgICB0eXBlOiAncG9zdCcsXG4gICAgICBkYXRhOiBqc29uRGF0YSxcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXG4gICAgICBzdWNjZXNzOiAoZGF0YSkgPT4ge1xuICAgICAgICBvcHRpb25zLmFzc2VydGlvbiA9IGRhdGEuand0O1xuICAgICAgICBvcHRpb25zLmhhbmRsZUVycm9yID0gdGhpcy5rb3JlQm90LnNob3dFcnJvcjtcbiAgICAgICAgb3B0aW9ucy5jaGF0SGlzdG9yeSA9IHRoaXMua29yZUJvdC5jaGF0SGlzdG9yeTtcbiAgICAgICAgb3B0aW9ucy5ib3REZXRhaWxzID0gdGhpcy5rb3JlQm90LmJvdERldGFpbHM7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIG9wdGlvbnMpO1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAodGhpcy5rb3JlQm90ICYmIHRoaXMua29yZUJvdC5pbml0VG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMua29yZUJvdC5pbml0VG9rZW4ob3B0aW9ucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAyMDAwKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICB0aGlzLmtvcmVCb3Quc2hvd0Vycm9yKGVyci5yZXNwb25zZVRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { LibConstants } from '../../models/LibConstants';
|
|
4
|
+
import { ScriptConstant } from './script.const';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../logger/logger.service";
|
|
7
|
+
import * as i2 from "../login/login.service";
|
|
8
|
+
import * as i3 from "../util/util.service";
|
|
9
|
+
export class ChatbotService {
|
|
10
|
+
constructor(rendererFactory, logger, ls, util) {
|
|
11
|
+
this.logger = logger;
|
|
12
|
+
this.ls = ls;
|
|
13
|
+
this.util = util;
|
|
14
|
+
this.map = new Map();
|
|
15
|
+
this.msCustomData = {
|
|
16
|
+
connectingMessage: "Welcome to ReEmployMS. I am your virtual assistant to help you with MDES related queries.",
|
|
17
|
+
hoverMessage: "Ask chat bot",
|
|
18
|
+
botState: "MS",
|
|
19
|
+
showCollectUserDetailForm: true,
|
|
20
|
+
showDisclaimerPopUp: true,
|
|
21
|
+
showChatBubbleAtClosed: false,
|
|
22
|
+
botAvatarImageName: "AvatarIcon.png",
|
|
23
|
+
botIconImageName: "AvatarIcon.png",
|
|
24
|
+
formBannerPath: "",
|
|
25
|
+
rootFilePath: "UI/",
|
|
26
|
+
supportedLanguages: ["en"],
|
|
27
|
+
initialLanguage: "en",
|
|
28
|
+
// starterTask: {en:"Forgot Password", es:"Forgot Password"},
|
|
29
|
+
disclaimerPopup: {
|
|
30
|
+
header: "Important message",
|
|
31
|
+
message: `MDES' virtual assistant will ask for specific identifying information, such as Social Security Number and Date of Birth, that is needed to answer your question(s).</br></br> MDES follows strict federal security guidelines to protect your sensitive information.</br></br>To further protect your information you should close the chat window and browser when you are finished.</p>`
|
|
32
|
+
},
|
|
33
|
+
headerConfig: {
|
|
34
|
+
showLanguageToggle: false,
|
|
35
|
+
showMinimizeButton: false,
|
|
36
|
+
showExpandButton: false,
|
|
37
|
+
showReloadButton: false,
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
this.meCustomData = {
|
|
41
|
+
connectingMessage: "Welcome to ReEmployME. I am your virtual assistant to help you with ME related queries.",
|
|
42
|
+
hoverMessage: "Ask Blue",
|
|
43
|
+
botState: "ME",
|
|
44
|
+
showCollectUserDetailForm: false,
|
|
45
|
+
showDisclaimerPopUp: true,
|
|
46
|
+
showChatBubbleAtClosed: false,
|
|
47
|
+
botIconImageName: "BlueIcon.svg",
|
|
48
|
+
botAvatarImageName: "BlueIcon.svg",
|
|
49
|
+
formBannerPath: "",
|
|
50
|
+
rootFilePath: "UI/",
|
|
51
|
+
supportedLanguages: ["en"],
|
|
52
|
+
initialLanguage: "en",
|
|
53
|
+
disclaimerPopup: {
|
|
54
|
+
header: "Important message",
|
|
55
|
+
message: `MEDOL's virtual assistant may ask you specific identifying information, such as Social Security Number and Date of Birth, that is needed to answer your question(s). ME DOL follows strict federal security guidelines to protect your sensitive information. To further protect your information you should close the chat window and browser when you are finished.`
|
|
56
|
+
},
|
|
57
|
+
headerConfig: {
|
|
58
|
+
showLanguageToggle: false,
|
|
59
|
+
showMinimizeButton: true,
|
|
60
|
+
showExpandButton: false,
|
|
61
|
+
showReloadButton: true,
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
this.ctCustomData = {
|
|
65
|
+
connectingMessage: "Welcome to ReEmployCT. I am your virtual assistant to help you with ME related queries.",
|
|
66
|
+
hoverMessage: "Ask Blue",
|
|
67
|
+
botState: "CT",
|
|
68
|
+
showCollectUserDetailForm: true,
|
|
69
|
+
showDisclaimerPopUp: true,
|
|
70
|
+
showChatBubbleAtClosed: false,
|
|
71
|
+
botIconImageName: "chatboticon.png",
|
|
72
|
+
botAvatarImageName: "chatboticon.png",
|
|
73
|
+
formBannerPath: "",
|
|
74
|
+
rootFilePath: "UI/",
|
|
75
|
+
supportedLanguages: ["en", "es"],
|
|
76
|
+
initialLanguage: "en",
|
|
77
|
+
disclaimerPopup: {
|
|
78
|
+
header: "Important message",
|
|
79
|
+
message: `The CTDOL virtual assistant will need to ask for specific identifying information that is needed to answer your question(s) such as date of birth or Social Security number. The agency follows strict federal security guidelines to protect your sensitive information. To further protect your information, if you are on a public computer, please log out and close your browser when you are finished.`
|
|
80
|
+
},
|
|
81
|
+
headerConfig: {
|
|
82
|
+
showLanguageToggle: true,
|
|
83
|
+
showMinimizeButton: true,
|
|
84
|
+
showExpandButton: false,
|
|
85
|
+
showReloadButton: true,
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
this.botOptions = {};
|
|
89
|
+
this.koreBot = {};
|
|
90
|
+
this.initChatbot = new BehaviorSubject(false);
|
|
91
|
+
this.showChatbot = (LibConstants.enableChatbot == 'true');
|
|
92
|
+
this.renderer = rendererFactory.createRenderer(null, null);
|
|
93
|
+
this.logger.info('ChatbotService initializzed successfully.');
|
|
94
|
+
this.map.set("ms", this.msCustomData);
|
|
95
|
+
this.map.set("me", this.meCustomData);
|
|
96
|
+
this.map.set("ct", this.ctCustomData);
|
|
97
|
+
this.getChatbotBs().subscribe(val => {
|
|
98
|
+
if (val) {
|
|
99
|
+
this.logger.info('Initializing Chatbot.');
|
|
100
|
+
this.initializeChatbot();
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
getChatbotBs() {
|
|
105
|
+
return this.initChatbot;
|
|
106
|
+
}
|
|
107
|
+
initialize() {
|
|
108
|
+
this.initChatbot.next(true);
|
|
109
|
+
}
|
|
110
|
+
loadScripAndStyle() {
|
|
111
|
+
if (!LibConstants.production && this.showChatbot) { //set this property to true if you want to test this in local env.
|
|
112
|
+
this.logger.info('Not Loading Chatbot as current environment is not production. Set "production=true" and "showChatbot=true" if you want to test chatbot in local env.');
|
|
113
|
+
return;
|
|
114
|
+
;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.logger.info('Loading chatbot ...');
|
|
118
|
+
}
|
|
119
|
+
ScriptConstant.importUrls.forEach(scriptElement => {
|
|
120
|
+
// other than js and stylesheet are ignored
|
|
121
|
+
if (scriptElement.type === ScriptConstant.jsProperty) {
|
|
122
|
+
const jsScriptNode = document.createElement('script');
|
|
123
|
+
//// jsScriptNode.src = environment.koreAiWebSdkUrl + scriptElement.url;
|
|
124
|
+
jsScriptNode.src = LibConstants.koreAiWebSdkUrl + scriptElement.url;
|
|
125
|
+
jsScriptNode.type = 'text/javascript';
|
|
126
|
+
if (scriptElement.async == null) {
|
|
127
|
+
this.logger.info(jsScriptNode.src + " will be loaded as async because of null async value");
|
|
128
|
+
jsScriptNode.async = true;
|
|
129
|
+
}
|
|
130
|
+
else if (scriptElement.async == true) {
|
|
131
|
+
this.logger.info(scriptElement.url + " will be loaded as async because of null async true");
|
|
132
|
+
jsScriptNode.async = true;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.logger.info(scriptElement.url + " will be loaded as async=false");
|
|
136
|
+
jsScriptNode.async = false;
|
|
137
|
+
}
|
|
138
|
+
this.renderer.appendChild(document.getElementsByTagName('head')[0], jsScriptNode);
|
|
139
|
+
document.getElementsByTagName('head')[0].appendChild(jsScriptNode);
|
|
140
|
+
}
|
|
141
|
+
else if (scriptElement.type === ScriptConstant.cssProperty) {
|
|
142
|
+
const styleNode = document.createElement('link');
|
|
143
|
+
styleNode.rel = 'stylesheet';
|
|
144
|
+
styleNode.href = LibConstants.koreAiWebSdkUrl + scriptElement.url;
|
|
145
|
+
this.renderer.appendChild(document.getElementsByTagName('head')[0], styleNode);
|
|
146
|
+
}
|
|
147
|
+
else if (scriptElement.type === ScriptConstant.cssPropertyAbsolute) {
|
|
148
|
+
const styleNode = document.createElement('link');
|
|
149
|
+
styleNode.rel = 'stylesheet';
|
|
150
|
+
styleNode.href = scriptElement.url;
|
|
151
|
+
this.renderer.appendChild(document.getElementsByTagName('head')[0], styleNode);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
this.logger.error('url ' + scriptElement.url + ' is not going to be loaded because of invalid type ' + scriptElement.type);
|
|
155
|
+
}
|
|
156
|
+
}); // for each
|
|
157
|
+
}
|
|
158
|
+
initializeChatbot() {
|
|
159
|
+
this.openbot();
|
|
160
|
+
}
|
|
161
|
+
/***
|
|
162
|
+
*
|
|
163
|
+
* @description Initialize the chatbot with logged-in user. If user is not logged-in then bot session will be created using unique timestamp.
|
|
164
|
+
*/
|
|
165
|
+
openbot() {
|
|
166
|
+
let userId = null;
|
|
167
|
+
if (this.ls.getUser()) {
|
|
168
|
+
userId = this.ls.getUser().username + '_' + this.ls.getUser().userType;
|
|
169
|
+
this.botOptions.accessToken = this.ls.getUser().access_token;
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
userId = Math.floor((Math.random() * 10000000) + 1) + "_" + new Date().getMilliseconds() + "@mdes.ms.gov";
|
|
173
|
+
}
|
|
174
|
+
//***CODE_START
|
|
175
|
+
this.botOptions.logLevel = 'debug';
|
|
176
|
+
this.botOptions.koreAPIUrl = LibConstants.koreAiChatbotServer;
|
|
177
|
+
//botOptions.koreSpeechAPIUrl = "https://speech.kore.ai/";
|
|
178
|
+
//botOptions.bearer = "bearer xyz-------------------";
|
|
179
|
+
//botOptions.ttsSocketUrl = 'wss://speech.kore.ai/tts/ws';
|
|
180
|
+
this.botOptions.recorderWorkerPath = './libs/recorderWorker.js';
|
|
181
|
+
this.botOptions.assertionFn = (options, callback) => this.assertion(options, callback);
|
|
182
|
+
//botOptions.koreAnonymousFn = koreAnonymousFn;
|
|
183
|
+
this.botOptions.JWTUrl = LibConstants.koreAiJwtService;
|
|
184
|
+
this.botOptions.userIdentity = userId; // Provide users email id here
|
|
185
|
+
this.botOptions.botInfo = {
|
|
186
|
+
name: LibConstants.koreAiBotName,
|
|
187
|
+
"_id": LibConstants.koreAiBotId,
|
|
188
|
+
customData: this.map.get(this.util.getStateLowercase()) ? this.map.get(this.util.getStateLowercase()) : this.map.get('ms'),
|
|
189
|
+
// customData: { connectingMessage: "Welcome to ReEmployME. I am your virtual assistant to help you with ME related queries.", hoverMessage: "Ask Blue", botState: "ME", showCollectUserDetailForm: false, showDisclaimerPopUp: true, botIconImageName: "chatboticon.png", botAvatarImageName: "chatboticon.png", rootFilePath: "UI/", supportedLanguages: ["en", "es"], initialLanguage: "en", disclaimerPopup: { header: "Important Message", message: `The virtual assistant will need to ask for specific identifying information that is needed to answer you question(s) such as date of birth or Social Security number. The agency follows strict federal security guidelines to protect your sensitive information. To further protect your information, if you are on a public computer, please log out and close your browser when you are finished.`, }, headerConfig: { showLanguageToggle: true, showMinimizeButton: true, showExpandbutton: false, showReloadButton: true, } }
|
|
190
|
+
}; // bot name is case sensitive
|
|
191
|
+
this.botOptions.clientId = LibConstants.koreAiClientId;
|
|
192
|
+
//this.botOptions.clientSecret = LibConstants.koreAiClientSecret;
|
|
193
|
+
//this.botOptions.reemployUsBearerToken= "";
|
|
194
|
+
// will need to pass token to koreAiChatBotServer when authentication needs to be validated for server side api call
|
|
195
|
+
var chatConfig = {
|
|
196
|
+
botOptions: this.botOptions,
|
|
197
|
+
allowIframe: false,
|
|
198
|
+
isSendButton: true,
|
|
199
|
+
isTTSEnabled: false,
|
|
200
|
+
isSpeechEnabled: false,
|
|
201
|
+
allowGoogleSpeech: false,
|
|
202
|
+
allowLocation: false,
|
|
203
|
+
loadHistory: false,
|
|
204
|
+
messageHistoryLimit: 10,
|
|
205
|
+
autoEnableSpeechAndTTS: false,
|
|
206
|
+
graphLib: "d3"
|
|
207
|
+
};
|
|
208
|
+
if (Object.keys(this.koreBot).length === 0) {
|
|
209
|
+
this.koreBot = koreBotChat();
|
|
210
|
+
this.koreBot.show(chatConfig);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
this.koreBot.resumeChatWindow();
|
|
214
|
+
}
|
|
215
|
+
//***CODE_END
|
|
216
|
+
}
|
|
217
|
+
assertion(options, callback) {
|
|
218
|
+
var jsonData = {
|
|
219
|
+
"clientId": this.botOptions.clientId,
|
|
220
|
+
"clientSecret": this.botOptions.clientSecret,
|
|
221
|
+
"identity": options.userIdentity || this.botOptions.userIdentity,
|
|
222
|
+
"aud": "",
|
|
223
|
+
"isAnonymous": (this.ls.getUser() == null),
|
|
224
|
+
"accessToken": this.botOptions.accessToken
|
|
225
|
+
};
|
|
226
|
+
$.ajax({
|
|
227
|
+
url: this.botOptions.JWTUrl,
|
|
228
|
+
type: 'post',
|
|
229
|
+
data: jsonData,
|
|
230
|
+
dataType: 'json',
|
|
231
|
+
success: (data) => {
|
|
232
|
+
options.assertion = data.jwt;
|
|
233
|
+
options.handleError = this.koreBot.showError;
|
|
234
|
+
options.chatHistory = this.koreBot.chatHistory;
|
|
235
|
+
options.botDetails = this.koreBot.botDetails;
|
|
236
|
+
callback(null, options);
|
|
237
|
+
setTimeout(function () {
|
|
238
|
+
if (this.koreBot && this.koreBot.initToken) {
|
|
239
|
+
this.koreBot.initToken(options);
|
|
240
|
+
}
|
|
241
|
+
}, 2000);
|
|
242
|
+
},
|
|
243
|
+
error: (err) => {
|
|
244
|
+
this.koreBot.showError(err.responseText);
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
static { this.ɵfac = function ChatbotService_Factory(t) { return new (t || ChatbotService)(i0.ɵɵinject(i0.RendererFactory2), i0.ɵɵinject(i1.LoggerService), i0.ɵɵinject(i2.LoginService), i0.ɵɵinject(i3.UtilService)); }; }
|
|
249
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ChatbotService, factory: ChatbotService.ɵfac, providedIn: 'root' }); }
|
|
250
|
+
}
|
|
251
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChatbotService, [{
|
|
252
|
+
type: Injectable,
|
|
253
|
+
args: [{
|
|
254
|
+
providedIn: 'root'
|
|
255
|
+
}]
|
|
256
|
+
}], () => [{ type: i0.RendererFactory2 }, { type: i1.LoggerService }, { type: i2.LoginService }, { type: i3.UtilService }], null); })();
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdGJvdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9jaGF0Ym90L2NoYXRib3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUErQixNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBcUNoRCxNQUFNLE9BQU8sY0FBYztJQW1GekIsWUFBWSxlQUFpQyxFQUFVLE1BQXFCLEVBQVUsRUFBZ0IsRUFBVSxJQUFpQjtRQUExRSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYztRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFqRmpJLFFBQUcsR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV6QyxpQkFBWSxHQUFlO1lBQ3pCLGlCQUFpQixFQUFFLDJGQUEyRjtZQUM5RyxZQUFZLEVBQUUsY0FBYztZQUM1QixRQUFRLEVBQUUsSUFBSTtZQUNkLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGtCQUFrQixFQUFFLGdCQUFnQjtZQUNwQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMsY0FBYyxFQUFFLEVBQUU7WUFDbEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDMUIsZUFBZSxFQUFFLElBQUk7WUFDckIsNkRBQTZEO1lBQzdELGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixP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QUksRUFBRSxFQUFFO2dCQUNoQixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQzdDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQy9DLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQzdDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3hCLFVBQVUsQ0FBQztvQkFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7d0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNqQztnQkFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDWCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOytFQTNQVSxjQUFjO3VFQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07O2lGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTY3JpcHRDb25zdGFudCB9IGZyb20gJy4vc2NyaXB0LmNvbnN0JztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi91dGlsL3V0aWwuc2VydmljZSc7XG5cbmRlY2xhcmUgY29uc3Qga29yZUJvdENoYXQ6IGFueTtcbmRlY2xhcmUgY29uc3QgJDogYW55O1xuXG5pbnRlcmZhY2UgRGlzY2xhaW1lclBvcHVwIHtcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIG1lc3NhZ2U6IHN0cmluZ1xufVxuaW50ZXJmYWNlIEhlYWRlckNvbmZpZyB7XG4gIHNob3dMYW5ndWFnZVRvZ2dsZTogYm9vbGVhbjtcbiAgc2hvd01pbmltaXplQnV0dG9uOiBib29sZWFuO1xuICBzaG93RXhwYW5kQnV0dG9uOiBib29sZWFuO1xuICBzaG93UmVsb2FkQnV0dG9uOiBib29sZWFuO1xufVxuaW50ZXJmYWNlIEN1c3RvbURhdGEge1xuICBjb25uZWN0aW5nTWVzc2FnZTogc3RyaW5nO1xuICBob3Zlck1lc3NhZ2U6IHN0cmluZztcbiAgYm90U3RhdGU6IHN0cmluZztcbiAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogYm9vbGVhbjtcbiAgc2hvd0Rpc2NsYWltZXJQb3BVcDogYm9vbGVhbjtcbiAgc2hvd0NoYXRCdWJibGVBdENsb3NlZDogYm9vbGVhbjtcbiAgYm90QXZhdGFySW1hZ2VOYW1lOiBzdHJpbmc7XG4gIGJvdEljb25JbWFnZU5hbWU6IHN0cmluZztcbiAgZm9ybUJhbm5lclBhdGg6IHN0cmluZyxcbiAgcm9vdEZpbGVQYXRoOiBzdHJpbmc7XG4gIHN1cHBvcnRlZExhbmd1YWdlczogc3RyaW5nW107XG4gIGluaXRpYWxMYW5ndWFnZTogc3RyaW5nO1xuICBkaXNjbGFpbWVyUG9wdXA6IERpc2NsYWltZXJQb3B1cDtcbiAgaGVhZGVyQ29uZmlnOiBIZWFkZXJDb25maWc7XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENoYXRib3RTZXJ2aWNlIHtcblxuICBtYXA6IE1hcDxzdHJpbmcsIEN1c3RvbURhdGE+ID0gbmV3IE1hcCgpO1xuXG4gIG1zQ3VzdG9tRGF0YTogQ3VzdG9tRGF0YSA9IHtcbiAgICBjb25uZWN0aW5nTWVzc2FnZTogXCJXZWxjb21lIHRvIFJlRW1wbG95TVMuIEkgYW0geW91ciB2aXJ0dWFsIGFzc2lzdGFudCB0byBoZWxwIHlvdSB3aXRoIE1ERVMgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgY2hhdCBib3RcIixcbiAgICBib3RTdGF0ZTogXCJNU1wiLFxuICAgIHNob3dDb2xsZWN0VXNlckRldGFpbEZvcm06IHRydWUsXG4gICAgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSxcbiAgICBzaG93Q2hhdEJ1YmJsZUF0Q2xvc2VkOiBmYWxzZSxcbiAgICBib3RBdmF0YXJJbWFnZU5hbWU6IFwiQXZhdGFySWNvbi5wbmdcIixcbiAgICBib3RJY29uSW1hZ2VOYW1lOiBcIkF2YXRhckljb24ucG5nXCIsXG4gICAgZm9ybUJhbm5lclBhdGg6IFwiXCIsXG4gICAgcm9vdEZpbGVQYXRoOiBcIlVJL1wiLFxuICAgIHN1cHBvcnRlZExhbmd1YWdlczogW1wiZW5cIl0sXG4gICAgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsXG4gICAgLy8gc3RhcnRlclRhc2s6IHtlbjpcIkZvcmdvdCBQYXNzd29yZFwiLCBlczpcIkZvcmdvdCBQYXNzd29yZFwifSxcbiAgICBkaXNjbGFpbWVyUG9wdXA6IHtcbiAgICAgIGhlYWRlcjogXCJJbXBvcnRhbnQgbWVzc2FnZVwiLFxuICAgICAgbWVzc2FnZTogYE1ERVMnIHZpcnR1YWwgYXNzaXN0YW50IHdpbGwgYXNrIGZvciBzcGVjaWZpYyBpZGVudGlmeWluZyBpbmZvcm1hdGlvbiwgc3VjaCBhcyBTb2NpYWwgU2VjdXJpdHkgTnVtYmVyIGFuZCBEYXRlIG9mIEJpcnRoLCB0aGF0IGlzIG5lZWRlZCB0byBhbnN3ZXIgeW91ciBxdWVzdGlvbihzKS48L2JyPjwvYnI+IE1ERVMgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uPC9icj48L2JyPlRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uIHlvdSBzaG91bGQgY2xvc2UgdGhlIGNoYXQgd2luZG93IGFuZCBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC48L3A+YFxuICAgIH0sXG4gICAgaGVhZGVyQ29uZmlnOiB7XG4gICAgICBzaG93TGFuZ3VhZ2VUb2dnbGU6IGZhbHNlLFxuICAgICAgc2hvd01pbmltaXplQnV0dG9uOiBmYWxzZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogZmFsc2UsXG4gICAgfVxuICB9XG5cbiAgbWVDdXN0b21EYXRhOiBDdXN0b21EYXRhID0ge1xuICAgIGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lNRS4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgQmx1ZVwiLFxuICAgIGJvdFN0YXRlOiBcIk1FXCIsXG4gICAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogZmFsc2UsXG4gICAgc2hvd0Rpc2NsYWltZXJQb3BVcDogdHJ1ZSxcbiAgICBzaG93Q2hhdEJ1YmJsZUF0Q2xvc2VkOiBmYWxzZSxcbiAgICBib3RJY29uSW1hZ2VOYW1lOiBcIkJsdWVJY29uLnN2Z1wiLFxuICAgIGJvdEF2YXRhckltYWdlTmFtZTogXCJCbHVlSWNvbi5zdmdcIixcbiAgICBmb3JtQmFubmVyUGF0aDogXCJcIixcbiAgICByb290RmlsZVBhdGg6IFwiVUkvXCIsXG4gICAgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBbXCJlblwiXSxcbiAgICBpbml0aWFsTGFuZ3VhZ2U6IFwiZW5cIixcbiAgICBkaXNjbGFpbWVyUG9wdXA6IHtcbiAgICAgIGhlYWRlcjogXCJJbXBvcnRhbnQgbWVzc2FnZVwiLFxuICAgICAgbWVzc2FnZTogYE1FRE9MJ3MgdmlydHVhbCBhc3Npc3RhbnQgbWF5IGFzayB5b3Ugc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24sIHN1Y2ggYXMgU29jaWFsIFNlY3VyaXR5IE51bWJlciBhbmQgRGF0ZSBvZiBCaXJ0aCwgdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24ocykuIE1FIERPTCBmb2xsb3dzIHN0cmljdCBmZWRlcmFsIHNlY3VyaXR5IGd1aWRlbGluZXMgdG8gcHJvdGVjdCB5b3VyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi4gVG8gZnVydGhlciBwcm90ZWN0IHlvdXIgaW5mb3JtYXRpb24geW91IHNob3VsZCBjbG9zZSB0aGUgY2hhdCB3aW5kb3cgYW5kIGJyb3dzZXIgd2hlbiB5b3UgYXJlIGZpbmlzaGVkLmBcbiAgICB9LFxuICAgIGhlYWRlckNvbmZpZzoge1xuICAgICAgc2hvd0xhbmd1YWdlVG9nZ2xlOiBmYWxzZSxcbiAgICAgIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgY3RDdXN0b21EYXRhOiBDdXN0b21EYXRhID0ge1xuICAgIGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lDVC4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLFxuICAgIGhvdmVyTWVzc2FnZTogXCJBc2sgQmx1ZVwiLFxuICAgIGJvdFN0YXRlOiBcIkNUXCIsXG4gICAgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogdHJ1ZSxcbiAgICBzaG93RGlzY2xhaW1lclBvcFVwOiB0cnVlLFxuICAgIHNob3dDaGF0QnViYmxlQXRDbG9zZWQ6IGZhbHNlLFxuICAgIGJvdEljb25JbWFnZU5hbWU6IFwiY2hhdGJvdGljb24ucG5nXCIsXG4gICAgYm90QXZhdGFySW1hZ2VOYW1lOiBcImNoYXRib3RpY29uLnBuZ1wiLFxuICAgIGZvcm1CYW5uZXJQYXRoOiBcIlwiLFxuICAgIHJvb3RGaWxlUGF0aDogXCJVSS9cIixcbiAgICBzdXBwb3J0ZWRMYW5ndWFnZXM6IFtcImVuXCIsIFwiZXNcIl0sXG4gICAgaW5pdGlhbExhbmd1YWdlOiBcImVuXCIsXG4gICAgZGlzY2xhaW1lclBvcHVwOiB7XG4gICAgICBoZWFkZXI6IFwiSW1wb3J0YW50IG1lc3NhZ2VcIixcbiAgICAgIG1lc3NhZ2U6IGBUaGUgQ1RET0wgdmlydHVhbCBhc3Npc3RhbnQgd2lsbCBuZWVkIHRvIGFzayBmb3Igc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24gdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdXIgcXVlc3Rpb24ocykgc3VjaCBhcyBkYXRlIG9mIGJpcnRoIG9yIFNvY2lhbCBTZWN1cml0eSBudW1iZXIuIFRoZSBhZ2VuY3kgZm9sbG93cyBzdHJpY3QgZmVkZXJhbCBzZWN1cml0eSBndWlkZWxpbmVzIHRvIHByb3RlY3QgeW91ciBzZW5zaXRpdmUgaW5mb3JtYXRpb24uIFRvIGZ1cnRoZXIgcHJvdGVjdCB5b3VyIGluZm9ybWF0aW9uLCBpZiB5b3UgYXJlIG9uIGEgcHVibGljIGNvbXB1dGVyLCBwbGVhc2UgbG9nIG91dCBhbmQgY2xvc2UgeW91ciBicm93c2VyIHdoZW4geW91IGFyZSBmaW5pc2hlZC5gXG4gICAgfSxcbiAgICBoZWFkZXJDb25maWc6IHtcbiAgICAgIHNob3dMYW5ndWFnZVRvZ2dsZTogdHJ1ZSxcbiAgICAgIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSxcbiAgICAgIHNob3dFeHBhbmRCdXR0b246IGZhbHNlLFxuICAgICAgc2hvd1JlbG9hZEJ1dHRvbjogdHJ1ZSxcbiAgICB9XG4gIH1cbiAgcHVibGljIGJvdE9wdGlvbnM6IGFueSA9IHt9O1xuICBwdWJsaWMga29yZUJvdDogYW55ID0ge307XG4gIGluaXRDaGF0Ym90OiBCZWhhdmlvclN1YmplY3Q8Qm9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuICBwdWJsaWMgc2hvd0NoYXRib3Q6IGJvb2xlYW4gPSAoTGliQ29uc3RhbnRzLmVuYWJsZUNoYXRib3QgPT0gJ3RydWUnKTtcbiAgY29uc3RydWN0b3IocmVuZGVyZXJGYWN0b3J5OiBSZW5kZXJlckZhY3RvcnkyLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgcHJpdmF0ZSBsczogTG9naW5TZXJ2aWNlLCBwcml2YXRlIHV0aWw6IFV0aWxTZXJ2aWNlKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdDaGF0Ym90U2VydmljZSBpbml0aWFsaXp6ZWQgc3VjY2Vzc2Z1bGx5LicpO1xuXG4gICAgdGhpcy5tYXAuc2V0KFwibXNcIiwgdGhpcy5tc0N1c3RvbURhdGEpO1xuICAgIHRoaXMubWFwLnNldChcIm1lXCIsIHRoaXMubWVDdXN0b21EYXRhKTtcbiAgICB0aGlzLm1hcC5zZXQoXCJjdFwiLCB0aGlzLmN0Q3VzdG9tRGF0YSk7XG4gICAgdGhpcy5nZXRDaGF0Ym90QnMoKS5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbygnSW5pdGlhbGl6aW5nIENoYXRib3QuJyk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNoYXRib3QoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldENoYXRib3RCcygpIHtcbiAgICByZXR1cm4gdGhpcy5pbml0Q2hhdGJvdDtcbiAgfVxuXG4gIGluaXRpYWxpemUoKSB7XG4gICAgdGhpcy5pbml0Q2hhdGJvdC5uZXh0KHRydWUpO1xuICB9XG5cbiAgbG9hZFNjcmlwQW5kU3R5bGUoKSB7XG4gICAgaWYgKCFMaWJDb25zdGFudHMucHJvZHVjdGlvbiAmJiB0aGlzLnNob3dDaGF0Ym90KSB7IC8vc2V0IHRoaXMgcHJvcGVydHkgdG8gdHJ1ZSBpZiB5b3Ugd2FudCB0byB0ZXN0IHRoaXMgaW4gbG9jYWwgZW52LlxuICAgICAgdGhpcy5sb2dnZXIuaW5mbygnTm90IExvYWRpbmcgQ2hhdGJvdCBhcyBjdXJyZW50IGVudmlyb25tZW50IGlzIG5vdCBwcm9kdWN0aW9uLiBTZXQgXCJwcm9kdWN0aW9uPXRydWVcIiBhbmQgXCJzaG93Q2hhdGJvdD10cnVlXCIgaWYgeW91IHdhbnQgdG8gdGVzdCBjaGF0Ym90IGluIGxvY2FsIGVudi4nKTtcbiAgICAgIHJldHVybjs7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ0xvYWRpbmcgY2hhdGJvdCAuLi4nKTtcbiAgICB9XG5cbiAgICBTY3JpcHRDb25zdGFudC5pbXBvcnRVcmxzLmZvckVhY2goc2NyaXB0RWxlbWVudCA9PiB7XG4gICAgICAvLyBvdGhlciB0aGFuIGpzIGFuZCBzdHlsZXNoZWV0IGFyZSBpZ25vcmVkXG4gICAgICBpZiAoc2NyaXB0RWxlbWVudC50eXBlID09PSBTY3JpcHRDb25zdGFudC5qc1Byb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IGpzU2NyaXB0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICAvLy8vIGpzU2NyaXB0Tm9kZS5zcmMgPSBlbnZpcm9ubWVudC5rb3JlQWlXZWJTZGtVcmwgKyBzY3JpcHRFbGVtZW50LnVybDtcbiAgICAgICAganNTY3JpcHROb2RlLnNyYyA9IExpYkNvbnN0YW50cy5rb3JlQWlXZWJTZGtVcmwgKyBzY3JpcHRFbGVtZW50LnVybDtcblxuICAgICAgICBqc1NjcmlwdE5vZGUudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuXG4gICAgICAgIGlmIChzY3JpcHRFbGVtZW50LmFzeW5jID09IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKGpzU2NyaXB0Tm9kZS5zcmMgKyBcIiB3aWxsIGJlIGxvYWRlZCBhcyBhc3luYyBiZWNhdXNlIG9mIG51bGwgYXN5bmMgdmFsdWVcIik7XG4gICAgICAgICAganNTY3JpcHROb2RlLmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChzY3JpcHRFbGVtZW50LmFzeW5jID09IHRydWUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKHNjcmlwdEVsZW1lbnQudXJsICsgXCIgd2lsbCBiZSBsb2FkZWQgYXMgYXN5bmMgYmVjYXVzZSBvZiBudWxsIGFzeW5jIHRydWVcIik7XG5cbiAgICAgICAgICBqc1NjcmlwdE5vZGUuYXN5bmMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oc2NyaXB0RWxlbWVudC51cmwgKyBcIiB3aWxsIGJlIGxvYWRlZCBhcyBhc3luYz1mYWxzZVwiKTtcblxuICAgICAgICAgIGpzU2NyaXB0Tm9kZS5hc3luYyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSwganNTY3JpcHROb2RlKTtcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChqc1NjcmlwdE5vZGUpO1xuICAgICAgfSBlbHNlIGlmIChzY3JpcHRFbGVtZW50LnR5cGUgPT09IFNjcmlwdENvbnN0YW50LmNzc1Byb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IHN0eWxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgc3R5bGVOb2RlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgc3R5bGVOb2RlLmhyZWYgPSBMaWJDb25zdGFudHMua29yZUFpV2ViU2RrVXJsICsgc2NyaXB0RWxlbWVudC51cmw7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSwgc3R5bGVOb2RlKTtcbiAgICAgIH0gZWxzZSBpZiAoc2NyaXB0RWxlbWVudC50eXBlID09PSBTY3JpcHRDb25zdGFudC5jc3NQcm9wZXJ0eUFic29sdXRlKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgc3R5bGVOb2RlLnJlbCA9ICdzdHlsZXNoZWV0JztcbiAgICAgICAgc3R5bGVOb2RlLmhyZWYgPSBzY3JpcHRFbGVtZW50LnVybDtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLCBzdHlsZU5vZGUpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCd1cmwgJyArIHNjcmlwdEVsZW1lbnQudXJsICsgJyBpcyBub3QgZ29pbmcgdG8gYmUgbG9hZGVkIGJlY2F1c2Ugb2YgaW52YWxpZCB0eXBlICcgKyBzY3JpcHRFbGVtZW50LnR5cGUpO1xuICAgICAgfVxuICAgIH0pOyAvLyBmb3IgZWFjaFxuICB9XG5cblxuXG4gIHB1YmxpYyBpbml0aWFsaXplQ2hhdGJvdCgpIHtcbiAgICB0aGlzLm9wZW5ib3QoKTtcbiAgfVxuXG4gIC8qKipcbiAgICogXG4gICAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplIHRoZSBjaGF0Ym90IHdpdGggbG9nZ2VkLWluIHVzZXIuIElmIHVzZXIgaXMgbm90IGxvZ2dlZC1pbiB0aGVuIGJvdCBzZXNzaW9uIHdpbGwgYmUgY3JlYXRlZCB1c2luZyB1bmlxdWUgdGltZXN0YW1wLlxuICAgKi9cbiAgb3BlbmJvdCgpIHtcbiAgICBsZXQgdXNlcklkID0gbnVsbDtcbiAgICBpZiAodGhpcy5scy5nZXRVc2VyKCkpIHtcbiAgICAgIHVzZXJJZCA9IHRoaXMubHMuZ2V0VXNlcigpLnVzZXJuYW1lICsgJ18nICsgdGhpcy5scy5nZXRVc2VyKCkudXNlclR5cGU7XG4gICAgICB0aGlzLmJvdE9wdGlvbnMuYWNjZXNzVG9rZW4gPSB0aGlzLmxzLmdldFVzZXIoKS5hY2Nlc3NfdG9rZW47XG4gICAgfSBlbHNlIHtcbiAgICAgIHVzZXJJZCA9IE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkgKiAxMDAwMDAwMCkgKyAxKSArIFwiX1wiICsgbmV3IERhdGUoKS5nZXRNaWxsaXNlY29uZHMoKSArIFwiQG1kZXMubXMuZ292XCI7XG4gICAgfVxuICAgIC8vKioqQ09ERV9TVEFSVFxuICAgIHRoaXMuYm90T3B0aW9ucy5sb2dMZXZlbCA9ICdkZWJ1Zyc7XG4gICAgdGhpcy5ib3RPcHRpb25zLmtvcmVBUElVcmwgPSBMaWJDb25zdGFudHMua29yZUFpQ2hhdGJvdFNlcnZlcjtcbiAgICAvL2JvdE9wdGlvbnMua29yZVNwZWVjaEFQSVVybCA9IFwiaHR0cHM6Ly9zcGVlY2gua29yZS5haS9cIjtcbiAgICAvL2JvdE9wdGlvbnMuYmVhcmVyID0gXCJiZWFyZXIgeHl6LS0tLS0tLS0tLS0tLS0tLS0tLVwiO1xuICAgIC8vYm90T3B0aW9ucy50dHNTb2NrZXRVcmwgPSAnd3NzOi8vc3BlZWNoLmtvcmUuYWkvdHRzL3dzJztcbiAgICB0aGlzLmJvdE9wdGlvbnMucmVjb3JkZXJXb3JrZXJQYXRoID0gJy4vbGlicy9yZWNvcmRlcldvcmtlci5qcyc7XG4gICAgdGhpcy5ib3RPcHRpb25zLmFzc2VydGlvbkZuID0gKG9wdGlvbnMsIGNhbGxiYWNrKSA9PiB0aGlzLmFzc2VydGlvbihvcHRpb25zLCBjYWxsYmFjayk7XG4gICAgLy9ib3RPcHRpb25zLmtvcmVBbm9ueW1vdXNGbiA9IGtvcmVBbm9ueW1vdXNGbjtcblxuICAgIHRoaXMuYm90T3B0aW9ucy5KV1RVcmwgPSBMaWJDb25zdGFudHMua29yZUFpSnd0U2VydmljZTtcbiAgICBcbiAgICB0aGlzLmJvdE9wdGlvbnMudXNlcklkZW50aXR5ID0gdXNlcklkOy8vIFByb3ZpZGUgdXNlcnMgZW1haWwgaWQgaGVyZVxuICAgIHRoaXMuYm90T3B0aW9ucy5ib3RJbmZvID0ge1xuICAgICAgbmFtZTogTGliQ29uc3RhbnRzLmtvcmVBaUJvdE5hbWUsXG4gICAgICBcIl9pZFwiOiBMaWJDb25zdGFudHMua29yZUFpQm90SWQsXG4gICAgICBjdXN0b21EYXRhIDogdGhpcy5tYXAuZ2V0KHRoaXMudXRpbC5nZXRTdGF0ZUxvd2VyY2FzZSgpKSA/IHRoaXMubWFwLmdldCh0aGlzLnV0aWwuZ2V0U3RhdGVMb3dlcmNhc2UoKSkgOiB0aGlzLm1hcC5nZXQoJ21zJyksXG4gICAgICAvLyBjdXN0b21EYXRhOiB7IGNvbm5lY3RpbmdNZXNzYWdlOiBcIldlbGNvbWUgdG8gUmVFbXBsb3lNRS4gSSBhbSB5b3VyIHZpcnR1YWwgYXNzaXN0YW50IHRvIGhlbHAgeW91IHdpdGggTUUgcmVsYXRlZCBxdWVyaWVzLlwiLCBob3Zlck1lc3NhZ2U6IFwiQXNrIEJsdWVcIiwgYm90U3RhdGU6IFwiTUVcIiwgc2hvd0NvbGxlY3RVc2VyRGV0YWlsRm9ybTogZmFsc2UsIHNob3dEaXNjbGFpbWVyUG9wVXA6IHRydWUsIGJvdEljb25JbWFnZU5hbWU6IFwiY2hhdGJvdGljb24ucG5nXCIsIGJvdEF2YXRhckltYWdlTmFtZTogXCJjaGF0Ym90aWNvbi5wbmdcIiwgcm9vdEZpbGVQYXRoOiBcIlVJL1wiLCBzdXBwb3J0ZWRMYW5ndWFnZXM6IFtcImVuXCIsIFwiZXNcIl0sIGluaXRpYWxMYW5ndWFnZTogXCJlblwiLCBkaXNjbGFpbWVyUG9wdXA6IHsgaGVhZGVyOiBcIkltcG9ydGFudCBNZXNzYWdlXCIsIG1lc3NhZ2U6IGBUaGUgdmlydHVhbCBhc3Npc3RhbnQgd2lsbCBuZWVkIHRvIGFzayBmb3Igc3BlY2lmaWMgaWRlbnRpZnlpbmcgaW5mb3JtYXRpb24gdGhhdCBpcyBuZWVkZWQgdG8gYW5zd2VyIHlvdSBxdWVzdGlvbihzKSBzdWNoIGFzIGRhdGUgb2YgYmlydGggb3IgU29jaWFsIFNlY3VyaXR5IG51bWJlci4gVGhlIGFnZW5jeSBmb2xsb3dzIHN0cmljdCBmZWRlcmFsIHNlY3VyaXR5IGd1aWRlbGluZXMgdG8gcHJvdGVjdCB5b3VyIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbi4gVG8gZnVydGhlciBwcm90ZWN0IHlvdXIgaW5mb3JtYXRpb24sIGlmIHlvdSBhcmUgb24gYSBwdWJsaWMgY29tcHV0ZXIsIHBsZWFzZSBsb2cgb3V0IGFuZCBjbG9zZSB5b3VyIGJyb3dzZXIgd2hlbiB5b3UgYXJlIGZpbmlzaGVkLmAsIH0sIGhlYWRlckNvbmZpZzogeyBzaG93TGFuZ3VhZ2VUb2dnbGU6IHRydWUsIHNob3dNaW5pbWl6ZUJ1dHRvbjogdHJ1ZSwgc2hvd0V4cGFuZGJ1dHRvbjogZmFsc2UsIHNob3dSZWxvYWRCdXR0b246IHRydWUsIH0gfVxuICAgIH07IC8vIGJvdCBuYW1lIGlzIGNhc2Ugc2Vuc2l0aXZlXG4gICAgdGhpcy5ib3RPcHRpb25zLmNsaWVudElkID0gTGliQ29uc3RhbnRzLmtvcmVBaUNsaWVudElkO1xuICAgIC8vdGhpcy5ib3RPcHRpb25zLmNsaWVudFNlY3JldCA9IExpYkNvbnN0YW50cy5rb3JlQWlDbGllbnRTZWNyZXQ7XG5cbiAgICAvL3RoaXMuYm90T3B0aW9ucy5yZWVtcGxveVVzQmVhcmVyVG9rZW49IFwiXCI7ICBcbiAgICAvLyB3aWxsIG5lZWQgdG8gcGFzcyB0b2tlbiB0byBrb3JlQWlDaGF0Qm90U2VydmVyIHdoZW4gYXV0aGVudGljYXRpb24gbmVlZHMgdG8gYmUgdmFsaWRhdGVkIGZvciBzZXJ2ZXIgc2lkZSBhcGkgY2FsbFxuXG4gICAgdmFyIGNoYXRDb25maWcgPSB7XG4gICAgICBib3RPcHRpb25zOiB0aGlzLmJvdE9wdGlvbnMsXG4gICAgICBhbGxvd0lmcmFtZTogZmFsc2UsXG4gICAgICBpc1NlbmRCdXR0b246IHRydWUsXG4gICAgICBpc1RUU0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgaXNTcGVlY2hFbmFibGVkOiBmYWxzZSxcbiAgICAgIGFsbG93R29vZ2xlU3BlZWNoOiBmYWxzZSxcbiAgICAgIGFsbG93TG9jYXRpb246IGZhbHNlLFxuICAgICAgbG9hZEhpc3Rvcnk6IGZhbHNlLFxuICAgICAgbWVzc2FnZUhpc3RvcnlMaW1pdDogMTAsXG4gICAgICBhdXRvRW5hYmxlU3BlZWNoQW5kVFRTOiBmYWxzZSxcbiAgICAgIGdyYXBoTGliOiBcImQzXCJcbiAgICB9O1xuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLmtvcmVCb3QpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5rb3JlQm90ID0ga29yZUJvdENoYXQoKTtcbiAgICAgIHRoaXMua29yZUJvdC5zaG93KGNoYXRDb25maWcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmtvcmVCb3QucmVzdW1lQ2hhdFdpbmRvdygpXG4gICAgfVxuICAgIC8vKioqQ09ERV9FTkRcblxuICB9XG5cbiAgYXNzZXJ0aW9uKG9wdGlvbnMsIGNhbGxiYWNrKSB7XG4gICAgdmFyIGpzb25EYXRhID0ge1xuICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmJvdE9wdGlvbnMuY2xpZW50SWQsXG4gICAgICBcImNsaWVudFNlY3JldFwiOiB0aGlzLmJvdE9wdGlvbnMuY2xpZW50U2VjcmV0LFxuICAgICAgXCJpZGVudGl0eVwiOiBvcHRpb25zLnVzZXJJZGVudGl0eSB8fCB0aGlzLmJvdE9wdGlvbnMudXNlcklkZW50aXR5LFxuICAgICAgXCJhdWRcIjogXCJcIixcbiAgICAgIFwiaXNBbm9ueW1vdXNcIjogKHRoaXMubHMuZ2V0VXNlcigpID09IG51bGwpLFxuICAgICAgXCJhY2Nlc3NUb2tlblwiOiB0aGlzLmJvdE9wdGlvbnMuYWNjZXNzVG9rZW5cbiAgICB9O1xuICAgICQuYWpheCh7XG4gICAgICB1cmw6IHRoaXMuYm90T3B0aW9ucy5KV1RVcmwsXG4gICAgICB0eXBlOiAncG9zdCcsXG4gICAgICBkYXRhOiBqc29uRGF0YSxcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXG4gICAgICBzdWNjZXNzOiAoZGF0YSkgPT4ge1xuICAgICAgICBvcHRpb25zLmFzc2VydGlvbiA9IGRhdGEuand0O1xuICAgICAgICBvcHRpb25zLmhhbmRsZUVycm9yID0gdGhpcy5rb3JlQm90LnNob3dFcnJvcjtcbiAgICAgICAgb3B0aW9ucy5jaGF0SGlzdG9yeSA9IHRoaXMua29yZUJvdC5jaGF0SGlzdG9yeTtcbiAgICAgICAgb3B0aW9ucy5ib3REZXRhaWxzID0gdGhpcy5rb3JlQm90LmJvdERldGFpbHM7XG4gICAgICAgIGNhbGxiYWNrKG51bGwsIG9wdGlvbnMpO1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpZiAodGhpcy5rb3JlQm90ICYmIHRoaXMua29yZUJvdC5pbml0VG9rZW4pIHtcbiAgICAgICAgICAgIHRoaXMua29yZUJvdC5pbml0VG9rZW4ob3B0aW9ucyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAyMDAwKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICB0aGlzLmtvcmVCb3Quc2hvd0Vycm9yKGVyci5yZXNwb25zZVRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|