@reusa/ngx-reusa-app-lib 0.0.1373 → 0.0.1374
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/esm2022/lib/components/add-employer/add-employer.component.mjs +1324 -2394
- package/esm2022/lib/components/add-participant/add-participant.component.mjs +105 -159
- package/esm2022/lib/components/add-payment/add-payment.component.mjs +53 -59
- package/esm2022/lib/components/address/address.component.mjs +152 -287
- package/esm2022/lib/components/bank-details/bank-details.component.mjs +219 -79
- package/esm2022/lib/components/contact-us/contact-us.component.mjs +43 -17
- package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +9 -3
- package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +4 -32
- package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +15 -30
- package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
- package/esm2022/lib/components/email-update/email-update.component.mjs +140 -63
- package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +574 -422
- package/esm2022/lib/components/error/error.component.mjs +5 -22
- package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
- package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +49 -178
- package/esm2022/lib/components/footer/footer.component.mjs +101 -112
- package/esm2022/lib/components/header/header.component.mjs +174 -440
- package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +36 -25
- package/esm2022/lib/components/info/info.component.mjs +12 -4
- package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +22 -16
- package/esm2022/lib/components/job-title/job-title.component.mjs +97 -92
- package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +513 -143
- package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +402 -0
- package/esm2022/lib/components/link/link.component.mjs +1 -1
- package/esm2022/lib/components/menu/menu.component.mjs +100 -68
- package/esm2022/lib/components/mfa/mfa.component.mjs +288 -158
- package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +18 -11
- package/esm2022/lib/components/mfa2/mfa2.component.mjs +285 -0
- package/esm2022/lib/components/money-expect/money-expect.component.mjs +54 -158
- package/esm2022/lib/components/profile/profile.component.mjs +353 -749
- package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +38 -108
- package/esm2022/lib/components/questionnaire/AppValidators.mjs +47 -296
- package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +65 -110
- package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +173 -377
- package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +95 -76
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1153 -877
- package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +699 -208
- package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +22 -28
- package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +41 -128
- package/esm2022/lib/components/questionnaire/question-control.service.mjs +1 -2
- package/esm2022/lib/components/questionnaire/question.service.mjs +7 -5
- package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +29 -15
- package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +237 -497
- package/esm2022/lib/components/search-employer/search-employer.component.mjs +30 -155
- package/esm2022/lib/components/security-question/security-question.component.mjs +199 -0
- package/esm2022/lib/components/select/select.component.mjs +10 -5
- package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
- package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +72 -52
- package/esm2022/lib/components/user-login/user-login.component.mjs +360 -139
- package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +387 -655
- package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +61 -125
- package/esm2022/lib/guards/auth.guard.mjs +2 -50
- package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
- package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +3 -51
- package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
- package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
- package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
- package/esm2022/lib/models/LibConstants.mjs +6 -45
- package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
- package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
- package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
- package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
- package/esm2022/lib/models/UserModel.mjs +1 -1
- package/esm2022/lib/models/dashboard-model.mjs +1 -1
- package/esm2022/lib/models/dependent.model.mjs +1 -1
- package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -2
- package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/ComboModel.mjs +653 -96
- package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/QuestionnaireSaveModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
- package/esm2022/lib/ngx-reusa-app-lib.module.mjs +23 -135
- package/esm2022/lib/pages/BasePage.mjs +23 -4
- package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +18 -22
- package/esm2022/lib/pages/common/change-password/change-password.page.mjs +124 -142
- package/esm2022/lib/pages/common/landing/landing.component.mjs +8 -7
- package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
- package/esm2022/lib/pages/common/login/login.component.mjs +13 -7
- package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
- package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
- package/esm2022/lib/pages/popovers/language/language.page.mjs +2 -1
- package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
- package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +2 -7
- package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
- package/esm2022/lib/services/base-service.mjs +1 -4
- package/esm2022/lib/services/chatbot/chatbot.service.mjs +2 -1
- package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
- package/esm2022/lib/services/claimant-service/claimant.service.mjs +13 -7
- package/esm2022/lib/services/claims/claims.service.mjs +14 -105
- package/esm2022/lib/services/help/help.service.mjs +1 -1
- package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +60 -0
- package/esm2022/lib/services/logger/logger.service.mjs +1 -1
- package/esm2022/lib/services/login/login.service.mjs +14 -29
- package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
- package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +1 -4
- package/esm2022/lib/services/questionnaire/validation.service.mjs +1 -4
- package/esm2022/lib/services/security-service/security.service.mjs +6 -23
- package/esm2022/lib/services/util/util.service.mjs +5 -61
- package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +14 -186
- package/esm2022/lib/validations/AppRegex.mjs +3 -1
- package/esm2022/lib/validations/AppValidators.mjs +62 -78
- package/esm2022/public-api.mjs +5 -47
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs +26939 -44815
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
- package/lib/components/add-employer/add-employer.component.d.ts +53 -137
- package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
- package/lib/components/add-participant/add-participant.component.d.ts +5 -11
- package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
- package/lib/components/add-payment/add-payment.component.d.ts +3 -9
- package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
- package/lib/components/address/address.component.d.ts +15 -42
- package/lib/components/address/address.component.d.ts.map +1 -1
- package/lib/components/bank-details/bank-details.component.d.ts +23 -1
- package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
- package/lib/components/contact-us/contact-us.component.d.ts +4 -1
- package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
- package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
- package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
- package/lib/components/email-update/email-update.component.d.ts +12 -1
- package/lib/components/email-update/email-update.component.d.ts.map +1 -1
- package/lib/components/employer-grid/employer-grid.component.d.ts +15 -25
- package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
- package/lib/components/error/error.component.d.ts +2 -3
- package/lib/components/error/error.component.d.ts.map +1 -1
- package/lib/components/file-uploader/file-uploader.component.d.ts +1 -5
- package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
- package/lib/components/footer/footer.component.d.ts.map +1 -1
- package/lib/components/header/header.component.d.ts +5 -17
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +3 -1
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
- package/lib/components/job-title/job-title.component.d.ts +23 -22
- package/lib/components/job-title/job-title.component.d.ts.map +1 -1
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +6 -5
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
- package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +59 -0
- package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
- package/lib/components/menu/menu.component.d.ts +12 -3
- package/lib/components/menu/menu.component.d.ts.map +1 -1
- package/lib/components/mfa/mfa.component.d.ts +19 -7
- package/lib/components/mfa/mfa.component.d.ts.map +1 -1
- package/lib/components/mfa-popup/mfa-popup.component.d.ts +8 -6
- package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
- package/lib/components/mfa2/mfa2.component.d.ts +48 -0
- package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
- package/lib/components/money-expect/money-expect.component.d.ts +4 -15
- package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
- package/lib/components/profile/profile.component.d.ts +49 -82
- package/lib/components/profile/profile.component.d.ts.map +1 -1
- package/lib/components/profile-redirect/profile-redirect.component.d.ts +2 -9
- package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
- package/lib/components/questionnaire/AppValidators.d.ts +0 -1
- package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
- package/lib/components/questionnaire/account-success/account-success.page.d.ts +10 -13
- package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/common-success/common-success.page.d.ts +1 -7
- package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +1 -3
- package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts +35 -33
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form.component.d.ts +34 -10
- package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +7 -0
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +1 -7
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
- package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
- package/lib/components/questionnaire/question.service.d.ts +1 -0
- package/lib/components/questionnaire/question.service.d.ts.map +1 -1
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +7 -1
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +3 -11
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
- package/lib/components/search-employer/search-employer.component.d.ts +4 -5
- package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
- package/lib/components/security-question/security-question.component.d.ts +37 -0
- package/lib/components/security-question/security-question.component.d.ts.map +1 -0
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +5 -1
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
- package/lib/components/user-login/user-login.component.d.ts +38 -5
- package/lib/components/user-login/user-login.component.d.ts.map +1 -1
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +10 -27
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +3 -9
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
- package/lib/guards/auth.guard.d.ts.map +1 -1
- package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
- package/lib/models/EmployerDetailSearchResult.d.ts +1 -4
- package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
- package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
- package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
- package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
- package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
- package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
- package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
- package/lib/models/LexisNexisEnabledResponseModel.d.ts +5 -0
- package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +1 -0
- package/lib/models/LexisNexisResponseModel.d.ts +7 -0
- package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
- package/lib/models/LibConstants.d.ts +1 -40
- package/lib/models/LibConstants.d.ts.map +1 -1
- package/lib/models/OtpAuthModel.d.ts +1 -0
- package/lib/models/OtpAuthModel.d.ts.map +1 -1
- package/lib/models/PartialEmploymentModel.d.ts +6 -0
- package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
- package/lib/models/PaymentComponentModel.d.ts +1 -1
- package/lib/models/PaymentComponentModel.d.ts.map +1 -1
- package/lib/models/SecurityQuestionModel.d.ts +7 -0
- package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
- package/lib/models/UserModel.d.ts +1 -0
- package/lib/models/UserModel.d.ts.map +1 -1
- package/lib/models/dashboard-model.d.ts +0 -22
- package/lib/models/dashboard-model.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +0 -3
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +4 -15
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +1 -4
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ComboModel.d.ts +82 -14
- package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ElementsModel.d.ts +1 -0
- package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +0 -2
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
- package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +1 -0
- package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts.map +1 -1
- package/lib/models/questionnaire/StatusModel.d.ts +0 -1
- package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
- package/lib/ngx-reusa-app-lib.module.d.ts +86 -124
- package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
- package/lib/pages/BasePage.d.ts +6 -3
- package/lib/pages/BasePage.d.ts.map +1 -1
- package/lib/pages/common/change-password/change-password.page.d.ts +0 -3
- package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
- package/lib/pages/common/login/login.component.d.ts.map +1 -1
- package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
- package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
- package/lib/services/base-service.d.ts +0 -12
- package/lib/services/base-service.d.ts.map +1 -1
- package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
- package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
- package/lib/services/claimant-service/claimant.service.d.ts +6 -5
- package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
- package/lib/services/claims/claims.service.d.ts +5 -39
- package/lib/services/claims/claims.service.d.ts.map +1 -1
- package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +26 -0
- package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
- package/lib/services/login/login.service.d.ts +3 -5
- package/lib/services/login/login.service.d.ts.map +1 -1
- package/lib/services/ovp/ovp.service.d.ts +17 -0
- package/lib/services/ovp/ovp.service.d.ts.map +1 -0
- package/lib/services/questionnaire/questionnaire.service.d.ts +0 -1
- package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
- package/lib/services/questionnaire/validation.service.d.ts +0 -3
- package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
- package/lib/services/security-service/security.service.d.ts +4 -12
- package/lib/services/security-service/security.service.d.ts.map +1 -1
- package/lib/services/util/util.service.d.ts +0 -6
- package/lib/services/util/util.service.d.ts.map +1 -1
- package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +5 -47
- package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
- package/lib/validations/AppRegex.d.ts +2 -0
- package/lib/validations/AppRegex.d.ts.map +1 -1
- package/lib/validations/AppValidators.d.ts +24 -20
- package/lib/validations/AppValidators.d.ts.map +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +4 -46
- package/public-api.d.ts.map +1 -1
- package/esm2022/lib/components/add-wage/add-wage.component.mjs +0 -161
- package/esm2022/lib/components/address-popup/address-popup.component.mjs +0 -97
- package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +0 -289
- package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +0 -245
- package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +0 -203
- package/esm2022/lib/components/claim-info/claim-info.component.mjs +0 -408
- package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +0 -596
- package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +0 -356
- package/esm2022/lib/components/employer-info/employer-info.component.mjs +0 -319
- package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +0 -238
- package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +0 -302
- package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +0 -172
- package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +0 -201
- package/esm2022/lib/components/history-page/history-page.component.mjs +0 -571
- package/esm2022/lib/components/idme/idme.component.mjs +0 -84
- package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +0 -3661
- package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +0 -258
- package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +0 -853
- package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +0 -251
- package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +0 -261
- package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +0 -560
- package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +0 -25
- package/esm2022/lib/components/sms/sms.component.mjs +0 -336
- package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +0 -527
- package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +0 -274
- package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +0 -147
- package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +0 -167
- package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +0 -828
- package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +0 -129
- package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +0 -136
- package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +0 -72
- package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +0 -50
- package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +0 -92
- package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +0 -1190
- package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +0 -690
- package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +0 -524
- package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +0 -394
- package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +0 -640
- package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +0 -33
- package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +0 -9
- package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +0 -5
- package/esm2022/lib/models/ActiveClaimModel.mjs +0 -3
- package/esm2022/lib/models/CountyModel.mjs +0 -3
- package/esm2022/lib/models/DuaAppDataModel.mjs +0 -3
- package/esm2022/lib/models/DuaRequestModel.mjs +0 -3
- package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +0 -6
- package/esm2022/lib/models/EmployerInfoComponentModel.mjs +0 -4
- package/esm2022/lib/models/EmployerPayInfoModel.mjs +0 -6
- package/esm2022/lib/models/FarmUsageComponentModel.mjs +0 -2
- package/esm2022/lib/models/GrossEarningsModel.mjs +0 -3
- package/esm2022/lib/models/HelpConstants.mjs +0 -5
- package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +0 -3
- package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +0 -3
- package/esm2022/lib/models/RetroWeeksModel.mjs +0 -3
- package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +0 -3
- package/esm2022/lib/models/SendOtpRequestModel.mjs +0 -3
- package/esm2022/lib/models/VerifyOtpRequestModel.mjs +0 -3
- package/esm2022/lib/models/WageCalculatorModel.mjs +0 -3
- package/esm2022/lib/models/WageInfoModel.mjs +0 -4
- package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +0 -3
- package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +0 -3
- package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +0 -3
- package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +0 -3
- package/esm2022/lib/models/combo-model.mjs +0 -343
- package/esm2022/lib/models/fileupload/DocUploadModel.mjs +0 -7
- package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +0 -3
- package/esm2022/lib/models/fileupload/FileObject.mjs +0 -3
- package/esm2022/lib/models/fileupload/FileObjectArray.mjs +0 -7
- package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +0 -8
- package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +0 -3
- package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +0 -3
- package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +0 -3
- package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +0 -2
- package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +0 -7
- package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +0 -7
- package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +0 -6
- package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +0 -34
- package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +0 -15
- package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +0 -11
- package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +0 -101
- package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +0 -151
- package/esm2022/lib/services/appeal/appeal.service.mjs +0 -37
- package/esm2022/lib/services/birt-service/birt.service.mjs +0 -57
- package/esm2022/lib/services/employer/employer-service.mjs +0 -35
- package/esm2022/lib/services/event-service/event-service.mjs +0 -44
- package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +0 -327
- package/esm2022/lib/services/weekly-cert/review.service.mjs +0 -101
- package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +0 -37
- package/esm2022/lib/services/weekly-cert/work-search.service.mjs +0 -58
- package/lib/components/add-wage/add-wage.component.d.ts +0 -30
- package/lib/components/add-wage/add-wage.component.d.ts.map +0 -1
- package/lib/components/address-popup/address-popup.component.d.ts +0 -16
- package/lib/components/address-popup/address-popup.component.d.ts.map +0 -1
- package/lib/components/address-suggestion/address-suggestion.component.d.ts +0 -43
- package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +0 -1
- package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +0 -37
- package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +0 -1
- package/lib/components/associate-ssn/associate-ssn.component.d.ts +0 -33
- package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +0 -1
- package/lib/components/claim-info/claim-info.component.d.ts +0 -49
- package/lib/components/claim-info/claim-info.component.d.ts.map +0 -1
- package/lib/components/dua-request-page/dua-request-page.component.d.ts +0 -74
- package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +0 -1
- package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +0 -61
- package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +0 -1
- package/lib/components/employer-info/employer-info.component.d.ts +0 -50
- package/lib/components/employer-info/employer-info.component.d.ts.map +0 -1
- package/lib/components/employer-pay/employer-pay.component.d.ts +0 -51
- package/lib/components/employer-pay/employer-pay.component.d.ts.map +0 -1
- package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +0 -43
- package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +0 -1
- package/lib/components/farm-usage/farm-usage.component.d.ts +0 -33
- package/lib/components/farm-usage/farm-usage.component.d.ts.map +0 -1
- package/lib/components/gross-earnings/gross-earnings.component.d.ts +0 -42
- package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +0 -1
- package/lib/components/history-page/history-page.component.d.ts +0 -80
- package/lib/components/history-page/history-page.component.d.ts.map +0 -1
- package/lib/components/idme/idme.component.d.ts +0 -19
- package/lib/components/idme/idme.component.d.ts.map +0 -1
- package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +0 -311
- package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +0 -1
- package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +0 -33
- package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +0 -1
- package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +0 -97
- package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +0 -1
- package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +0 -33
- package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +0 -1
- package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +0 -54
- package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +0 -1
- package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +0 -74
- package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +0 -1
- package/lib/components/scrollable-text/scrollable-text.component.d.ts +0 -11
- package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +0 -1
- package/lib/components/sms/sms.component.d.ts +0 -63
- package/lib/components/sms/sms.component.d.ts.map +0 -1
- package/lib/components/wage-calculator/wage-calculator.component.d.ts +0 -44
- package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +0 -1
- package/lib/components/wage-grid/wage-grid.component.d.ts +0 -43
- package/lib/components/wage-grid/wage-grid.component.d.ts.map +0 -1
- package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +0 -28
- package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +0 -1
- package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +0 -28
- package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +0 -1
- package/lib/components/weekly-certification/weekly-certification.component.d.ts +0 -101
- package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +0 -1
- package/lib/components/weekly-confirmation/confirmation.component.d.ts +0 -21
- package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +0 -1
- package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +0 -34
- package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +0 -1
- package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +0 -17
- package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +0 -1
- package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +0 -10
- package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +0 -1
- package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +0 -17
- package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +0 -1
- package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +0 -105
- package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +0 -1
- package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +0 -71
- package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +0 -1
- package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +0 -59
- package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +0 -1
- package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +0 -47
- package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +0 -1
- package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +0 -78
- package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +0 -1
- package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +0 -8
- package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +0 -1
- package/lib/enums/AddressValidationResponseEnum.d.ts +0 -8
- package/lib/enums/AddressValidationResponseEnum.d.ts.map +0 -1
- package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +0 -4
- package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +0 -1
- package/lib/models/ActiveClaimModel.d.ts +0 -8
- package/lib/models/ActiveClaimModel.d.ts.map +0 -1
- package/lib/models/CountyModel.d.ts +0 -8
- package/lib/models/CountyModel.d.ts.map +0 -1
- package/lib/models/DuaAppDataModel.d.ts +0 -5
- package/lib/models/DuaAppDataModel.d.ts.map +0 -1
- package/lib/models/DuaRequestModel.d.ts +0 -10
- package/lib/models/DuaRequestModel.d.ts.map +0 -1
- package/lib/models/DuaRetroWeeksComponentModel.d.ts +0 -5
- package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +0 -1
- package/lib/models/EmployerInfoComponentModel.d.ts +0 -9
- package/lib/models/EmployerInfoComponentModel.d.ts.map +0 -1
- package/lib/models/EmployerPayInfoModel.d.ts +0 -20
- package/lib/models/EmployerPayInfoModel.d.ts.map +0 -1
- package/lib/models/FarmUsageComponentModel.d.ts +0 -10
- package/lib/models/FarmUsageComponentModel.d.ts.map +0 -1
- package/lib/models/GrossEarningsModel.d.ts +0 -6
- package/lib/models/GrossEarningsModel.d.ts.map +0 -1
- package/lib/models/HelpConstants.d.ts +0 -5
- package/lib/models/HelpConstants.d.ts.map +0 -1
- package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +0 -7
- package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +0 -1
- package/lib/models/ReasonSeparationRequestModel.d.ts +0 -7
- package/lib/models/ReasonSeparationRequestModel.d.ts.map +0 -1
- package/lib/models/RetroWeeksModel.d.ts +0 -11
- package/lib/models/RetroWeeksModel.d.ts.map +0 -1
- package/lib/models/SecurityQuestionAnswerModel.d.ts +0 -7
- package/lib/models/SecurityQuestionAnswerModel.d.ts.map +0 -1
- package/lib/models/SendOtpRequestModel.d.ts +0 -12
- package/lib/models/SendOtpRequestModel.d.ts.map +0 -1
- package/lib/models/VerifyOtpRequestModel.d.ts +0 -8
- package/lib/models/VerifyOtpRequestModel.d.ts.map +0 -1
- package/lib/models/WageCalculatorModel.d.ts +0 -15
- package/lib/models/WageCalculatorModel.d.ts.map +0 -1
- package/lib/models/WageInfoModel.d.ts +0 -9
- package/lib/models/WageInfoModel.d.ts.map +0 -1
- package/lib/models/addressValidation/AddressRecommendationModel.d.ts +0 -12
- package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +0 -1
- package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +0 -11
- package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +0 -1
- package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +0 -6
- package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +0 -1
- package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +0 -16
- package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +0 -1
- package/lib/models/combo-model.d.ts +0 -42
- package/lib/models/combo-model.d.ts.map +0 -1
- package/lib/models/fileupload/DocUploadModel.d.ts +0 -22
- package/lib/models/fileupload/DocUploadModel.d.ts.map +0 -1
- package/lib/models/fileupload/EmployerDataModel.d.ts +0 -6
- package/lib/models/fileupload/EmployerDataModel.d.ts.map +0 -1
- package/lib/models/fileupload/FileObject.d.ts +0 -8
- package/lib/models/fileupload/FileObject.d.ts.map +0 -1
- package/lib/models/fileupload/FileObjectArray.d.ts +0 -8
- package/lib/models/fileupload/FileObjectArray.d.ts.map +0 -1
- package/lib/models/questionnaire/AppealParticipantModel.d.ts +0 -17
- package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +0 -1
- package/lib/models/questionnaire/ScrollableTextModel.d.ts +0 -4
- package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +0 -1
- package/lib/models/questionnaire/WbaHelperTextModel.d.ts +0 -4
- package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +0 -1
- package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +0 -9
- package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +0 -1
- package/lib/models/weekly-cert/address-detail-model.d.ts +0 -14
- package/lib/models/weekly-cert/address-detail-model.d.ts.map +0 -1
- package/lib/models/weekly-cert/admin-leave-details-model.d.ts +0 -15
- package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +0 -1
- package/lib/models/weekly-cert/employer-info-v2-model.d.ts +0 -27
- package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +0 -1
- package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +0 -57
- package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +0 -1
- package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +0 -59
- package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +0 -1
- package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +0 -66
- package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +0 -1
- package/lib/models/weekly-cert/work-search-v2-model.d.ts +0 -18
- package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +0 -1
- package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +0 -14
- package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +0 -1
- package/lib/services/address-validation-service/address-validation.service.d.ts +0 -44
- package/lib/services/address-validation-service/address-validation.service.d.ts.map +0 -1
- package/lib/services/appeal/appeal.service.d.ts +0 -16
- package/lib/services/appeal/appeal.service.d.ts.map +0 -1
- package/lib/services/birt-service/birt.service.d.ts +0 -17
- package/lib/services/birt-service/birt.service.d.ts.map +0 -1
- package/lib/services/employer/employer-service.d.ts +0 -16
- package/lib/services/employer/employer-service.d.ts.map +0 -1
- package/lib/services/event-service/event-service.d.ts +0 -20
- package/lib/services/event-service/event-service.d.ts.map +0 -1
- package/lib/services/offline-claims/offline-claims.service.d.ts +0 -64
- package/lib/services/offline-claims/offline-claims.service.d.ts.map +0 -1
- package/lib/services/weekly-cert/review.service.d.ts +0 -23
- package/lib/services/weekly-cert/review.service.d.ts.map +0 -1
- package/lib/services/weekly-cert/weekly-cert.service.d.ts +0 -17
- package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +0 -1
- package/lib/services/weekly-cert/work-search.service.d.ts +0 -26
- package/lib/services/weekly-cert/work-search.service.d.ts.map +0 -1
|
@@ -11,6 +11,18 @@ import * as i3 from "../../services/cmp-service/cmp.service";
|
|
|
11
11
|
import * as i4 from "../../services/security-service/security.service";
|
|
12
12
|
import * as i5 from "../../services/util/util.service";
|
|
13
13
|
import * as i6 from "../../services/logger/logger.service";
|
|
14
|
+
import * as i7 from "@ngx-translate/core";
|
|
15
|
+
import * as i8 from "@ionic/angular";
|
|
16
|
+
import * as i9 from "@angular/common";
|
|
17
|
+
import * as i10 from "primeng/inputtext";
|
|
18
|
+
import * as i11 from "primeng/inputmask";
|
|
19
|
+
import * as i12 from "primeng/selectbutton";
|
|
20
|
+
import * as i13 from "primeng/inputnumber";
|
|
21
|
+
import * as i14 from "primeng/inputtextarea";
|
|
22
|
+
import * as i15 from "primeng/dropdown";
|
|
23
|
+
import * as i16 from "../error/error.component";
|
|
24
|
+
import * as i17 from "../captcha/captcha.component";
|
|
25
|
+
import * as i18 from "../address/address.component";
|
|
14
26
|
const _c0 = ["contactFormDirective"];
|
|
15
27
|
function ContactUsComponent_h1_0_Template(rf, ctx) { if (rf & 1) {
|
|
16
28
|
i0.ɵɵelementStart(0, "h1", 4);
|
|
@@ -61,11 +73,13 @@ function ContactUsComponent_div_1_div_27_Template(rf, ctx) { if (rf & 1) {
|
|
|
61
73
|
i0.ɵɵpipe(3, "translate");
|
|
62
74
|
i0.ɵɵelementEnd();
|
|
63
75
|
i0.ɵɵelement(4, "br")(5, "p-inputNumber", 36);
|
|
76
|
+
i0.ɵɵpipe(6, "translate");
|
|
64
77
|
i0.ɵɵelementEnd();
|
|
65
78
|
} if (rf & 2) {
|
|
66
79
|
i0.ɵɵadvance(2);
|
|
67
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3,
|
|
80
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, "contact.us.claimantID"));
|
|
68
81
|
i0.ɵɵadvance(3);
|
|
82
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(6, 5, "common.optional"));
|
|
69
83
|
i0.ɵɵproperty("useGrouping", false);
|
|
70
84
|
} }
|
|
71
85
|
function ContactUsComponent_div_1_div_28_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -222,7 +236,7 @@ function ContactUsComponent_div_1_div_64_Template(rf, ctx) { if (rf & 1) {
|
|
|
222
236
|
i0.ɵɵtext(2);
|
|
223
237
|
i0.ɵɵpipe(3, "translate");
|
|
224
238
|
i0.ɵɵelementEnd();
|
|
225
|
-
i0.ɵɵelement(4, "br")(5, "
|
|
239
|
+
i0.ɵɵelement(4, "br")(5, "p-dropdown", 51)(6, "app-error", 13);
|
|
226
240
|
i0.ɵɵelementEnd();
|
|
227
241
|
} if (rf & 2) {
|
|
228
242
|
i0.ɵɵnextContext();
|
|
@@ -269,7 +283,7 @@ function ContactUsComponent_div_1_div_66_Template(rf, ctx) { if (rf & 1) {
|
|
|
269
283
|
i0.ɵɵadvance(3);
|
|
270
284
|
i0.ɵɵproperty("options", ctx_r18.allCloseReasons)("autoDisplayFirst", false);
|
|
271
285
|
} }
|
|
272
|
-
const _c2 =
|
|
286
|
+
const _c2 = a1 => ({ required: "required", email: a1 });
|
|
273
287
|
function ContactUsComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
274
288
|
const _r35 = i0.ɵɵgetCurrentView();
|
|
275
289
|
i0.ɵɵelementStart(0, "div")(1, "span", 5);
|
|
@@ -298,7 +312,7 @@ function ContactUsComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
298
312
|
i0.ɵɵelementEnd();
|
|
299
313
|
i0.ɵɵelement(23, "br")(24, "input", 18)(25, "app-error", 13);
|
|
300
314
|
i0.ɵɵelementEnd();
|
|
301
|
-
i0.ɵɵtemplate(26, ContactUsComponent_div_1_div_26_Template, 7, 10, "div", 19)(27, ContactUsComponent_div_1_div_27_Template,
|
|
315
|
+
i0.ɵɵtemplate(26, ContactUsComponent_div_1_div_26_Template, 7, 10, "div", 19)(27, ContactUsComponent_div_1_div_27_Template, 7, 7, "div", 19)(28, ContactUsComponent_div_1_div_28_Template, 7, 10, "div", 20)(29, ContactUsComponent_div_1_div_29_Template, 7, 10, "div", 20)(30, ContactUsComponent_div_1_div_30_Template, 7, 11, "div", 21);
|
|
302
316
|
i0.ɵɵelementStart(31, "div", 10)(32, "label", 22);
|
|
303
317
|
i0.ɵɵtext(33);
|
|
304
318
|
i0.ɵɵpipe(34, "translate");
|
|
@@ -376,7 +390,7 @@ function ContactUsComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
376
390
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(45, 59, "contact.us.email"));
|
|
377
391
|
i0.ɵɵadvance(3);
|
|
378
392
|
i0.ɵɵclassMap("app-grid");
|
|
379
|
-
i0.ɵɵproperty("field", ctx_r1.email)("form", _r6)("errDef", i0.ɵɵ
|
|
393
|
+
i0.ɵɵproperty("field", ctx_r1.email)("form", _r6)("errDef", i0.ɵɵpureFunction1(69, _c2, ctx_r1.validEmail));
|
|
380
394
|
i0.ɵɵadvance(3);
|
|
381
395
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(51, 61, "contact.us.phone"));
|
|
382
396
|
i0.ɵɵadvance(5);
|
|
@@ -445,24 +459,33 @@ function ContactUsComponent_ion_button_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
445
459
|
const _r40 = i0.ɵɵgetCurrentView();
|
|
446
460
|
i0.ɵɵelementStart(0, "ion-button", 61);
|
|
447
461
|
i0.ɵɵlistener("click", function ContactUsComponent_ion_button_4_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r40); const ctx_r39 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r39.submitContactUs(ctx_r39.contactUsForm)); });
|
|
448
|
-
i0.ɵɵtext(1
|
|
462
|
+
i0.ɵɵtext(1);
|
|
463
|
+
i0.ɵɵpipe(2, "translate");
|
|
449
464
|
i0.ɵɵelementEnd();
|
|
465
|
+
} if (rf & 2) {
|
|
466
|
+
i0.ɵɵadvance(1);
|
|
467
|
+
i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(2, 1, "common.submit"), " ");
|
|
450
468
|
} }
|
|
451
469
|
function ContactUsComponent_ion_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
452
470
|
const _r42 = i0.ɵɵgetCurrentView();
|
|
453
471
|
i0.ɵɵelementStart(0, "ion-button", 61);
|
|
454
472
|
i0.ɵɵlistener("click", function ContactUsComponent_ion_button_5_Template_ion_button_click_0_listener($event) { i0.ɵɵrestoreView(_r42); const ctx_r41 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r41.emitHide($event)); });
|
|
455
|
-
i0.ɵɵtext(1
|
|
473
|
+
i0.ɵɵtext(1);
|
|
474
|
+
i0.ɵɵpipe(2, "translate");
|
|
456
475
|
i0.ɵɵelementEnd();
|
|
476
|
+
} if (rf & 2) {
|
|
477
|
+
i0.ɵɵadvance(1);
|
|
478
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "common.close"), " ");
|
|
457
479
|
} }
|
|
458
480
|
export class ContactUsComponent {
|
|
459
|
-
constructor(formBuilder, caseService, cmpService, securityService, util, loggerService) {
|
|
481
|
+
constructor(formBuilder, caseService, cmpService, securityService, util, loggerService, translateService) {
|
|
460
482
|
this.formBuilder = formBuilder;
|
|
461
483
|
this.caseService = caseService;
|
|
462
484
|
this.cmpService = cmpService;
|
|
463
485
|
this.securityService = securityService;
|
|
464
486
|
this.util = util;
|
|
465
487
|
this.loggerService = loggerService;
|
|
488
|
+
this.translateService = translateService;
|
|
466
489
|
this.allRoles = [];
|
|
467
490
|
this.usersFLname = [];
|
|
468
491
|
this.isCsr = false;
|
|
@@ -900,7 +923,10 @@ export class ContactUsComponent {
|
|
|
900
923
|
get generatedThrough() {
|
|
901
924
|
return this.contactUsForm.controls['generatedThrough'];
|
|
902
925
|
}
|
|
903
|
-
|
|
926
|
+
get validEmail() {
|
|
927
|
+
return this.translateService.instant('common.captcha.required');
|
|
928
|
+
}
|
|
929
|
+
static { this.ɵfac = function ContactUsComponent_Factory(t) { return new (t || ContactUsComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.CaseService), i0.ɵɵdirectiveInject(i3.CmpService), i0.ɵɵdirectiveInject(i4.SecurityService), i0.ɵɵdirectiveInject(i5.UtilService), i0.ɵɵdirectiveInject(i6.LoggerService), i0.ɵɵdirectiveInject(i7.TranslateService)); }; }
|
|
904
930
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContactUsComponent, selectors: [["app-contact-us"]], viewQuery: function ContactUsComponent_Query(rf, ctx) { if (rf & 1) {
|
|
905
931
|
i0.ɵɵviewQuery(_c0, 5);
|
|
906
932
|
} if (rf & 2) {
|
|
@@ -910,10 +936,10 @@ export class ContactUsComponent {
|
|
|
910
936
|
provide: NG_VALUE_ACCESSOR,
|
|
911
937
|
useExisting: ContactUsComponent,
|
|
912
938
|
multi: true
|
|
913
|
-
}])], decls: 6, vars: 5, consts: [["class", "contactUsPageTitle", 4, "ngIf"], [4, "ngIf"], [1, "field", "col-12", "ion-text-right"], ["shape", "round", "type", "submit", "color", "primary", 3, "click", 4, "ngIf"], [1, "contactUsPageTitle"], [2, "font-family", "var(--app-font-light)"], ["class", "contactUsPageHeader", 4, "ngIf"], [3, "formGroup", "ngSubmit"], ["contactFormDirective", "ngForm"], [1, "p-fluid", "grid"], [1, "field", "col-12"], ["for", "type"], ["formControlName", "userType", "optionLabel", "text", "optionValue", "value", 3, "options", "onOptionClick"], [3, "field", "form", "errDef"], [1, "field", "col-12", "md:col-6"], ["for", "firstName"], ["type", "text", "pInputText", "", "formControlName", "firstName", "maxlength", "30"], ["for", "lastName"], ["type", "text", "pInputText", "", "formControlName", "lastName", "maxlength", "30"], ["class", "field col-6", 4, "ngIf"], ["class", "field col-12 md:col-6", 4, "ngIf"], ["class", "field col-12", 4, "ngIf"], ["for", "issue"], ["pInputTextarea", "", "formControlName", "issue", "maxlength", "500"], ["for", "email"], ["type", "text", "pInputText", "", "formControlName", "email", "maxlength", "100"], ["for", "phone"], ["mask", "(999) 999-9999", "formControlName", "phone", "placeholder", "(999) 999-9999", "unmask", "true"], ["for", "altPhone"], ["mask", "(999) 999-9999", "formControlName", "altPhone", "placeholder", "(999) 999-9999", "unmask", "true"], ["formControlName", "address", 3, "fromPopup"], [1, "contactUsPageHeader"], [1, "field", "col-6"], ["for", "ssn"], ["mask", "9999", "formControlName", "ssn", 3, "type", "onFocus", "onBlur"], ["for", "claimantId"], ["formControlName", "claimantId", "mode", "decimal", "inputId", "claimantId", "
|
|
914
|
-
i0.ɵɵtemplate(0, ContactUsComponent_h1_0_Template, 3, 3, "h1", 0)(1, ContactUsComponent_div_1_Template, 67,
|
|
939
|
+
}])], decls: 6, vars: 5, consts: [["class", "contactUsPageTitle", 4, "ngIf"], [4, "ngIf"], [1, "field", "col-12", "ion-text-right"], ["shape", "round", "type", "submit", "color", "primary", 3, "click", 4, "ngIf"], [1, "contactUsPageTitle"], [2, "font-family", "var(--app-font-light)"], ["class", "contactUsPageHeader", 4, "ngIf"], [3, "formGroup", "ngSubmit"], ["contactFormDirective", "ngForm"], [1, "p-fluid", "grid"], [1, "field", "col-12"], ["for", "type"], ["formControlName", "userType", "optionLabel", "text", "optionValue", "value", 3, "options", "onOptionClick"], [3, "field", "form", "errDef"], [1, "field", "col-12", "md:col-6"], ["for", "firstName"], ["type", "text", "pInputText", "", "formControlName", "firstName", "maxlength", "30"], ["for", "lastName"], ["type", "text", "pInputText", "", "formControlName", "lastName", "maxlength", "30"], ["class", "field col-6", 4, "ngIf"], ["class", "field col-12 md:col-6", 4, "ngIf"], ["class", "field col-12", 4, "ngIf"], ["for", "issue"], ["pInputTextarea", "", "formControlName", "issue", "maxlength", "500"], ["for", "email"], ["type", "text", "pInputText", "", "formControlName", "email", "maxlength", "100"], ["for", "phone"], ["mask", "(999) 999-9999", "formControlName", "phone", "placeholder", "(999) 999-9999", "unmask", "true"], ["for", "altPhone"], ["mask", "(999) 999-9999", "formControlName", "altPhone", "placeholder", "(999) 999-9999", "unmask", "true"], ["formControlName", "address", 3, "fromPopup"], [1, "contactUsPageHeader"], [1, "field", "col-6"], ["for", "ssn"], ["mask", "9999", "formControlName", "ssn", 3, "type", "onFocus", "onBlur"], ["for", "claimantId"], ["formControlName", "claimantId", "mode", "decimal", "inputId", "claimantId", "maxlength", "8", 3, "useGrouping", "placeholder"], ["for", "ean"], ["mask", "9999999999", "formControlName", "ean", 3, "type", "onFocus", "onBlur"], ["for", "fein"], ["mask", "999999999", "formControlName", "fein", 3, "type", "onFocus", "onBlur"], ["for", "selectedReason"], ["formControlName", "selectedReason", "placeholder", "Select category", "optionLabel", "description", "appendTo", "body", 1, "queryCategory", 3, "options", "autoDisplayFirst"], ["formControlName", "captcha"], ["for", "division"], ["formControlName", "division", "placeholder", "Select Department", "optionLabel", "value", "appendTo", "body", 1, "roleName", 3, "options", "autoDisplayFirst", "onChange"], ["for", "unit"], ["formControlName", "unit", "placeholder", "Select Unit", "optionLabel", "value", "appendTo", "body", 1, "roleName", 3, "options", "autoDisplayFirst", "onChange"], ["for", "generalAssignment"], ["formControlName", "generalAssignment", "placeholder", "Select Assignment", "optionLabel", "value", "appendTo", "body", 3, "options", "autoDisplayFirst", "onChange"], ["for", "assignCaseTo"], ["formControlName", "assignCaseTo", "placeholder", "Assign Case To", "optionLabel", "text", "appendTo", "body", 3, "options", "autoDisplayFirst"], ["for", "generatedThrough"], ["formControlName", "generatedThrough", "placeholder", "Message generated through", "optionLabel", "description", "appendTo", "body", 3, "options", "autoDisplayFirst"], ["for", "closeCaseReason"], ["formControlName", "closeCaseReason", "placeholder", "Select Reason", "optionLabel", "description", "appendTo", "body", "showClear", "true", 1, "queryCategory", 3, "options", "autoDisplayFirst"], [1, "ion-text-left", "text-lg", 2, "font-family", "var(--app-font-light)"], [2, "font-weight", "bold", "color", "var(--ion-color-primary)"], [1, "ion-text-center"], ["name", "checkmark-circle", 1, "zoomin", "animation-duration-1000", 2, "font-size", "80px", "color", "var(--ion-color-green)"], [1, "ion-text-left", "text-lg", "contactUsPageHeader"], ["shape", "round", "type", "submit", "color", "primary", 3, "click"]], template: function ContactUsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
940
|
+
i0.ɵɵtemplate(0, ContactUsComponent_h1_0_Template, 3, 3, "h1", 0)(1, ContactUsComponent_div_1_Template, 67, 71, "div", 1)(2, ContactUsComponent_div_2_Template, 3, 2, "div", 1);
|
|
915
941
|
i0.ɵɵelementStart(3, "div", 2);
|
|
916
|
-
i0.ɵɵtemplate(4, ContactUsComponent_ion_button_4_Template,
|
|
942
|
+
i0.ɵɵtemplate(4, ContactUsComponent_ion_button_4_Template, 3, 3, "ion-button", 3)(5, ContactUsComponent_ion_button_5_Template, 3, 3, "ion-button", 3);
|
|
917
943
|
i0.ɵɵelementEnd();
|
|
918
944
|
} if (rf & 2) {
|
|
919
945
|
i0.ɵɵproperty("ngIf", ctx.isNewCase);
|
|
@@ -925,7 +951,7 @@ export class ContactUsComponent {
|
|
|
925
951
|
i0.ɵɵproperty("ngIf", !ctx.showSuccess && !ctx.isCsr);
|
|
926
952
|
i0.ɵɵadvance(1);
|
|
927
953
|
i0.ɵɵproperty("ngIf", !ctx.isCsr);
|
|
928
|
-
} }, styles: ["ion-col[_ngcontent-%COMP%]{padding-left:0}div[_ngcontent-%COMP%]{margin-bottom:0!important}.error[_ngcontent-%COMP%]{color:var(--ion-color-danger)}[_nghost-%COMP%] .p-fluid .p-dropdown .p-dropdown-label{white-space:wrap!important}.contactUsPageTitle[_ngcontent-%COMP%]{color:#000;margin-top:0}.contactUsPageHeader[_ngcontent-%COMP%]{font-weight:500;color:#000}"] }); }
|
|
954
|
+
} }, dependencies: [i8.IonButton, i8.IonCol, i8.IonIcon, i8.IonRow, i9.NgIf, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.MaxLengthValidator, i1.FormGroupDirective, i1.FormControlName, i10.InputText, i11.InputMask, i12.SelectButton, i13.InputNumber, i14.InputTextarea, i15.Dropdown, i16.ErrorComponent, i17.CaptchaComponent, i18.AddressComponent, i7.TranslatePipe], styles: ["ion-col[_ngcontent-%COMP%]{padding-left:0}div[_ngcontent-%COMP%]{margin-bottom:0!important}.error[_ngcontent-%COMP%]{color:var(--ion-color-danger)}[_nghost-%COMP%] .p-fluid .p-dropdown .p-dropdown-label{white-space:wrap!important}.contactUsPageTitle[_ngcontent-%COMP%]{color:#000;margin-top:0}.contactUsPageHeader[_ngcontent-%COMP%]{font-weight:500;color:#000}"] }); }
|
|
929
955
|
}
|
|
930
956
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContactUsComponent, [{
|
|
931
957
|
type: Component,
|
|
@@ -933,8 +959,8 @@ export class ContactUsComponent {
|
|
|
933
959
|
provide: NG_VALUE_ACCESSOR,
|
|
934
960
|
useExisting: ContactUsComponent,
|
|
935
961
|
multi: true
|
|
936
|
-
}], template: "<h1 class=\"contactUsPageTitle\" \r\n*ngIf=\"isNewCase\">{{'contact.us.pageTitle' | translate}}</h1>\r\n\r\n<div *ngIf=\"!showSuccess\">\r\n <span style=\"font-family: var(--app-font-light)\">\r\n <p *ngIf=\"isNewCase\" class=\"contactUsPageHeader\" >\r\n {{'contact.us.pageHeader' | translate}}\r\n </p>\r\n </span>\r\n <form [formGroup]=\"contactUsForm\" #contactFormDirective=\"ngForm\" (ngSubmit)=\"submitContactUs\">\r\n <div class=\"p-fluid grid\">\r\n <div class=\"field col-12\">\r\n <label for=\"type\">{{\"contact.us.userType\"| translate}}</label>\r\n <p-selectButton [options]=\"type\" formControlName=\"userType\" optionLabel=\"text\" optionValue=\"value\"\r\n (onOptionClick)=\"activeUserType($event)\">\r\n </p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='userType' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <label for=\"firstName\">{{\"contact.us.firstname\"| translate}}</label><br />\r\n <input type=\"text\" pInputText formControlName=\"firstName\" maxlength=\"30\" />\r\n <app-error [class]=\"'app-grid'\" [field]='firstName' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <label for=\"lastName\">{{'contact.us.lastName'| translate}}</label><br />\r\n <input type=\"text\" pInputText formControlName=\"lastName\" maxlength=\"30\" />\r\n <app-error [class]=\"'app-grid'\" [field]='lastName' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-6\" *ngIf=\"userType.value=='CLMT'\">\r\n <label for=\"ssn\">{{'contact.us.ssn'| translate}}</label><br />\r\n <p-inputMask mask=\"9999\" formControlName=\"ssn\" (onFocus)=\"inputType='text'\" (onBlur)=\"inputType='password'\"\r\n [type]=\"inputType\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='ssn' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-6\" *ngIf=\"userType.value=='CLMT'\">\r\n <label for=\"claimantId\">{{'contact.us.claimantID'| translate}}</label><br />\r\n <p-inputNumber formControlName=\"claimantId\" mode=\"decimal\" inputId=\"claimantId\" [useGrouping]=\"false\"\r\n placeholder=\"optional\" maxlength=\"8\"> </p-inputNumber>\r\n </div>\r\n <div class=\"field col-12 md:col-6\" *ngIf=\"userType.value=='EMPR'\">\r\n <label for=\"ean\">{{'contact.us.ean'| translate}}</label><br />\r\n <p-inputMask mask=\"9999999999\" formControlName=\"ean\" (onFocus)=\"inputType='text'\"\r\n (onBlur)=\"inputType='password'\" [type]=\"inputType\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='ean' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-6\" *ngIf=\"userType.value=='EMPR'\">\r\n <label for=\"fein\">{{'contact.us.fein'| translate}}</label><br />\r\n <p-inputMask mask=\"999999999\" formControlName=\"fein\" (onFocus)=\"inputType='text'\"\r\n (onBlur)=\"inputType='password'\" [type]=\"inputType\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='fein' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field col-12\" *ngIf=\"userType.value=='CLMT' || userType.value=='EMPR'\">\r\n <label for=\"selectedReason\">{{'contact.us.selectedReason'| translate}}</label><br />\r\n <p-dropdown [options]=\"activeComplaintCategory\" formControlName=\"selectedReason\" placeholder=\"Select category\"\r\n optionLabel=\"description\" [autoDisplayFirst]=\"false\" class=\"queryCategory\" appendTo=\"body\">\r\n </p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='selectedReason' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-12\">\r\n <label for=\"issue\">{{'contact.us.issue'| translate}}</label><br />\r\n <textarea pInputTextarea formControlName=\"issue\" maxlength=\"500\"></textarea><br />\r\n <app-error [class]=\"'app-grid'\" [field]='issue' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n <small>{{'contact.us.issueNotes'| translate}}</small>\r\n \r\n </div>\r\n\r\n <div class=\"field col-12\">\r\n <label for=\"email\">{{'contact.us.email'| translate}}</label>\r\n <input type=\"text\" pInputText formControlName=\"email\" maxlength=\"100\" />\r\n <app-error [class]=\"'app-grid'\" [field]='email' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required', email: 'Enter a valid email'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <label for=\"phone\">{{'contact.us.phone'| translate}}</label>\r\n <p-inputMask mask=\"(999) 999-9999\" formControlName=\"phone\" placeholder=\"(999) 999-9999\" unmask=\"true\">\r\n </p-inputMask>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <label for=\"altPhone\">{{'contact.us.altPhone'| translate}}</label>\r\n <p-inputMask mask=\"(999) 999-9999\" formControlName=\"altPhone\" placeholder=\"(999) 999-9999\" unmask=\"true\">\r\n </p-inputMask>\r\n </div>\r\n <div class=\"field col-12\">\r\n <app-address [fromPopup]=\"true\" formControlName=\"address\"></app-address>\r\n </div>\r\n <div class=\"field col-12\" *ngIf=\"!isCsr\">\r\n <app-captcha formControlName=\"captcha\"></app-captcha>\r\n <app-error [class]=\"'app-grid'\" [field]='captcha' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field col-6\" *ngIf=\"isCsr\">\r\n <label for=\"division\">{{'contact.us.division'| translate}}</label>\r\n <p-dropdown [options]=\"allDepartments\" formControlName=\"division\" placeholder=\"Select Department\"\r\n optionLabel=\"value\" [autoDisplayFirst]=\"false\" class=\"roleName\" appendTo=\"body\" (onChange)=\"fetchUnitsBasedOnDepType($event)\">\r\n </p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='division' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-6\" *ngIf=\"isCsr\">\r\n <label for=\"unit\">{{'contact.us.unit'| translate}}</label>\r\n <p-dropdown [options]=\"unitsBasedOnDept\" formControlName=\"unit\" placeholder=\"Select Unit\"\r\n optionLabel=\"value\" [autoDisplayFirst]=\"false\" class=\"roleName\" appendTo=\"body\" (onChange)=\"fetchUsersBasedOnUnit($event)\">\r\n </p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='unit' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-6\" *ngIf=\"isCsr\">\r\n <label for=\"generalAssignment\">{{'contact.us.generalAssignment'| translate}}</label><br />\r\n <p-dropdown [options]=\"allRoles\" formControlName=\"generalAssignment\" (onChange)=\"fetchUsersBasedOnRoles($event)\"\r\n placeholder=\"Select Assignment\" optionLabel=\"value\" [autoDisplayFirst]=\"false\" \r\n appendTo=\"body\"></p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='generalAssignment' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-6\" *ngIf=\"isCsr\">\r\n <label for=\"assignCaseTo\">{{\"contact.us.assignCaseTo\"| translate}}</label><br />\r\n <app-dropdown [options]=\"usersFLname\" formControlName=\"assignCaseTo\"\r\n placeholder=\"Assign Case To\" [autoDisplayFirst]=\"false\" optionLabel=\"text\" \r\n appendTo=\"body\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='assignCaseTo' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div> \r\n <div class=\"field col-12 md:col-6\" *ngIf=\"isCsr\">\r\n <label for=\"generatedThrough\">{{\"contact.us.msgGeneratedThrough\"| translate}}</label><br />\r\n <p-dropdown [options]=\"msgGeneratedThroughList\" formControlName=\"generatedThrough\"\r\n placeholder=\"Message generated through\" [autoDisplayFirst]=\"false\" optionLabel=\"description\" \r\n appendTo=\"body\"></p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='generatedThrough' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div> \r\n <div class=\"field col-12\" *ngIf=\"isCsr && selectedCase\">\r\n <label for=\"closeCaseReason\">{{\"contact.us.close\"| translate}}</label><br />\r\n <p-dropdown [options]=\"allCloseReasons\" formControlName=\"closeCaseReason\" class=\"queryCategory\"\r\n placeholder=\"Select Reason\" [autoDisplayFirst]=\"false\" optionLabel=\"description\" \r\n appendTo=\"body\" showClear=\"true\"></p-dropdown>\r\n </div>\r\n \r\n </div>\r\n </form>\r\n</div>\r\n<div *ngIf=\"showSuccess\">\r\n <div *ngIf=\"submitSuccess\">\r\n <ion-row>\r\n <ion-col class=\"ion-text-left text-lg\" style=\"font-family: var(--app-font-light)\">\r\n {{'contact.us.successMsg'| translate}}<span\r\n style=\"font-weight: bold; color: var(--ion-color-primary);\">{{caseNo}}</span>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-center\">\r\n <ion-icon name=\"checkmark-circle\" style=\"font-size: 80px; color: var(--ion-color-green);\"\r\n class=\"zoomin animation-duration-1000\"></ion-icon>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-left text-lg contactUsPageHeader\">\r\n {{'contact.us.contactAgain'| translate}}\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n <div *ngIf=\"!submitSuccess\">\r\n <ion-row>\r\n <ion-col class=\"ion-text-left text-lg\" style=\"font-family: var(--app-font-light)\">\r\n {{'contact.us.failedMsg'| translate}}\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n</div>\r\n\r\n<div class=\"field col-12 ion-text-right\">\r\n <ion-button *ngIf=\"!showSuccess && !isCsr\" shape=\"round\" type=\"submit\" color=\"primary\" \r\n (click)=\"submitContactUs(contactUsForm)\">Submit\r\n </ion-button>\r\n <ion-button *ngIf=\"!isCsr\" shape=\"round\" type=\"submit\" color=\"primary\" (click)=\"emitHide($event)\">\r\n Close\r\n </ion-button>\r\n</div>", styles: ["ion-col{padding-left:0}div{margin-bottom:0!important}.error{color:var(--ion-color-danger)}:host ::ng-deep .p-fluid .p-dropdown .p-dropdown-label{white-space:wrap!important}.contactUsPageTitle{color:#000;margin-top:0}.contactUsPageHeader{font-weight:500;color:#000}\n"] }]
|
|
937
|
-
}], () => [{ type: i1.UntypedFormBuilder }, { type: i2.CaseService }, { type: i3.CmpService }, { type: i4.SecurityService }, { type: i5.UtilService }, { type: i6.LoggerService }], { isCsr: [{
|
|
962
|
+
}], template: "<h1 class=\"contactUsPageTitle\" \r\n*ngIf=\"isNewCase\">{{'contact.us.pageTitle' | translate}}</h1>\r\n\r\n<div *ngIf=\"!showSuccess\">\r\n <span style=\"font-family: var(--app-font-light)\">\r\n <p *ngIf=\"isNewCase\" class=\"contactUsPageHeader\" >\r\n {{'contact.us.pageHeader' | translate}}\r\n </p>\r\n </span>\r\n <form [formGroup]=\"contactUsForm\" #contactFormDirective=\"ngForm\" (ngSubmit)=\"submitContactUs\">\r\n <div class=\"p-fluid grid\">\r\n <div class=\"field col-12\">\r\n <label for=\"type\">{{\"contact.us.userType\"| translate}}</label>\r\n <p-selectButton [options]=\"type\" formControlName=\"userType\" optionLabel=\"text\" optionValue=\"value\"\r\n (onOptionClick)=\"activeUserType($event)\">\r\n </p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='userType' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <label for=\"firstName\">{{\"contact.us.firstname\"| translate}}</label><br />\r\n <input type=\"text\" pInputText formControlName=\"firstName\" maxlength=\"30\" />\r\n <app-error [class]=\"'app-grid'\" [field]='firstName' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <label for=\"lastName\">{{'contact.us.lastName'| translate}}</label><br />\r\n <input type=\"text\" pInputText formControlName=\"lastName\" maxlength=\"30\" />\r\n <app-error [class]=\"'app-grid'\" [field]='lastName' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-6\" *ngIf=\"userType.value=='CLMT'\">\r\n <label for=\"ssn\">{{'contact.us.ssn'| translate}}</label><br />\r\n <p-inputMask mask=\"9999\" formControlName=\"ssn\" (onFocus)=\"inputType='text'\" (onBlur)=\"inputType='password'\"\r\n [type]=\"inputType\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='ssn' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-6\" *ngIf=\"userType.value=='CLMT'\">\r\n <label for=\"claimantId\">{{'contact.us.claimantID'| translate}}</label><br />\r\n <p-inputNumber formControlName=\"claimantId\" mode=\"decimal\" inputId=\"claimantId\" [useGrouping]=\"false\"\r\n placeholder='{{\"common.optional\" | translate}}' maxlength=\"8\"> </p-inputNumber>\r\n </div>\r\n <div class=\"field col-12 md:col-6\" *ngIf=\"userType.value=='EMPR'\">\r\n <label for=\"ean\">{{'contact.us.ean'| translate}}</label><br />\r\n <p-inputMask mask=\"9999999999\" formControlName=\"ean\" (onFocus)=\"inputType='text'\"\r\n (onBlur)=\"inputType='password'\" [type]=\"inputType\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='ean' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-6\" *ngIf=\"userType.value=='EMPR'\">\r\n <label for=\"fein\">{{'contact.us.fein'| translate}}</label><br />\r\n <p-inputMask mask=\"999999999\" formControlName=\"fein\" (onFocus)=\"inputType='text'\"\r\n (onBlur)=\"inputType='password'\" [type]=\"inputType\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='fein' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field col-12\" *ngIf=\"userType.value=='CLMT' || userType.value=='EMPR'\">\r\n <label for=\"selectedReason\">{{'contact.us.selectedReason'| translate}}</label><br />\r\n <p-dropdown [options]=\"activeComplaintCategory\" formControlName=\"selectedReason\" placeholder=\"Select category\"\r\n optionLabel=\"description\" [autoDisplayFirst]=\"false\" class=\"queryCategory\" appendTo=\"body\">\r\n </p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='selectedReason' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-12\">\r\n <label for=\"issue\">{{'contact.us.issue'| translate}}</label><br />\r\n <textarea pInputTextarea formControlName=\"issue\" maxlength=\"500\"></textarea><br />\r\n <app-error [class]=\"'app-grid'\" [field]='issue' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n <small>{{'contact.us.issueNotes'| translate}}</small>\r\n \r\n </div>\r\n\r\n <div class=\"field col-12\">\r\n <label for=\"email\">{{'contact.us.email'| translate}}</label>\r\n <input type=\"text\" pInputText formControlName=\"email\" maxlength=\"100\" />\r\n <app-error [class]=\"'app-grid'\" [field]='email' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required', email: validEmail\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <label for=\"phone\">{{'contact.us.phone'| translate}}</label>\r\n <p-inputMask mask=\"(999) 999-9999\" formControlName=\"phone\" placeholder=\"(999) 999-9999\" unmask=\"true\">\r\n </p-inputMask>\r\n </div>\r\n <div class=\"field col-12 md:col-6\">\r\n <label for=\"altPhone\">{{'contact.us.altPhone'| translate}}</label>\r\n <p-inputMask mask=\"(999) 999-9999\" formControlName=\"altPhone\" placeholder=\"(999) 999-9999\" unmask=\"true\">\r\n </p-inputMask>\r\n </div>\r\n <div class=\"field col-12\">\r\n <app-address [fromPopup]=\"true\" formControlName=\"address\"></app-address>\r\n </div>\r\n <div class=\"field col-12\" *ngIf=\"!isCsr\">\r\n <app-captcha formControlName=\"captcha\"></app-captcha>\r\n <app-error [class]=\"'app-grid'\" [field]='captcha' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field col-6\" *ngIf=\"isCsr\">\r\n <label for=\"division\">{{'contact.us.division'| translate}}</label>\r\n <p-dropdown [options]=\"allDepartments\" formControlName=\"division\" placeholder=\"Select Department\"\r\n optionLabel=\"value\" [autoDisplayFirst]=\"false\" class=\"roleName\" appendTo=\"body\" (onChange)=\"fetchUnitsBasedOnDepType($event)\">\r\n </p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='division' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-6\" *ngIf=\"isCsr\">\r\n <label for=\"unit\">{{'contact.us.unit'| translate}}</label>\r\n <p-dropdown [options]=\"unitsBasedOnDept\" formControlName=\"unit\" placeholder=\"Select Unit\"\r\n optionLabel=\"value\" [autoDisplayFirst]=\"false\" class=\"roleName\" appendTo=\"body\" (onChange)=\"fetchUsersBasedOnUnit($event)\">\r\n </p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='unit' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-6\" *ngIf=\"isCsr\">\r\n <label for=\"generalAssignment\">{{'contact.us.generalAssignment'| translate}}</label><br />\r\n <p-dropdown [options]=\"allRoles\" formControlName=\"generalAssignment\" (onChange)=\"fetchUsersBasedOnRoles($event)\"\r\n placeholder=\"Select Assignment\" optionLabel=\"value\" [autoDisplayFirst]=\"false\" \r\n appendTo=\"body\"></p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='generalAssignment' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field col-6\" *ngIf=\"isCsr\">\r\n <label for=\"assignCaseTo\">{{\"contact.us.assignCaseTo\"| translate}}</label><br />\r\n <p-dropdown [options]=\"usersFLname\" formControlName=\"assignCaseTo\"\r\n placeholder=\"Assign Case To\" [autoDisplayFirst]=\"false\" optionLabel=\"text\" \r\n appendTo=\"body\"></p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='assignCaseTo' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div> \r\n <div class=\"field col-12 md:col-6\" *ngIf=\"isCsr\">\r\n <label for=\"generatedThrough\">{{\"contact.us.msgGeneratedThrough\"| translate}}</label><br />\r\n <p-dropdown [options]=\"msgGeneratedThroughList\" formControlName=\"generatedThrough\"\r\n placeholder=\"Message generated through\" [autoDisplayFirst]=\"false\" optionLabel=\"description\" \r\n appendTo=\"body\"></p-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='generatedThrough' [form]=\"contactFormDirective\" [errDef]=\"{ \r\n required: 'required'\r\n }\"></app-error>\r\n </div> \r\n <div class=\"field col-12\" *ngIf=\"isCsr && selectedCase\">\r\n <label for=\"closeCaseReason\">{{\"contact.us.close\"| translate}}</label><br />\r\n <p-dropdown [options]=\"allCloseReasons\" formControlName=\"closeCaseReason\" class=\"queryCategory\"\r\n placeholder=\"Select Reason\" [autoDisplayFirst]=\"false\" optionLabel=\"description\" \r\n appendTo=\"body\" showClear=\"true\"></p-dropdown>\r\n </div>\r\n \r\n </div>\r\n </form>\r\n</div>\r\n<div *ngIf=\"showSuccess\">\r\n <div *ngIf=\"submitSuccess\">\r\n <ion-row>\r\n <ion-col class=\"ion-text-left text-lg\" style=\"font-family: var(--app-font-light)\">\r\n {{'contact.us.successMsg'| translate}}<span\r\n style=\"font-weight: bold; color: var(--ion-color-primary);\">{{caseNo}}</span>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-center\">\r\n <ion-icon name=\"checkmark-circle\" style=\"font-size: 80px; color: var(--ion-color-green);\"\r\n class=\"zoomin animation-duration-1000\"></ion-icon>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-left text-lg contactUsPageHeader\">\r\n {{'contact.us.contactAgain'| translate}}\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n <div *ngIf=\"!submitSuccess\">\r\n <ion-row>\r\n <ion-col class=\"ion-text-left text-lg\" style=\"font-family: var(--app-font-light)\">\r\n {{'contact.us.failedMsg'| translate}}\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n</div>\r\n\r\n<div class=\"field col-12 ion-text-right\">\r\n <ion-button *ngIf=\"!showSuccess && !isCsr\" shape=\"round\" type=\"submit\" color=\"primary\" \r\n (click)=\"submitContactUs(contactUsForm)\">{{'common.submit'| translate}}\r\n </ion-button>\r\n <ion-button *ngIf=\"!isCsr\" shape=\"round\" type=\"submit\" color=\"primary\" (click)=\"emitHide($event)\">\r\n {{'common.close'| translate}}\r\n </ion-button>\r\n</div>", styles: ["ion-col{padding-left:0}div{margin-bottom:0!important}.error{color:var(--ion-color-danger)}:host ::ng-deep .p-fluid .p-dropdown .p-dropdown-label{white-space:wrap!important}.contactUsPageTitle{color:#000;margin-top:0}.contactUsPageHeader{font-weight:500;color:#000}\n"] }]
|
|
963
|
+
}], () => [{ type: i1.UntypedFormBuilder }, { type: i2.CaseService }, { type: i3.CmpService }, { type: i4.SecurityService }, { type: i5.UtilService }, { type: i6.LoggerService }, { type: i7.TranslateService }], { isCsr: [{
|
|
938
964
|
type: Input
|
|
939
965
|
}], isNewCase: [{
|
|
940
966
|
type: Input
|
|
@@ -954,5 +980,5 @@ export class ContactUsComponent {
|
|
|
954
980
|
type: ViewChild,
|
|
955
981
|
args: ['contactFormDirective', { static: false }]
|
|
956
982
|
}] }); })();
|
|
957
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContactUsComponent, { className: "ContactUsComponent", filePath: "lib\\components\\contact-us\\contact-us.component.ts", lineNumber:
|
|
958
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC11cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29udGFjdC11cy9jb250YWN0LXVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LXVzL2NvbnRhY3QtdXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFvQixVQUFVLEVBQThCLFNBQVMsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0osT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTzdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7SUNiaEUsNkJBQ2tCO0lBQUEsWUFBc0M7O0lBQUEsaUJBQUs7O0lBQTNDLGVBQXNDO0lBQXRDLGtFQUFzQzs7O0lBSXBELDZCQUFrRDtJQUNsRCxZQUNBOztJQUFBLGlCQUFJOztJQURKLGVBQ0E7SUFEQSw4RUFDQTs7Ozs7SUEyQkUsK0JBQXdELGdCQUFBO0lBQ3JDLFlBQStCOztJQUFBLGlCQUFRO0lBQUEscUJBQU07SUFDOUQsdUNBQ3FCO0lBRDBCLHFOQUFxQixNQUFNLEtBQUMsc01BQXFCLFVBQVUsS0FBL0I7SUFDdEQsaUJBQWM7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QUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIE5nRm9ybSwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDYXNlQ29yZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NtcC9DYXNlQ29yZU1vZGVsJztcclxuaW1wb3J0IHsgQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbXAvQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbCc7XHJcbmltcG9ydCB7IENvbXBsYWludENhdGVnb3J5T3V0cHV0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY21wL0NvbXBsYWludENhdGVnb3J5T3V0cHV0TW9kZWwnO1xyXG5pbXBvcnQgeyBDaG9pY2VzTW9kZWwsIENvbnRhY3RVc0lucXVlcnlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbXAvY29udGFjdFVzSW5xdWVyeU1vZGVsJztcclxuaW1wb3J0IHsgS2V5VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0tleVZhbHVlTW9kZWwnO1xyXG5pbXBvcnQgeyBDYXNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2Utc2VydmljZS9jYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY21wLXNlcnZpY2UvY21wLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VjdXJpdHktc2VydmljZS9zZWN1cml0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFJlZ2V4IH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwUmVnZXgnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb250YWN0LXVzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29udGFjdC11cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29udGFjdC11cy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IENvbnRhY3RVc0NvbXBvbmVudCxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRhY3RVc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBwdWJsaWMgY29udGFjdFVzRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgY29tcGxhaW50Q2F0ZWdvcnlSZXRyaXZlZExpc3Q6IENvbXBsYWludENhdGVnb3J5TW9kZWxbXTtcclxuICBwdWJsaWMgY29tcGxhaW50Q2F0ZWdvcnlSZXRyaXZlZExpc3RFbXByOiBDb21wbGFpbnRDYXRlZ29yeU1vZGVsW107XHJcbiAgcHVibGljIGNvbXBsYWludENhdGVnb3J5UmV0cml2ZWRMaXN0Q2xtdDogQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbFtdO1xyXG4gIHB1YmxpYyBhY3RpdmVDb21wbGFpbnRDYXRlZ29yeTogQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbFtdO1xyXG4gIHB1YmxpYyBjYXNlTm86IHN0cmluZztcclxuICBwdWJsaWMgcmVzcG9uc2VDYWxsOiBhbnk7XHJcbiAgcHVibGljIGFsbERlcGFydG1lbnRzOiBLZXlWYWx1ZU1vZGVsW107XHJcbiAgcHVibGljIGFsbFVuaXRzOiBLZXlWYWx1ZU1vZGVsW107XHJcbiAgcHVibGljIHVuaXRzQmFzZWRPbkRlcHQ6IEtleVZhbHVlTW9kZWxbXTtcclxuICBwdWJsaWMgYWxsQ2xvc2VSZWFzb25zOiBLZXlWYWx1ZU1vZGVsW107XHJcbiAgcHVibGljIGFsbFJvbGVzOiBLZXlWYWx1ZU1vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgdXNlcnM6IGFueVtdO1xyXG4gIHB1YmxpYyB1c2Vyc0ZMbmFtZTogQXJyYXk8Q2hvaWNlc01vZGVsPiA9IFtdO1xyXG4gIHB1YmxpYyB1bml0SUQ6IGFueTtcclxuICBwdWJsaWMgc2VsZWN0ZWREZXA6IGFueTtcclxuICBwdWJsaWMgc2VsZWN0ZWREZXBUeXBlOiBhbnk7XHJcbiAgcHVibGljIHNlbGVjdGVkUm9sZTogYW55O1xyXG4gIHB1YmxpYyBzZWxlY3RlZFVuaXQ6IGFueTtcclxuICBwdWJsaWMgbXNnR2VuZXJhdGVkVGhyb3VnaExpc3Q6IGFueTtcclxuXHJcbiAgQElucHV0KClcclxuICBpc0NzcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGlzTmV3Q2FzZSA6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGVkQ2FzZSA6IENhc2VDb3JlTW9kZWw7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG1vZGVsQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdXBkYXRlU3VjY2VzcyA6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250YWN0Rm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyBjb250YWN0Rm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG5cclxuICBzaG93U3VjY2VzcyA9IGZhbHNlO1xyXG4gIGRpc3BsYXk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHN1Ym1pdFN1Y2Nlc3MgPSBmYWxzZTtcclxuICBpbnB1dFR5cGUgPSAndGV4dCc7XHJcblxyXG4gIHR5cGU6IENob2ljZXNNb2RlbFtdID0gW1xyXG4gICAgeyB0ZXh0OiAnYSBjbGFpbWFudCcsIHZhbHVlOiAnQ0xNVCcgfSxcclxuICAgIHsgdGV4dDogJ2FuIGVtcGxveWVyJywgdmFsdWU6ICdFTVBSJyB9XHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHB1YmxpYyBjYXNlU2VydmljZTogQ2FzZVNlcnZpY2UsIHB1YmxpYyBjbXBTZXJ2aWNlOiBDbXBTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNlY3VyaXR5U2VydmljZTogU2VjdXJpdHlTZXJ2aWNlLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsIHB1YmxpYyBsb2dnZXJTZXJ2aWNlOiBMb2dnZXJTZXJ2aWNlKSB7IH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAodmFsdWU6IFN0cmluZykgPT4ge1xyXG4gIH07XHJcbiAgcHJpdmF0ZSBvblRvdWNoOiBGdW5jdGlvbiA9ICgpID0+IHtcclxuICB9O1xyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmblxyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uVG91Y2ggPSBmblxyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29udGFjdFVzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAndXNlclR5cGUnOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdmaXJzdE5hbWUnOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdsYXN0TmFtZSc6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ3Nzbic6IFtudWxsXSxcclxuICAgICAgJ2NsYWltYW50SWQnOiBbbnVsbF0sXHJcbiAgICAgICdlYW4nOiBbbnVsbF0sXHJcbiAgICAgICdmZWluJzogW251bGxdLFxyXG4gICAgICAnc2VsZWN0ZWRSZWFzb24nOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdpc3N1ZSc6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ2VtYWlsJzogW251bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBBcHBWYWxpZGF0b3JzLm1hdGNoKEFwcFJlZ2V4LkVNQUlMX1JFR0VYLCB7IGVtYWlsOiB0cnVlIH0pXV0sXHJcbiAgICAgICdwaG9uZSc6IFtudWxsXSxcclxuICAgICAgJ2FsdFBob25lJzogW251bGxdLFxyXG4gICAgICAnYWRkcmVzcyc6IFtudWxsXSxcclxuICAgICAgJ2RpdmlzaW9uJzogW251bGxdLFxyXG4gICAgICAndW5pdCc6IFtudWxsXSxcclxuICAgICAgJ2dlbmVyYWxBc3NpZ25tZW50JzogW251bGxdLFxyXG4gICAgICAnYXNzaWduQ2FzZVRvJzogW251bGxdLFxyXG4gICAgICAnY2xvc2VDYXNlUmVhc29uJzpbbnVsbF0sXHJcbiAgICAgICdnZW5lcmF0ZWRUaHJvdWdoJzpbbnVsbF0sXHJcbiAgICAgICdjYXB0Y2hhJzogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgdGhpcy5zZWxlY3RCdXR0b25WYWxpZGF0aW9uKCk7XHJcbiAgICB0aGlzLnNlbGVjdENTUnZhbGlkYXRpb24oKTtcclxuICAgIHRoaXMuZ2V0Q29tcGxhaW50Q2F0ZWdvcnkoKTtcclxuICAgIHRoaXMuZmV0Y2hNc3REZXBhcnRtZW50cygpO1xyXG4gICAgdGhpcy5mZXRjaE1zdEFsbFVuaXRzKCk7XHJcbiAgICB0aGlzLmZldGNoTXN0Q2FzZUNsb3NlUmVhc29ucygpO1xyXG4gICAgdGhpcy5nZXRBbGxSb2xlcygpO1xyXG4gICAgdGhpcy5nZXRNc2dHZW5lcmF0ZWRUaHJvdWdoKCk7XHJcblxyXG4gICAgaWYodGhpcy5zZWxlY3RlZENhc2UgJiYgdGhpcy5pc0NzciA9PSB0cnVlKXtcclxuICAgICAgdGhpcy5sb2FkUHJlU2F2ZWRDb250YWN0VXNEZXRhaWxzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkUHJlU2F2ZWRDb250YWN0VXNEZXRhaWxzKCl7XHJcbiAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZGVidWcoXCJzZWxlY3RlZCBjYXNlIDogXCIsIHRoaXMuc2VsZWN0ZWRDYXNlKTtcclxuICAgIHRoaXMuY21wU2VydmljZS5mZXRjaElucXVpcnlEZXRhaWxzQnlJbnF1aXJ5SWQodGhpcy5zZWxlY3RlZENhc2UuY2FzZU51bWJlcikuc3Vic2NyaWJlKFxyXG4gICAgICByZXMgPT4ge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5pbmZvKHJlcyk7XHJcbiAgICAgICAgdGhpcy5jb250YWN0VXNGb3JtLnBhdGNoVmFsdWUocmVzKTtcclxuICAgICAgICB0aGlzLnVzZXJUeXBlLnNldFZhbHVlKHJlc1tcInVzZXJUeXBlXCJdLnZhbHVlKTtcclxuICAgICAgICB0aGlzLmRpdmlzaW9uLnNldFZhbHVlKHRoaXMuYWxsRGVwYXJ0bWVudHMuZmlsdGVyKGMgPT4gYy5rZXkgPT0gdGhpcy5zZWxlY3RlZENhc2UuZGVwYXJ0bWVudC5rZXkpWzBdKTtcclxuICAgICAgICB0aGlzLmdlbmVyYWxBc3NpZ25tZW50LnNldFZhbHVlKHRoaXMuYWxsUm9sZXMuZmlsdGVyKGMgPT4gYy52YWx1ZSA9PSB0aGlzLnNlbGVjdGVkQ2FzZS5sZXZlbC50ZXh0KVswXSk7XHJcblxyXG4gICAgICAgIGlmIChyZXNbXCJ1c2VyVHlwZVwiXS52YWx1ZSA9PT0gJ0VNUFInKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZUNvbXBsYWludENhdGVnb3J5ID0gdGhpcy5jb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdEVtcHI7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHJlc1tcInVzZXJUeXBlXCJdLnZhbHVlID09PSAnQ0xNVCcpIHtcclxuICAgICAgICAgIHRoaXMuYWN0aXZlQ29tcGxhaW50Q2F0ZWdvcnkgPSB0aGlzLmNvbXBsYWludENhdGVnb3J5UmV0cml2ZWRMaXN0Q2xtdDtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0QnV0dG9uVmFsaWRhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGVjdGVkUmVhc29uLnNldFZhbHVlKHRoaXMuYWN0aXZlQ29tcGxhaW50Q2F0ZWdvcnkuZmlsdGVyKGMgPT4gYy5jb21wbGFpbnRDYXRlZ29yeUlkID09IHJlcy5jb21wbGFpbnRDYXRlZ29yeSlbMF0pO1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGVwVHlwZSA9IHRoaXMuZGl2aXNpb24udmFsdWUua2V5O1xyXG4gICAgICAgIHRoaXMuZ2V0VW5pdHNCYXNlZE9uRGVwU2VsZWN0ZWQoKTtcclxuICAgICAgICBpZih0aGlzLnNlbGVjdGVkQ2FzZS51bml0ICE9IG51bGwpe1xyXG4gICAgICAgICAgdGhpcy51bml0LnNldFZhbHVlKHRoaXMudW5pdHNCYXNlZE9uRGVwdC5maWx0ZXIoYyA9PiBjLmtleSA9PSB0aGlzLnNlbGVjdGVkQ2FzZS51bml0LmtleSlbMF0pO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFVuaXQgPSB0aGlzLnVuaXQudmFsdWUua2V5O1xyXG4gICAgICAgIH0gICAgICAgXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJvbGUgPSB0aGlzLmdlbmVyYWxBc3NpZ25tZW50LnZhbHVlLnR5cGU7XHJcbiAgICAgICAgdGhpcy5nZXRVc2Vyc0Jhc2VkT25EZXB0QW5kUm9sZSgpO1xyXG4gICAgICAgIGlmKHRoaXMuc2VsZWN0ZWRDYXNlLmNsb3NlQ2FzZVJlYXNvbiAhPSBudWxsKXtcclxuICAgICAgICAgIHRoaXMuY2xvc2VDYXNlUmVhc29uLnNldFZhbHVlKHRoaXMuYWxsQ2xvc2VSZWFzb25zLmZpbHRlcihjID0+IGMua2V5ID09IHRoaXMuc2VsZWN0ZWRDYXNlLmNsb3NlQ2FzZVJlYXNvbi52YWx1ZSlbMF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYocmVzLmdlbmVyYXRlZFRocm91Z2ggIT0gbnVsbCl7XHJcbiAgICAgICAgICB0aGlzLmdlbmVyYXRlZFRocm91Z2guc2V0VmFsdWUodGhpcy5tc2dHZW5lcmF0ZWRUaHJvdWdoTGlzdC5maWx0ZXIoYyA9PiBjLmtleSA9PSByZXMuZ2VuZXJhdGVkVGhyb3VnaC52YWx1ZSlbMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgXHJcblx0ICAgICAgdGhpcy5vbkxvYWQuZW1pdChyZXMpO1xyXG4gICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcIlVuYWJsZSB0byBmZXRjaCBpbnF1aXJ5IGRldGFpbHMuXCIpO1xyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBlbWl0SGlkZShldmVudCkge1xyXG4gICAgdGhpcy5vbkhpZGUuZW1pdChldmVudCk7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd1N1Y2Nlc3MgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKSB7XHJcbiAgICB0aGlzLnVzZXJUeXBlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuXHJcbiAgICAgIGlmICh2YWwgPT09ICdDTE1UJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNzbik7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVhbik7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmZlaW4pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh2YWwgPT09ICdFTVBSJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zc24pO1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVhbik7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZmVpbik7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzZWxlY3RDU1J2YWxpZGF0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMuaXNDc3IpIHtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZGl2aXNpb24pO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy51bml0KTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZ2VuZXJhbEFzc2lnbm1lbnQpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5hc3NpZ25DYXNlVG8pO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5nZW5lcmF0ZWRUaHJvdWdoKTtcclxuICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmNhcHRjaGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3VibWl0Q29udGFjdFVzKGlucHV0IDogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuY29udGFjdFVzRm9ybS52YWxpZCkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmNvbnRhY3RVc0Zvcm0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgY29udGFjdFVzSW5xdWlyeU1vZGVsOiBDb250YWN0VXNJbnF1ZXJ5TW9kZWwgPSBuZXcgQ29udGFjdFVzSW5xdWVyeU1vZGVsKCk7XHJcblxyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuaW5xdWlyeUJ5ID0gdGhpcy51c2VyVHlwZS52YWx1ZTtcclxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmZpcnN0TmFtZSA9IHRoaXMuZmlyc3ROYW1lLnZhbHVlO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwubGFzdE5hbWUgPSB0aGlzLmxhc3ROYW1lLnZhbHVlO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuc3NuID0gdGhpcy5zc24udmFsdWU7XHJcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5jbGFpbWFudElkID0gdGhpcy5jbGFpbWFudElkLnZhbHVlO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuZWFuID0gdGhpcy5lYW4udmFsdWU7XHJcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5mZWluID0gdGhpcy5mZWluLnZhbHVlO1xyXG5cclxuICAgICAgbGV0IGNob2ljZU1vZGVsOiBDb21wbGFpbnRDYXRlZ29yeU91dHB1dE1vZGVsID0gbmV3IENvbXBsYWludENhdGVnb3J5T3V0cHV0TW9kZWwoKTtcclxuICAgICAgY2hvaWNlTW9kZWwudGV4dCA9IHRoaXMuc2VsZWN0ZWRSZWFzb24udmFsdWUuZGVzY3JpcHRpb247XHJcbiAgICAgIGNob2ljZU1vZGVsLnZhbHVlID0gdGhpcy5zZWxlY3RlZFJlYXNvbi52YWx1ZS5jb21wbGFpbnRDYXRlZ29yeUlkO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuY29tcGxhaW50Q2F0ZWdvcnkgPSBjaG9pY2VNb2RlbDtcclxuXHJcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5xdWVzdGlvbiA9IHRoaXMuaXNzdWUudmFsdWU7XHJcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5lbWFpbCA9IHRoaXMuZW1haWwudmFsdWU7XHJcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5waG9uZSA9IHRoaXMucGhvbmUudmFsdWU7XHJcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5hbHRQaG9uZSA9IHRoaXMuYWx0UGhvbmUudmFsdWU7XHJcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5zdHJlZXRBZGRyZXNzID0gdGhpcy5hZGRyZXNzLnZhbHVlPy5zdHJlZXRBZGRyZXNzO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwub3B0aW9uYWxBZGRyZXNzID0gdGhpcy5hZGRyZXNzLnZhbHVlPy5vcHRpb25hbEFkZHJlc3M7XHJcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5jaXR5ID0gdGhpcy5hZGRyZXNzLnZhbHVlPy5jaXR5O1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuc3RhdGUgPSB0aGlzLmFkZHJlc3MudmFsdWU/LnN0YXRlPy52YWx1ZTtcclxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLnppcCA9IHRoaXMuYWRkcmVzcy52YWx1ZT8uemlwO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuY291bnRyeSA9IHRoaXMuYWRkcmVzcy52YWx1ZT8uY291bnRyeS52YWx1ZTtcclxuXHJcbiAgICAgIGlmKHRoaXMuaXNDc3IgPT09IGZhbHNlKXtcclxuICAgICAgICBsZXQgY2hvaWNlTW9kZWw6IENob2ljZXNNb2RlbCA9IG5ldyBDaG9pY2VzTW9kZWwoKTtcclxuICAgICAgICBjaG9pY2VNb2RlbC50ZXh0ID0gXCJTZWxmIHNlcnZpY2VcIjtcclxuICAgICAgICBjaG9pY2VNb2RlbC52YWx1ZSA9IFwiU0VMRlwiO1xyXG4gICAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5nZW5lcmF0ZWRUaHJvdWdoID0gY2hvaWNlTW9kZWw7XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5pc0NzciA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgbGV0IGNob2ljZU1vZGVsMzogQ2hvaWNlc01vZGVsID0gbmV3IENob2ljZXNNb2RlbCgpO1xyXG4gICAgICAgIGNob2ljZU1vZGVsMy50ZXh0ID0gdGhpcy5kaXZpc2lvbi52YWx1ZS52YWx1ZTtcclxuICAgICAgICBjaG9pY2VNb2RlbDMudmFsdWUgPSB0aGlzLmRpdmlzaW9uLnZhbHVlLmtleTtcclxuICAgICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuZGl2aXNpb24gPSBjaG9pY2VNb2RlbDM7XHJcblxyXG4gICAgICAgIGxldCBjaG9pY2VNb2RlbDY6IENob2ljZXNNb2RlbCA9IG5ldyBDaG9pY2VzTW9kZWwoKTtcclxuICAgICAgICBjaG9pY2VNb2RlbDYudGV4dCA9IHRoaXMudW5pdC52YWx1ZS52YWx1ZTtcclxuICAgICAgICBjaG9pY2VNb2RlbDYudmFsdWUgPSB0aGlzLnVuaXQudmFsdWUua2V5O1xyXG4gICAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC51bml0ID0gY2hvaWNlTW9kZWw2O1xyXG5cclxuICAgICAgICBsZXQgY2hvaWNlTW9kZWw6IENob2ljZXNNb2RlbCA9IG5ldyBDaG9pY2VzTW9kZWwoKTtcclxuICAgICAgICBjaG9pY2VNb2RlbC50ZXh0ID0gdGhpcy5nZW5lcmFsQXNzaWdubWVudC52YWx1ZS5kZXNjcmlwdGlvbjtcclxuICAgICAgICBjaG9pY2VNb2RlbC52YWx1ZSA9IHRoaXMuZ2VuZXJhbEFzc2lnbm1lbnQudmFsdWUua2V5O1xyXG4gICAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5jYXNlT3duZXJHcm91cEtleSA9IGNob2ljZU1vZGVsO1xyXG5cclxuICAgICAgICBsZXQgY2hvaWNlTW9kZWwyOiBDaG9pY2VzTW9kZWwgPSBuZXcgQ2hvaWNlc01vZGVsKCk7XHJcbiAgICAgICAgY2hvaWNlTW9kZWwyLnRleHQgPSB0aGlzLmFzc2lnbkNhc2VUby52YWx1ZS50ZXh0O1xyXG4gICAgICAgIGNob2ljZU1vZGVsMi52YWx1ZSA9IHRoaXMuYXNzaWduQ2FzZVRvLnZhbHVlLnZhbHVlO1xyXG4gICAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5hc3NpZ25DYXNlVG8gPSBjaG9pY2VNb2RlbDI7IFxyXG5cclxuICAgICAgICBpZih0aGlzLmNsb3NlQ2FzZVJlYXNvbi52YWx1ZSAhPSBudWxsKXtcclxuICAgICAgICAgIGxldCBjaG9pY2VNb2RlbDQ6IENob2ljZXNNb2RlbCA9IG5ldyBDaG9pY2VzTW9kZWwoKTtcclxuICAgICAgICAgIGNob2ljZU1vZGVsNC50ZXh0ID0gdGhpcy5jbG9zZUNhc2VSZWFzb24udmFsdWUuZGVzY3JpcHRpb247XHJcbiAgICAgICAgICBjaG9pY2VNb2RlbDQudmFsdWUgPSB0aGlzLmNsb3NlQ2FzZVJlYXNvbi52YWx1ZS5rZXk7XHJcbiAgICAgICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuY2xvc2VDYXNlUmVhc29uID0gY2hvaWNlTW9kZWw0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5nZW5lcmF0ZWRUaHJvdWdoLnZhbHVlICE9IG51bGwpe1xyXG4gICAgICAgICAgbGV0IGNob2ljZU1vZGVsNTogQ2hvaWNlc01vZGVsID0gbmV3IENob2ljZXNNb2RlbCgpO1xyXG4gICAgICAgICAgY2hvaWNlTW9kZWw1LnRleHQgPSB0aGlzLmdlbmVyYXRlZFRocm91Z2gudmFsdWUuZGVzY3JpcHRpb247XHJcbiAgICAgICAgICBjaG9pY2VNb2RlbDUudmFsdWUgPSB0aGlzLmdlbmVyYXRlZFRocm91Z2gudmFsdWUua2V5O1xyXG4gICAgICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmdlbmVyYXRlZFRocm91Z2ggPSBjaG9pY2VNb2RlbDU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHRoaXMuY29udGFjdFVzRm9ybSk7XHJcbiAgICAgIGlmKHRoaXMuc2VsZWN0ZWRDYXNlICYmIHRoaXMuc2VsZWN0ZWRDYXNlLmNhc2VOdW1iZXIpe1xyXG4gICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5kZWJ1ZygndXBkYXRlIGNhbGxlZCA9ICcsIHRoaXMuc2VsZWN0ZWRDYXNlLmNhc2VOdW1iZXIpO1xyXG4gICAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5pbnF1aXJ5SWQgPSB0aGlzLnNlbGVjdGVkQ2FzZS5jYXNlTnVtYmVyO1xyXG4gICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jbXBTZXJ2aWNlLnVwZGF0ZUlucXVpcnlEYXRhKGNvbnRhY3RVc0lucXVpcnlNb2RlbCwgdGhpcy5zZWxlY3RlZENhc2UuY2FzZU51bWJlcilcclxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+e1xyXG4gICAgICAgICAgICB0aGlzLnJlc3BvbnNlQ2FsbCA9IHJlcztcclxuICAgICAgICAgICAgdGhpcy5jYXNlTm8gPSB0aGlzLnJlc3BvbnNlQ2FsbC5pbnF1aXJ5SWQ7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKHRoaXMucmVzcG9uc2VDYWxsW1wibXNnXCJdKTtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFwiZXJyXCIsIGVycik7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZGVidWcoXCJjcmVhdGluZyBuZXcgY2FzZVwiKTtcclxuICAgICAgICBpZih0aGlzLmlzQ3NyID09PSB0cnVlKXtcclxuICAgICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY21wU2VydmljZS5zdWJtaXRRdWVyeUZvckNTUihjb250YWN0VXNJbnF1aXJ5TW9kZWwpXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzU3VibWl0UXVlcnlSZXNwb25zZShyZXMpO1xyXG4gICAgICAgICAgICAgIH0sIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NTdWJtaXRRdWVyeUVycm9yUmVzcG9uc2UoZXJyKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNtcFNlcnZpY2Uuc3VibWl0UXVlcnkoY29udGFjdFVzSW5xdWlyeU1vZGVsKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzU3VibWl0UXVlcnlSZXNwb25zZShyZXMpO1xyXG4gICAgICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1N1Ym1pdFF1ZXJ5RXJyb3JSZXNwb25zZShlcnIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gICBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwcm9jZXNzU3VibWl0UXVlcnlFcnJvclJlc3BvbnNlKGVycjogYW55KSB7XHJcbiAgICB0aGlzLnNob3dTdWNjZXNzID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXCJlcnJcIiwgZXJyKTtcclxuICAgIGlmKHRoaXMuaXNDc3IgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy51cGRhdGVTdWNjZXNzLmVtaXQoXCJ0cnVlXCIpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICB9XHJcbiAgcHJvY2Vzc1N1Ym1pdFF1ZXJ5UmVzcG9uc2UocmVzOiBhbnkpIHtcclxuICAgIHRoaXMucmVzcG9uc2VDYWxsID0gcmVzO1xyXG4gICAgdGhpcy5jYXNlTm8gPSB0aGlzLnJlc3BvbnNlQ2FsbC5pbnF1aXJ5SWQ7XHJcblxyXG4gICAgaWYgKHRoaXMuY2FzZU5vICE9IFwiMFwiKSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5pbmZvKCdTdWJtaXQgY29udGFjdCB1cyBjYXNlIE5vOicsIHRoaXMuY2FzZU5vKTtcclxuICAgICAgdGhpcy5zaG93U3VjY2VzcyA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3VibWl0U3VjY2VzcyA9IHRydWU7XHJcbiAgICAgIGlmKHRoaXMuaXNDc3IgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVN1Y2Nlc3MuZW1pdChcInRydWVcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcignZmFpbGVkIHRvIHN1Ym1pdCBjb250YWN0IHVzIGNhc2UnKTtcclxuICAgICAgdGhpcy5zaG93U3VjY2VzcyA9IHRydWU7XHJcbiAgICAgIGlmKHRoaXMuaXNDc3IgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVN1Y2Nlc3MuZW1pdChcInRydWVcIik7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xyXG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcclxuXHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcclxuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xyXG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRDb21wbGFpbnRDYXRlZ29yeSgpIHtcclxuICAgIHRoaXMuY21wU2VydmljZS5nZXRDb21wbGFpbnRDYXRlZ29yeSgpLnN1YnNjcmliZSgocmVzOiBDb21wbGFpbnRDYXRlZ29yeU1vZGVsW10pID0+IHtcclxuICAgICAgdGhpcy5jb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdCA9IHJlcztcclxuICAgICAgdGhpcy5jb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdEVtcHIgPSByZXMuZmlsdGVyKHIgPT4gci50eXBlID09PSBcIkVNUFJcIik7XHJcbiAgICAgIHRoaXMuY29tcGxhaW50Q2F0ZWdvcnlSZXRyaXZlZExpc3RDbG10ID0gcmVzLmZpbHRlcihyID0+IHIudHlwZSA9PT0gXCJDTE1UXCIpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICBhY3RpdmVVc2VyVHlwZShldmVudCkge1xyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA9IGV2ZW50Lm9wdGlvbi52YWx1ZTtcclxuICAgIGlmIChjdXJyZW50VmFsdWUgPT09ICdFTVBSJykge1xyXG4gICAgICB0aGlzLmFjdGl2ZUNvbXBsYWludENhdGVnb3J5ID0gdGhpcy5jb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdEVtcHI7XHJcbiAgICAgIHRoaXMuc2VsZWN0QnV0dG9uVmFsaWRhdGlvbigpO1xyXG4gICAgfSBlbHNlIGlmIChjdXJyZW50VmFsdWUgPT09ICdDTE1UJykge1xyXG4gICAgICB0aGlzLmFjdGl2ZUNvbXBsYWludENhdGVnb3J5ID0gdGhpcy5jb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdENsbXQ7XHJcbiAgICAgIHRoaXMuc2VsZWN0QnV0dG9uVmFsaWRhdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0RGVwYXJ0bWVudEJhc2VkT25DYXRlZ29yeShldmVudCkge1xyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgbGV0IGRlcElkID0gY3VycmVudFZhbHVlLmRlcGFydG1lbnRVbml0SWQ7XHJcbiAgICBsZXQgc2VhcmNoZWRfZGVwID0gdGhpcy5hbGxEZXBhcnRtZW50cy5maWx0ZXIoZGVwID0+IGRlcC5rZXkgPT0gZGVwSWQpWzBdO1xyXG4gICAgdGhpcy5kaXZpc2lvbi5zZXRWYWx1ZShzZWFyY2hlZF9kZXApO1xyXG4gICAgdGhpcy5zZWxlY3RlZERlcFR5cGUgPSB0aGlzLmRpdmlzaW9uLnZhbHVlLnR5cGU7XHJcbiAgfVxyXG5cclxuICBmZXRjaFVuaXRzQmFzZWRPbkRlcFR5cGUoZXZlbnQpIHtcclxuICAgIGxldCBkZXB0SWQgPSBldmVudC52YWx1ZS5rZXk7XHJcbiAgICBpZiAodGhpcy5hbGxVbml0cyAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMudW5pdHNCYXNlZE9uRGVwdCA9IHRoaXMuYWxsVW5pdHMuZmlsdGVyKHMgPT4gcy50eXBlID09IGRlcHRJZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRVbml0c0Jhc2VkT25EZXBTZWxlY3RlZCgpIHtcclxuICAgIGlmICh0aGlzLmFsbFVuaXRzICE9IG51bGwgJiYgdGhpcy5zZWxlY3RlZERlcFR5cGUgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnVuaXRzQmFzZWRPbkRlcHQgPSB0aGlzLmFsbFVuaXRzLmZpbHRlcihzID0+IHMudHlwZSA9PSB0aGlzLnNlbGVjdGVkRGVwVHlwZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmZXRjaFVzZXJzQmFzZWRPblVuaXQoZXZlbnQpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRVbml0ID0gZXZlbnQudmFsdWUua2V5O1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRSb2xlICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5nZXRVc2Vyc0Jhc2VkT25EZXB0QW5kUm9sZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hVc2Vyc0Jhc2VkT25Sb2xlcyhldmVudCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvbGUgPSBldmVudC52YWx1ZS50eXBlO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRVbml0ICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5nZXRVc2Vyc0Jhc2VkT25EZXB0QW5kUm9sZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcnNCYXNlZE9uRGVwdEFuZFJvbGUoKSB7XHJcbiAgICB0aGlzLnVzZXJzRkxuYW1lID0gW107XHJcbiAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZGVidWcoJ2ZldGNoaW5nIHVzZXJzIGZvciB1bml0IDogJywgdGhpcy5zZWxlY3RlZFVuaXQgLCAnYW5kIHJvbGUgJywgdGhpcy5zZWxlY3RlZFJvbGUpO1xyXG4gICAgaWYodGhpcy5zZWxlY3RlZFVuaXQgPT0gbnVsbCB8fCB0aGlzLnNlbGVjdGVkUm9sZSA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWN1cml0eVNlcnZpY2UuZ2V0VXNlclVuaXRJZFJvbGVJZCh0aGlzLnNlbGVjdGVkVW5pdCwgdGhpcy5zZWxlY3RlZFJvbGUpLnN1YnNjcmliZShcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgdGhpcy51c2VycyA9IHJlcztcclxuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmRlYnVnKHRoaXMudXNlcnMpO1xyXG4gICAgICBpZih0aGlzLnVzZXJzKXtcclxuICAgICAgICB0aGlzLnVzZXJzLmZvckVhY2goKGUpID0+IHtcclxuICAgICAgICAgIGxldCB0ZW1wOiBDaG9pY2VzTW9kZWwgID0gbmV3IENob2ljZXNNb2RlbCgpO1xyXG4gICAgICAgICAgdGVtcC50ZXh0PShlLmZpcnN0TmFtZSArICcgJyArIGUubGFzdE5hbWUgKyAnICgnKyBlLnVzZXJJZCArJyknKTtcclxuICAgICAgICAgIC8vdGVtcC50ZXh0PWUuZmlyc3ROYW1lICsgJyAnICsgZS5sYXN0TmFtZTtcclxuICAgICAgICAgIHRlbXAudmFsdWUgPSBlLnVzZXJJZDtcclxuICAgICAgICAgIHRoaXMudXNlcnNGTG5hbWUucHVzaCh0ZW1wKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZih0aGlzLnNlbGVjdGVkQ2FzZS5hc3NpZ25lZFRvdXNlciAhPSBudWxsKXtcclxuICAgICAgICAgIHRoaXMuYXNzaWduQ2FzZVRvLnNldFZhbHVlKHRoaXMudXNlcnNGTG5hbWUuZmlsdGVyKGMgPT4gYy52YWx1ZSA9PSB0aGlzLnNlbGVjdGVkQ2FzZS5hc3NpZ25lZFRvdXNlci52YWx1ZSlbMF0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgZXJyID0+IHtcclxuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmluZm8oXCJObyB1c2VyIGNvbmZpZ3VyZWQgZm9yIHRoaXMgcm9sZVwiKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hNc3REZXBhcnRtZW50cygpIHtcclxuICAgIHJldHVybiB0aGlzLmNhc2VTZXJ2aWNlLmZldGNoTXN0RGVwYXJ0bWVudHMoKS5zdWJzY3JpYmUoKHJlczogYW55W10pID0+IHtcclxuICAgICAgdGhpcy5hbGxEZXBhcnRtZW50cyA9IHJlcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hNc3RBbGxVbml0cygpIHtcclxuICAgIHJldHVybiB0aGlzLmNhc2VTZXJ2aWNlLmZldGNoTXN0QWxsVW5pdHMoKS5zdWJzY3JpYmUoKHJlczogYW55W10pID0+IHtcclxuICAgICAgdGhpcy5hbGxVbml0cyA9IHJlcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hNc3RDYXNlQ2xvc2VSZWFzb25zKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FzZVNlcnZpY2UuZmV0Y2hNc3RDYXNlQ2xvc2VSZWFzb25zKCkuc3Vic2NyaWJlKChyZXM6IGFueVtdKSA9PiB7XHJcbiAgICAgIHRoaXMuYWxsQ2xvc2VSZWFzb25zID0gcmVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxSb2xlcygpIHtcclxuICAgIHJldHVybiB0aGlzLmNhc2VTZXJ2aWNlLmdldE1zdE93bmVyR3JvdXBzKCkuc3Vic2NyaWJlKChyZXM6IGFueVtdKSA9PiB7XHJcbiAgICAgIHRoaXMuYWxsUm9sZXMgPSByZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldE1zZ0dlbmVyYXRlZFRocm91Z2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jbXBTZXJ2aWNlLmdldE1zZ0dlbmVyYXRlZFRocm91Z2goKS5zdWJzY3JpYmUoKHJlczogYW55W10pID0+IHtcclxuICAgICAgdGhpcy5tc2dHZW5lcmF0ZWRUaHJvdWdoTGlzdCA9IHJlcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJUeXBlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1sndXNlclR5cGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBmaXJzdE5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydmaXJzdE5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0TmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2xhc3ROYW1lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc3NuKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snc3NuJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY2xhaW1hbnRJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2NsYWltYW50SWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBlYW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydlYW4nXTtcclxuICB9XHJcblxyXG4gIGdldCBmZWluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snZmVpbiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNlbGVjdGVkUmVhc29uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snc2VsZWN0ZWRSZWFzb24nXTtcclxuICB9XHJcblxyXG4gIGdldCBpc3N1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2lzc3VlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1haWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydlbWFpbCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBob25lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1sncGhvbmUnXTtcclxuICB9XHJcblxyXG4gIGdldCBhbHRQaG9uZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2FsdFBob25lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgYWRkcmVzcygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2FkZHJlc3MnXTtcclxuICB9XHJcblxyXG4gIGdldCBjYXB0Y2hhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snY2FwdGNoYSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRpdmlzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snZGl2aXNpb24nXTtcclxuICB9XHJcblxyXG4gIGdldCB1bml0KCl7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWyd1bml0J107XHJcbiAgfVxyXG5cclxuICBnZXQgZ2VuZXJhbEFzc2lnbm1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydnZW5lcmFsQXNzaWdubWVudCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFzc2lnbkNhc2VUbygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2Fzc2lnbkNhc2VUbyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsb3NlQ2FzZVJlYXNvbigpe1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snY2xvc2VDYXNlUmVhc29uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZ2VuZXJhdGVkVGhyb3VnaCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2dlbmVyYXRlZFRocm91Z2gnXTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4iLCI8aDEgY2xhc3M9XCJjb250YWN0VXNQYWdlVGl0bGVcIiAgXHJcbipuZ0lmPVwiaXNOZXdDYXNlXCI+e3snY29udGFjdC51cy5wYWdlVGl0bGUnIHwgdHJhbnNsYXRlfX08L2gxPlxyXG5cclxuPGRpdiAqbmdJZj1cIiFzaG93U3VjY2Vzc1wiPlxyXG4gIDxzcGFuIHN0eWxlPVwiZm9udC1mYW1pbHk6IHZhcigtLWFwcC1mb250LWxpZ2h0KVwiPlxyXG4gICAgPHAgKm5nSWY9XCJpc05ld0Nhc2VcIiBjbGFzcz1cImNvbnRhY3RVc1BhZ2VIZWFkZXJcIiA+XHJcbiAgICB7eydjb250YWN0LnVzLnBhZ2VIZWFkZXInIHwgdHJhbnNsYXRlfX1cclxuICAgIDwvcD5cclxuICA8L3NwYW4+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJjb250YWN0VXNGb3JtXCIgI2NvbnRhY3RGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCIgKG5nU3VibWl0KT1cInN1Ym1pdENvbnRhY3RVc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgZ3JpZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cInR5cGVcIj57e1wiY29udGFjdC51cy51c2VyVHlwZVwifCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cInR5cGVcIiBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyVHlwZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgKG9uT3B0aW9uQ2xpY2spPVwiYWN0aXZlVXNlclR5cGUoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3VzZXJUeXBlJyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTZcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiZmlyc3ROYW1lXCI+e3tcImNvbnRhY3QudXMuZmlyc3RuYW1lXCJ8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cImZpcnN0TmFtZVwiIG1heGxlbmd0aD1cIjMwXCIgLz5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmlyc3ROYW1lJyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTZcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwibGFzdE5hbWVcIj57eydjb250YWN0LnVzLmxhc3ROYW1lJ3wgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwibGFzdE5hbWVcIiBtYXhsZW5ndGg9XCIzMFwiIC8+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2xhc3ROYW1lJyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNlwiICpuZ0lmPVwidXNlclR5cGUudmFsdWU9PSdDTE1UJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJzc25cIj57eydjb250YWN0LnVzLnNzbid8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cclxuICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJzc25cIiAob25Gb2N1cyk9XCJpbnB1dFR5cGU9J3RleHQnXCIgKG9uQmx1cik9XCJpbnB1dFR5cGU9J3Bhc3N3b3JkJ1wiXHJcbiAgICAgICAgICBbdHlwZV09XCJpbnB1dFR5cGVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzc24nIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC02XCIgKm5nSWY9XCJ1c2VyVHlwZS52YWx1ZT09J0NMTVQnXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImNsYWltYW50SWRcIj57eydjb250YWN0LnVzLmNsYWltYW50SUQnfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XHJcbiAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwiY2xhaW1hbnRJZFwiIG1vZGU9XCJkZWNpbWFsXCIgaW5wdXRJZD1cImNsYWltYW50SWRcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJvcHRpb25hbFwiIG1heGxlbmd0aD1cIjhcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiICpuZ0lmPVwidXNlclR5cGUudmFsdWU9PSdFTVBSJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJlYW5cIj57eydjb250YWN0LnVzLmVhbid8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cclxuICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OTk5OTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJlYW5cIiAob25Gb2N1cyk9XCJpbnB1dFR5cGU9J3RleHQnXCJcclxuICAgICAgICAgIChvbkJsdXIpPVwiaW5wdXRUeXBlPSdwYXNzd29yZCdcIiBbdHlwZV09XCJpbnB1dFR5cGVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlYW4nIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiICpuZ0lmPVwidXNlclR5cGUudmFsdWU9PSdFTVBSJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJmZWluXCI+e3snY29udGFjdC51cy5mZWluJ3wgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5OTk5OTk5XCIgZm9ybUNvbnRyb2xOYW1lPVwiZmVpblwiIChvbkZvY3VzKT1cImlucHV0VHlwZT0ndGV4dCdcIlxyXG4gICAgICAgICAgKG9uQmx1cik9XCJpbnB1dFR5cGU9J3Bhc3N3b3JkJ1wiIFt0eXBlXT1cImlucHV0VHlwZVwiPjwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlaW4nIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIiAqbmdJZj1cInVzZXJUeXBlLnZhbHVlPT0nQ0xNVCcgfHwgdXNlclR5cGUudmFsdWU9PSdFTVBSJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJzZWxlY3RlZFJlYXNvblwiPnt7J2NvbnRhY3QudXMuc2VsZWN0ZWRSZWFzb24nfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XHJcbiAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiYWN0aXZlQ29tcGxhaW50Q2F0ZWdvcnlcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZFJlYXNvblwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGNhdGVnb3J5XCJcclxuICAgICAgICAgIG9wdGlvbkxhYmVsPVwiZGVzY3JpcHRpb25cIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGNsYXNzPVwicXVlcnlDYXRlZ29yeVwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG4gICAgICAgIDwvcC1kcm9wZG93bj5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VsZWN0ZWRSZWFzb24nIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMlwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJpc3N1ZVwiPnt7J2NvbnRhY3QudXMuaXNzdWUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XHJcbiAgICAgICAgPHRleHRhcmVhIHBJbnB1dFRleHRhcmVhIGZvcm1Db250cm9sTmFtZT1cImlzc3VlXCIgbWF4bGVuZ3RoPVwiNTAwXCI+PC90ZXh0YXJlYT48YnIgLz5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naXNzdWUnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgPHNtYWxsPnt7J2NvbnRhY3QudXMuaXNzdWVOb3Rlcyd8IHRyYW5zbGF0ZX19PC9zbWFsbD5cclxuICAgICAgICBcclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImVtYWlsXCI+e3snY29udGFjdC51cy5lbWFpbCd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgbWF4bGVuZ3RoPVwiMTAwXCIgLz5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1haWwnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJywgZW1haWw6ICdFbnRlciBhIHZhbGlkIGVtYWlsJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJwaG9uZVwiPnt7J2NvbnRhY3QudXMucGhvbmUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgPHAtaW5wdXRNYXNrIG1hc2s9XCIoOTk5KSA5OTktOTk5OVwiIGZvcm1Db250cm9sTmFtZT1cInBob25lXCIgcGxhY2Vob2xkZXI9XCIoOTk5KSA5OTktOTk5OVwiIHVubWFzaz1cInRydWVcIj5cclxuICAgICAgICA8L3AtaW5wdXRNYXNrPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJhbHRQaG9uZVwiPnt7J2NvbnRhY3QudXMuYWx0UGhvbmUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgPHAtaW5wdXRNYXNrIG1hc2s9XCIoOTk5KSA5OTktOTk5OVwiIGZvcm1Db250cm9sTmFtZT1cImFsdFBob25lXCIgcGxhY2Vob2xkZXI9XCIoOTk5KSA5OTktOTk5OVwiIHVubWFzaz1cInRydWVcIj5cclxuICAgICAgICA8L3AtaW5wdXRNYXNrPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMlwiPlxyXG4gICAgICAgIDxhcHAtYWRkcmVzcyBbZnJvbVBvcHVwXT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCI+PC9hcHAtYWRkcmVzcz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIiAqbmdJZj1cIiFpc0NzclwiPlxyXG4gICAgICAgIDxhcHAtY2FwdGNoYSBmb3JtQ29udHJvbE5hbWU9XCJjYXB0Y2hhXCI+PC9hcHAtY2FwdGNoYT5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nY2FwdGNoYScgW2Zvcm1dPVwiY29udGFjdEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC02XCIgKm5nSWY9XCJpc0NzclwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJkaXZpc2lvblwiPnt7J2NvbnRhY3QudXMuZGl2aXNpb24nfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiYWxsRGVwYXJ0bWVudHNcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXZpc2lvblwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IERlcGFydG1lbnRcIlxyXG4gICAgICAgICAgb3B0aW9uTGFiZWw9XCJ2YWx1ZVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgY2xhc3M9XCJyb2xlTmFtZVwiIGFwcGVuZFRvPVwiYm9keVwiIChvbkNoYW5nZSk9XCJmZXRjaFVuaXRzQmFzZWRPbkRlcFR5cGUoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvcC1kcm9wZG93bj5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGl2aXNpb24nIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC02XCIgKm5nSWY9XCJpc0NzclwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJ1bml0XCI+e3snY29udGFjdC51cy51bml0J3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInVuaXRzQmFzZWRPbkRlcHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ1bml0XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVW5pdFwiXHJcbiAgICAgICAgICBvcHRpb25MYWJlbD1cInZhbHVlXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBjbGFzcz1cInJvbGVOYW1lXCIgYXBwZW5kVG89XCJib2R5XCIgKG9uQ2hhbmdlKT1cImZldGNoVXNlcnNCYXNlZE9uVW5pdCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9wLWRyb3Bkb3duPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd1bml0JyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNlwiICpuZ0lmPVwiaXNDc3JcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiZ2VuZXJhbEFzc2lnbm1lbnRcIj57eydjb250YWN0LnVzLmdlbmVyYWxBc3NpZ25tZW50J3wgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImFsbFJvbGVzXCIgZm9ybUNvbnRyb2xOYW1lPVwiZ2VuZXJhbEFzc2lnbm1lbnRcIiAob25DaGFuZ2UpPVwiZmV0Y2hVc2Vyc0Jhc2VkT25Sb2xlcygkZXZlbnQpXCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IEFzc2lnbm1lbnRcIiBvcHRpb25MYWJlbD1cInZhbHVlXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBcclxuICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZ2VuZXJhbEFzc2lnbm1lbnQnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC02XCIgKm5nSWY9XCJpc0NzclwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJhc3NpZ25DYXNlVG9cIj57e1wiY29udGFjdC51cy5hc3NpZ25DYXNlVG9cInwgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwidXNlcnNGTG5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJhc3NpZ25DYXNlVG9cIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJBc3NpZ24gQ2FzZSBUb1wiICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIFxyXG4gICAgICAgICAgYXBwZW5kVG89XCJib2R5XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2Fzc2lnbkNhc2VUbycgW2Zvcm1dPVwiY29udGFjdEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgIDwvZGl2PiAgICBcclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiICpuZ0lmPVwiaXNDc3JcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiZ2VuZXJhdGVkVGhyb3VnaFwiPnt7XCJjb250YWN0LnVzLm1zZ0dlbmVyYXRlZFRocm91Z2hcInwgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cIm1zZ0dlbmVyYXRlZFRocm91Z2hMaXN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZ2VuZXJhdGVkVGhyb3VnaFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIk1lc3NhZ2UgZ2VuZXJhdGVkIHRocm91Z2hcIiAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBvcHRpb25MYWJlbD1cImRlc2NyaXB0aW9uXCIgXHJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2dlbmVyYXRlZFRocm91Z2gnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj4gXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIiAqbmdJZj1cImlzQ3NyICYmIHNlbGVjdGVkQ2FzZVwiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cImNsb3NlQ2FzZVJlYXNvblwiPnt7XCJjb250YWN0LnVzLmNsb3NlXCJ8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cclxuICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImFsbENsb3NlUmVhc29uc1wiIGZvcm1Db250cm9sTmFtZT1cImNsb3NlQ2FzZVJlYXNvblwiIGNsYXNzPVwicXVlcnlDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFJlYXNvblwiICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIG9wdGlvbkxhYmVsPVwiZGVzY3JpcHRpb25cIiBcclxuICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgc2hvd0NsZWFyPVwidHJ1ZVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJzaG93U3VjY2Vzc1wiPlxyXG4gIDxkaXYgKm5nSWY9XCJzdWJtaXRTdWNjZXNzXCI+XHJcbiAgICA8aW9uLXJvdz5cclxuICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1sZWZ0IHRleHQtbGdcIiBzdHlsZT1cImZvbnQtZmFtaWx5OiB2YXIoLS1hcHAtZm9udC1saWdodClcIj5cclxuICAgICAge3snY29udGFjdC51cy5zdWNjZXNzTXNnJ3wgdHJhbnNsYXRlfX08c3BhblxyXG4gICAgICAgICAgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDsgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcIj57e2Nhc2VOb319PC9zcGFuPlxyXG4gICAgICA8L2lvbi1jb2w+XHJcbiAgICA8L2lvbi1yb3c+XHJcbiAgICA8aW9uLXJvdz5cclxuICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1jaXJjbGVcIiBzdHlsZT1cImZvbnQtc2l6ZTogODBweDsgY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmVlbik7XCJcclxuICAgICAgICAgIGNsYXNzPVwiem9vbWluIGFuaW1hdGlvbi1kdXJhdGlvbi0xMDAwXCI+PC9pb24taWNvbj5cclxuICAgICAgPC9pb24tY29sPlxyXG4gICAgPC9pb24tcm93PlxyXG4gICAgPGlvbi1yb3c+XHJcbiAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtbGVmdCB0ZXh0LWxnIGNvbnRhY3RVc1BhZ2VIZWFkZXJcIj5cclxuICAgICAgICB7eydjb250YWN0LnVzLmNvbnRhY3RBZ2Fpbid8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvaW9uLWNvbD5cclxuICAgIDwvaW9uLXJvdz5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiIXN1Ym1pdFN1Y2Nlc3NcIj5cclxuICAgIDxpb24tcm93PlxyXG4gICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWxlZnQgdGV4dC1sZ1wiIHN0eWxlPVwiZm9udC1mYW1pbHk6IHZhcigtLWFwcC1mb250LWxpZ2h0KVwiPlxyXG4gICAgICAgIHt7J2NvbnRhY3QudXMuZmFpbGVkTXNnJ3wgdHJhbnNsYXRlfX1cclxuICAgICAgPC9pb24tY29sPlxyXG4gICAgPC9pb24tcm93PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgaW9uLXRleHQtcmlnaHRcIj5cclxuICA8aW9uLWJ1dHRvbiAqbmdJZj1cIiFzaG93U3VjY2VzcyAmJiAhaXNDc3JcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGNvbG9yPVwicHJpbWFyeVwiIFxyXG4gIChjbGljayk9XCJzdWJtaXRDb250YWN0VXMoY29udGFjdFVzRm9ybSlcIj5TdWJtaXRcclxuICA8L2lvbi1idXR0b24+XHJcbiAgPGlvbi1idXR0b24gKm5nSWY9XCIhaXNDc3JcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJlbWl0SGlkZSgkZXZlbnQpXCI+XHJcbiAgICBDbG9zZVxyXG4gIDwvaW9uLWJ1dHRvbj5cclxuPC9kaXY+Il19
|
|
983
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContactUsComponent, { className: "ContactUsComponent", filePath: "lib\\components\\contact-us\\contact-us.component.ts", lineNumber: 27 }); })();
|
|
984
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC11cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29udGFjdC11cy9jb250YWN0LXVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9jb250YWN0LXVzL2NvbnRhY3QtdXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFvQixVQUFVLEVBQThCLFNBQVMsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0osT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDN0YsT0FBTyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBTzdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNiaEUsNkJBQ2tCO0lBQUEsWUFBc0M7O0lBQUEsaUJBQUs7O0lBQTNDLGVBQXNDO0lBQXRDLGtFQUFzQzs7O0lBSXBELDZCQUFrRDtJQUNsRCxZQUNBOztJQUFBLGlCQUFJOztJQURKLGVBQ0E7SUFEQSw4RUFDQTs7Ozs7SUEyQkUsK0JBQXdELGdCQUFBO0lBQ3JDLFlBQStCOztJQUFBLGlCQUFRO0lBQUEscUJBQU07SUFDOUQsdUNBQ3FCO0lBRDBCLHFOQUFxQixNQUFNLEtBQUMsc01BQXFCLFVBQVUsS0FBL0I7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WUFJTixZQUFZO2tCQURYLEtBQUs7WUFJTixXQUFXO2tCQURWLE1BQU07WUFJUCxPQUFPO2tCQUROLE1BQU07WUFJUCxhQUFhO2tCQURaLE1BQU07WUFJUCxNQUFNO2tCQURMLE1BQU07WUFJUCxNQUFNO2tCQURMLE1BQU07WUFJQSxvQkFBb0I7a0JBRDFCLFNBQVM7bUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztrRkEvQ3pDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIE5nRm9ybSwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDYXNlQ29yZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NtcC9DYXNlQ29yZU1vZGVsJztcclxuaW1wb3J0IHsgQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbXAvQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbCc7XHJcbmltcG9ydCB7IENvbXBsYWludENhdGVnb3J5T3V0cHV0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY21wL0NvbXBsYWludENhdGVnb3J5T3V0cHV0TW9kZWwnO1xyXG5pbXBvcnQgeyBDaG9pY2VzTW9kZWwsIENvbnRhY3RVc0lucXVlcnlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbXAvY29udGFjdFVzSW5xdWVyeU1vZGVsJztcclxuaW1wb3J0IHsgS2V5VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0tleVZhbHVlTW9kZWwnO1xyXG5pbXBvcnQgeyBDYXNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2Utc2VydmljZS9jYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY21wLXNlcnZpY2UvY21wLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VjdXJpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VjdXJpdHktc2VydmljZS9zZWN1cml0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFJlZ2V4IH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwUmVnZXgnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvbnRhY3QtdXMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LXVzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb250YWN0LXVzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogQ29udGFjdFVzQ29tcG9uZW50LFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGFjdFVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIHB1YmxpYyBjb250YWN0VXNGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBjb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdDogQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbFtdO1xyXG4gIHB1YmxpYyBjb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdEVtcHI6IENvbXBsYWludENhdGVnb3J5TW9kZWxbXTtcclxuICBwdWJsaWMgY29tcGxhaW50Q2F0ZWdvcnlSZXRyaXZlZExpc3RDbG10OiBDb21wbGFpbnRDYXRlZ29yeU1vZGVsW107XHJcbiAgcHVibGljIGFjdGl2ZUNvbXBsYWludENhdGVnb3J5OiBDb21wbGFpbnRDYXRlZ29yeU1vZGVsW107XHJcbiAgcHVibGljIGNhc2VObzogc3RyaW5nO1xyXG4gIHB1YmxpYyByZXNwb25zZUNhbGw6IGFueTtcclxuICBwdWJsaWMgYWxsRGVwYXJ0bWVudHM6IEtleVZhbHVlTW9kZWxbXTtcclxuICBwdWJsaWMgYWxsVW5pdHM6IEtleVZhbHVlTW9kZWxbXTtcclxuICBwdWJsaWMgdW5pdHNCYXNlZE9uRGVwdDogS2V5VmFsdWVNb2RlbFtdO1xyXG4gIHB1YmxpYyBhbGxDbG9zZVJlYXNvbnM6IEtleVZhbHVlTW9kZWxbXTtcclxuICBwdWJsaWMgYWxsUm9sZXM6IEtleVZhbHVlTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyB1c2VyczogYW55W107XHJcbiAgcHVibGljIHVzZXJzRkxuYW1lOiBBcnJheTxDaG9pY2VzTW9kZWw+ID0gW107XHJcbiAgcHVibGljIHVuaXRJRDogYW55O1xyXG4gIHB1YmxpYyBzZWxlY3RlZERlcDogYW55O1xyXG4gIHB1YmxpYyBzZWxlY3RlZERlcFR5cGU6IGFueTtcclxuICBwdWJsaWMgc2VsZWN0ZWRSb2xlOiBhbnk7XHJcbiAgcHVibGljIHNlbGVjdGVkVW5pdDogYW55O1xyXG4gIHB1YmxpYyBtc2dHZW5lcmF0ZWRUaHJvdWdoTGlzdDogYW55O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGlzQ3NyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaXNOZXdDYXNlIDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWRDYXNlIDogQ2FzZUNvcmVNb2RlbDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgbW9kZWxDYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB1cGRhdGVTdWNjZXNzIDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSGlkZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uTG9hZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhY3RGb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIGNvbnRhY3RGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcblxyXG4gIHNob3dTdWNjZXNzID0gZmFsc2U7XHJcbiAgZGlzcGxheTogYm9vbGVhbiA9IHRydWU7XHJcbiAgc3VibWl0U3VjY2VzcyA9IGZhbHNlO1xyXG4gIGlucHV0VHlwZSA9ICd0ZXh0JztcclxuXHJcbiAgdHlwZTogQ2hvaWNlc01vZGVsW10gPSBbXHJcbiAgICB7IHRleHQ6ICdhIGNsYWltYW50JywgdmFsdWU6ICdDTE1UJyB9LFxyXG4gICAgeyB0ZXh0OiAnYW4gZW1wbG95ZXInLCB2YWx1ZTogJ0VNUFInIH1cclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHVibGljIGNhc2VTZXJ2aWNlOiBDYXNlU2VydmljZSwgcHVibGljIGNtcFNlcnZpY2U6IENtcFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VjdXJpdHlTZXJ2aWNlOiBTZWN1cml0eVNlcnZpY2UsIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSwgcHVibGljIGxvZ2dlclNlcnZpY2U6IExvZ2dlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkgeyB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKHZhbHVlOiBTdHJpbmcpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaDogRnVuY3Rpb24gPSAoKSA9PiB7XHJcbiAgfTtcclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm5cclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm5cclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbnRhY3RVc0Zvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgJ3VzZXJUeXBlJzogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnZmlyc3ROYW1lJzogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnbGFzdE5hbWUnOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdzc24nOiBbbnVsbF0sXHJcbiAgICAgICdjbGFpbWFudElkJzogW251bGxdLFxyXG4gICAgICAnZWFuJzogW251bGxdLFxyXG4gICAgICAnZmVpbic6IFtudWxsXSxcclxuICAgICAgJ3NlbGVjdGVkUmVhc29uJzogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnaXNzdWUnOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdlbWFpbCc6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5tYXRjaChBcHBSZWdleC5FTUFJTF9SRUdFWCwgeyBlbWFpbDogdHJ1ZSB9KV1dLFxyXG4gICAgICAncGhvbmUnOiBbbnVsbF0sXHJcbiAgICAgICdhbHRQaG9uZSc6IFtudWxsXSxcclxuICAgICAgJ2FkZHJlc3MnOiBbbnVsbF0sXHJcbiAgICAgICdkaXZpc2lvbic6IFtudWxsXSxcclxuICAgICAgJ3VuaXQnOiBbbnVsbF0sXHJcbiAgICAgICdnZW5lcmFsQXNzaWdubWVudCc6IFtudWxsXSxcclxuICAgICAgJ2Fzc2lnbkNhc2VUbyc6IFtudWxsXSxcclxuICAgICAgJ2Nsb3NlQ2FzZVJlYXNvbic6W251bGxdLFxyXG4gICAgICAnZ2VuZXJhdGVkVGhyb3VnaCc6W251bGxdLFxyXG4gICAgICAnY2FwdGNoYSc6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIHRoaXMuc2VsZWN0QnV0dG9uVmFsaWRhdGlvbigpO1xyXG4gICAgdGhpcy5zZWxlY3RDU1J2YWxpZGF0aW9uKCk7XHJcbiAgICB0aGlzLmdldENvbXBsYWludENhdGVnb3J5KCk7XHJcbiAgICB0aGlzLmZldGNoTXN0RGVwYXJ0bWVudHMoKTtcclxuICAgIHRoaXMuZmV0Y2hNc3RBbGxVbml0cygpO1xyXG4gICAgdGhpcy5mZXRjaE1zdENhc2VDbG9zZVJlYXNvbnMoKTtcclxuICAgIHRoaXMuZ2V0QWxsUm9sZXMoKTtcclxuICAgIHRoaXMuZ2V0TXNnR2VuZXJhdGVkVGhyb3VnaCgpO1xyXG5cclxuICAgIGlmKHRoaXMuc2VsZWN0ZWRDYXNlICYmIHRoaXMuaXNDc3IgPT0gdHJ1ZSl7XHJcbiAgICAgIHRoaXMubG9hZFByZVNhdmVkQ29udGFjdFVzRGV0YWlscygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZFByZVNhdmVkQ29udGFjdFVzRGV0YWlscygpe1xyXG4gICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmRlYnVnKFwic2VsZWN0ZWQgY2FzZSA6IFwiLCB0aGlzLnNlbGVjdGVkQ2FzZSk7XHJcbiAgICB0aGlzLmNtcFNlcnZpY2UuZmV0Y2hJbnF1aXJ5RGV0YWlsc0J5SW5xdWlyeUlkKHRoaXMuc2VsZWN0ZWRDYXNlLmNhc2VOdW1iZXIpLnN1YnNjcmliZShcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbyhyZXMpO1xyXG4gICAgICAgIHRoaXMuY29udGFjdFVzRm9ybS5wYXRjaFZhbHVlKHJlcyk7XHJcbiAgICAgICAgdGhpcy51c2VyVHlwZS5zZXRWYWx1ZShyZXNbXCJ1c2VyVHlwZVwiXS52YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5kaXZpc2lvbi5zZXRWYWx1ZSh0aGlzLmFsbERlcGFydG1lbnRzLmZpbHRlcihjID0+IGMua2V5ID09IHRoaXMuc2VsZWN0ZWRDYXNlLmRlcGFydG1lbnQua2V5KVswXSk7XHJcbiAgICAgICAgdGhpcy5nZW5lcmFsQXNzaWdubWVudC5zZXRWYWx1ZSh0aGlzLmFsbFJvbGVzLmZpbHRlcihjID0+IGMudmFsdWUgPT0gdGhpcy5zZWxlY3RlZENhc2UubGV2ZWwudGV4dClbMF0pO1xyXG5cclxuICAgICAgICBpZiAocmVzW1widXNlclR5cGVcIl0udmFsdWUgPT09ICdFTVBSJykge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVDb21wbGFpbnRDYXRlZ29yeSA9IHRoaXMuY29tcGxhaW50Q2F0ZWdvcnlSZXRyaXZlZExpc3RFbXByO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RCdXR0b25WYWxpZGF0aW9uKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXNbXCJ1c2VyVHlwZVwiXS52YWx1ZSA9PT0gJ0NMTVQnKSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZUNvbXBsYWludENhdGVnb3J5ID0gdGhpcy5jb21wbGFpbnRDYXRlZ29yeVJldHJpdmVkTGlzdENsbXQ7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJlYXNvbi5zZXRWYWx1ZSh0aGlzLmFjdGl2ZUNvbXBsYWludENhdGVnb3J5LmZpbHRlcihjID0+IGMuY29tcGxhaW50Q2F0ZWdvcnlJZCA9PSByZXMuY29tcGxhaW50Q2F0ZWdvcnkpWzBdKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERlcFR5cGUgPSB0aGlzLmRpdmlzaW9uLnZhbHVlLmtleTtcclxuICAgICAgICB0aGlzLmdldFVuaXRzQmFzZWRPbkRlcFNlbGVjdGVkKCk7XHJcbiAgICAgICAgaWYodGhpcy5zZWxlY3RlZENhc2UudW5pdCAhPSBudWxsKXtcclxuICAgICAgICAgIHRoaXMudW5pdC5zZXRWYWx1ZSh0aGlzLnVuaXRzQmFzZWRPbkRlcHQuZmlsdGVyKGMgPT4gYy5rZXkgPT0gdGhpcy5zZWxlY3RlZENhc2UudW5pdC5rZXkpWzBdKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVbml0ID0gdGhpcy51bml0LnZhbHVlLmtleTtcclxuICAgICAgICB9ICAgICAgIFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb2xlID0gdGhpcy5nZW5lcmFsQXNzaWdubWVudC52YWx1ZS50eXBlO1xyXG4gICAgICAgIHRoaXMuZ2V0VXNlcnNCYXNlZE9uRGVwdEFuZFJvbGUoKTtcclxuICAgICAgICBpZih0aGlzLnNlbGVjdGVkQ2FzZS5jbG9zZUNhc2VSZWFzb24gIT0gbnVsbCl7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlQ2FzZVJlYXNvbi5zZXRWYWx1ZSh0aGlzLmFsbENsb3NlUmVhc29ucy5maWx0ZXIoYyA9PiBjLmtleSA9PSB0aGlzLnNlbGVjdGVkQ2FzZS5jbG9zZUNhc2VSZWFzb24udmFsdWUpWzBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKHJlcy5nZW5lcmF0ZWRUaHJvdWdoICE9IG51bGwpe1xyXG4gICAgICAgICAgdGhpcy5nZW5lcmF0ZWRUaHJvdWdoLnNldFZhbHVlKHRoaXMubXNnR2VuZXJhdGVkVGhyb3VnaExpc3QuZmlsdGVyKGMgPT4gYy5rZXkgPT0gcmVzLmdlbmVyYXRlZFRocm91Z2gudmFsdWUpWzBdKTtcclxuICAgICAgICB9XHJcbiAgICAgIFxyXG5cdCAgICAgIHRoaXMub25Mb2FkLmVtaXQocmVzKTtcclxuICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXCJVbmFibGUgdG8gZmV0Y2ggaW5xdWlyeSBkZXRhaWxzLlwiKTtcclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZW1pdEhpZGUoZXZlbnQpIHtcclxuICAgIHRoaXMub25IaWRlLmVtaXQoZXZlbnQpO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dTdWNjZXNzID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RCdXR0b25WYWxpZGF0aW9uKCkge1xyXG4gICAgdGhpcy51c2VyVHlwZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcblxyXG4gICAgICBpZiAodmFsID09PSAnQ0xNVCcpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zc24pO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lYW4pO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5mZWluKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsID09PSAnRU1QUicpIHtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuc3NuKTtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lYW4pO1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmZlaW4pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0Q1NSdmFsaWRhdGlvbigpIHtcclxuICAgIGlmICh0aGlzLmlzQ3NyKSB7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmRpdmlzaW9uKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMudW5pdCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmdlbmVyYWxBc3NpZ25tZW50KTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuYXNzaWduQ2FzZVRvKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZ2VuZXJhdGVkVGhyb3VnaCk7XHJcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5jYXB0Y2hhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1Ym1pdENvbnRhY3RVcyhpbnB1dCA6IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRhY3RVc0Zvcm0udmFsaWQpIHtcclxuICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5jb250YWN0VXNGb3JtKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGNvbnRhY3RVc0lucXVpcnlNb2RlbDogQ29udGFjdFVzSW5xdWVyeU1vZGVsID0gbmV3IENvbnRhY3RVc0lucXVlcnlNb2RlbCgpO1xyXG5cclxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmlucXVpcnlCeSA9IHRoaXMudXNlclR5cGUudmFsdWU7XHJcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5maXJzdE5hbWUgPSB0aGlzLmZpcnN0TmFtZS52YWx1ZTtcclxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmxhc3ROYW1lID0gdGhpcy5sYXN0TmFtZS52YWx1ZTtcclxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLnNzbiA9IHRoaXMuc3NuLnZhbHVlO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuY2xhaW1hbnRJZCA9IHRoaXMuY2xhaW1hbnRJZC52YWx1ZTtcclxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmVhbiA9IHRoaXMuZWFuLnZhbHVlO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuZmVpbiA9IHRoaXMuZmVpbi52YWx1ZTtcclxuXHJcbiAgICAgIGxldCBjaG9pY2VNb2RlbDogQ29tcGxhaW50Q2F0ZWdvcnlPdXRwdXRNb2RlbCA9IG5ldyBDb21wbGFpbnRDYXRlZ29yeU91dHB1dE1vZGVsKCk7XHJcbiAgICAgIGNob2ljZU1vZGVsLnRleHQgPSB0aGlzLnNlbGVjdGVkUmVhc29uLnZhbHVlLmRlc2NyaXB0aW9uO1xyXG4gICAgICBjaG9pY2VNb2RlbC52YWx1ZSA9IHRoaXMuc2VsZWN0ZWRSZWFzb24udmFsdWUuY29tcGxhaW50Q2F0ZWdvcnlJZDtcclxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmNvbXBsYWludENhdGVnb3J5ID0gY2hvaWNlTW9kZWw7XHJcblxyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwucXVlc3Rpb24gPSB0aGlzLmlzc3VlLnZhbHVlO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuZW1haWwgPSB0aGlzLmVtYWlsLnZhbHVlO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwucGhvbmUgPSB0aGlzLnBob25lLnZhbHVlO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuYWx0UGhvbmUgPSB0aGlzLmFsdFBob25lLnZhbHVlO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuc3RyZWV0QWRkcmVzcyA9IHRoaXMuYWRkcmVzcy52YWx1ZT8uc3RyZWV0QWRkcmVzcztcclxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLm9wdGlvbmFsQWRkcmVzcyA9IHRoaXMuYWRkcmVzcy52YWx1ZT8ub3B0aW9uYWxBZGRyZXNzO1xyXG4gICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuY2l0eSA9IHRoaXMuYWRkcmVzcy52YWx1ZT8uY2l0eTtcclxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLnN0YXRlID0gdGhpcy5hZGRyZXNzLnZhbHVlPy5zdGF0ZT8udmFsdWU7XHJcbiAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC56aXAgPSB0aGlzLmFkZHJlc3MudmFsdWU/LnppcDtcclxuICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmNvdW50cnkgPSB0aGlzLmFkZHJlc3MudmFsdWU/LmNvdW50cnkudmFsdWU7XHJcblxyXG4gICAgICBpZih0aGlzLmlzQ3NyID09PSBmYWxzZSl7XHJcbiAgICAgICAgbGV0IGNob2ljZU1vZGVsOiBDaG9pY2VzTW9kZWwgPSBuZXcgQ2hvaWNlc01vZGVsKCk7XHJcbiAgICAgICAgY2hvaWNlTW9kZWwudGV4dCA9IFwiU2VsZiBzZXJ2aWNlXCI7XHJcbiAgICAgICAgY2hvaWNlTW9kZWwudmFsdWUgPSBcIlNFTEZcIjtcclxuICAgICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuZ2VuZXJhdGVkVGhyb3VnaCA9IGNob2ljZU1vZGVsO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMuaXNDc3IgPT09IHRydWUpe1xyXG4gICAgICAgIGxldCBjaG9pY2VNb2RlbDM6IENob2ljZXNNb2RlbCA9IG5ldyBDaG9pY2VzTW9kZWwoKTtcclxuICAgICAgICBjaG9pY2VNb2RlbDMudGV4dCA9IHRoaXMuZGl2aXNpb24udmFsdWUudmFsdWU7XHJcbiAgICAgICAgY2hvaWNlTW9kZWwzLnZhbHVlID0gdGhpcy5kaXZpc2lvbi52YWx1ZS5rZXk7XHJcbiAgICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmRpdmlzaW9uID0gY2hvaWNlTW9kZWwzO1xyXG5cclxuICAgICAgICBsZXQgY2hvaWNlTW9kZWw2OiBDaG9pY2VzTW9kZWwgPSBuZXcgQ2hvaWNlc01vZGVsKCk7XHJcbiAgICAgICAgY2hvaWNlTW9kZWw2LnRleHQgPSB0aGlzLnVuaXQudmFsdWUudmFsdWU7XHJcbiAgICAgICAgY2hvaWNlTW9kZWw2LnZhbHVlID0gdGhpcy51bml0LnZhbHVlLmtleTtcclxuICAgICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwudW5pdCA9IGNob2ljZU1vZGVsNjtcclxuXHJcbiAgICAgICAgbGV0IGNob2ljZU1vZGVsOiBDaG9pY2VzTW9kZWwgPSBuZXcgQ2hvaWNlc01vZGVsKCk7XHJcbiAgICAgICAgY2hvaWNlTW9kZWwudGV4dCA9IHRoaXMuZ2VuZXJhbEFzc2lnbm1lbnQudmFsdWUuZGVzY3JpcHRpb247XHJcbiAgICAgICAgY2hvaWNlTW9kZWwudmFsdWUgPSB0aGlzLmdlbmVyYWxBc3NpZ25tZW50LnZhbHVlLmtleTtcclxuICAgICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuY2FzZU93bmVyR3JvdXBLZXkgPSBjaG9pY2VNb2RlbDtcclxuXHJcbiAgICAgICAgbGV0IGNob2ljZU1vZGVsMjogQ2hvaWNlc01vZGVsID0gbmV3IENob2ljZXNNb2RlbCgpO1xyXG4gICAgICAgIGNob2ljZU1vZGVsMi50ZXh0ID0gdGhpcy5hc3NpZ25DYXNlVG8udmFsdWUudGV4dDtcclxuICAgICAgICBjaG9pY2VNb2RlbDIudmFsdWUgPSB0aGlzLmFzc2lnbkNhc2VUby52YWx1ZS52YWx1ZTtcclxuICAgICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuYXNzaWduQ2FzZVRvID0gY2hvaWNlTW9kZWwyOyBcclxuXHJcbiAgICAgICAgaWYodGhpcy5jbG9zZUNhc2VSZWFzb24udmFsdWUgIT0gbnVsbCl7XHJcbiAgICAgICAgICBsZXQgY2hvaWNlTW9kZWw0OiBDaG9pY2VzTW9kZWwgPSBuZXcgQ2hvaWNlc01vZGVsKCk7XHJcbiAgICAgICAgICBjaG9pY2VNb2RlbDQudGV4dCA9IHRoaXMuY2xvc2VDYXNlUmVhc29uLnZhbHVlLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgY2hvaWNlTW9kZWw0LnZhbHVlID0gdGhpcy5jbG9zZUNhc2VSZWFzb24udmFsdWUua2V5O1xyXG4gICAgICAgICAgY29udGFjdFVzSW5xdWlyeU1vZGVsLmNsb3NlQ2FzZVJlYXNvbiA9IGNob2ljZU1vZGVsNDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKHRoaXMuZ2VuZXJhdGVkVGhyb3VnaC52YWx1ZSAhPSBudWxsKXtcclxuICAgICAgICAgIGxldCBjaG9pY2VNb2RlbDU6IENob2ljZXNNb2RlbCA9IG5ldyBDaG9pY2VzTW9kZWwoKTtcclxuICAgICAgICAgIGNob2ljZU1vZGVsNS50ZXh0ID0gdGhpcy5nZW5lcmF0ZWRUaHJvdWdoLnZhbHVlLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgY2hvaWNlTW9kZWw1LnZhbHVlID0gdGhpcy5nZW5lcmF0ZWRUaHJvdWdoLnZhbHVlLmtleTtcclxuICAgICAgICAgIGNvbnRhY3RVc0lucXVpcnlNb2RlbC5nZW5lcmF0ZWRUaHJvdWdoID0gY2hvaWNlTW9kZWw1O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0aGlzLmNvbnRhY3RVc0Zvcm0pO1xyXG4gICAgICBpZih0aGlzLnNlbGVjdGVkQ2FzZSAmJiB0aGlzLnNlbGVjdGVkQ2FzZS5jYXNlTnVtYmVyKXtcclxuICAgICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZGVidWcoJ3VwZGF0ZSBjYWxsZWQgPSAnLCB0aGlzLnNlbGVjdGVkQ2FzZS5jYXNlTnVtYmVyKTtcclxuICAgICAgICBjb250YWN0VXNJbnF1aXJ5TW9kZWwuaW5xdWlyeUlkID0gdGhpcy5zZWxlY3RlZENhc2UuY2FzZU51bWJlcjtcclxuICAgICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY21wU2VydmljZS51cGRhdGVJbnF1aXJ5RGF0YShjb250YWN0VXNJbnF1aXJ5TW9kZWwsIHRoaXMuc2VsZWN0ZWRDYXNlLmNhc2VOdW1iZXIpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PntcclxuICAgICAgICAgICAgdGhpcy5yZXNwb25zZUNhbGwgPSByZXM7XHJcbiAgICAgICAgICAgIHRoaXMuY2FzZU5vID0gdGhpcy5yZXNwb25zZUNhbGwuaW5xdWlyeUlkO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2Vzcyh0aGlzLnJlc3BvbnNlQ2FsbFtcIm1zZ1wiXSk7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5lcnJvcihcImVyclwiLCBlcnIpO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmRlYnVnKFwiY3JlYXRpbmcgbmV3IGNhc2VcIik7XHJcbiAgICAgICAgaWYodGhpcy5pc0NzciA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNtcFNlcnZpY2Uuc3VibWl0UXVlcnlGb3JDU1IoY29udGFjdFVzSW5xdWlyeU1vZGVsKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1N1Ym1pdFF1ZXJ5UmVzcG9uc2UocmVzKTtcclxuICAgICAgICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzU3VibWl0UXVlcnlFcnJvclJlc3BvbnNlKGVycik7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jbXBTZXJ2aWNlLnN1Ym1pdFF1ZXJ5KGNvbnRhY3RVc0lucXVpcnlNb2RlbClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvY2Vzc1N1Ym1pdFF1ZXJ5UmVzcG9uc2UocmVzKTtcclxuICAgICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NTdWJtaXRRdWVyeUVycm9yUmVzcG9uc2UoZXJyKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9ICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHJvY2Vzc1N1Ym1pdFF1ZXJ5RXJyb3JSZXNwb25zZShlcnI6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFwiZXJyXCIsIGVycik7XHJcbiAgICBpZih0aGlzLmlzQ3NyID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlU3VjY2Vzcy5lbWl0KFwidHJ1ZVwiKTtcclxuICAgIH1cclxuICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgfVxyXG4gIHByb2Nlc3NTdWJtaXRRdWVyeVJlc3BvbnNlKHJlczogYW55KSB7XHJcbiAgICB0aGlzLnJlc3BvbnNlQ2FsbCA9IHJlcztcclxuICAgIHRoaXMuY2FzZU5vID0gdGhpcy5yZXNwb25zZUNhbGwuaW5xdWlyeUlkO1xyXG5cclxuICAgIGlmICh0aGlzLmNhc2VObyAhPSBcIjBcIikge1xyXG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuaW5mbygnU3VibWl0IGNvbnRhY3QgdXMgY2FzZSBObzonLCB0aGlzLmNhc2VObyk7XHJcbiAgICAgIHRoaXMuc2hvd1N1Y2Nlc3MgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN1Ym1pdFN1Y2Nlc3MgPSB0cnVlO1xyXG4gICAgICBpZih0aGlzLmlzQ3NyID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTdWNjZXNzLmVtaXQoXCJ0cnVlXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoJ2ZhaWxlZCB0byBzdWJtaXQgY29udGFjdCB1cyBjYXNlJyk7XHJcbiAgICAgIHRoaXMuc2hvd1N1Y2Nlc3MgPSB0cnVlO1xyXG4gICAgICBpZih0aGlzLmlzQ3NyID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTdWNjZXNzLmVtaXQoXCJ0cnVlXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcclxuICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XHJcblxyXG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XHJcbiAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcGxhaW50Q2F0ZWdvcnkoKSB7XHJcbiAgICB0aGlzLmNtcFNlcnZpY2UuZ2V0Q29tcGxhaW50Q2F0ZWdvcnkoKS5zdWJzY3JpYmUoKHJlczogQ29tcGxhaW50Q2F0ZWdvcnlNb2RlbFtdKSA9PiB7XHJcbiAgICAgIHRoaXMuY29tcGxhaW50Q2F0ZWdvcnlSZXRyaXZlZExpc3QgPSByZXM7XHJcbiAgICAgIHRoaXMuY29tcGxhaW50Q2F0ZWdvcnlSZXRyaXZlZExpc3RFbXByID0gcmVzLmZpbHRlcihyID0+IHIudHlwZSA9PT0gXCJFTVBSXCIpO1xyXG4gICAgICB0aGlzLmNvbXBsYWludENhdGVnb3J5UmV0cml2ZWRMaXN0Q2xtdCA9IHJlcy5maWx0ZXIociA9PiByLnR5cGUgPT09IFwiQ0xNVFwiKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgYWN0aXZlVXNlclR5cGUoZXZlbnQpIHtcclxuICAgIGxldCBjdXJyZW50VmFsdWUgPSBldmVudC5vcHRpb24udmFsdWU7XHJcbiAgICBpZiAoY3VycmVudFZhbHVlID09PSAnRU1QUicpIHtcclxuICAgICAgdGhpcy5hY3RpdmVDb21wbGFpbnRDYXRlZ29yeSA9IHRoaXMuY29tcGxhaW50Q2F0ZWdvcnlSZXRyaXZlZExpc3RFbXByO1xyXG4gICAgICB0aGlzLnNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKTtcclxuICAgIH0gZWxzZSBpZiAoY3VycmVudFZhbHVlID09PSAnQ0xNVCcpIHtcclxuICAgICAgdGhpcy5hY3RpdmVDb21wbGFpbnRDYXRlZ29yeSA9IHRoaXMuY29tcGxhaW50Q2F0ZWdvcnlSZXRyaXZlZExpc3RDbG10O1xyXG4gICAgICB0aGlzLnNlbGVjdEJ1dHRvblZhbGlkYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdERlcGFydG1lbnRCYXNlZE9uQ2F0ZWdvcnkoZXZlbnQpIHtcclxuICAgIGxldCBjdXJyZW50VmFsdWUgPSBldmVudC52YWx1ZTtcclxuICAgIGxldCBkZXBJZCA9IGN1cnJlbnRWYWx1ZS5kZXBhcnRtZW50VW5pdElkO1xyXG4gICAgbGV0IHNlYXJjaGVkX2RlcCA9IHRoaXMuYWxsRGVwYXJ0bWVudHMuZmlsdGVyKGRlcCA9PiBkZXAua2V5ID09IGRlcElkKVswXTtcclxuICAgIHRoaXMuZGl2aXNpb24uc2V0VmFsdWUoc2VhcmNoZWRfZGVwKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREZXBUeXBlID0gdGhpcy5kaXZpc2lvbi52YWx1ZS50eXBlO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hVbml0c0Jhc2VkT25EZXBUeXBlKGV2ZW50KSB7XHJcbiAgICBsZXQgZGVwdElkID0gZXZlbnQudmFsdWUua2V5O1xyXG4gICAgaWYgKHRoaXMuYWxsVW5pdHMgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnVuaXRzQmFzZWRPbkRlcHQgPSB0aGlzLmFsbFVuaXRzLmZpbHRlcihzID0+IHMudHlwZSA9PSBkZXB0SWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VW5pdHNCYXNlZE9uRGVwU2VsZWN0ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5hbGxVbml0cyAhPSBudWxsICYmIHRoaXMuc2VsZWN0ZWREZXBUeXBlICE9IG51bGwpIHtcclxuICAgICAgdGhpcy51bml0c0Jhc2VkT25EZXB0ID0gdGhpcy5hbGxVbml0cy5maWx0ZXIocyA9PiBzLnR5cGUgPT0gdGhpcy5zZWxlY3RlZERlcFR5cGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmV0Y2hVc2Vyc0Jhc2VkT25Vbml0KGV2ZW50KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVW5pdCA9IGV2ZW50LnZhbHVlLmtleTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkUm9sZSAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZ2V0VXNlcnNCYXNlZE9uRGVwdEFuZFJvbGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZldGNoVXNlcnNCYXNlZE9uUm9sZXMoZXZlbnQpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb2xlID0gZXZlbnQudmFsdWUudHlwZTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkVW5pdCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZ2V0VXNlcnNCYXNlZE9uRGVwdEFuZFJvbGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFVzZXJzQmFzZWRPbkRlcHRBbmRSb2xlKCkge1xyXG4gICAgdGhpcy51c2Vyc0ZMbmFtZSA9IFtdO1xyXG4gICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmRlYnVnKCdmZXRjaGluZyB1c2VycyBmb3IgdW5pdCA6ICcsIHRoaXMuc2VsZWN0ZWRVbml0ICwgJ2FuZCByb2xlICcsIHRoaXMuc2VsZWN0ZWRSb2xlKTtcclxuICAgIGlmKHRoaXMuc2VsZWN0ZWRVbml0ID09IG51bGwgfHwgdGhpcy5zZWxlY3RlZFJvbGUgPT0gbnVsbCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VjdXJpdHlTZXJ2aWNlLmdldFVzZXJVbml0SWRSb2xlSWQodGhpcy5zZWxlY3RlZFVuaXQsIHRoaXMuc2VsZWN0ZWRSb2xlKS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlcyA9PiB7XHJcbiAgICAgIHRoaXMudXNlcnMgPSByZXM7XHJcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5kZWJ1Zyh0aGlzLnVzZXJzKTtcclxuICAgICAgaWYodGhpcy51c2Vycyl7XHJcbiAgICAgICAgdGhpcy51c2Vycy5mb3JFYWNoKChlKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdGVtcDogQ2hvaWNlc01vZGVsICA9IG5ldyBDaG9pY2VzTW9kZWwoKTtcclxuICAgICAgICAgIHRlbXAudGV4dD0oZS5maXJzdE5hbWUgKyAnICcgKyBlLmxhc3ROYW1lICsgJyAoJysgZS51c2VySWQgKycpJyk7XHJcbiAgICAgICAgICAvL3RlbXAudGV4dD1lLmZpcnN0TmFtZSArICcgJyArIGUubGFzdE5hbWU7XHJcbiAgICAgICAgICB0ZW1wLnZhbHVlID0gZS51c2VySWQ7XHJcbiAgICAgICAgICB0aGlzLnVzZXJzRkxuYW1lLnB1c2godGVtcCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYodGhpcy5zZWxlY3RlZENhc2UuYXNzaWduZWRUb3VzZXIgIT0gbnVsbCl7XHJcbiAgICAgICAgICB0aGlzLmFzc2lnbkNhc2VUby5zZXRWYWx1ZSh0aGlzLnVzZXJzRkxuYW1lLmZpbHRlcihjID0+IGMudmFsdWUgPT0gdGhpcy5zZWxlY3RlZENhc2UuYXNzaWduZWRUb3VzZXIudmFsdWUpWzBdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIGVyciA9PiB7XHJcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5pbmZvKFwiTm8gdXNlciBjb25maWd1cmVkIGZvciB0aGlzIHJvbGVcIik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZldGNoTXN0RGVwYXJ0bWVudHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXNlU2VydmljZS5mZXRjaE1zdERlcGFydG1lbnRzKCkuc3Vic2NyaWJlKChyZXM6IGFueVtdKSA9PiB7XHJcbiAgICAgIHRoaXMuYWxsRGVwYXJ0bWVudHMgPSByZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZldGNoTXN0QWxsVW5pdHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXNlU2VydmljZS5mZXRjaE1zdEFsbFVuaXRzKCkuc3Vic2NyaWJlKChyZXM6IGFueVtdKSA9PiB7XHJcbiAgICAgIHRoaXMuYWxsVW5pdHMgPSByZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZldGNoTXN0Q2FzZUNsb3NlUmVhc29ucygpIHtcclxuICAgIHJldHVybiB0aGlzLmNhc2VTZXJ2aWNlLmZldGNoTXN0Q2FzZUNsb3NlUmVhc29ucygpLnN1YnNjcmliZSgocmVzOiBhbnlbXSkgPT4ge1xyXG4gICAgICB0aGlzLmFsbENsb3NlUmVhc29ucyA9IHJlcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsUm9sZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jYXNlU2VydmljZS5nZXRNc3RPd25lckdyb3VwcygpLnN1YnNjcmliZSgocmVzOiBhbnlbXSkgPT4ge1xyXG4gICAgICB0aGlzLmFsbFJvbGVzID0gcmVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRNc2dHZW5lcmF0ZWRUaHJvdWdoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY21wU2VydmljZS5nZXRNc2dHZW5lcmF0ZWRUaHJvdWdoKCkuc3Vic2NyaWJlKChyZXM6IGFueVtdKSA9PiB7XHJcbiAgICAgIHRoaXMubXNnR2VuZXJhdGVkVGhyb3VnaExpc3QgPSByZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCB1c2VyVHlwZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ3VzZXJUeXBlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmlyc3ROYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snZmlyc3ROYW1lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgbGFzdE5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydsYXN0TmFtZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNzbigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ3NzbiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNsYWltYW50SWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydjbGFpbWFudElkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZWFuKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snZWFuJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVpbigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2ZlaW4nXTtcclxuICB9XHJcblxyXG4gIGdldCBzZWxlY3RlZFJlYXNvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ3NlbGVjdGVkUmVhc29uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgaXNzdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydpc3N1ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtYWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snZW1haWwnXTtcclxuICB9XHJcblxyXG4gIGdldCBwaG9uZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ3Bob25lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgYWx0UGhvbmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydhbHRQaG9uZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFkZHJlc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY2FwdGNoYSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2NhcHRjaGEnXTtcclxuICB9XHJcblxyXG4gIGdldCBkaXZpc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2RpdmlzaW9uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgdW5pdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1sndW5pdCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdlbmVyYWxBc3NpZ25tZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGFjdFVzRm9ybS5jb250cm9sc1snZ2VuZXJhbEFzc2lnbm1lbnQnXTtcclxuICB9XHJcblxyXG4gIGdldCBhc3NpZ25DYXNlVG8oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydhc3NpZ25DYXNlVG8nXTtcclxuICB9XHJcblxyXG4gIGdldCBjbG9zZUNhc2VSZWFzb24oKXtcclxuICAgIHJldHVybiB0aGlzLmNvbnRhY3RVc0Zvcm0uY29udHJvbHNbJ2Nsb3NlQ2FzZVJlYXNvbiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdlbmVyYXRlZFRocm91Z2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250YWN0VXNGb3JtLmNvbnRyb2xzWydnZW5lcmF0ZWRUaHJvdWdoJ107XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsaWRFbWFpbCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdjb21tb24uY2FwdGNoYS5yZXF1aXJlZCcpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiIsIjxoMSBjbGFzcz1cImNvbnRhY3RVc1BhZ2VUaXRsZVwiICBcclxuKm5nSWY9XCJpc05ld0Nhc2VcIj57eydjb250YWN0LnVzLnBhZ2VUaXRsZScgfCB0cmFuc2xhdGV9fTwvaDE+XHJcblxyXG48ZGl2ICpuZ0lmPVwiIXNob3dTdWNjZXNzXCI+XHJcbiAgPHNwYW4gc3R5bGU9XCJmb250LWZhbWlseTogdmFyKC0tYXBwLWZvbnQtbGlnaHQpXCI+XHJcbiAgICA8cCAqbmdJZj1cImlzTmV3Q2FzZVwiIGNsYXNzPVwiY29udGFjdFVzUGFnZUhlYWRlclwiID5cclxuICAgIHt7J2NvbnRhY3QudXMucGFnZUhlYWRlcicgfCB0cmFuc2xhdGV9fVxyXG4gICAgPC9wPlxyXG4gIDwvc3Bhbj5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNvbnRhY3RVc0Zvcm1cIiAjY29udGFjdEZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0Q29udGFjdFVzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBncmlkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwidHlwZVwiPnt7XCJjb250YWN0LnVzLnVzZXJUeXBlXCJ8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwidHlwZVwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJUeXBlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAob25PcHRpb25DbGljayk9XCJhY3RpdmVVc2VyVHlwZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndXNlclR5cGUnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJmaXJzdE5hbWVcIj57e1wiY29udGFjdC51cy5maXJzdG5hbWVcInwgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZmlyc3ROYW1lXCIgbWF4bGVuZ3RoPVwiMzBcIiAvPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmaXJzdE5hbWUnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJsYXN0TmFtZVwiPnt7J2NvbnRhY3QudXMubGFzdE5hbWUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJsYXN0TmFtZVwiIG1heGxlbmd0aD1cIjMwXCIgLz5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbGFzdE5hbWUnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC02XCIgKm5nSWY9XCJ1c2VyVHlwZS52YWx1ZT09J0NMTVQnXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cInNzblwiPnt7J2NvbnRhY3QudXMuc3NuJ3wgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5OVwiIGZvcm1Db250cm9sTmFtZT1cInNzblwiIChvbkZvY3VzKT1cImlucHV0VHlwZT0ndGV4dCdcIiAob25CbHVyKT1cImlucHV0VHlwZT0ncGFzc3dvcmQnXCJcclxuICAgICAgICAgIFt0eXBlXT1cImlucHV0VHlwZVwiPjwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NzbicgW2Zvcm1dPVwiY29udGFjdEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTZcIiAqbmdJZj1cInVzZXJUeXBlLnZhbHVlPT0nQ0xNVCdcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiY2xhaW1hbnRJZFwiPnt7J2NvbnRhY3QudXMuY2xhaW1hbnRJRCd8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cclxuICAgICAgICA8cC1pbnB1dE51bWJlciBmb3JtQ29udHJvbE5hbWU9XCJjbGFpbWFudElkXCIgbW9kZT1cImRlY2ltYWxcIiBpbnB1dElkPVwiY2xhaW1hbnRJZFwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj0ne3tcImNvbW1vbi5vcHRpb25hbFwiIHwgdHJhbnNsYXRlfX0nIG1heGxlbmd0aD1cIjhcIj4gPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiICpuZ0lmPVwidXNlclR5cGUudmFsdWU9PSdFTVBSJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJlYW5cIj57eydjb250YWN0LnVzLmVhbid8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cclxuICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OTk5OTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJlYW5cIiAob25Gb2N1cyk9XCJpbnB1dFR5cGU9J3RleHQnXCJcclxuICAgICAgICAgIChvbkJsdXIpPVwiaW5wdXRUeXBlPSdwYXNzd29yZCdcIiBbdHlwZV09XCJpbnB1dFR5cGVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlYW4nIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiICpuZ0lmPVwidXNlclR5cGUudmFsdWU9PSdFTVBSJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJmZWluXCI+e3snY29udGFjdC51cy5mZWluJ3wgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5OTk5OTk5XCIgZm9ybUNvbnRyb2xOYW1lPVwiZmVpblwiIChvbkZvY3VzKT1cImlucHV0VHlwZT0ndGV4dCdcIlxyXG4gICAgICAgICAgKG9uQmx1cik9XCJpbnB1dFR5cGU9J3Bhc3N3b3JkJ1wiIFt0eXBlXT1cImlucHV0VHlwZVwiPjwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlaW4nIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIiAqbmdJZj1cInVzZXJUeXBlLnZhbHVlPT0nQ0xNVCcgfHwgdXNlclR5cGUudmFsdWU9PSdFTVBSJ1wiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJzZWxlY3RlZFJlYXNvblwiPnt7J2NvbnRhY3QudXMuc2VsZWN0ZWRSZWFzb24nfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XHJcbiAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiYWN0aXZlQ29tcGxhaW50Q2F0ZWdvcnlcIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZFJlYXNvblwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGNhdGVnb3J5XCJcclxuICAgICAgICAgIG9wdGlvbkxhYmVsPVwiZGVzY3JpcHRpb25cIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGNsYXNzPVwicXVlcnlDYXRlZ29yeVwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG4gICAgICAgIDwvcC1kcm9wZG93bj5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VsZWN0ZWRSZWFzb24nIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMlwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJpc3N1ZVwiPnt7J2NvbnRhY3QudXMuaXNzdWUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyIC8+XHJcbiAgICAgICAgPHRleHRhcmVhIHBJbnB1dFRleHRhcmVhIGZvcm1Db250cm9sTmFtZT1cImlzc3VlXCIgbWF4bGVuZ3RoPVwiNTAwXCI+PC90ZXh0YXJlYT48YnIgLz5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naXNzdWUnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgPHNtYWxsPnt7J2NvbnRhY3QudXMuaXNzdWVOb3Rlcyd8IHRyYW5zbGF0ZX19PC9zbWFsbD5cclxuICAgICAgICBcclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImVtYWlsXCI+e3snY29udGFjdC51cy5lbWFpbCd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgbWF4bGVuZ3RoPVwiMTAwXCIgLz5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1haWwnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJywgZW1haWw6IHZhbGlkRW1haWxcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTZcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwicGhvbmVcIj57eydjb250YWN0LnVzLnBob25lJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiKDk5OSkgOTk5LTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZVwiIHBsYWNlaG9sZGVyPVwiKDk5OSkgOTk5LTk5OTlcIiB1bm1hc2s9XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgbWQ6Y29sLTZcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYWx0UGhvbmVcIj57eydjb250YWN0LnVzLmFsdFBob25lJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiKDk5OSkgOTk5LTk5OTlcIiBmb3JtQ29udHJvbE5hbWU9XCJhbHRQaG9uZVwiIHBsYWNlaG9sZGVyPVwiKDk5OSkgOTk5LTk5OTlcIiB1bm1hc2s9XCJ0cnVlXCI+XHJcbiAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIj5cclxuICAgICAgICA8YXBwLWFkZHJlc3MgW2Zyb21Qb3B1cF09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwiYWRkcmVzc1wiPjwvYXBwLWFkZHJlc3M+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTEyXCIgKm5nSWY9XCIhaXNDc3JcIj5cclxuICAgICAgICA8YXBwLWNhcHRjaGEgZm9ybUNvbnRyb2xOYW1lPVwiY2FwdGNoYVwiPjwvYXBwLWNhcHRjaGE+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2NhcHRjaGEnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNlwiICpuZ0lmPVwiaXNDc3JcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiZGl2aXNpb25cIj57eydjb250YWN0LnVzLmRpdmlzaW9uJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImFsbERlcGFydG1lbnRzXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGl2aXNpb25cIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBEZXBhcnRtZW50XCJcclxuICAgICAgICAgIG9wdGlvbkxhYmVsPVwidmFsdWVcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGNsYXNzPVwicm9sZU5hbWVcIiBhcHBlbmRUbz1cImJvZHlcIiAob25DaGFuZ2UpPVwiZmV0Y2hVbml0c0Jhc2VkT25EZXBUeXBlKCRldmVudClcIj5cclxuICAgICAgICA8L3AtZHJvcGRvd24+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2RpdmlzaW9uJyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNlwiICpuZ0lmPVwiaXNDc3JcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwidW5pdFwiPnt7J2NvbnRhY3QudXMudW5pdCd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJ1bml0c0Jhc2VkT25EZXB0XCIgZm9ybUNvbnRyb2xOYW1lPVwidW5pdFwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFVuaXRcIlxyXG4gICAgICAgICAgb3B0aW9uTGFiZWw9XCJ2YWx1ZVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgY2xhc3M9XCJyb2xlTmFtZVwiIGFwcGVuZFRvPVwiYm9keVwiIChvbkNoYW5nZSk9XCJmZXRjaFVzZXJzQmFzZWRPblVuaXQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvcC1kcm9wZG93bj5cclxuICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndW5pdCcgW2Zvcm1dPVwiY29udGFjdEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY29sLTZcIiAqbmdJZj1cImlzQ3NyXCI+XHJcbiAgICAgICAgPGxhYmVsIGZvcj1cImdlbmVyYWxBc3NpZ25tZW50XCI+e3snY29udGFjdC51cy5nZW5lcmFsQXNzaWdubWVudCd8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cclxuICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJhbGxSb2xlc1wiIGZvcm1Db250cm9sTmFtZT1cImdlbmVyYWxBc3NpZ25tZW50XCIgKG9uQ2hhbmdlKT1cImZldGNoVXNlcnNCYXNlZE9uUm9sZXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBBc3NpZ25tZW50XCIgb3B0aW9uTGFiZWw9XCJ2YWx1ZVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgXHJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2dlbmVyYWxBc3NpZ25tZW50JyBbZm9ybV09XCJjb250YWN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZCdcclxuICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtNlwiICpuZ0lmPVwiaXNDc3JcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiYXNzaWduQ2FzZVRvXCI+e3tcImNvbnRhY3QudXMuYXNzaWduQ2FzZVRvXCJ8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cclxuICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJ1c2Vyc0ZMbmFtZVwiIGZvcm1Db250cm9sTmFtZT1cImFzc2lnbkNhc2VUb1wiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkFzc2lnbiBDYXNlIFRvXCIgIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgXHJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2Fzc2lnbkNhc2VUbycgW2Zvcm1dPVwiY29udGFjdEZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQnXHJcbiAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgIDwvZGl2PiAgICBcclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNvbC0xMiBtZDpjb2wtNlwiICpuZ0lmPVwiaXNDc3JcIj5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiZ2VuZXJhdGVkVGhyb3VnaFwiPnt7XCJjb250YWN0LnVzLm1zZ0dlbmVyYXRlZFRocm91Z2hcInwgdHJhbnNsYXRlfX08L2xhYmVsPjxiciAvPlxyXG4gICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cIm1zZ0dlbmVyYXRlZFRocm91Z2hMaXN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZ2VuZXJhdGVkVGhyb3VnaFwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIk1lc3NhZ2UgZ2VuZXJhdGVkIHRocm91Z2hcIiAgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBvcHRpb25MYWJlbD1cImRlc2NyaXB0aW9uXCIgXHJcbiAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2dlbmVyYXRlZFRocm91Z2gnIFtmb3JtXT1cImNvbnRhY3RGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkJ1xyXG4gICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICA8L2Rpdj4gXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTJcIiAqbmdJZj1cImlzQ3NyICYmIHNlbGVjdGVkQ2FzZVwiPlxyXG4gICAgICAgICAgPGxhYmVsIGZvcj1cImNsb3NlQ2FzZVJlYXNvblwiPnt7XCJjb250YWN0LnVzLmNsb3NlXCJ8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIgLz5cclxuICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImFsbENsb3NlUmVhc29uc1wiIGZvcm1Db250cm9sTmFtZT1cImNsb3NlQ2FzZVJlYXNvblwiIGNsYXNzPVwicXVlcnlDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFJlYXNvblwiICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIG9wdGlvbkxhYmVsPVwiZGVzY3JpcHRpb25cIiBcclxuICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgc2hvd0NsZWFyPVwidHJ1ZVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcbjxkaXYgKm5nSWY9XCJzaG93U3VjY2Vzc1wiPlxyXG4gIDxkaXYgKm5nSWY9XCJzdWJtaXRTdWNjZXNzXCI+XHJcbiAgICA8aW9uLXJvdz5cclxuICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1sZWZ0IHRleHQtbGdcIiBzdHlsZT1cImZvbnQtZmFtaWx5OiB2YXIoLS1hcHAtZm9udC1saWdodClcIj5cclxuICAgICAge3snY29udGFjdC51cy5zdWNjZXNzTXNnJ3wgdHJhbnNsYXRlfX08c3BhblxyXG4gICAgICAgICAgc3R5bGU9XCJmb250LXdlaWdodDogYm9sZDsgY29sb3I6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcIj57e2Nhc2VOb319PC9zcGFuPlxyXG4gICAgICA8L2lvbi1jb2w+XHJcbiAgICA8L2lvbi1yb3c+XHJcbiAgICA8aW9uLXJvdz5cclxuICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1jaXJjbGVcIiBzdHlsZT1cImZvbnQtc2l6ZTogODBweDsgY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmVlbik7XCJcclxuICAgICAgICAgIGNsYXNzPVwiem9vbWluIGFuaW1hdGlvbi1kdXJhdGlvbi0xMDAwXCI+PC9pb24taWNvbj5cclxuICAgICAgPC9pb24tY29sPlxyXG4gICAgPC9pb24tcm93PlxyXG4gICAgPGlvbi1yb3c+XHJcbiAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtbGVmdCB0ZXh0LWxnIGNvbnRhY3RVc1BhZ2VIZWFkZXJcIj5cclxuICAgICAgICB7eydjb250YWN0LnVzLmNvbnRhY3RBZ2Fpbid8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvaW9uLWNvbD5cclxuICAgIDwvaW9uLXJvdz5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwiIXN1Ym1pdFN1Y2Nlc3NcIj5cclxuICAgIDxpb24tcm93PlxyXG4gICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWxlZnQgdGV4dC1sZ1wiIHN0eWxlPVwiZm9udC1mYW1pbHk6IHZhcigtLWFwcC1mb250LWxpZ2h0KVwiPlxyXG4gICAgICAgIHt7J2NvbnRhY3QudXMuZmFpbGVkTXNnJ3wgdHJhbnNsYXRlfX1cclxuICAgICAgPC9pb24tY29sPlxyXG4gICAgPC9pb24tcm93PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJmaWVsZCBjb2wtMTIgaW9uLXRleHQtcmlnaHRcIj5cclxuICA8aW9uLWJ1dHRvbiAqbmdJZj1cIiFzaG93U3VjY2VzcyAmJiAhaXNDc3JcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGNvbG9yPVwicHJpbWFyeVwiIFxyXG4gIChjbGljayk9XCJzdWJtaXRDb250YWN0VXMoY29udGFjdFVzRm9ybSlcIj57eydjb21tb24uc3VibWl0J3wgdHJhbnNsYXRlfX1cclxuICA8L2lvbi1idXR0b24+XHJcbiAgPGlvbi1idXR0b24gKm5nSWY9XCIhaXNDc3JcIiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJlbWl0SGlkZSgkZXZlbnQpXCI+XHJcbiAgICB7eydjb21tb24uY2xvc2UnfCB0cmFuc2xhdGV9fVxyXG4gIDwvaW9uLWJ1dHRvbj5cclxuPC9kaXY+Il19
|