@bnsights/bbsf-admin-portal 1.1.2 → 1.1.3
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/README.md +4 -0
- package/{esm2020 → esm2022}/bnsights-bbsf-admin-portal.mjs +4 -4
- package/{esm2020 → esm2022}/lib/Pages/ActiveDirectories/active-directories.component.mjs +14 -14
- package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +421 -0
- package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +528 -0
- package/{esm2020 → esm2022}/lib/Pages/ActiveDirectories/active-directory-routing.module.mjs +29 -29
- package/esm2022/lib/Pages/ActiveDirectories/active-directory.module.mjs +108 -0
- package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/aside/aside.component.mjs +65 -65
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/content/content.component.mjs +31 -31
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/footer/footer.component.mjs +32 -32
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/header/header.component.mjs +57 -57
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/header/page-title/page-title.component.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/scripts-init/scripts-init.component.mjs +58 -58
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/subheader/subheader.component.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/subheader/subheader.module.mjs +26 -26
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/toolbar/toolbar.component.mjs +41 -41
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/toolbar/toolbar.module.mjs +25 -25
- package/{esm2020 → esm2022}/lib/Pages/_layout/components/topbar/topbar.component.mjs +71 -71
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/activation/activation.component.mjs +92 -92
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/anonymouslayout-routing.module.mjs +37 -37
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +54 -54
- package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +100 -0
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/error/error.component.mjs +48 -48
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +59 -59
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/login/login.component.mjs +94 -94
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +90 -90
- package/{esm2020 → esm2022}/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +71 -71
- package/{esm2020 → esm2022}/lib/Pages/authentication/auth-callback/auth-callback.component.mjs +43 -43
- package/{esm2020 → esm2022}/lib/Pages/authentication/authentication.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/Pages/authentication/authentication.module.mjs +41 -41
- package/{esm2020 → esm2022}/lib/Pages/authentication/authentication.routing.mjs +31 -31
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +330 -0
- package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +157 -0
- package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +801 -0
- package/{esm2020 → esm2022}/lib/Pages/configurations/configurations.component.mjs +15 -15
- package/esm2022/lib/Pages/configurations/configurations.module.mjs +104 -0
- package/{esm2020 → esm2022}/lib/Pages/configurations/configurations.routing.mjs +41 -41
- package/{esm2020 → esm2022}/lib/Pages/configurations/index.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/core/auth.module.mjs +30 -30
- package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +17 -0
- package/{esm2020 → esm2022}/lib/Pages/core/authentication/auth.guard.mjs +46 -46
- package/esm2022/lib/Pages/core/authentication/auth.service.mjs +147 -0
- package/esm2022/lib/Pages/departments/department/department.component.mjs +220 -0
- package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +185 -0
- package/{esm2020 → esm2022}/lib/Pages/departments/departments-routing.module.mjs +27 -27
- package/{esm2020 → esm2022}/lib/Pages/departments/departments.component.mjs +15 -15
- package/esm2022/lib/Pages/departments/departments.module.mjs +94 -0
- package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +136 -0
- package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +148 -0
- package/{esm2020 → esm2022}/lib/Pages/documents/document-template-info/document-template-info.component.mjs +332 -332
- package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +437 -0
- package/{esm2020 → esm2022}/lib/Pages/documents/documents.component.mjs +15 -15
- package/esm2022/lib/Pages/documents/documents.module.mjs +114 -0
- package/esm2022/lib/Pages/documents/documents.routing.mjs +37 -0
- package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +169 -0
- package/{esm2020 → esm2022}/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +123 -123
- package/{esm2020 → esm2022}/lib/Pages/empty-data/empty-data.component.mjs +31 -31
- package/{esm2020 → esm2022}/lib/Pages/empty-data/empty-data.module.mjs +28 -28
- package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +294 -0
- package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +43 -0
- package/{esm2020 → esm2022}/lib/Pages/helpCenter/help-center-routing.module.mjs +31 -31
- package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +242 -0
- package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +243 -0
- package/esm2022/lib/Pages/helpCenter/help-center.module.mjs +99 -0
- package/{esm2020 → esm2022}/lib/Pages/helpCenter/help-centers.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/Pages/home/filter-pipe.mjs +23 -23
- package/esm2022/lib/Pages/home/home.component.mjs +158 -0
- package/esm2022/lib/Pages/home/home.module.mjs +48 -0
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +443 -0
- package/esm2022/lib/Pages/impersonation-rules/impersonation-rules.module.mjs +95 -0
- package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +223 -0
- package/esm2022/lib/Pages/jobs/jobs.module.mjs +87 -0
- package/{esm2020 → esm2022}/lib/Pages/license/license/license.component.mjs +163 -163
- package/esm2022/lib/Pages/license/license.module.mjs +71 -0
- package/{esm2020 → esm2022}/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +215 -215
- package/esm2022/lib/Pages/localizations/localizations.component.mjs +516 -0
- package/esm2022/lib/Pages/localizations/localizations.module.mjs +79 -0
- package/{esm2020 → esm2022}/lib/Pages/logs/log/log.component.mjs +93 -93
- package/{esm2020 → esm2022}/lib/Pages/logs/logs-routing.module.mjs +27 -27
- package/{esm2020 → esm2022}/lib/Pages/logs/logs.component.mjs +15 -15
- package/esm2022/lib/Pages/logs/logs.module.mjs +87 -0
- package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +367 -0
- package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +187 -0
- package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +297 -0
- package/{esm2020 → esm2022}/lib/Pages/lookups/lookups-routing.module.mjs +29 -29
- package/{esm2020 → esm2022}/lib/Pages/lookups/lookups.component.mjs +15 -15
- package/esm2022/lib/Pages/lookups/lookups.module.mjs +100 -0
- package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +104 -0
- package/{esm2020 → esm2022}/lib/Pages/notifications/edit-email/edit-email.component.mjs +158 -158
- package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +133 -0
- package/{esm2020 → esm2022}/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +115 -115
- package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +148 -0
- package/esm2022/lib/Pages/notifications/notifications-routing.module.mjs +39 -0
- package/{esm2020 → esm2022}/lib/Pages/notifications/notifications.component.mjs +15 -15
- package/esm2022/lib/Pages/notifications/notifications.module.mjs +101 -0
- package/{esm2020 → esm2022}/lib/Pages/notifications/template-info/template-info.component.mjs +391 -391
- package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +495 -0
- package/esm2022/lib/Pages/providers/provider/provider.component.mjs +615 -0
- package/{esm2020 → esm2022}/lib/Pages/providers/providers-routing.module.mjs +27 -27
- package/{esm2020 → esm2022}/lib/Pages/providers/providers.component.mjs +15 -15
- package/esm2022/lib/Pages/providers/providers.module.mjs +91 -0
- package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +334 -0
- package/{esm2020 → esm2022}/lib/Pages/publicHolidays/public-holidays-routing.module.mjs +25 -25
- package/{esm2020 → esm2022}/lib/Pages/publicHolidays/public-holidays.component.mjs +15 -15
- package/esm2022/lib/Pages/publicHolidays/public-holidays.module.mjs +94 -0
- package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +187 -0
- package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +226 -0
- package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +277 -0
- package/{esm2020 → esm2022}/lib/Pages/roles/roles-routing.module.mjs +29 -29
- package/{esm2020 → esm2022}/lib/Pages/roles/roles.component.mjs +15 -15
- package/esm2022/lib/Pages/roles/roles.module.mjs +105 -0
- package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +193 -0
- package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +180 -0
- package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +187 -0
- package/{esm2020 → esm2022}/lib/Pages/sectors/sectors-routing.module.mjs +29 -29
- package/{esm2020 → esm2022}/lib/Pages/sectors/sectors.component.mjs +15 -15
- package/esm2022/lib/Pages/sectors/sectors.module.mjs +96 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/ADType.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/Enums.mjs +54 -54
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/ProviderType.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/WFActivityType.mjs +11 -11
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/configuration/ConditionRHSType.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/Enums/configuration/authentecation-configuration.mjs +18 -18
- package/{esm2020 → esm2022}/lib/Pages/shared/Pipes/survey-date.pipe.mjs +22 -22
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/AccountService.service.mjs +55 -55
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +51 -51
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +29 -29
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/ConfigurationsService.service.mjs +61 -61
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/DepartmentService.service.mjs +46 -46
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +81 -81
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +37 -37
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/ErrorService.service.mjs +15 -15
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/GlobalErrorHandler.service.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/HelpCenterService.service.mjs +47 -47
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/HttpErrorInterceptor.service.mjs +47 -47
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/JobsService.service.mjs +21 -21
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/LicenseService.service.mjs +24 -24
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/LogsService.mjs +24 -24
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/LookupGroupsService.service.mjs +33 -33
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/LookupService.service.mjs +67 -67
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/PermissionSetService.service.mjs +50 -50
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/PermissionsService.service.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/PublicHolidayService.service.mjs +39 -39
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/SectorService.service.mjs +46 -46
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/TemplateService.service.mjs +90 -90
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkFlowVersionService.service.mjs +24 -24
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +54 -54
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkflowInstanceService.service.mjs +24 -24
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkflowLogVariablesService.service.mjs +24 -24
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkflowService.service.mjs +38 -38
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/data.service.mjs +27 -27
- package/esm2022/lib/Pages/shared/Services/injectionModuleService.service.mjs +163 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/localizationsService.service .mjs +77 -77
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/provider.service.mjs +62 -62
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/survey-question.service.mjs +57 -57
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/survey.service.mjs +140 -140
- package/{esm2020 → esm2022}/lib/Pages/shared/Services/userService.service.mjs +80 -80
- package/{esm2020 → esm2022}/lib/Pages/shared/base.service.mjs +19 -19
- package/{esm2020 → esm2022}/lib/Pages/shared/components/AdDirective.mjs +16 -16
- package/{esm2020 → esm2022}/lib/Pages/shared/components/external-url/external-url.component.mjs +168 -168
- package/{esm2020 → esm2022}/lib/Pages/shared/components/no-results/no-results.component.mjs +19 -19
- package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +192 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +48 -48
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +50 -50
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +217 -217
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +47 -47
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +49 -49
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +50 -50
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +624 -624
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +47 -47
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +683 -683
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +138 -138
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +102 -102
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +56 -56
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/survey-info.component.mjs +532 -532
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +113 -113
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +114 -114
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey/survey.component.mjs +292 -292
- package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +696 -0
- package/esm2022/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +84 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/components/survey-layout/survey-layout.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/Pages/shared/config/environment.mjs +11 -11
- package/esm2022/lib/Pages/shared/constants.mjs +130 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/filter/filter.component.mjs +14 -14
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ADModels/ADMappingModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ADModels/ActiveDirectoryAddEditModel.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/AccountModels/forgotPasswordModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.mjs +50 -50
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DepartmentModels/DepartmentModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DocumentsModels/DocumentExportDTO.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DocumentsModels/DocumentHeaderAndFooterTemplate.mjs +9 -9
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DocumentsModels/DocumentTemplateDTO.mjs +9 -9
- package/{esm2020 → esm2022}/lib/Pages/shared/models/DocumentsModels/DocumentTemplateInfoDTO.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.mjs +11 -11
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ImpersonationRuleModels/ParticipantModel.mjs +8 -8
- package/{esm2020 → esm2022}/lib/Pages/shared/models/InjectedModuleModel/InjectedModule.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/JobModels/JobCountsModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/LicenseModel/LicenseModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/LocalizationModels/EditResourceModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/LocalizationModels/LocalizationReplaceTextModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/LocalizationModels/UploadJsonVM.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/Lookups/LookupGroupModel.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/Lookups/LookupItem.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/Lookups/LookupModel.mjs +8 -8
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.mjs +10 -10
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/EmailTemplateInfoDTO.mjs +11 -11
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/EmailTemplateTesterModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/SMSTemplateInfoDTO.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/SMSTemplateTesterModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/SendEmailTemplateModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/TemplateDTO.mjs +9 -9
- package/{esm2020 → esm2022}/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.mjs +8 -8
- package/{esm2020 → esm2022}/lib/Pages/shared/models/PermissionsModels/PermissionModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ProviderModels/DefaultProviderModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ProviderModels/EmailProviderTesterModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ProviderModels/ProviderAttributeModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ProviderModels/ProviderModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/ProviderModels/SMSProviderTesterModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/PublicHolidayModels/PublicHolidayModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SectorModels/SectorModel.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/DeleteSurveyDTO.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/add-survey-submissio.mjs +13 -13
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/add-survey.mjs +10 -10
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/model.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-field-options.mjs +6 -6
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-filed-value.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-form-options.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-publish.mjs +4 -4
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-question-option.mjs +17 -17
- package/{esm2020 → esm2022}/lib/Pages/shared/models/SurveyModels/survey-question.mjs +10 -10
- package/esm2022/lib/Pages/shared/models/SurveyModels/survey-utils.mjs +8 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/ActivationModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/AddUserModel.mjs +36 -36
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/DropdownsResponseModel.mjs +11 -11
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/EditUserModel.mjs +8 -8
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/IdentityModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/UserSearchParamDTO.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/UserModels/UsersIDRequestModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/VariableLookupModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/WFActivityModel.mjs +16 -16
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/WFActivityOutcomeModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/WFCreationModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/Pages/shared/models/WorkflowModels/WFVariableModel.mjs +8 -8
- package/{esm2020 → esm2022}/lib/Pages/shared/models/user.registration.mjs +7 -7
- package/esm2022/lib/Pages/shared/modules/public-survey.module.mjs +68 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/modules/survey-routing.module.mjs +39 -39
- package/esm2022/lib/Pages/shared/modules/survey.module.mjs +129 -0
- package/esm2022/lib/Pages/shared/shared.module.mjs +31 -0
- package/{esm2020 → esm2022}/lib/Pages/shared/stylesbundle.service.mjs +44 -44
- package/{esm2020 → esm2022}/lib/Pages/start/index/index.component.mjs +25 -25
- package/{esm2020 → esm2022}/lib/Pages/start/start-routing.module.mjs +22 -22
- package/{esm2020 → esm2022}/lib/Pages/start/start.module.mjs +31 -31
- package/esm2022/lib/Pages/users/users.component.mjs +806 -0
- package/esm2022/lib/Pages/users/users.module.mjs +86 -0
- package/{esm2020 → esm2022}/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +535 -535
- package/{esm2020 → esm2022}/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +840 -840
- package/{esm2020 → esm2022}/lib/Pages/workflows/instance-info/instance-info.component.mjs +302 -302
- package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +793 -0
- package/{esm2020 → esm2022}/lib/Pages/workflows/version-info/version-info.component.mjs +137 -137
- package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +209 -0
- package/{esm2020 → esm2022}/lib/Pages/workflows/workflows-routing.module.mjs +35 -35
- package/{esm2020 → esm2022}/lib/Pages/workflows/workflows.component.mjs +15 -15
- package/esm2022/lib/Pages/workflows/workflows.module.mjs +103 -0
- package/{esm2020 → esm2022}/lib/_metronic/configs/default-layout.config.mjs +95 -95
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/DomHelpers.mjs +270 -270
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/ElementAnimateUtil.mjs +166 -166
- package/esm2022/lib/_metronic/core/_utils/EventHandlerUtil.mjs +90 -0
- package/esm2022/lib/_metronic/core/_utils/_DOMEventHandlerUtil.mjs +49 -0
- package/esm2022/lib/_metronic/core/_utils/_DataUtil.mjs +48 -0
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/_ElementStyleUtil.mjs +16 -16
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/_TypesHelpers.mjs +48 -48
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/models/OffsetModel.mjs +1 -1
- package/{esm2020 → esm2022}/lib/_metronic/core/_utils/models/ViewPortModel.mjs +1 -1
- package/{esm2020 → esm2022}/lib/_metronic/core/components/MenuComponent.mjs +827 -827
- package/{esm2020 → esm2022}/lib/_metronic/core/components/_CookieComponent.mjs +52 -52
- package/esm2022/lib/_metronic/core/components/_DrawerComponent.mjs +288 -0
- package/{esm2020 → esm2022}/lib/_metronic/core/components/_ScrollComponent.mjs +252 -252
- package/esm2022/lib/_metronic/core/components/_ScrollTopComponent.mjs +113 -0
- package/esm2022/lib/_metronic/core/components/_ToggleComponent.mjs +157 -0
- package/{esm2020 → esm2022}/lib/_metronic/core/services/layout-init.service.mjs +155 -155
- package/{esm2020 → esm2022}/lib/_metronic/core/services/layout.service.mjs +150 -150
- package/esm2022/lib/_metronic/core/services/page-info.service.mjs +119 -0
- package/esm2022/lib/masterlayout-routing.module.mjs +41 -0
- package/{esm2020 → esm2022}/lib/masterlayout.component.mjs +118 -118
- package/esm2022/lib/masterlayout.module.mjs +188 -0
- package/{esm2020 → esm2022}/public-api.mjs +48 -48
- package/{fesm2020 → fesm2022}/bnsights-bbsf-admin-portal.mjs +26884 -26881
- package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/Pages/ActiveDirectories/active-directories.component.d.ts +8 -8
- package/lib/Pages/ActiveDirectories/active-directory/active-directory.component.d.ts +85 -87
- package/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.d.ts +97 -99
- package/lib/Pages/ActiveDirectories/active-directory-routing.module.d.ts +7 -7
- package/lib/Pages/ActiveDirectories/active-directory.module.d.ts +26 -26
- package/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.d.ts +13 -13
- package/lib/Pages/_layout/components/aside/aside.component.d.ts +24 -24
- package/lib/Pages/_layout/components/content/content.component.d.ts +13 -13
- package/lib/Pages/_layout/components/footer/footer.component.d.ts +14 -14
- package/lib/Pages/_layout/components/header/header.component.d.ts +24 -24
- package/lib/Pages/_layout/components/header/page-title/page-title.component.d.ts +22 -22
- package/lib/Pages/_layout/components/scripts-init/scripts-init.component.d.ts +18 -18
- package/lib/Pages/_layout/components/subheader/subheader.component.d.ts +17 -17
- package/lib/Pages/_layout/components/subheader/subheader.module.d.ts +9 -9
- package/lib/Pages/_layout/components/toolbar/toolbar.component.d.ts +18 -18
- package/lib/Pages/_layout/components/toolbar/toolbar.module.d.ts +10 -10
- package/lib/Pages/_layout/components/topbar/topbar.component.d.ts +44 -44
- package/lib/Pages/anonymouslayout/activation/activation.component.d.ts +32 -32
- package/lib/Pages/anonymouslayout/anonymouslayout-routing.module.d.ts +7 -7
- package/lib/Pages/anonymouslayout/anonymouslayout.component.d.ts +24 -24
- package/lib/Pages/anonymouslayout/anonymouslayout.module.d.ts +21 -21
- package/lib/Pages/anonymouslayout/error/error.component.d.ts +25 -25
- package/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.d.ts +24 -24
- package/lib/Pages/anonymouslayout/login/login.component.d.ts +36 -36
- package/lib/Pages/anonymouslayout/rest-password/rest-password.component.d.ts +32 -32
- package/lib/Pages/anonymouslayout/upload-license/upload-license.component.d.ts +25 -25
- package/lib/Pages/authentication/auth-callback/auth-callback.component.d.ts +21 -21
- package/lib/Pages/authentication/authentication.component.d.ts +8 -8
- package/lib/Pages/authentication/authentication.module.d.ts +12 -12
- package/lib/Pages/authentication/authentication.routing.d.ts +7 -7
- package/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.d.ts +75 -75
- package/lib/Pages/configurations/auth-configuration/auth-configuration.component.d.ts +57 -58
- package/lib/Pages/configurations/configuration/configuration.component.d.ts +127 -129
- package/lib/Pages/configurations/configurations.component.d.ts +8 -8
- package/lib/Pages/configurations/configurations.module.d.ts +24 -24
- package/lib/Pages/configurations/configurations.routing.d.ts +7 -7
- package/lib/Pages/configurations/index.d.ts +6 -6
- package/lib/Pages/core/auth.module.d.ts +8 -8
- package/lib/Pages/core/authentication/admin.guard.d.ts +9 -9
- package/lib/Pages/core/authentication/auth.guard.d.ts +14 -14
- package/lib/Pages/core/authentication/auth.service.d.ts +35 -35
- package/lib/Pages/departments/department/department.component.d.ts +66 -68
- package/lib/Pages/departments/department-info/department-info.component.d.ts +58 -60
- package/lib/Pages/departments/departments-routing.module.d.ts +7 -7
- package/lib/Pages/departments/departments.component.d.ts +8 -8
- package/lib/Pages/departments/departments.module.d.ts +21 -21
- package/lib/Pages/documents/{add/add.component.d.ts → add-document/add-document.component.d.ts} +40 -40
- package/lib/Pages/documents/document-master-layouts/document-master-layouts.component.d.ts +51 -53
- package/lib/Pages/documents/document-template-info/document-template-info.component.d.ts +67 -67
- package/lib/Pages/documents/document-templates/document-templates.component.d.ts +87 -89
- package/lib/Pages/documents/documents.component.d.ts +8 -8
- package/lib/Pages/documents/documents.module.d.ts +27 -27
- package/lib/Pages/documents/documents.routing.d.ts +7 -7
- package/lib/Pages/documents/{edit/edit.component.d.ts → edit-document/edit-document.component.d.ts} +42 -42
- package/lib/Pages/documents/edit-document-template/edit-document-template.component.d.ts +39 -39
- package/lib/Pages/empty-data/empty-data.component.d.ts +14 -14
- package/lib/Pages/empty-data/empty-data.module.d.ts +8 -8
- package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +69 -71
- package/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.d.ts +23 -23
- package/lib/Pages/helpCenter/help-center-routing.module.d.ts +7 -7
- package/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.d.ts +65 -67
- package/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.d.ts +64 -66
- package/lib/Pages/helpCenter/help-center.module.d.ts +25 -25
- package/lib/Pages/helpCenter/help-centers.component.d.ts +8 -8
- package/lib/Pages/home/filter-pipe.d.ts +7 -7
- package/lib/Pages/home/home.component.d.ts +19 -19
- package/lib/Pages/home/home.module.d.ts +14 -14
- package/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.d.ts +86 -88
- package/lib/Pages/impersonation-rules/impersonation-rules.module.d.ts +19 -19
- package/lib/Pages/jobs/jobs/jobs.component.d.ts +76 -77
- package/lib/Pages/jobs/jobs.module.d.ts +17 -17
- package/lib/Pages/license/license/license.component.d.ts +59 -59
- package/lib/Pages/license/license.module.d.ts +15 -15
- package/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.d.ts +53 -53
- package/lib/Pages/localizations/localizations.component.d.ts +108 -110
- package/lib/Pages/localizations/localizations.module.d.ts +18 -18
- package/lib/Pages/logs/log/log.component.d.ts +34 -34
- package/lib/Pages/logs/logs-routing.module.d.ts +7 -7
- package/lib/Pages/logs/logs.component.d.ts +8 -8
- package/lib/Pages/logs/logs.module.d.ts +20 -20
- package/lib/Pages/lookups/lookup/lookup.component.d.ts +83 -85
- package/lib/Pages/lookups/lookup-group/lookup-group.component.d.ts +58 -60
- package/lib/Pages/lookups/lookup-item/lookup-item.component.d.ts +84 -86
- package/lib/Pages/lookups/lookups-routing.module.d.ts +7 -7
- package/lib/Pages/lookups/lookups.component.d.ts +8 -8
- package/lib/Pages/lookups/lookups.module.d.ts +24 -24
- package/lib/Pages/notifications/{add/add.component.d.ts → add-notification/add-notification.component.d.ts} +33 -33
- package/lib/Pages/notifications/edit-email/edit-email.component.d.ts +43 -43
- package/lib/Pages/notifications/{edit/edit.component.d.ts → edit-notification/edit-notification.component.d.ts} +35 -35
- package/lib/Pages/notifications/edit-sms/edit-sms.component.d.ts +37 -37
- package/lib/Pages/notifications/master-layouts/master-layouts.component.d.ts +51 -53
- package/lib/Pages/notifications/notifications-routing.module.d.ts +7 -7
- package/lib/Pages/notifications/notifications.component.d.ts +8 -8
- package/lib/Pages/notifications/notifications.module.d.ts +28 -28
- package/lib/Pages/notifications/template-info/template-info.component.d.ts +86 -86
- package/lib/Pages/notifications/templates/templates.component.d.ts +100 -102
- package/lib/Pages/providers/provider/provider.component.d.ts +118 -120
- package/lib/Pages/providers/providers-routing.module.d.ts +7 -7
- package/lib/Pages/providers/providers.component.d.ts +8 -8
- package/lib/Pages/providers/providers.module.d.ts +21 -21
- package/lib/Pages/publicHolidays/public-holiday/public-holiday.component.d.ts +73 -75
- package/lib/Pages/publicHolidays/public-holidays-routing.module.d.ts +7 -7
- package/lib/Pages/publicHolidays/public-holidays.component.d.ts +8 -8
- package/lib/Pages/publicHolidays/public-holidays.module.d.ts +21 -21
- package/lib/Pages/roles/permission-set-info/permission-set-info.component.d.ts +56 -58
- package/lib/Pages/roles/permissions/permissions.component.d.ts +63 -65
- package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +67 -69
- package/lib/Pages/roles/roles-routing.module.d.ts +7 -7
- package/lib/Pages/roles/roles.component.d.ts +8 -8
- package/lib/Pages/roles/roles.module.d.ts +24 -24
- package/lib/Pages/sectors/sector/sector.component.d.ts +62 -64
- package/lib/Pages/sectors/sector-info/sector-info.component.d.ts +60 -62
- package/lib/Pages/sectors/{department-info/department-info.component.d.ts → sectors-department-info/sectors-department-info.component.d.ts} +61 -63
- package/lib/Pages/sectors/sectors-routing.module.d.ts +7 -7
- package/lib/Pages/sectors/sectors.component.d.ts +8 -8
- package/lib/Pages/sectors/sectors.module.d.ts +23 -23
- package/lib/Pages/shared/Enums/ADType.d.ts +4 -4
- package/lib/Pages/shared/Enums/Enums.d.ts +47 -47
- package/lib/Pages/shared/Enums/ProviderType.d.ts +5 -5
- package/lib/Pages/shared/Enums/WFActivityType.d.ts +10 -10
- package/lib/Pages/shared/Enums/configuration/ConditionRHSType.d.ts +4 -4
- package/lib/Pages/shared/Enums/configuration/authentecation-configuration.d.ts +15 -15
- package/lib/Pages/shared/Pipes/survey-date.pipe.d.ts +12 -12
- package/lib/Pages/shared/Services/AccountService.service.d.ts +21 -21
- package/lib/Pages/shared/Services/ActiveDirectoryService.service.d.ts +18 -18
- package/lib/Pages/shared/Services/AnonymousLayoutService.service.d.ts +17 -17
- package/lib/Pages/shared/Services/ConfigurationsService.service.d.ts +20 -20
- package/lib/Pages/shared/Services/DepartmentService.service.d.ts +18 -18
- package/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.d.ts +15 -15
- package/lib/Pages/shared/Services/DocumentTemplateService.service.d.ts +26 -26
- package/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.d.ts +15 -15
- package/lib/Pages/shared/Services/ErrorService.service.d.ts +8 -8
- package/lib/Pages/shared/Services/GlobalErrorHandler.service.d.ts +10 -10
- package/lib/Pages/shared/Services/HelpCenterService.service.d.ts +18 -18
- package/lib/Pages/shared/Services/HttpErrorInterceptor.service.d.ts +12 -12
- package/lib/Pages/shared/Services/ImpersonationRuleService.service.d.ts +15 -15
- package/lib/Pages/shared/Services/JobsService.service.d.ts +10 -10
- package/lib/Pages/shared/Services/LicenseService.service.d.ts +12 -12
- package/lib/Pages/shared/Services/LogsService.d.ts +10 -10
- package/lib/Pages/shared/Services/LookupGroupsService.service.d.ts +14 -14
- package/lib/Pages/shared/Services/LookupService.service.d.ts +25 -25
- package/lib/Pages/shared/Services/PermissionSetService.service.d.ts +19 -19
- package/lib/Pages/shared/Services/PermissionsService.service.d.ts +15 -15
- package/lib/Pages/shared/Services/PublicHolidayService.service.d.ts +16 -16
- package/lib/Pages/shared/Services/SectorService.service.d.ts +18 -18
- package/lib/Pages/shared/Services/TemplateService.service.d.ts +34 -34
- package/lib/Pages/shared/Services/WorkFlowVersionService.service.d.ts +10 -10
- package/lib/Pages/shared/Services/WorkflowActivityService.service.d.ts +19 -19
- package/lib/Pages/shared/Services/WorkflowInstanceService.service.d.ts +10 -10
- package/lib/Pages/shared/Services/WorkflowLogVariablesService.service.d.ts +10 -10
- package/lib/Pages/shared/Services/WorkflowService.service.d.ts +15 -15
- package/lib/Pages/shared/Services/WorkflowVariablesService.service.d.ts +15 -15
- package/lib/Pages/shared/Services/data.service.d.ts +9 -9
- package/lib/Pages/shared/Services/injectionModuleService.service.d.ts +50 -50
- package/lib/Pages/shared/Services/localizationsService.service .d.ts +28 -28
- package/lib/Pages/shared/Services/provider.service.d.ts +25 -25
- package/lib/Pages/shared/Services/survey-question.service.d.ts +19 -19
- package/lib/Pages/shared/Services/survey.service.d.ts +38 -38
- package/lib/Pages/shared/Services/userService.service.d.ts +29 -29
- package/lib/Pages/shared/base.service.d.ts +4 -4
- package/lib/Pages/shared/components/AdDirective.d.ts +8 -8
- package/lib/Pages/shared/components/external-url/external-url.component.d.ts +61 -61
- package/lib/Pages/shared/components/no-results/no-results.component.d.ts +10 -10
- package/lib/Pages/shared/components/survey/add-survey/add-survey.component.d.ts +40 -40
- package/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.d.ts +43 -43
- package/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.d.ts +83 -83
- package/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.d.ts +19 -19
- package/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.d.ts +84 -84
- package/lib/Pages/shared/components/survey/survey-info/preview/preview.component.d.ts +40 -40
- package/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.d.ts +31 -31
- package/lib/Pages/shared/components/survey/survey-info/result-question/result.component.d.ts +27 -27
- package/lib/Pages/shared/components/survey/survey-info/survey-info.component.d.ts +119 -119
- package/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.d.ts +39 -39
- package/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.d.ts +32 -32
- package/lib/Pages/shared/components/survey/survey.component.d.ts +65 -65
- package/lib/Pages/shared/components/survey-form/survey-form.component.d.ts +41 -41
- package/lib/Pages/shared/components/survey-form-item/survey-form-item.component.d.ts +23 -23
- package/lib/Pages/shared/components/survey-layout/survey-layout.component.d.ts +8 -8
- package/lib/Pages/shared/config/environment.d.ts +1 -1
- package/lib/Pages/shared/constants.d.ts +129 -129
- package/lib/Pages/shared/filter/filter.component.d.ts +8 -8
- package/lib/Pages/shared/models/ADModels/ADMappingModel.d.ts +6 -6
- package/lib/Pages/shared/models/ADModels/ActiveDirectoryAddEditModel.d.ts +28 -28
- package/lib/Pages/shared/models/AccountModels/forgotPasswordModel.d.ts +3 -3
- package/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.d.ts +64 -64
- package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +9 -9
- package/lib/Pages/shared/models/DepartmentModels/DepartmentUsersIDRequestModel.d.ts +4 -4
- package/lib/Pages/shared/models/DocumentsModels/DocumentExportDTO.d.ts +8 -8
- package/lib/Pages/shared/models/DocumentsModels/DocumentHeaderAndFooterTemplate.d.ts +16 -16
- package/lib/Pages/shared/models/DocumentsModels/DocumentTemplateDTO.d.ts +13 -13
- package/lib/Pages/shared/models/DocumentsModels/DocumentTemplateInfoDTO.d.ts +7 -7
- package/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.d.ts +17 -17
- package/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.d.ts +9 -9
- package/lib/Pages/shared/models/ImpersonationRuleModels/ParticipantModel.d.ts +15 -15
- package/lib/Pages/shared/models/InjectedModuleModel/InjectedModule.d.ts +5 -5
- package/lib/Pages/shared/models/JobModels/JobCountsModel.d.ts +8 -8
- package/lib/Pages/shared/models/LicenseModel/LicenseModel.d.ts +5 -5
- package/lib/Pages/shared/models/LocalizationModels/EditResourceModel.d.ts +7 -7
- package/lib/Pages/shared/models/LocalizationModels/LocalizationReplaceTextModel.d.ts +9 -9
- package/lib/Pages/shared/models/LocalizationModels/UploadJsonVM.d.ts +5 -5
- package/lib/Pages/shared/models/Lookups/LookupGroupModel.d.ts +5 -5
- package/lib/Pages/shared/models/Lookups/LookupItem.d.ts +13 -13
- package/lib/Pages/shared/models/Lookups/LookupModel.d.ts +13 -13
- package/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.d.ts +9 -9
- package/lib/Pages/shared/models/NotificationsModels/EmailTemplateInfoDTO.d.ts +15 -15
- package/lib/Pages/shared/models/NotificationsModels/EmailTemplateTesterModel.d.ts +9 -9
- package/lib/Pages/shared/models/NotificationsModels/SMSTemplateInfoDTO.d.ts +9 -9
- package/lib/Pages/shared/models/NotificationsModels/SMSTemplateTesterModel.d.ts +9 -9
- package/lib/Pages/shared/models/NotificationsModels/SendEmailTemplateModel.d.ts +8 -8
- package/lib/Pages/shared/models/NotificationsModels/TemplateDTO.d.ts +22 -22
- package/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.d.ts +11 -11
- package/lib/Pages/shared/models/PermissionsModels/PermissionModel.d.ts +8 -8
- package/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.d.ts +10 -10
- package/lib/Pages/shared/models/PermissionsModels/PermissionSetUsersIDRequestModel.d.ts +4 -4
- package/lib/Pages/shared/models/ProviderModels/DefaultProviderModel.d.ts +6 -6
- package/lib/Pages/shared/models/ProviderModels/EmailProviderTesterModel.d.ts +7 -7
- package/lib/Pages/shared/models/ProviderModels/ProviderAttributeModel.d.ts +7 -7
- package/lib/Pages/shared/models/ProviderModels/ProviderModel.d.ts +13 -13
- package/lib/Pages/shared/models/ProviderModels/SMSProviderTesterModel.d.ts +6 -6
- package/lib/Pages/shared/models/PublicHolidayModels/PublicHolidayModel.d.ts +15 -15
- package/lib/Pages/shared/models/SectorModels/SectorDepartmentModel.d.ts +4 -4
- package/lib/Pages/shared/models/SectorModels/SectorModel.d.ts +6 -6
- package/lib/Pages/shared/models/SurveyModels/DeleteSurveyDTO.d.ts +3 -3
- package/lib/Pages/shared/models/SurveyModels/add-survey-submissio.d.ts +21 -21
- package/lib/Pages/shared/models/SurveyModels/add-survey.d.ts +18 -18
- package/lib/Pages/shared/models/SurveyModels/model.d.ts +3 -3
- package/lib/Pages/shared/models/SurveyModels/survey-field-options.d.ts +24 -24
- package/lib/Pages/shared/models/SurveyModels/survey-filed-value.d.ts +22 -22
- package/lib/Pages/shared/models/SurveyModels/survey-form-options.d.ts +8 -8
- package/lib/Pages/shared/models/SurveyModels/survey-publish.d.ts +15 -15
- package/lib/Pages/shared/models/SurveyModels/survey-question-option.d.ts +9 -9
- package/lib/Pages/shared/models/SurveyModels/survey-question.d.ts +21 -21
- package/lib/Pages/shared/models/SurveyModels/survey-utils.d.ts +5 -5
- package/lib/Pages/shared/models/UserModels/ActivationModel.d.ts +10 -10
- package/lib/Pages/shared/models/UserModels/AddUserModel.d.ts +33 -33
- package/lib/Pages/shared/models/UserModels/DropdownsResponseModel.d.ts +9 -9
- package/lib/Pages/shared/models/UserModels/EditUserModel.d.ts +25 -25
- package/lib/Pages/shared/models/UserModels/IdentityModel.d.ts +9 -9
- package/lib/Pages/shared/models/UserModels/UserSearchParamDTO.d.ts +8 -8
- package/lib/Pages/shared/models/UserModels/UsersIDRequestModel.d.ts +3 -3
- package/lib/Pages/shared/models/WorkflowModels/VariableLookupModel.d.ts +9 -9
- package/lib/Pages/shared/models/WorkflowModels/WFActivityModel.d.ts +40 -40
- package/lib/Pages/shared/models/WorkflowModels/WFActivityOutcomeModel.d.ts +13 -13
- package/lib/Pages/shared/models/WorkflowModels/WFActivityVariablesModel.d.ts +13 -13
- package/lib/Pages/shared/models/WorkflowModels/WFCreationModel.d.ts +10 -10
- package/lib/Pages/shared/models/WorkflowModels/WFVariableModel.d.ts +23 -23
- package/lib/Pages/shared/models/user.registration.d.ts +6 -6
- package/lib/Pages/shared/modules/public-survey.module.d.ts +15 -15
- package/lib/Pages/shared/modules/survey-routing.module.d.ts +7 -7
- package/lib/Pages/shared/modules/survey.module.d.ts +35 -35
- package/lib/Pages/shared/shared.module.d.ts +8 -8
- package/lib/Pages/shared/stylesbundle.service.d.ts +9 -9
- package/lib/Pages/start/index/index.component.d.ts +15 -15
- package/lib/Pages/start/start-routing.module.d.ts +7 -7
- package/lib/Pages/start/start.module.d.ts +11 -11
- package/lib/Pages/users/users.component.d.ts +138 -139
- package/lib/Pages/users/users.module.d.ts +18 -18
- package/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.d.ts +77 -77
- package/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.d.ts +82 -82
- package/lib/Pages/workflows/instance-info/instance-info.component.d.ts +81 -81
- package/lib/Pages/workflows/tabs/tabs.component.d.ts +126 -128
- package/lib/Pages/workflows/version-info/version-info.component.d.ts +41 -41
- package/lib/Pages/workflows/workflow/workflow.component.d.ts +54 -55
- package/lib/Pages/workflows/workflows-routing.module.d.ts +7 -7
- package/lib/Pages/workflows/workflows.component.d.ts +8 -8
- package/lib/Pages/workflows/workflows.module.d.ts +27 -27
- package/lib/_metronic/configs/default-layout.config.d.ts +139 -139
- package/lib/_metronic/core/_utils/DomHelpers.d.ts +26 -26
- package/lib/_metronic/core/_utils/ElementAnimateUtil.d.ts +13 -13
- package/lib/_metronic/core/_utils/EventHandlerUtil.d.ts +20 -20
- package/lib/_metronic/core/_utils/_DOMEventHandlerUtil.d.ts +6 -6
- package/lib/_metronic/core/_utils/_DataUtil.d.ts +8 -8
- package/lib/_metronic/core/_utils/_ElementStyleUtil.d.ts +5 -5
- package/lib/_metronic/core/_utils/_TypesHelpers.d.ts +10 -10
- package/lib/_metronic/core/_utils/models/OffsetModel.d.ts +4 -4
- package/lib/_metronic/core/_utils/models/ViewPortModel.d.ts +4 -4
- package/lib/_metronic/core/components/MenuComponent.d.ts +88 -88
- package/lib/_metronic/core/components/_CookieComponent.d.ts +25 -25
- package/lib/_metronic/core/components/_DrawerComponent.d.ts +49 -49
- package/lib/_metronic/core/components/_ScrollComponent.d.ts +31 -31
- package/lib/_metronic/core/components/_ScrollTopComponent.d.ts +24 -24
- package/lib/_metronic/core/components/_ToggleComponent.d.ts +36 -36
- package/lib/_metronic/core/services/layout-init.service.d.ts +18 -18
- package/lib/_metronic/core/services/layout.service.d.ts +38 -38
- package/lib/_metronic/core/services/page-info.service.d.ts +32 -32
- package/lib/masterlayout-routing.module.d.ts +11 -13
- package/lib/masterlayout.component.d.ts +63 -63
- package/lib/masterlayout.module.d.ts +34 -34
- package/package.json +25 -30
- package/public-api.d.ts +41 -41
- package/src/lib/assets/images/menu/Tools.svg +10 -4
- package/src/lib/assets/images/menu/authentication.svg +9 -0
- package/src/lib/assets/sass/style-rtl.scss +3 -3
- package/src/lib/assets/sass/style.scss +3 -3
- package/bnsights-bbsf-admin-portal-1.1.2.tgz +0 -0
- package/esm2020/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +0 -421
- package/esm2020/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +0 -528
- package/esm2020/lib/Pages/ActiveDirectories/active-directory.module.mjs +0 -108
- package/esm2020/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +0 -23
- package/esm2020/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +0 -100
- package/esm2020/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +0 -330
- package/esm2020/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +0 -157
- package/esm2020/lib/Pages/configurations/configuration/configuration.component.mjs +0 -801
- package/esm2020/lib/Pages/configurations/configurations.module.mjs +0 -104
- package/esm2020/lib/Pages/core/authentication/admin.guard.mjs +0 -17
- package/esm2020/lib/Pages/core/authentication/auth.service.mjs +0 -147
- package/esm2020/lib/Pages/departments/department/department.component.mjs +0 -220
- package/esm2020/lib/Pages/departments/department-info/department-info.component.mjs +0 -185
- package/esm2020/lib/Pages/departments/departments.module.mjs +0 -94
- package/esm2020/lib/Pages/documents/add/add.component.mjs +0 -136
- package/esm2020/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +0 -148
- package/esm2020/lib/Pages/documents/document-templates/document-templates.component.mjs +0 -437
- package/esm2020/lib/Pages/documents/documents.module.mjs +0 -114
- package/esm2020/lib/Pages/documents/documents.routing.mjs +0 -37
- package/esm2020/lib/Pages/documents/edit/edit.component.mjs +0 -169
- package/esm2020/lib/Pages/helpCenter/help-center/help-center.component.mjs +0 -294
- package/esm2020/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +0 -43
- package/esm2020/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +0 -242
- package/esm2020/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +0 -243
- package/esm2020/lib/Pages/helpCenter/help-center.module.mjs +0 -98
- package/esm2020/lib/Pages/home/home.component.mjs +0 -153
- package/esm2020/lib/Pages/home/home.module.mjs +0 -48
- package/esm2020/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +0 -443
- package/esm2020/lib/Pages/impersonation-rules/impersonation-rules.module.mjs +0 -95
- package/esm2020/lib/Pages/jobs/jobs/jobs.component.mjs +0 -223
- package/esm2020/lib/Pages/jobs/jobs.module.mjs +0 -87
- package/esm2020/lib/Pages/license/license.module.mjs +0 -71
- package/esm2020/lib/Pages/localizations/localizations.component.mjs +0 -516
- package/esm2020/lib/Pages/localizations/localizations.module.mjs +0 -79
- package/esm2020/lib/Pages/logs/logs.module.mjs +0 -87
- package/esm2020/lib/Pages/lookups/lookup/lookup.component.mjs +0 -367
- package/esm2020/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +0 -187
- package/esm2020/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +0 -297
- package/esm2020/lib/Pages/lookups/lookups.module.mjs +0 -100
- package/esm2020/lib/Pages/notifications/add/add.component.mjs +0 -104
- package/esm2020/lib/Pages/notifications/edit/edit.component.mjs +0 -133
- package/esm2020/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +0 -148
- package/esm2020/lib/Pages/notifications/notifications-routing.module.mjs +0 -39
- package/esm2020/lib/Pages/notifications/notifications.module.mjs +0 -101
- package/esm2020/lib/Pages/notifications/templates/templates.component.mjs +0 -495
- package/esm2020/lib/Pages/providers/provider/provider.component.mjs +0 -615
- package/esm2020/lib/Pages/providers/providers.module.mjs +0 -91
- package/esm2020/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +0 -334
- package/esm2020/lib/Pages/publicHolidays/public-holidays.module.mjs +0 -94
- package/esm2020/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +0 -187
- package/esm2020/lib/Pages/roles/permissions/permissions.component.mjs +0 -226
- package/esm2020/lib/Pages/roles/permissionsets/permissionsets.component.mjs +0 -277
- package/esm2020/lib/Pages/roles/roles.module.mjs +0 -105
- package/esm2020/lib/Pages/sectors/department-info/department-info.component.mjs +0 -187
- package/esm2020/lib/Pages/sectors/sector/sector.component.mjs +0 -193
- package/esm2020/lib/Pages/sectors/sector-info/sector-info.component.mjs +0 -180
- package/esm2020/lib/Pages/sectors/sectors.module.mjs +0 -96
- package/esm2020/lib/Pages/shared/Enums/WFVariableDataType.mjs +0 -14
- package/esm2020/lib/Pages/shared/Services/injectionModuleService.service.mjs +0 -163
- package/esm2020/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +0 -192
- package/esm2020/lib/Pages/shared/components/survey-form/survey-form.component.mjs +0 -696
- package/esm2020/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +0 -84
- package/esm2020/lib/Pages/shared/constants.mjs +0 -130
- package/esm2020/lib/Pages/shared/models/SurveyModels/survey-utils.mjs +0 -8
- package/esm2020/lib/Pages/shared/modules/public-survey.module.mjs +0 -68
- package/esm2020/lib/Pages/shared/modules/survey.module.mjs +0 -126
- package/esm2020/lib/Pages/shared/shared.module.mjs +0 -31
- package/esm2020/lib/Pages/users/users.component.mjs +0 -806
- package/esm2020/lib/Pages/users/users.module.mjs +0 -86
- package/esm2020/lib/Pages/workflows/tabs/tabs.component.mjs +0 -793
- package/esm2020/lib/Pages/workflows/workflow/workflow.component.mjs +0 -209
- package/esm2020/lib/Pages/workflows/workflows.module.mjs +0 -103
- package/esm2020/lib/_metronic/core/_utils/EventHandlerUtil.mjs +0 -90
- package/esm2020/lib/_metronic/core/_utils/_DOMEventHandlerUtil.mjs +0 -49
- package/esm2020/lib/_metronic/core/_utils/_DataUtil.mjs +0 -48
- package/esm2020/lib/_metronic/core/components/_DrawerComponent.mjs +0 -290
- package/esm2020/lib/_metronic/core/components/_ScrollTopComponent.mjs +0 -113
- package/esm2020/lib/_metronic/core/components/_ToggleComponent.mjs +0 -157
- package/esm2020/lib/_metronic/core/services/page-info.service.mjs +0 -119
- package/esm2020/lib/masterlayout-routing.module.mjs +0 -45
- package/esm2020/lib/masterlayout.module.mjs +0 -188
- package/fesm2015/bnsights-bbsf-admin-portal.mjs +0 -27293
- package/fesm2015/bnsights-bbsf-admin-portal.mjs.map +0 -1
- package/fesm2020/bnsights-bbsf-admin-portal.mjs.map +0 -1
- package/lib/Pages/shared/Enums/WFVariableDataType.d.ts +0 -12
|
@@ -1,421 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { FormGroup } from '@angular/forms';
|
|
3
|
-
import { CheckBoxOptions, ConfirmationModalOptions, ControlLayout, DropdownOptions, FilterItem, FilterType, FormOptions, InputType, PagingActionMode, PagingOptions, StyleConfirmationMode, TextBoxOptions, ToggleSlideOptions } from '@bnsights/bbsf-controls';
|
|
4
|
-
import { ActiveDirectoryAddEditModel } from '../../shared/models/ADModels/ActiveDirectoryAddEditModel';
|
|
5
|
-
import { ADMappingModel } from '../../shared/models/ADModels/ADMappingModel';
|
|
6
|
-
import { PageInfoService } from '../../../_metronic/core/services/page-info.service';
|
|
7
|
-
import { ADType } from '../../shared/Enums/ADType';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@bnsights/bbsf-utilities";
|
|
10
|
-
import * as i2 from "../../../_metronic/core/services/page-info.service";
|
|
11
|
-
import * as i3 from "../../shared/Services/ActiveDirectoryService.service";
|
|
12
|
-
import * as i4 from "@ng-bootstrap/ng-bootstrap";
|
|
13
|
-
import * as i5 from "@angular/router";
|
|
14
|
-
import * as i6 from "@angular/common";
|
|
15
|
-
import * as i7 from "@angular/forms";
|
|
16
|
-
import * as i8 from "ng-block-ui";
|
|
17
|
-
import * as i9 from "@bnsights/bbsf-controls";
|
|
18
|
-
import * as i10 from "@angular/material/menu";
|
|
19
|
-
import * as i11 from "ng-inline-svg";
|
|
20
|
-
import * as i12 from "../../empty-data/empty-data.component";
|
|
21
|
-
export class ActiveDirectoryComponent {
|
|
22
|
-
constructor(authService, pageInfoService, utilityService, bbsfTranslateService, activeDirectoryService, modalService, requestHandlerService) {
|
|
23
|
-
this.authService = authService;
|
|
24
|
-
this.pageInfoService = pageInfoService;
|
|
25
|
-
this.utilityService = utilityService;
|
|
26
|
-
this.bbsfTranslateService = bbsfTranslateService;
|
|
27
|
-
this.activeDirectoryService = activeDirectoryService;
|
|
28
|
-
this.modalService = modalService;
|
|
29
|
-
this.requestHandlerService = requestHandlerService;
|
|
30
|
-
//Page requirements
|
|
31
|
-
this.apiUrl = "/api/admin/ADConnection/";
|
|
32
|
-
this.showPageContent = false;
|
|
33
|
-
//Filter and paging components
|
|
34
|
-
this.activeDirectoryForm = new FormGroup({});
|
|
35
|
-
this.activeDirectoryPagingResult = [];
|
|
36
|
-
this.clientSidePagingResult = [];
|
|
37
|
-
this.isFilterLoaded = false;
|
|
38
|
-
//Required lists
|
|
39
|
-
this.permissionSetList = [];
|
|
40
|
-
this.languagesList = [];
|
|
41
|
-
this.welcomeMsgTempList = [];
|
|
42
|
-
this.mappingTypesList = [];
|
|
43
|
-
this.mappingPropertiesList = [];
|
|
44
|
-
////Edit Model Controls
|
|
45
|
-
//Shared controls
|
|
46
|
-
this.editActiveDirectoryForm = new FormGroup({});
|
|
47
|
-
this.editMappingsOptions = [];
|
|
48
|
-
this.deleteControlLoaded = false;
|
|
49
|
-
this.syncControlLoaded = false;
|
|
50
|
-
this.getEditADModel = () => {
|
|
51
|
-
let paramArray = [];
|
|
52
|
-
let resultModel = this.editActiveDirectoryForm.value;
|
|
53
|
-
let EditModel = new ActiveDirectoryAddEditModel();
|
|
54
|
-
EditModel.ID = Number(this.activeDirectoryId);
|
|
55
|
-
EditModel.ConnectionName = resultModel.editName;
|
|
56
|
-
EditModel.PermissionSetID = resultModel.editPermissionSetOptions != null ? Number(resultModel.editPermissionSetOptions) : null;
|
|
57
|
-
EditModel.LangKey = resultModel.editLanguageOptions;
|
|
58
|
-
EditModel.WelcomeTemplateID = resultModel.editWelcomeMsgTemplateOptions != null ? Number(resultModel.editWelcomeMsgTemplateOptions) : null;
|
|
59
|
-
EditModel.MarkAsInactive = resultModel.editInactive;
|
|
60
|
-
EditModel.AddToDailyJob = resultModel.editDailyJob;
|
|
61
|
-
if (this.editADTypeID == Number(ADType.Windows)) {
|
|
62
|
-
EditModel.Domain = resultModel.editDomain;
|
|
63
|
-
EditModel.SamAccount = resultModel.editSamAccount;
|
|
64
|
-
EditModel.Password = resultModel.editPassword;
|
|
65
|
-
}
|
|
66
|
-
else if (this.editADTypeID == Number(ADType.Azure)) {
|
|
67
|
-
EditModel.TenantID = resultModel.editTenantID;
|
|
68
|
-
EditModel.ClientID = resultModel.editClientID;
|
|
69
|
-
EditModel.ClientSecret = resultModel.editClientSecret;
|
|
70
|
-
}
|
|
71
|
-
for (let j = 0; j < this.editMappingsCount; j++) {
|
|
72
|
-
let editMAppingType = resultModel["ADMappingType" + j];
|
|
73
|
-
if (editMAppingType == undefined)
|
|
74
|
-
continue;
|
|
75
|
-
let editMAppingProperty = resultModel["ADMappingProperty" + j];
|
|
76
|
-
let editMAppingPropertyName = resultModel["ADMappingPropertyName" + j];
|
|
77
|
-
let editMAppingIncludeInUpdate = resultModel["ADMappingIncludeUpdate" + j];
|
|
78
|
-
let editMAppingHiddenIncludeInUpdate = resultModel["ADMappingHiddenIncludeUpdate" + j];
|
|
79
|
-
let adMAppingObj = new ADMappingModel();
|
|
80
|
-
adMAppingObj.ADMappingTypeItemID = Number(editMAppingType);
|
|
81
|
-
adMAppingObj.BBSFPropertyName = editMAppingProperty;
|
|
82
|
-
adMAppingObj.ADPropertyName = editMAppingPropertyName;
|
|
83
|
-
adMAppingObj.IncludeInUpdate = editMAppingIncludeInUpdate == undefined ? editMAppingHiddenIncludeInUpdate : editMAppingIncludeInUpdate;
|
|
84
|
-
EditModel.ADMappings.push(adMAppingObj);
|
|
85
|
-
}
|
|
86
|
-
paramArray.push(EditModel);
|
|
87
|
-
return paramArray;
|
|
88
|
-
};
|
|
89
|
-
this.getEditADFunction = (EditModel) => {
|
|
90
|
-
return this.activeDirectoryService.editActiveDirectory(EditModel);
|
|
91
|
-
};
|
|
92
|
-
this.deleteActiveDirectory = (id) => {
|
|
93
|
-
return this.activeDirectoryService.deleteActiveDirectory(id);
|
|
94
|
-
};
|
|
95
|
-
this.runSyncronization = (id) => {
|
|
96
|
-
return this.activeDirectoryService.runADSynchronization(id);
|
|
97
|
-
};
|
|
98
|
-
this.runSyncOnSuccess = (result) => {
|
|
99
|
-
window.location.reload();
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
async ngOnInit() {
|
|
103
|
-
this.showPageContent = true;
|
|
104
|
-
PageInfoService.PageTitle = this.utilityService.getResourceValue("ActiveDirectories");
|
|
105
|
-
PageInfoService.PageBreadcrumbs = [
|
|
106
|
-
{ title: this.utilityService.getResourceValue("Home"), path: '/Admin/Home', isSeparator: false, isActive: false },
|
|
107
|
-
{ title: '', path: '', isSeparator: true, isActive: false }
|
|
108
|
-
];
|
|
109
|
-
this.pageInfoService.calculateTitle();
|
|
110
|
-
this.pageInfoService.calculateBreadcrumbs();
|
|
111
|
-
this.bbsfTranslateService.onLangChange.subscribe((event) => {
|
|
112
|
-
this.showPageContent = false;
|
|
113
|
-
this.ngOnInit();
|
|
114
|
-
});
|
|
115
|
-
this.initializePage();
|
|
116
|
-
}
|
|
117
|
-
//initialize filters and paging
|
|
118
|
-
initializePage() {
|
|
119
|
-
// TextBox init
|
|
120
|
-
this.searchTextBox = new TextBoxOptions();
|
|
121
|
-
this.searchTextBox.Name = "searchTextBox";
|
|
122
|
-
this.searchTextBox.Type = InputType.Text;
|
|
123
|
-
this.searchTextBox.Placeholder = this.utilityService.getResourceValue("SearchByName");
|
|
124
|
-
this.searchTextBox.HideLabel = true;
|
|
125
|
-
this.textInputFilter = new FilterItem();
|
|
126
|
-
this.textInputFilter.FormControlName = "searchTextBox";
|
|
127
|
-
this.textInputFilter.ActionParameterName = "searchText";
|
|
128
|
-
this.textInputFilter.IsFormControl = true;
|
|
129
|
-
this.textInputFilter.FilterType = FilterType.TextBox;
|
|
130
|
-
this.activeDirectoryPaging = new PagingOptions();
|
|
131
|
-
this.activeDirectoryPaging.ActionPostURL = this.apiUrl + 'GetADConnectionByFilter';
|
|
132
|
-
this.activeDirectoryPaging.OnKeyPressFiltersControlNames = ["searchTextBox"];
|
|
133
|
-
this.activeDirectoryPaging.Filters = [this.textInputFilter];
|
|
134
|
-
this.activeDirectoryPaging.ValidationToken = this.authService.authorizationHeaderValue();
|
|
135
|
-
this.isFilterLoaded = true;
|
|
136
|
-
}
|
|
137
|
-
//Paging functions
|
|
138
|
-
setActiveDirectoryListResult(result) {
|
|
139
|
-
this.activeDirectoryPagingResult = result;
|
|
140
|
-
this.clientSidePagingResult = result;
|
|
141
|
-
this.showPageContent = true;
|
|
142
|
-
this.utilityService.stopBlockUI();
|
|
143
|
-
}
|
|
144
|
-
//Edit ActiveDirectory
|
|
145
|
-
showEditActiveDirectoryModal(activeDirectoryID, activeDirectoryIDEnc, editADModal) {
|
|
146
|
-
this.activeDirectoryId = activeDirectoryID;
|
|
147
|
-
this.showWindowsControl = false;
|
|
148
|
-
this.showAzureControl = false;
|
|
149
|
-
this.activeDirectoryService.getEditActiveDirectory(activeDirectoryIDEnc).subscribe((result) => {
|
|
150
|
-
let resultObj = result;
|
|
151
|
-
let activeDirectory = resultObj.model;
|
|
152
|
-
let lists = resultObj.dropdownsData;
|
|
153
|
-
this.editADTypeID = activeDirectory.adTypeItemID;
|
|
154
|
-
//Load ists
|
|
155
|
-
this.permissionSetList = lists.permissionSets;
|
|
156
|
-
this.languagesList = lists.languages;
|
|
157
|
-
this.welcomeMsgTempList = lists.templates;
|
|
158
|
-
this.mappingTypesList = lists.mappingTypes;
|
|
159
|
-
this.mappingPropertiesList = lists.mappingProperties;
|
|
160
|
-
this.editActiveDirectoryForm = new FormGroup({});
|
|
161
|
-
this.editActiveDirectoryFormOptions = new FormOptions();
|
|
162
|
-
this.editActiveDirectoryFormOptions.FormGroup = this.editActiveDirectoryForm;
|
|
163
|
-
this.editActiveDirectoryFormOptions.GetModelFunction = this.getEditADModel;
|
|
164
|
-
this.editActiveDirectoryFormOptions.ServiceSubmitFunction = this.getEditADFunction;
|
|
165
|
-
this.editActiveDirectoryFormOptions.PagingReference = this.pagingElement;
|
|
166
|
-
this.editActiveDirectoryFormOptions.PagingActionMode = PagingActionMode.Update;
|
|
167
|
-
this.editName = new TextBoxOptions();
|
|
168
|
-
this.editName.Name = "editName";
|
|
169
|
-
this.editName.LabelKey = "Name";
|
|
170
|
-
this.editName.Type = InputType.Text;
|
|
171
|
-
this.editName.IsRequired = true;
|
|
172
|
-
this.editName.Value = activeDirectory.connectionName;
|
|
173
|
-
this.editName.MaxLength = 100;
|
|
174
|
-
let selectedPermissionSet = this.permissionSetList.filter((item) => { return item.key == activeDirectory.permissionSetID; }).map((item) => item.key)[0];
|
|
175
|
-
this.editPermissionSetOptions = new DropdownOptions();
|
|
176
|
-
this.editPermissionSetOptions.Name = "editPermissionSetOptions";
|
|
177
|
-
this.editPermissionSetOptions.LabelKey = "PermissionSet";
|
|
178
|
-
this.editPermissionSetOptions.DataSource = this.permissionSetList;
|
|
179
|
-
this.editPermissionSetOptions.SingleSelection = true;
|
|
180
|
-
this.editPermissionSetOptions.AllowSearchFilter = true;
|
|
181
|
-
this.editPermissionSetOptions.Placeholder = "";
|
|
182
|
-
this.editPermissionSetOptions.IsRequired = true;
|
|
183
|
-
this.editPermissionSetOptions.SelectedItems = selectedPermissionSet;
|
|
184
|
-
let selectedLanguage = this.languagesList.filter((item) => { return item.key == activeDirectory.langKey; }).map((item) => item.key)[0];
|
|
185
|
-
this.editLanguageOptions = new DropdownOptions();
|
|
186
|
-
this.editLanguageOptions.Name = "editLanguageOptions";
|
|
187
|
-
this.editLanguageOptions.LabelValue = "Language";
|
|
188
|
-
this.editLanguageOptions.LabelKey = "Language";
|
|
189
|
-
this.editLanguageOptions.DataSource = this.languagesList;
|
|
190
|
-
this.editLanguageOptions.SingleSelection = true;
|
|
191
|
-
this.editLanguageOptions.AllowSearchFilter = true;
|
|
192
|
-
this.editLanguageOptions.Placeholder = "";
|
|
193
|
-
this.editLanguageOptions.IsRequired = true;
|
|
194
|
-
this.editLanguageOptions.SelectedItems = selectedLanguage;
|
|
195
|
-
let selectedWelcomeMsgTemp = activeDirectory.welcomeTemplateID != null ? this.welcomeMsgTempList.filter((item) => { return item.key == activeDirectory.welcomeTemplateID; }).map((item) => item.key)[0] : null;
|
|
196
|
-
this.editWelcomeMsgTemplateOptions = new DropdownOptions();
|
|
197
|
-
this.editWelcomeMsgTemplateOptions.Name = "editWelcomeMsgTemplateOptions";
|
|
198
|
-
this.editWelcomeMsgTemplateOptions.LabelKey = "WelcomeMsgTemplate";
|
|
199
|
-
this.editWelcomeMsgTemplateOptions.DataSource = this.welcomeMsgTempList;
|
|
200
|
-
this.editWelcomeMsgTemplateOptions.SingleSelection = true;
|
|
201
|
-
this.editWelcomeMsgTemplateOptions.AllowSearchFilter = true;
|
|
202
|
-
this.editWelcomeMsgTemplateOptions.Placeholder = "";
|
|
203
|
-
this.editWelcomeMsgTemplateOptions.IsRequired = false;
|
|
204
|
-
this.editWelcomeMsgTemplateOptions.SelectedItems = selectedWelcomeMsgTemp;
|
|
205
|
-
this.editInactive = new ToggleSlideOptions();
|
|
206
|
-
this.editInactive.Name = "editInactive";
|
|
207
|
-
this.editInactive.Value = activeDirectory.markAsInactive;
|
|
208
|
-
this.editInactive.LabelKey = "MarkAsInactive";
|
|
209
|
-
this.editInactive.ViewType = ControlLayout.Horizontal;
|
|
210
|
-
this.editDailyJob = new ToggleSlideOptions();
|
|
211
|
-
this.editDailyJob.Name = "editDailyJob";
|
|
212
|
-
this.editDailyJob.LabelKey = "AddToDailyJob";
|
|
213
|
-
this.editDailyJob.Value = activeDirectory.addToDailyJob;
|
|
214
|
-
this.editDailyJob.ViewType = ControlLayout.Horizontal;
|
|
215
|
-
//Windows mode
|
|
216
|
-
if (this.editADTypeID == Number(ADType.Windows)) {
|
|
217
|
-
this.editIdentifier = activeDirectory.identifier;
|
|
218
|
-
this.editWindowsTypeName = activeDirectory.adTypeName;
|
|
219
|
-
this.editDomain = new TextBoxOptions();
|
|
220
|
-
this.editDomain.Name = "editDomain";
|
|
221
|
-
this.editDomain.LabelKey = "Domain";
|
|
222
|
-
this.editDomain.Type = InputType.Text;
|
|
223
|
-
this.editDomain.IsRequired = true;
|
|
224
|
-
this.editDomain.Value = activeDirectory.domain;
|
|
225
|
-
this.editDomain.MaxLength = 256;
|
|
226
|
-
this.editSamAccount = new TextBoxOptions();
|
|
227
|
-
this.editSamAccount.Name = "editSamAccount";
|
|
228
|
-
this.editSamAccount.LabelKey = "SamAccount";
|
|
229
|
-
this.editSamAccount.Type = InputType.Text;
|
|
230
|
-
this.editSamAccount.Value = activeDirectory.samAccount;
|
|
231
|
-
this.editSamAccount.MaxLength = 20;
|
|
232
|
-
this.editPassword = new TextBoxOptions();
|
|
233
|
-
this.editPassword.Name = "editPassword";
|
|
234
|
-
this.editPassword.LabelKey = "Password";
|
|
235
|
-
this.editPassword.Type = InputType.Password;
|
|
236
|
-
this.editPassword.RemoveDefaultPasswordValidation = true;
|
|
237
|
-
this.editPassword.Value = activeDirectory.password;
|
|
238
|
-
this.editPassword.MaxLength = 4000;
|
|
239
|
-
this.showWindowsControl = true;
|
|
240
|
-
}
|
|
241
|
-
else if (this.editADTypeID == Number(ADType.Azure)) {
|
|
242
|
-
this.editTenantID = new TextBoxOptions();
|
|
243
|
-
this.editTenantID.Name = "editTenantID";
|
|
244
|
-
this.editTenantID.LabelKey = "TenantID";
|
|
245
|
-
this.editTenantID.Type = InputType.Text;
|
|
246
|
-
this.editTenantID.IsRequired = true;
|
|
247
|
-
this.editTenantID.Value = activeDirectory.tenantID;
|
|
248
|
-
this.editTenantID.MaxLength = 100;
|
|
249
|
-
this.editClientID = new TextBoxOptions();
|
|
250
|
-
this.editClientID.Name = "editClientID";
|
|
251
|
-
this.editClientID.LabelKey = "ClientID";
|
|
252
|
-
this.editClientID.Type = InputType.Text;
|
|
253
|
-
this.editClientID.IsRequired = true;
|
|
254
|
-
this.editClientID.Value = activeDirectory.clientID;
|
|
255
|
-
this.editClientID.MaxLength = 100;
|
|
256
|
-
this.editClientSecret = new TextBoxOptions();
|
|
257
|
-
this.editClientSecret.Name = "editClientSecret";
|
|
258
|
-
this.editClientSecret.LabelKey = "ClientSecret";
|
|
259
|
-
this.editClientSecret.Type = InputType.Text;
|
|
260
|
-
this.editClientSecret.IsRequired = true;
|
|
261
|
-
this.editClientSecret.Value = activeDirectory.clientSecret;
|
|
262
|
-
this.editClientSecret.MaxLength = 100;
|
|
263
|
-
this.showAzureControl = true;
|
|
264
|
-
}
|
|
265
|
-
let data = this.getADMappingOptions(activeDirectory.adMappings);
|
|
266
|
-
this.editMappingsOptions = data[0];
|
|
267
|
-
this.editMappingsCount = data[1];
|
|
268
|
-
this.modalService.open(editADModal);
|
|
269
|
-
});
|
|
270
|
-
}
|
|
271
|
-
//AD Mapping functions
|
|
272
|
-
getADMappingOptions(ADMappings) {
|
|
273
|
-
let ADMappingOptions = [];
|
|
274
|
-
let ADMappingCount = 0;
|
|
275
|
-
for (let i = 0; i < ADMappings.length; i++) {
|
|
276
|
-
let objectMappingOptions = [];
|
|
277
|
-
let ADMappingType = new DropdownOptions();
|
|
278
|
-
let selectedType = this.mappingTypesList.filter((item) => { return item.key == ADMappings[i].adMappingTypeItemID; }).map((item) => item.key)[0];
|
|
279
|
-
ADMappingType.Name = "ADMappingType" + i;
|
|
280
|
-
ADMappingType.HideLabel = true;
|
|
281
|
-
ADMappingType.SingleSelection = true;
|
|
282
|
-
ADMappingType.SelectedItems = selectedType;
|
|
283
|
-
ADMappingType.ViewType = ControlLayout.Horizontal;
|
|
284
|
-
ADMappingType.DataSource = this.mappingTypesList;
|
|
285
|
-
let ADMappingProperty = new DropdownOptions();
|
|
286
|
-
let selectedProperty = this.mappingPropertiesList.filter((item) => { return item.key == ADMappings[i].bbsfPropertyName; }).map((item) => item.key)[0];
|
|
287
|
-
ADMappingProperty.Name = "ADMappingProperty" + i;
|
|
288
|
-
ADMappingProperty.HideLabel = true;
|
|
289
|
-
ADMappingProperty.SingleSelection = true;
|
|
290
|
-
ADMappingProperty.SelectedItems = selectedProperty;
|
|
291
|
-
ADMappingProperty.ViewType = ControlLayout.Horizontal;
|
|
292
|
-
ADMappingProperty.DataSource = this.mappingPropertiesList;
|
|
293
|
-
let ADMappingPropertyName = new TextBoxOptions();
|
|
294
|
-
ADMappingPropertyName.Name = "ADMappingPropertyName" + i;
|
|
295
|
-
ADMappingPropertyName.HideLabel = true;
|
|
296
|
-
ADMappingPropertyName.Type = InputType.Text;
|
|
297
|
-
ADMappingPropertyName.Value = ADMappings[i].adPropertyName;
|
|
298
|
-
ADMappingPropertyName.ViewType = ControlLayout.Horizontal;
|
|
299
|
-
ADMappingPropertyName.MaxLength = 1024;
|
|
300
|
-
let ADMappingIncludeUpdate = new CheckBoxOptions();
|
|
301
|
-
ADMappingIncludeUpdate.Name = "ADMappingIncludeUpdate" + i;
|
|
302
|
-
ADMappingIncludeUpdate.Value = ADMappings[i].includeInUpdate;
|
|
303
|
-
ADMappingIncludeUpdate.IsDisabled = true;
|
|
304
|
-
let ADMappingHiddenIncludeUpdate = new TextBoxOptions();
|
|
305
|
-
ADMappingHiddenIncludeUpdate.Name = "ADMappingHiddenIncludeUpdate" + i;
|
|
306
|
-
ADMappingHiddenIncludeUpdate.HideLabel = true;
|
|
307
|
-
ADMappingHiddenIncludeUpdate.Type = InputType.Text;
|
|
308
|
-
ADMappingHiddenIncludeUpdate.Value = ADMappings[i].includeInUpdate;
|
|
309
|
-
objectMappingOptions.push(ADMappingType, ADMappingProperty, ADMappingPropertyName, ADMappingIncludeUpdate, ADMappingHiddenIncludeUpdate);
|
|
310
|
-
ADMappingOptions.push(objectMappingOptions);
|
|
311
|
-
ADMappingCount += 1;
|
|
312
|
-
}
|
|
313
|
-
return [ADMappingOptions, ADMappingCount];
|
|
314
|
-
}
|
|
315
|
-
deleteADMapping(deletedADMApping) {
|
|
316
|
-
let deletedMappingIndex = this.editMappingsOptions.indexOf(deletedADMApping);
|
|
317
|
-
if (deletedMappingIndex !== -1) {
|
|
318
|
-
this.editMappingsOptions.splice(deletedMappingIndex, 1);
|
|
319
|
-
for (var i = 0; i < deletedADMApping.length; i++) {
|
|
320
|
-
this.editActiveDirectoryForm.removeControl(deletedADMApping[i].Name);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
addADMapping() {
|
|
325
|
-
let index = this.editMappingsCount;
|
|
326
|
-
let objectMappingOptions = [];
|
|
327
|
-
let ADMappingType = new DropdownOptions();
|
|
328
|
-
ADMappingType.Name = "ADMappingType" + index;
|
|
329
|
-
ADMappingType.HideLabel = true;
|
|
330
|
-
ADMappingType.SingleSelection = true;
|
|
331
|
-
ADMappingType.ViewType = ControlLayout.Horizontal;
|
|
332
|
-
ADMappingType.DataSource = this.mappingTypesList;
|
|
333
|
-
let ADMappingProperty = new DropdownOptions();
|
|
334
|
-
ADMappingProperty.Name = "ADMappingProperty" + index;
|
|
335
|
-
ADMappingProperty.HideLabel = true;
|
|
336
|
-
ADMappingProperty.SingleSelection = true;
|
|
337
|
-
ADMappingProperty.ViewType = ControlLayout.Horizontal;
|
|
338
|
-
ADMappingProperty.DataSource = this.mappingPropertiesList;
|
|
339
|
-
let ADMappingPropertyName = new TextBoxOptions();
|
|
340
|
-
ADMappingPropertyName.Name = "ADMappingPropertyName" + index;
|
|
341
|
-
ADMappingPropertyName.HideLabel = true;
|
|
342
|
-
ADMappingPropertyName.Type = InputType.Text;
|
|
343
|
-
ADMappingPropertyName.IsRequired = false;
|
|
344
|
-
ADMappingPropertyName.ViewType = ControlLayout.Horizontal;
|
|
345
|
-
let ADMappingIncludeUpdate = new CheckBoxOptions();
|
|
346
|
-
ADMappingIncludeUpdate.Name = "ADMappingIncludeUpdate" + index;
|
|
347
|
-
let ADMappingHiddenIncludeUpdate = new TextBoxOptions();
|
|
348
|
-
ADMappingHiddenIncludeUpdate.Name = "ADMappingHiddenIncludeUpdate" + index;
|
|
349
|
-
ADMappingHiddenIncludeUpdate.HideLabel = true;
|
|
350
|
-
ADMappingHiddenIncludeUpdate.Type = InputType.Text;
|
|
351
|
-
objectMappingOptions.push(ADMappingType, ADMappingProperty, ADMappingPropertyName, ADMappingIncludeUpdate, ADMappingHiddenIncludeUpdate);
|
|
352
|
-
this.editMappingsOptions.push(objectMappingOptions);
|
|
353
|
-
this.editMappingsCount += 1;
|
|
354
|
-
}
|
|
355
|
-
//Delete ACtiveDirectory
|
|
356
|
-
showDeleteActiveDirectoryModal(activeDirectoryID) {
|
|
357
|
-
this.deleteActiveDirectoryId = activeDirectoryID;
|
|
358
|
-
//array sent to service function
|
|
359
|
-
let paramArray = [];
|
|
360
|
-
paramArray.push(this.deleteActiveDirectoryId);
|
|
361
|
-
this.deleteConfirmationOptions = new ConfirmationModalOptions();
|
|
362
|
-
this.deleteConfirmationOptions.ServiceSubmitFunction = this.deleteActiveDirectory;
|
|
363
|
-
this.deleteConfirmationOptions.ServiceSubmitModel = paramArray;
|
|
364
|
-
this.deleteConfirmationOptions.PagingReference = this.pagingElement;
|
|
365
|
-
this.deleteControlLoaded = true;
|
|
366
|
-
setTimeout(() => {
|
|
367
|
-
this.deleteConfirmationModalControl.showModal();
|
|
368
|
-
}, 200);
|
|
369
|
-
}
|
|
370
|
-
//Sync Active Directory
|
|
371
|
-
showADSynchronizationModal(activeDirectoryID) {
|
|
372
|
-
this.syncActiveDirectoryId = activeDirectoryID;
|
|
373
|
-
//array sent to service function
|
|
374
|
-
let paramArray = [];
|
|
375
|
-
paramArray.push(this.syncActiveDirectoryId);
|
|
376
|
-
this.syncConfirmationOptions = new ConfirmationModalOptions();
|
|
377
|
-
this.syncConfirmationOptions.ServiceSubmitFunction = this.runSyncronization;
|
|
378
|
-
this.syncConfirmationOptions.ServiceSubmitModel = paramArray;
|
|
379
|
-
this.syncConfirmationOptions.PagingReference = this.pagingElement;
|
|
380
|
-
this.syncConfirmationOptions.PagingActionMode = PagingActionMode.Reinitialize;
|
|
381
|
-
this.syncConfirmationOptions.ConfirmationHeader = this.utilityService.getResourceValue("RunSynchronization");
|
|
382
|
-
this.syncConfirmationOptions.ConfirmationBody = this.utilityService.getResourceValue("RunSynchronizationConfirmation");
|
|
383
|
-
this.syncConfirmationOptions.StyleConfirmationMode = StyleConfirmationMode.Warning;
|
|
384
|
-
this.syncConfirmationOptions.SubmitButtonText = this.utilityService.getResourceValue("Yes");
|
|
385
|
-
this.syncConfirmationOptions.DisableSuccessNotification = true;
|
|
386
|
-
this.syncConfirmationOptions.OnSuccessHandler = this.runSyncOnSuccess;
|
|
387
|
-
this.syncControlLoaded = true;
|
|
388
|
-
setTimeout(() => {
|
|
389
|
-
this.syncConfirmationModalControl.showModal();
|
|
390
|
-
}, 200);
|
|
391
|
-
}
|
|
392
|
-
//Last run logs
|
|
393
|
-
showADLastRunLogsModal(activeDirectoryID, lastRunLogsModal) {
|
|
394
|
-
this.activeDirectoryService.getLastRunLogs(activeDirectoryID).subscribe((result) => {
|
|
395
|
-
let lastRunLogsModel = result;
|
|
396
|
-
this.adConnectionName = lastRunLogsModel.model.adConnectionName;
|
|
397
|
-
this.lastRunLogs = lastRunLogsModel.model.logs;
|
|
398
|
-
this.modalService.open(lastRunLogsModal);
|
|
399
|
-
});
|
|
400
|
-
}
|
|
401
|
-
//On destroy
|
|
402
|
-
ngOnDestroy() {
|
|
403
|
-
this.requestHandlerService.destroyHandler();
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
ActiveDirectoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ActiveDirectoryComponent, deps: [{ token: i1.AuthService }, { token: i2.PageInfoService }, { token: i1.UtilityService }, { token: i1.BBSFTranslateService }, { token: i3.ActiveDirectoryService }, { token: i4.NgbModal }, { token: i1.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
407
|
-
ActiveDirectoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ActiveDirectoryComponent, selector: "lib-active-directory", viewQueries: [{ propertyName: "pagingElement", first: true, predicate: ["activeDirectoryPagingViewElement"], descendants: true }, { propertyName: "deleteConfirmationModalControl", first: true, predicate: ["deleteConfirmationModalControl"], descendants: true }, { propertyName: "syncConfirmationModalControl", first: true, predicate: ["syncConfirmationModalControl"], descendants: true }], ngImport: i0, template: "<block-ui></block-ui>\r\n\r\n<!-- Page Content -->\r\n<div *ngIf=\"showPageContent\" class=\"container-fluid\">\r\n <!-- begin::Header -->\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"isFilterLoaded\">\r\n <form [formGroup]=\"activeDirectoryForm\">\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"activeDirectoryForm\"></BBSF-TextBox>\r\n </form>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title='{{utilityService.getResourceValue(\"Add\")}}' [routerLink]=\"['/Admin/ADConnection/Add']\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{utilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <!--begin::ActiveDirectory list-->\r\n <div class=\"table-responsive\">\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Name\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Type\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"PermissionSet\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"AdConnectionRunningNow\")}}</th>\r\n <th class=\"min-w-50px\">{{utilityService.getResourceValue(\"Actions\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let activeDirectory of clientSidePagingResult\">\r\n\r\n <td class=\"text-dark\">\r\n {{activeDirectory.name}}\r\n </td>\r\n <td>\r\n {{activeDirectory.adTypeName}}\r\n </td>\r\n <td>\r\n {{activeDirectory.permissionSetName}}\r\n </td>\r\n <td>\r\n <span class=\"badge badge-light-success\" *ngIf=\"activeDirectory.isRunningNow;else not_Running\">\r\n {{utilityService.getResourceValue(\"Yes\")}}\r\n </span>\r\n <ng-template #not_Running>\r\n <span class=\"badge badge-light-danger\">\r\n {{utilityService.getResourceValue(\"No\")}}\r\n </span>\r\n </ng-template>\r\n </td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a class=\"drop-item px-3\" ngbDropdownItem\r\n (click)=\"showEditActiveDirectoryModal(activeDirectory.id,activeDirectory.idEncrypted,editActiveDirectoryModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showDeleteActiveDirectoryModal(activeDirectory.idEncrypted)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Delete\")}}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showADSynchronizationModal(activeDirectory.idEncrypted)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"ActiveDirectoryRunSyncronization\")}}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showADLastRunLogsModal(activeDirectory.idEncrypted,lastRunLogsModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"ActiveDirectoryLastRunLogs\")}}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"clientSidePagingResult.length == 0\">\r\n <td colspan=\"5\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <!--end::Active directory list-->\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setActiveDirectoryListResult($event)\" *ngIf=\"isFilterLoaded\"\r\n [options]=\"activeDirectoryPaging\" [group]=\"activeDirectoryForm\" #activeDirectoryPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<!-- Edit Modal -->\r\n<ng-template #editActiveDirectoryModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">\r\n {{utilityService.getResourceValue(\"Edit\")}} {{utilityService.getResourceValue(\"ActiveDirectory\")}}\r\n </h1>\r\n </div>\r\n <BBSF-Form [options]=\"editActiveDirectoryFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"editName\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editPermissionSetOptions\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editLanguageOptions\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editWelcomeMsgTemplateOptions\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <h6>\r\n {{utilityService.getResourceValue(\"ADType\")}}\r\n </h6>\r\n <label>\r\n {{editADTypeName}}\r\n </label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showWindowsControl\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <h6>\r\n {{utilityService.getResourceValue(\"Identifier\")}}\r\n </h6>\r\n <label>\r\n {{editIdentifier}}\r\n </label>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <h6>\r\n {{utilityService.getResourceValue(\"Type\")}}\r\n </h6>\r\n <label>\r\n {{editWindowsTypeName}}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editDomain\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"editSamAccount\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"editPassword\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showAzureControl\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editTenantID\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editClientID\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editClientSecret\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-Toggleslide [options]=\"editInactive\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-Toggleslide>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-Toggleslide [options]=\"editDailyJob\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-Toggleslide>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <table class=\"table amsx-table-users\">\r\n <thead>\r\n <tr>\r\n <th>{{utilityService.getResourceValue(\"Type\")}}</th>\r\n <th>{{utilityService.getResourceValue(\"Property\")}}</th>\r\n <th>{{utilityService.getResourceValue(\"ActiveDirectory_Property\")}}</th>\r\n <th>{{utilityService.getResourceValue(\"IncludeInUpdate\")}}</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let option of editMappingsOptions;let i=index;\">\r\n\r\n <td>\r\n <BBSF-DropdownList [options]=\"option[0]\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-DropdownList>\r\n </td>\r\n <td>\r\n <BBSF-DropdownList [options]=\"option[1]\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-DropdownList>\r\n </td>\r\n <td>\r\n <BBSF-TextBox [options]=\"option[2]\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </td>\r\n <td>\r\n <BBSF-CheckBox [options]=\"option[3]\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-CheckBox>\r\n <!--Hidden include in update value-->\r\n <BBSF-TextBox [options]=\"option[4]\" [group]=\"editActiveDirectoryForm\" [hidden]=\"true\">\r\n </BBSF-TextBox>\r\n </td>\r\n\r\n <td class=\"text-center align-middle\">\r\n <a class=\"kt-nav__link\" (click)=\"deleteADMapping(option)\">\r\n <i class=\"kt-nav__link-icon fa fa-trash hidden\" aria-hidden=\"true\"></i>\r\n </a>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"5\">\r\n <button type=\"button\" class=\"w-100 btn btn-success\" (click)=\"addADMapping()\">\r\n {{utilityService.getResourceValue(\"AddNewRecord\")}}\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditADModal id=\"CloseEditADModal\" type=\"button\"\r\n data-dismiss=\"modal\" (click)=\"modal.dismiss()\" class=\"btn btn-light me-3 btn-sm\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Delete Modal -->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"deleteConfirmationOptions\" id=\"deleteConfirmationModalControl\" #deleteConfirmationModalControl></BBSF-ConfirmationModal>\r\n\r\n<!-- Synchronization Modal -->\r\n<BBSF-ConfirmationModal *ngIf=\"syncControlLoaded\" [options]=\"syncConfirmationOptions\" id=\"syncConfirmationModalControl\" #syncConfirmationModalControl></BBSF-ConfirmationModal>\r\n\r\n<!-- View Last Run Logs -->\r\n<ng-template #lastRunLogsModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"ActiveDirectoryLastRunLogs\")}} : {{adConnectionName}}</h1>\r\n </div>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p>{{utilityService.getResourceValue(\"Name\")}} : {{adConnectionName}}</p>\r\n <pre class=\"col-md-12\">{{lastRunLogs}}</pre>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseDefaultProviderModal id=\"CloseDefaultProviderModal\" type=\"button\"\r\n class=\"btn btn-light btn-sm me-3 \" data-dismiss=\"modal\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"Close\")}}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n", dependencies: [{ kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.BlockUIComponent, selector: "block-ui", inputs: ["name", "template", "message", "delayStart", "delayStop"] }, { kind: "component", type: i9.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange", "OnBlur"] }, { kind: "component", type: i9.CheckBoxComponent, selector: "BBSF-CheckBox", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i9.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["OnChange", "onClear"] }, { kind: "component", type: i9.ToggleslideComponent, selector: "BBSF-Toggleslide", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i9.PagingComponent, selector: "BBSF-Paging", inputs: ["options", "group"], outputs: ["Items"] }, { kind: "component", type: i9.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["OnChange"] }, { kind: "component", type: i9.ConfirmationModalComponent, selector: "BBSF-ConfirmationModal", inputs: ["options"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i11.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "forceEvalStyles", "evalScripts", "inlineSVG", "setSVGAttributes", "removeSVGAttributes", "fallbackImgUrl", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "directive", type: i4.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i12.EmptyDataComponent, selector: "lib-empty-data", inputs: ["Message", "ShowImage", "ImgURL"] }] });
|
|
408
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ActiveDirectoryComponent, decorators: [{
|
|
409
|
-
type: Component,
|
|
410
|
-
args: [{ selector: 'lib-active-directory', template: "<block-ui></block-ui>\r\n\r\n<!-- Page Content -->\r\n<div *ngIf=\"showPageContent\" class=\"container-fluid\">\r\n <!-- begin::Header -->\r\n <div class=\"card card-custom-h\">\r\n <div class=\"card-header border-0 pt-5\">\r\n <div class=\"card-title align-items-start flex-column\" *ngIf=\"isFilterLoaded\">\r\n <form [formGroup]=\"activeDirectoryForm\">\r\n <BBSF-TextBox [options]=\"searchTextBox\" [group]=\"activeDirectoryForm\"></BBSF-TextBox>\r\n </form>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button type=\"button\" class=\"btn btn-sm btn-primary\" title='{{utilityService.getResourceValue(\"Add\")}}' [routerLink]=\"['/Admin/ADConnection/Add']\">\r\n <i class=\"fas fa-plus me-1\"></i>\r\n {{utilityService.getResourceValue(\"Add\")}}\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-3\">\r\n <!--begin::ActiveDirectory list-->\r\n <div class=\"table-responsive\">\r\n <table class=\"table align-middle table-row-dashed fs-6 gy-5 dataTable no-footer\">\r\n <thead>\r\n <tr class=\"text-start text-gray-400 fw-bolder fs-7 text-uppercase gs-0\">\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Name\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"Type\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"PermissionSet\")}}</th>\r\n <th class=\"min-w-150px\">{{utilityService.getResourceValue(\"AdConnectionRunningNow\")}}</th>\r\n <th class=\"min-w-50px\">{{utilityService.getResourceValue(\"Actions\")}}</th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"listingContainer\" class=\"fw-bold text-gray-600 border-0\">\r\n <tr *ngFor=\"let activeDirectory of clientSidePagingResult\">\r\n\r\n <td class=\"text-dark\">\r\n {{activeDirectory.name}}\r\n </td>\r\n <td>\r\n {{activeDirectory.adTypeName}}\r\n </td>\r\n <td>\r\n {{activeDirectory.permissionSetName}}\r\n </td>\r\n <td>\r\n <span class=\"badge badge-light-success\" *ngIf=\"activeDirectory.isRunningNow;else not_Running\">\r\n {{utilityService.getResourceValue(\"Yes\")}}\r\n </span>\r\n <ng-template #not_Running>\r\n <span class=\"badge badge-light-danger\">\r\n {{utilityService.getResourceValue(\"No\")}}\r\n </span>\r\n </ng-template>\r\n </td>\r\n <td>\r\n <div>\r\n <button mat-button [matMenuTriggerFor]=\"menu\" class=\"btn btn-sm btn-icon btn-light btn-active-light-primary\">\r\n <i class=\"fa fa-ellipsis-h\" aria-hidden=\"true\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <a class=\"drop-item px-3\" ngbDropdownItem\r\n (click)=\"showEditActiveDirectoryModal(activeDirectory.id,activeDirectory.idEncrypted,editActiveDirectoryModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Edit\")}}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showDeleteActiveDirectoryModal(activeDirectory.idEncrypted)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"Delete\")}}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showADSynchronizationModal(activeDirectory.idEncrypted)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"ActiveDirectoryRunSyncronization\")}}</span>\r\n </a>\r\n <a ngbDropdownItem class=\"drop-item px-3\"\r\n (click)=\"showADLastRunLogsModal(activeDirectory.idEncrypted,lastRunLogsModal)\">\r\n <span class=\"drop-link px-3\">{{utilityService.getResourceValue(\"ActiveDirectoryLastRunLogs\")}}</span>\r\n </a>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"clientSidePagingResult.length == 0\">\r\n <td colspan=\"5\">\r\n <lib-empty-data></lib-empty-data>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <!--end::Active directory list-->\r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <BBSF-Paging (Items)=\"setActiveDirectoryListResult($event)\" *ngIf=\"isFilterLoaded\"\r\n [options]=\"activeDirectoryPaging\" [group]=\"activeDirectoryForm\" #activeDirectoryPagingViewElement>\r\n </BBSF-Paging>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<!-- Edit Modal -->\r\n<ng-template #editActiveDirectoryModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">\r\n {{utilityService.getResourceValue(\"Edit\")}} {{utilityService.getResourceValue(\"ActiveDirectory\")}}\r\n </h1>\r\n </div>\r\n <BBSF-Form [options]=\"editActiveDirectoryFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"editName\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editPermissionSetOptions\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editLanguageOptions\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-DropdownList [options]=\"editWelcomeMsgTemplateOptions\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <h6>\r\n {{utilityService.getResourceValue(\"ADType\")}}\r\n </h6>\r\n <label>\r\n {{editADTypeName}}\r\n </label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showWindowsControl\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <h6>\r\n {{utilityService.getResourceValue(\"Identifier\")}}\r\n </h6>\r\n <label>\r\n {{editIdentifier}}\r\n </label>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <h6>\r\n {{utilityService.getResourceValue(\"Type\")}}\r\n </h6>\r\n <label>\r\n {{editWindowsTypeName}}\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editDomain\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"editSamAccount\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-TextBox [options]=\"editPassword\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showAzureControl\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editTenantID\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editClientID\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-TextBox [options]=\"editClientSecret\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <BBSF-Toggleslide [options]=\"editInactive\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-Toggleslide>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <BBSF-Toggleslide [options]=\"editDailyJob\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-Toggleslide>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <table class=\"table amsx-table-users\">\r\n <thead>\r\n <tr>\r\n <th>{{utilityService.getResourceValue(\"Type\")}}</th>\r\n <th>{{utilityService.getResourceValue(\"Property\")}}</th>\r\n <th>{{utilityService.getResourceValue(\"ActiveDirectory_Property\")}}</th>\r\n <th>{{utilityService.getResourceValue(\"IncludeInUpdate\")}}</th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let option of editMappingsOptions;let i=index;\">\r\n\r\n <td>\r\n <BBSF-DropdownList [options]=\"option[0]\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-DropdownList>\r\n </td>\r\n <td>\r\n <BBSF-DropdownList [options]=\"option[1]\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-DropdownList>\r\n </td>\r\n <td>\r\n <BBSF-TextBox [options]=\"option[2]\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-TextBox>\r\n </td>\r\n <td>\r\n <BBSF-CheckBox [options]=\"option[3]\" [group]=\"editActiveDirectoryForm\">\r\n </BBSF-CheckBox>\r\n <!--Hidden include in update value-->\r\n <BBSF-TextBox [options]=\"option[4]\" [group]=\"editActiveDirectoryForm\" [hidden]=\"true\">\r\n </BBSF-TextBox>\r\n </td>\r\n\r\n <td class=\"text-center align-middle\">\r\n <a class=\"kt-nav__link\" (click)=\"deleteADMapping(option)\">\r\n <i class=\"kt-nav__link-icon fa fa-trash hidden\" aria-hidden=\"true\"></i>\r\n </a>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td colspan=\"5\">\r\n <button type=\"button\" class=\"w-100 btn btn-success\" (click)=\"addADMapping()\">\r\n {{utilityService.getResourceValue(\"AddNewRecord\")}}\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseEditADModal id=\"CloseEditADModal\" type=\"button\"\r\n data-dismiss=\"modal\" (click)=\"modal.dismiss()\" class=\"btn btn-light me-3 btn-sm\">\r\n {{utilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Delete Modal -->\r\n<BBSF-ConfirmationModal *ngIf=\"deleteControlLoaded\" [options]=\"deleteConfirmationOptions\" id=\"deleteConfirmationModalControl\" #deleteConfirmationModalControl></BBSF-ConfirmationModal>\r\n\r\n<!-- Synchronization Modal -->\r\n<BBSF-ConfirmationModal *ngIf=\"syncControlLoaded\" [options]=\"syncConfirmationOptions\" id=\"syncConfirmationModalControl\" #syncConfirmationModalControl></BBSF-ConfirmationModal>\r\n\r\n<!-- View Last Run Logs -->\r\n<ng-template #lastRunLogsModal let-modal>\r\n <div class=\"modal-header pb-0 border-0 justify-content-end\">\r\n <h5 class=\"modal-title\" id=\"exampleModalLabel\"></h5>\r\n <button type=\"button\" data-dismiss=\"modal\" aria-label=\"Close\" class=\"btn btn-sm btn-icon btn-active-color-primary\" (click)=\"modal.dismiss()\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <span [inlineSVG]=\"'./src/assets/images/arr061.svg'\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body scroll-y px-10 px-lg-15 pt-0 pb-15\">\r\n <div class=\"mb-13 text-center\">\r\n <h1 class=\"mb-3\">{{utilityService.getResourceValue(\"ActiveDirectoryLastRunLogs\")}} : {{adConnectionName}}</h1>\r\n </div>\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <p>{{utilityService.getResourceValue(\"Name\")}} : {{adConnectionName}}</p>\r\n <pre class=\"col-md-12\">{{lastRunLogs}}</pre>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button #CloseDefaultProviderModal id=\"CloseDefaultProviderModal\" type=\"button\"\r\n class=\"btn btn-light btn-sm me-3 \" data-dismiss=\"modal\" (click)=\"modal.dismiss()\">\r\n {{utilityService.getResourceValue(\"Close\")}}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n" }]
|
|
411
|
-
}], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.PageInfoService }, { type: i1.UtilityService }, { type: i1.BBSFTranslateService }, { type: i3.ActiveDirectoryService }, { type: i4.NgbModal }, { type: i1.RequestHandlerService }]; }, propDecorators: { pagingElement: [{
|
|
412
|
-
type: ViewChild,
|
|
413
|
-
args: ['activeDirectoryPagingViewElement', { static: false }]
|
|
414
|
-
}], deleteConfirmationModalControl: [{
|
|
415
|
-
type: ViewChild,
|
|
416
|
-
args: ['deleteConfirmationModalControl', { static: false }]
|
|
417
|
-
}], syncConfirmationModalControl: [{
|
|
418
|
-
type: ViewChild,
|
|
419
|
-
args: ['syncConfirmationModalControl', { static: false }]
|
|
420
|
-
}] } });
|
|
421
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWRpcmVjdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL0FjdGl2ZURpcmVjdG9yaWVzL2FjdGl2ZS1kaXJlY3RvcnkvYWN0aXZlLWRpcmVjdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL0FjdGl2ZURpcmVjdG9yaWVzL2FjdGl2ZS1kaXJlY3RvcnkvYWN0aXZlLWRpcmVjdG9yeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaFEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdkcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQU1yRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBT25ELE1BQU0sT0FBTyx3QkFBd0I7SUFrRW5DLFlBQW9CLFdBQXdCLEVBQVUsZUFBZ0MsRUFBUyxjQUE4QixFQUNuSCxvQkFBMEMsRUFBVSxzQkFB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QixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFRRCxlQUFlO0lBQ2Ysc0JBQXNCLENBQUMsaUJBQXlCLEVBQUMsZ0JBQWdCO1FBQy9ELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNqRixJQUFJLGdCQUFnQixHQUFHLE1BQWEsQ0FBQztZQUVyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1lBQ2hFLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUUvQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVk7SUFDWixXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7O3NIQXBmVSx3QkFBd0I7MEdBQXhCLHdCQUF3QixpY0NuQnJDLHUxYkEyVEE7NEZEeFNhLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDRSxzQkFBc0I7Z1NBZ0JrQyxhQUFhO3NCQUE5RSxTQUFTO3VCQUFDLGtDQUFrQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkF5Q0EsOEJBQThCO3NCQUE3RixTQUFTO3VCQUFDLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFVQSw0QkFBNEI7c0JBQXpGLFNBQVM7dUJBQUMsOEJBQThCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENoZWNrQm94T3B0aW9ucywgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zLCBDb250cm9sTGF5b3V0LCBEcm9wZG93bk9wdGlvbnMsIEZpbHRlckl0ZW0sIEZpbHRlclR5cGUsIEZvcm1PcHRpb25zLCBJbnB1dFR5cGUsIFBhZ2luZ0FjdGlvbk1vZGUsIFBhZ2luZ09wdGlvbnMsIFN0eWxlQ29uZmlybWF0aW9uTW9kZSwgVGV4dEJveE9wdGlvbnMsIFRvZ2dsZVNsaWRlT3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9BY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlBZGRFZGl0TW9kZWwgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL0FETW9kZWxzL0FjdGl2ZURpcmVjdG9yeUFkZEVkaXRNb2RlbCc7XHJcbmltcG9ydCB7IEFETWFwcGluZ01vZGVsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9BRE1vZGVscy9BRE1hcHBpbmdNb2RlbCc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIFV0aWxpdHlTZXJ2aWNlLCBCQlNGVHJhbnNsYXRlU2VydmljZSwgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scy9saWIvY29udHJvbHMvQ29uZmlybWF0aW9uTW9kYWwvQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnaW5nQ29tcG9uZW50IH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMvbGliL2NvbnRyb2xzL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQURUeXBlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL0VudW1zL0FEVHlwZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYWN0aXZlLWRpcmVjdG9yeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGl2ZS1kaXJlY3RvcnkuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVEaXJlY3RvcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vUGFnZSByZXF1aXJlbWVudHNcclxuICBhcGlVcmwgPSBcIi9hcGkvYWRtaW4vQURDb25uZWN0aW9uL1wiO1xyXG4gIHNob3dQYWdlQ29udGVudCA9IGZhbHNlO1xyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIGNvbXBvbmVudHNcclxuICBhY3RpdmVEaXJlY3RvcnlGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2VhcmNoVGV4dEJveDogVGV4dEJveE9wdGlvbnM7XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGFjdGl2ZURpcmVjdG9yeVBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBjbGllbnRTaWRlUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGFjdGl2ZURpcmVjdG9yeVBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICBpc0ZpbHRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2ZURpcmVjdG9yeVBhZ2luZ1ZpZXdFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luZ0VsZW1lbnQ6IFBhZ2luZ0NvbXBvbmVudDxhbnk+O1xyXG5cclxuICAvL1JlcXVpcmVkIGxpc3RzXHJcbiAgcGVybWlzc2lvblNldExpc3Q6IGFueVtdID0gW107XHJcbiAgbGFuZ3VhZ2VzTGlzdDogYW55W10gPSBbXTtcclxuICB3ZWxjb21lTXNnVGVtcExpc3Q6IGFueVtdID0gW107XHJcbiAgbWFwcGluZ1R5cGVzTGlzdDogYW55W10gPSBbXTtcclxuICBtYXBwaW5nUHJvcGVydGllc0xpc3Q6IGFueVtdID0gW107XHJcblxyXG4gIC8vLy9FZGl0IE1vZGVsIENvbnRyb2xzXHJcbiAgLy9TaGFyZWQgY29udHJvbHNcclxuICBlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBlZGl0TmFtZTogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdEFEVHlwZU5hbWU6IHN0cmluZzsgLy9XaW5kb3dzIG9yIEF6dXJlXHJcbiAgZWRpdEFEVHlwZUlEOiBudW1iZXI7XHJcbiAgZWRpdEluYWN0aXZlOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdERhaWx5Sm9iOiBUb2dnbGVTbGlkZU9wdGlvbnM7XHJcbiAgZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgZWRpdExhbmd1YWdlT3B0aW9uczogRHJvcGRvd25PcHRpb25zO1xyXG4gIGVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zOiBEcm9wZG93bk9wdGlvbnM7XHJcbiAgZWRpdE1hcHBpbmdzT3B0aW9uczogYW55W10gPSBbXTtcclxuICBlZGl0TWFwcGluZ3NDb3VudDogbnVtYmVyO1xyXG4gIGFjdGl2ZURpcmVjdG9yeUlkOiBudW1iZXI7XHJcbiAgLy9XaW5kb3dzIE1vZGVcclxuICBlZGl0RG9tYWluOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0U2FtQWNjb3VudDogVGV4dEJveE9wdGlvbnM7XHJcbiAgZWRpdElkZW50aWZpZXI6IHN0cmluZztcclxuICBlZGl0V2luZG93c1R5cGVOYW1lOiBzdHJpbmc7XHJcbiAgZWRpdFBhc3N3b3JkOiBUZXh0Qm94T3B0aW9ucztcclxuICBzaG93V2luZG93c0NvbnRyb2w6IGJvb2xlYW47XHJcbiAgLy9BenVyZSBNb2RlXHJcbiAgZWRpdFRlbmFudElEOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0Q2xpZW50SUQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRDbGllbnRTZWNyZXQ6IFRleHRCb3hPcHRpb25zO1xyXG4gIHNob3dBenVyZUNvbnRyb2w6IGJvb2xlYW47XHJcblxyXG4gIC8vZGVsZXRlICBNb2RlbCBDb250cm9sc1xyXG4gIGRlbGV0ZUFjdGl2ZURpcmVjdG9yeUlkOiBzdHJpbmc7XHJcbiAgZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIGRlbGV0ZUNvbnRyb2xMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sOiBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudDtcclxuXHJcbiAgLy9MYXN0IHJ1biBsb2dzXHJcbiAgYWRDb25uZWN0aW9uTmFtZTogc3RyaW5nO1xyXG4gIGxhc3RSdW5Mb2dzOiBzdHJpbmc7XHJcblxyXG4gIC8vU3luY2hyb25pemF0aW9uIG1vZGFsXHJcbiAgc3luY0FjdGl2ZURpcmVjdG9yeUlkOiBzdHJpbmc7XHJcbiAgc3luY0NvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBzeW5jQ29udHJvbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ3N5bmNDb25maXJtYXRpb25Nb2RhbENvbnRyb2wnLCB7IHN0YXRpYzogZmFsc2UgfSkgc3luY0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIHBhZ2VJbmZvU2VydmljZTogUGFnZUluZm9TZXJ2aWNlLCBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgYWN0aXZlRGlyZWN0b3J5U2VydmljZTogQWN0aXZlRGlyZWN0b3J5U2VydmljZSxcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZSkge1xyXG4gIH1cclxuXHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yaWVzXCIpXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgIF07XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgdGhpcy5wYWdlSW5mb1NlcnZpY2UuY2FsY3VsYXRlQnJlYWRjcnVtYnMoKTtcclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSlcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vaW5pdGlhbGl6ZSBmaWx0ZXJzIGFuZCBwYWdpbmdcclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIC8vIFRleHRCb3ggaW5pdFxyXG4gICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guVHlwZSA9IElucHV0VHlwZS5UZXh0XHJcbiAgICB0aGlzLnNlYXJjaFRleHRCb3guUGxhY2Vob2xkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWFyY2hCeU5hbWVcIilcclxuICAgIHRoaXMuc2VhcmNoVGV4dEJveC5IaWRlTGFiZWwgPSB0cnVlXHJcblxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIgPSBuZXcgRmlsdGVySXRlbSgpO1xyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuRm9ybUNvbnRyb2xOYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIlxyXG4gICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuSXNGb3JtQ29udHJvbCA9IHRydWVcclxuICAgIHRoaXMudGV4dElucHV0RmlsdGVyLkZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3hcclxuXHJcblxyXG4gICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlQYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlQYWdpbmcuQWN0aW9uUG9zdFVSTCA9IHRoaXMuYXBpVXJsICsgJ0dldEFEQ29ubmVjdGlvbkJ5RmlsdGVyJztcclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5UGFnaW5nLk9uS2V5UHJlc3NGaWx0ZXJzQ29udHJvbE5hbWVzID0gW1wic2VhcmNoVGV4dEJveFwiXTtcclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5UGFnaW5nLkZpbHRlcnMgPSBbdGhpcy50ZXh0SW5wdXRGaWx0ZXJdXHJcbiAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVBhZ2luZy5WYWxpZGF0aW9uVG9rZW4gPSB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhvcml6YXRpb25IZWFkZXJWYWx1ZSgpO1xyXG5cclxuICAgIHRoaXMuaXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9QYWdpbmcgZnVuY3Rpb25zXHJcbiAgc2V0QWN0aXZlRGlyZWN0b3J5TGlzdFJlc3VsdChyZXN1bHQpIHtcclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5UGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5jbGllbnRTaWRlUGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5zaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpXHJcbiAgfVxyXG5cclxuICAvL0VkaXQgQWN0aXZlRGlyZWN0b3J5XHJcbiAgc2hvd0VkaXRBY3RpdmVEaXJlY3RvcnlNb2RhbChhY3RpdmVEaXJlY3RvcnlJRDogbnVtYmVyLCBhY3RpdmVEaXJlY3RvcnlJREVuYzogc3RyaW5nLCBlZGl0QURNb2RhbCkge1xyXG4gICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlJZCA9IGFjdGl2ZURpcmVjdG9yeUlEO1xyXG4gICAgdGhpcy5zaG93V2luZG93c0NvbnRyb2wgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0F6dXJlQ29udHJvbCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5nZXRFZGl0QWN0aXZlRGlyZWN0b3J5KGFjdGl2ZURpcmVjdG9yeUlERW5jKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgcmVzdWx0T2JqID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgbGV0IGFjdGl2ZURpcmVjdG9yeSA9IHJlc3VsdE9iai5tb2RlbDtcclxuICAgICAgbGV0IGxpc3RzID0gcmVzdWx0T2JqLmRyb3Bkb3duc0RhdGE7XHJcblxyXG4gICAgICB0aGlzLmVkaXRBRFR5cGVJRCA9IGFjdGl2ZURpcmVjdG9yeS5hZFR5cGVJdGVtSUQ7XHJcbiAgICAgIC8vTG9hZCBpc3RzXHJcbiAgICAgIHRoaXMucGVybWlzc2lvblNldExpc3QgPSBsaXN0cy5wZXJtaXNzaW9uU2V0cztcclxuICAgICAgdGhpcy5sYW5ndWFnZXNMaXN0ID0gbGlzdHMubGFuZ3VhZ2VzO1xyXG4gICAgICB0aGlzLndlbGNvbWVNc2dUZW1wTGlzdCA9IGxpc3RzLnRlbXBsYXRlcztcclxuICAgICAgdGhpcy5tYXBwaW5nVHlwZXNMaXN0ID0gbGlzdHMubWFwcGluZ1R5cGVzO1xyXG4gICAgICB0aGlzLm1hcHBpbmdQcm9wZXJ0aWVzTGlzdCA9IGxpc3RzLm1hcHBpbmdQcm9wZXJ0aWVzO1xyXG5cclxuICAgICAgdGhpcy5lZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5Gb3JtR3JvdXAgPSB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXHJcbiAgICAgIHRoaXMuZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1PcHRpb25zLkdldE1vZGVsRnVuY3Rpb24gPSB0aGlzLmdldEVkaXRBRE1vZGVsO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEVkaXRBREZ1bmN0aW9uO1xyXG4gICAgICB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuICAgICAgdGhpcy5lZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybU9wdGlvbnMuUGFnaW5nQWN0aW9uTW9kZSA9IFBhZ2luZ0FjdGlvbk1vZGUuVXBkYXRlXHJcblxyXG5cclxuICAgICAgdGhpcy5lZGl0TmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXROYW1lLk5hbWUgPSBcImVkaXROYW1lXCI7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWUuTGFiZWxLZXkgPSBcIk5hbWVcIjtcclxuICAgICAgdGhpcy5lZGl0TmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWUuSXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWUuVmFsdWUgPSBhY3RpdmVEaXJlY3RvcnkuY29ubmVjdGlvbk5hbWU7XHJcbiAgICAgIHRoaXMuZWRpdE5hbWUuTWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgbGV0IHNlbGVjdGVkUGVybWlzc2lvblNldCA9IHRoaXMucGVybWlzc2lvblNldExpc3QuZmlsdGVyKChpdGVtKSA9PiB7IHJldHVybiBpdGVtLmtleSA9PSBhY3RpdmVEaXJlY3RvcnkucGVybWlzc2lvblNldElEOyB9KS5tYXAoKGl0ZW0pID0+IGl0ZW0ua2V5KVswXTtcclxuXHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRQZXJtaXNzaW9uU2V0T3B0aW9ucy5OYW1lID0gXCJlZGl0UGVybWlzc2lvblNldE9wdGlvbnNcIlxyXG4gICAgICB0aGlzLmVkaXRQZXJtaXNzaW9uU2V0T3B0aW9ucy5MYWJlbEtleSA9IFwiUGVybWlzc2lvblNldFwiXHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zLkRhdGFTb3VyY2UgPSB0aGlzLnBlcm1pc3Npb25TZXRMaXN0XHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0UGVybWlzc2lvblNldE9wdGlvbnMuUGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICB0aGlzLmVkaXRQZXJtaXNzaW9uU2V0T3B0aW9ucy5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0UGVybWlzc2lvblNldE9wdGlvbnMuU2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkUGVybWlzc2lvblNldDtcclxuXHJcbiAgICAgIGxldCBzZWxlY3RlZExhbmd1YWdlID0gdGhpcy5sYW5ndWFnZXNMaXN0LmZpbHRlcigoaXRlbSkgPT4geyByZXR1cm4gaXRlbS5rZXkgPT0gYWN0aXZlRGlyZWN0b3J5LmxhbmdLZXk7IH0pLm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpWzBdO1xyXG5cclxuICAgICAgdGhpcy5lZGl0TGFuZ3VhZ2VPcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMuTmFtZSA9IFwiZWRpdExhbmd1YWdlT3B0aW9uc1wiXHJcbiAgICAgIHRoaXMuZWRpdExhbmd1YWdlT3B0aW9ucy5MYWJlbFZhbHVlID0gXCJMYW5ndWFnZVwiXHJcbiAgICAgIHRoaXMuZWRpdExhbmd1YWdlT3B0aW9ucy5MYWJlbEtleSA9IFwiTGFuZ3VhZ2VcIlxyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMuRGF0YVNvdXJjZSA9IHRoaXMubGFuZ3VhZ2VzTGlzdFxyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TGFuZ3VhZ2VPcHRpb25zLkFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TGFuZ3VhZ2VPcHRpb25zLlBsYWNlaG9sZGVyID0gXCJcIjtcclxuICAgICAgdGhpcy5lZGl0TGFuZ3VhZ2VPcHRpb25zLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRMYW5ndWFnZU9wdGlvbnMuU2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkTGFuZ3VhZ2U7XHJcblxyXG4gICAgICBsZXQgc2VsZWN0ZWRXZWxjb21lTXNnVGVtcCA9IGFjdGl2ZURpcmVjdG9yeS53ZWxjb21lVGVtcGxhdGVJRCAhPSBudWxsID8gdGhpcy53ZWxjb21lTXNnVGVtcExpc3QuZmlsdGVyKChpdGVtKSA9PiB7IHJldHVybiBpdGVtLmtleSA9PSBhY3RpdmVEaXJlY3Rvcnkud2VsY29tZVRlbXBsYXRlSUQ7IH0pLm1hcCgoaXRlbSkgPT4gaXRlbS5rZXkpWzBdIDogbnVsbDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuTmFtZSA9IFwiZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnNcIlxyXG4gICAgICB0aGlzLmVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zLkxhYmVsS2V5ID0gXCJXZWxjb21lTXNnVGVtcGxhdGVcIlxyXG4gICAgICB0aGlzLmVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zLkRhdGFTb3VyY2UgPSB0aGlzLndlbGNvbWVNc2dUZW1wTGlzdFxyXG4gICAgICB0aGlzLmVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuQWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zLlBsYWNlaG9sZGVyID0gXCJcIjtcclxuICAgICAgdGhpcy5lZGl0V2VsY29tZU1zZ1RlbXBsYXRlT3B0aW9ucy5Jc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMuU2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkV2VsY29tZU1zZ1RlbXA7XHJcblxyXG5cclxuICAgICAgdGhpcy5lZGl0SW5hY3RpdmUgPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdEluYWN0aXZlLk5hbWUgPSBcImVkaXRJbmFjdGl2ZVwiO1xyXG4gICAgICB0aGlzLmVkaXRJbmFjdGl2ZS5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5tYXJrQXNJbmFjdGl2ZTtcclxuICAgICAgdGhpcy5lZGl0SW5hY3RpdmUuTGFiZWxLZXkgPSBcIk1hcmtBc0luYWN0aXZlXCJcclxuICAgICAgdGhpcy5lZGl0SW5hY3RpdmUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcblxyXG4gICAgICB0aGlzLmVkaXREYWlseUpvYiA9IG5ldyBUb2dnbGVTbGlkZU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0RGFpbHlKb2IuTmFtZSA9IFwiZWRpdERhaWx5Sm9iXCJcclxuICAgICAgdGhpcy5lZGl0RGFpbHlKb2IuTGFiZWxLZXkgPSBcIkFkZFRvRGFpbHlKb2JcIlxyXG4gICAgICB0aGlzLmVkaXREYWlseUpvYi5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5hZGRUb0RhaWx5Sm9iO1xyXG4gICAgICB0aGlzLmVkaXREYWlseUpvYi5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuXHJcblxyXG4gICAgICAvL1dpbmRvd3MgbW9kZVxyXG4gICAgICBpZiAodGhpcy5lZGl0QURUeXBlSUQgPT0gTnVtYmVyKEFEVHlwZS5XaW5kb3dzKSkge1xyXG4gICAgICAgIHRoaXMuZWRpdElkZW50aWZpZXIgPSBhY3RpdmVEaXJlY3RvcnkuaWRlbnRpZmllcjtcclxuICAgICAgICB0aGlzLmVkaXRXaW5kb3dzVHlwZU5hbWUgPSBhY3RpdmVEaXJlY3RvcnkuYWRUeXBlTmFtZTtcclxuXHJcbiAgICAgICAgdGhpcy5lZGl0RG9tYWluID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0RG9tYWluLk5hbWUgPSBcImVkaXREb21haW5cIjtcclxuICAgICAgICB0aGlzLmVkaXREb21haW4uTGFiZWxLZXkgPSBcIkRvbWFpblwiO1xyXG4gICAgICAgIHRoaXMuZWRpdERvbWFpbi5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgdGhpcy5lZGl0RG9tYWluLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZWRpdERvbWFpbi5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5kb21haW47XHJcbiAgICAgICAgdGhpcy5lZGl0RG9tYWluLk1heExlbmd0aCA9IDI1NjtcclxuXHJcbiAgICAgICAgdGhpcy5lZGl0U2FtQWNjb3VudCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdFNhbUFjY291bnQuTmFtZSA9IFwiZWRpdFNhbUFjY291bnRcIjtcclxuICAgICAgICB0aGlzLmVkaXRTYW1BY2NvdW50LkxhYmVsS2V5ID0gXCJTYW1BY2NvdW50XCI7XHJcbiAgICAgICAgdGhpcy5lZGl0U2FtQWNjb3VudC5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgdGhpcy5lZGl0U2FtQWNjb3VudC5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5zYW1BY2NvdW50O1xyXG4gICAgICAgIHRoaXMuZWRpdFNhbUFjY291bnQuTWF4TGVuZ3RoID0gMjA7XHJcblxyXG4gICAgICAgIHRoaXMuZWRpdFBhc3N3b3JkID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0UGFzc3dvcmQuTmFtZSA9IFwiZWRpdFBhc3N3b3JkXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0UGFzc3dvcmQuTGFiZWxLZXkgPSBcIlBhc3N3b3JkXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0UGFzc3dvcmQuVHlwZSA9IElucHV0VHlwZS5QYXNzd29yZDtcclxuICAgICAgICB0aGlzLmVkaXRQYXNzd29yZC5SZW1vdmVEZWZhdWx0UGFzc3dvcmRWYWxpZGF0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVkaXRQYXNzd29yZC5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS5wYXNzd29yZDtcclxuICAgICAgICB0aGlzLmVkaXRQYXNzd29yZC5NYXhMZW5ndGggPSA0MDAwO1xyXG5cclxuICAgICAgICB0aGlzLnNob3dXaW5kb3dzQ29udHJvbCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5lZGl0QURUeXBlSUQgPT0gTnVtYmVyKEFEVHlwZS5BenVyZSkpIHtcclxuICAgICAgICB0aGlzLmVkaXRUZW5hbnRJRCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdFRlbmFudElELk5hbWUgPSBcImVkaXRUZW5hbnRJRFwiO1xyXG4gICAgICAgIHRoaXMuZWRpdFRlbmFudElELkxhYmVsS2V5ID0gXCJUZW5hbnRJRFwiO1xyXG4gICAgICAgIHRoaXMuZWRpdFRlbmFudElELlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICB0aGlzLmVkaXRUZW5hbnRJRC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVkaXRUZW5hbnRJRC5WYWx1ZSA9IGFjdGl2ZURpcmVjdG9yeS50ZW5hbnRJRDtcclxuICAgICAgICB0aGlzLmVkaXRUZW5hbnRJRC5NYXhMZW5ndGggPSAxMDA7XHJcblxyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudElEID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpZW50SUQuTmFtZSA9IFwiZWRpdENsaWVudElEXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpZW50SUQuTGFiZWxLZXkgPSBcIkNsaWVudElEXCI7XHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpZW50SUQuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudElELklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudElELlZhbHVlID0gYWN0aXZlRGlyZWN0b3J5LmNsaWVudElEO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudElELk1heExlbmd0aCA9IDEwMDtcclxuXHJcblxyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudFNlY3JldCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudFNlY3JldC5OYW1lID0gXCJlZGl0Q2xpZW50U2VjcmV0XCI7XHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpZW50U2VjcmV0LkxhYmVsS2V5ID0gXCJDbGllbnRTZWNyZXRcIjtcclxuICAgICAgICB0aGlzLmVkaXRDbGllbnRTZWNyZXQuVHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudFNlY3JldC5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVkaXRDbGllbnRTZWNyZXQuVmFsdWUgPSBhY3RpdmVEaXJlY3RvcnkuY2xpZW50U2VjcmV0O1xyXG4gICAgICAgIHRoaXMuZWRpdENsaWVudFNlY3JldC5NYXhMZW5ndGggPSAxMDA7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd0F6dXJlQ29udHJvbCA9IHRydWU7XHJcblxyXG4gICAgICB9XHJcblxyXG5cclxuICAgICAgbGV0IGRhdGE6IGFueSA9IHRoaXMuZ2V0QURNYXBwaW5nT3B0aW9ucyhhY3RpdmVEaXJlY3RvcnkuYWRNYXBwaW5ncyk7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNYXBwaW5nc09wdGlvbnMgPSBkYXRhWzBdO1xyXG4gICAgICB0aGlzLmVkaXRNYXBwaW5nc0NvdW50ID0gZGF0YVsxXTtcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihlZGl0QURNb2RhbCk7XHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldEVkaXRBRE1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgcmVzdWx0TW9kZWwgPSB0aGlzLmVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBFZGl0TW9kZWwgPSBuZXcgQWN0aXZlRGlyZWN0b3J5QWRkRWRpdE1vZGVsKCk7XHJcblxyXG4gICAgRWRpdE1vZGVsLklEID0gTnVtYmVyKHRoaXMuYWN0aXZlRGlyZWN0b3J5SWQpO1xyXG4gICAgRWRpdE1vZGVsLkNvbm5lY3Rpb25OYW1lID0gcmVzdWx0TW9kZWwuZWRpdE5hbWU7XHJcbiAgICBFZGl0TW9kZWwuUGVybWlzc2lvblNldElEID0gcmVzdWx0TW9kZWwuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zICE9IG51bGwgPyBOdW1iZXIocmVzdWx0TW9kZWwuZWRpdFBlcm1pc3Npb25TZXRPcHRpb25zKSA6IG51bGxcclxuICAgIEVkaXRNb2RlbC5MYW5nS2V5ID0gcmVzdWx0TW9kZWwuZWRpdExhbmd1YWdlT3B0aW9ucztcclxuICAgIEVkaXRNb2RlbC5XZWxjb21lVGVtcGxhdGVJRCA9IHJlc3VsdE1vZGVsLmVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zICE9IG51bGwgPyBOdW1iZXIocmVzdWx0TW9kZWwuZWRpdFdlbGNvbWVNc2dUZW1wbGF0ZU9wdGlvbnMpIDogbnVsbFxyXG4gICAgRWRpdE1vZGVsLk1hcmtBc0luYWN0aXZlID0gcmVzdWx0TW9kZWwuZWRpdEluYWN0aXZlO1xyXG4gICAgRWRpdE1vZGVsLkFkZFRvRGFpbHlKb2IgPSByZXN1bHRNb2RlbC5lZGl0RGFpbHlKb2I7XHJcblxyXG4gICAgaWYgKHRoaXMuZWRpdEFEVHlwZUlEID09IE51bWJlcihBRFR5cGUuV2luZG93cykpIHtcclxuICAgICAgRWRpdE1vZGVsLkRvbWFpbiA9IHJlc3VsdE1vZGVsLmVkaXREb21haW47XHJcbiAgICAgIEVkaXRNb2RlbC5TYW1BY2NvdW50ID0gcmVzdWx0TW9kZWwuZWRpdFNhbUFjY291bnQ7XHJcbiAgICAgIEVkaXRNb2RlbC5QYXNzd29yZCA9IHJlc3VsdE1vZGVsLmVkaXRQYXNzd29yZDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuZWRpdEFEVHlwZUlEID09IE51bWJlcihBRFR5cGUuQXp1cmUpKSB7XHJcbiAgICAgIEVkaXRNb2RlbC5UZW5hbnRJRCA9IHJlc3VsdE1vZGVsLmVkaXRUZW5hbnRJRDtcclxuICAgICAgRWRpdE1vZGVsLkNsaWVudElEID0gcmVzdWx0TW9kZWwuZWRpdENsaWVudElEO1xyXG4gICAgICBFZGl0TW9kZWwuQ2xpZW50U2VjcmV0ID0gcmVzdWx0TW9kZWwuZWRpdENsaWVudFNlY3JldDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmVkaXRNYXBwaW5nc0NvdW50OyBqKyspIHtcclxuICAgICAgbGV0IGVkaXRNQXBwaW5nVHlwZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nVHlwZVwiICsgal07XHJcbiAgICAgIGlmIChlZGl0TUFwcGluZ1R5cGUgPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICBsZXQgZWRpdE1BcHBpbmdQcm9wZXJ0eSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nUHJvcGVydHlcIiArIGpdO1xyXG4gICAgICBsZXQgZWRpdE1BcHBpbmdQcm9wZXJ0eU5hbWUgPSByZXN1bHRNb2RlbFtcIkFETWFwcGluZ1Byb3BlcnR5TmFtZVwiICsgal07XHJcbiAgICAgIGxldCBlZGl0TUFwcGluZ0luY2x1ZGVJblVwZGF0ZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nSW5jbHVkZVVwZGF0ZVwiICsgal07XHJcbiAgICAgIGxldCBlZGl0TUFwcGluZ0hpZGRlbkluY2x1ZGVJblVwZGF0ZSA9IHJlc3VsdE1vZGVsW1wiQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZVwiICsgal07XHJcblxyXG4gICAgICBsZXQgYWRNQXBwaW5nT2JqOiBBRE1hcHBpbmdNb2RlbCA9IG5ldyBBRE1hcHBpbmdNb2RlbCgpO1xyXG4gICAgICBhZE1BcHBpbmdPYmouQURNYXBwaW5nVHlwZUl0ZW1JRCA9IE51bWJlcihlZGl0TUFwcGluZ1R5cGUpO1xyXG4gICAgICBhZE1BcHBpbmdPYmouQkJTRlByb3BlcnR5TmFtZSA9IGVkaXRNQXBwaW5nUHJvcGVydHk7XHJcbiAgICAgIGFkTUFwcGluZ09iai5BRFByb3BlcnR5TmFtZSA9IGVkaXRNQXBwaW5nUHJvcGVydHlOYW1lO1xyXG4gICAgICBhZE1BcHBpbmdPYmouSW5jbHVkZUluVXBkYXRlID0gZWRpdE1BcHBpbmdJbmNsdWRlSW5VcGRhdGUgPT0gdW5kZWZpbmVkID8gZWRpdE1BcHBpbmdIaWRkZW5JbmNsdWRlSW5VcGRhdGUgOiBlZGl0TUFwcGluZ0luY2x1ZGVJblVwZGF0ZTtcclxuICAgICAgRWRpdE1vZGVsLkFETWFwcGluZ3MucHVzaChhZE1BcHBpbmdPYmopO1xyXG4gICAgfVxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEVkaXRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRBREZ1bmN0aW9uID0gKEVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmVkaXRBY3RpdmVEaXJlY3RvcnkoRWRpdE1vZGVsKVxyXG4gIH1cclxuXHJcbiAgLy9BRCBNYXBwaW5nIGZ1bmN0aW9uc1xyXG4gIGdldEFETWFwcGluZ09wdGlvbnMoQURNYXBwaW5nczogYW55W10pIHtcclxuICAgIGxldCBBRE1hcHBpbmdPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IEFETWFwcGluZ0NvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBBRE1hcHBpbmdzLmxlbmd0aDsgaSsrKSB7XHJcblxyXG4gICAgICBsZXQgb2JqZWN0TWFwcGluZ09wdGlvbnM6IGFueVtdID0gW107XHJcblxyXG4gICAgICBsZXQgQURNYXBwaW5nVHlwZSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgbGV0IHNlbGVjdGVkVHlwZSA9IHRoaXMubWFwcGluZ1R5cGVzTGlzdC5maWx0ZXIoKGl0ZW0pID0+IHsgcmV0dXJuIGl0ZW0ua2V5ID09IEFETWFwcGluZ3NbaV0uYWRNYXBwaW5nVHlwZUl0ZW1JRDsgfSkubWFwKChpdGVtKSA9PiBpdGVtLmtleSlbMF07XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuTmFtZSA9IFwiQURNYXBwaW5nVHlwZVwiICsgaTtcclxuICAgICAgQURNYXBwaW5nVHlwZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICBBRE1hcHBpbmdUeXBlLlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1R5cGUuU2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkVHlwZTtcclxuICAgICAgQURNYXBwaW5nVHlwZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgQURNYXBwaW5nVHlwZS5EYXRhU291cmNlID0gdGhpcy5tYXBwaW5nVHlwZXNMaXN0O1xyXG5cclxuICAgICAgbGV0IEFETWFwcGluZ1Byb3BlcnR5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICBsZXQgc2VsZWN0ZWRQcm9wZXJ0eSA9IHRoaXMubWFwcGluZ1Byb3BlcnRpZXNMaXN0LmZpbHRlcigoaXRlbSkgPT4geyByZXR1cm4gaXRlbS5rZXkgPT0gQURNYXBwaW5nc1tpXS5iYnNmUHJvcGVydHlOYW1lOyB9KS5tYXAoKGl0ZW0pID0+IGl0ZW0ua2V5KVswXTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHkuTmFtZSA9IFwiQURNYXBwaW5nUHJvcGVydHlcIiArIGk7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LlNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5LlNlbGVjdGVkSXRlbXMgPSBzZWxlY3RlZFByb3BlcnR5O1xyXG4gICAgICBBRE1hcHBpbmdQcm9wZXJ0eS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHkuRGF0YVNvdXJjZSA9IHRoaXMubWFwcGluZ1Byb3BlcnRpZXNMaXN0O1xyXG5cclxuXHJcbiAgICAgIGxldCBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLk5hbWUgPSBcIkFETWFwcGluZ1Byb3BlcnR5TmFtZVwiICsgaTtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLkhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5WYWx1ZSA9IEFETWFwcGluZ3NbaV0uYWRQcm9wZXJ0eU5hbWU7XHJcbiAgICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5WaWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuSG9yaXpvbnRhbDtcclxuICAgICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLk1heExlbmd0aCA9IDEwMjQ7XHJcblxyXG4gICAgICBsZXQgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgQURNYXBwaW5nSW5jbHVkZVVwZGF0ZS5OYW1lID0gXCJBRE1hcHBpbmdJbmNsdWRlVXBkYXRlXCIgKyBpO1xyXG4gICAgICBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlLlZhbHVlID0gQURNYXBwaW5nc1tpXS5pbmNsdWRlSW5VcGRhdGU7XHJcbiAgICAgIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUuSXNEaXNhYmxlZCA9IHRydWU7XHJcblxyXG4gICAgICBsZXQgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlLk5hbWUgPSBcIkFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGVcIiArIGk7XHJcbiAgICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUuVmFsdWUgPSBBRE1hcHBpbmdzW2ldLmluY2x1ZGVJblVwZGF0ZTtcclxuXHJcblxyXG4gICAgICBvYmplY3RNYXBwaW5nT3B0aW9ucy5wdXNoKEFETWFwcGluZ1R5cGUsIEFETWFwcGluZ1Byb3BlcnR5LCBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUsIEFETWFwcGluZ0luY2x1ZGVVcGRhdGUsIEFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGUpO1xyXG4gICAgICBBRE1hcHBpbmdPcHRpb25zLnB1c2gob2JqZWN0TWFwcGluZ09wdGlvbnMpO1xyXG4gICAgICBBRE1hcHBpbmdDb3VudCArPSAxO1xyXG5cclxuICAgIH1cclxuICAgIHJldHVybiBbQURNYXBwaW5nT3B0aW9ucywgQURNYXBwaW5nQ291bnRdO1xyXG4gIH1cclxuICBkZWxldGVBRE1hcHBpbmcoZGVsZXRlZEFETUFwcGluZzogYW55KSB7XHJcbiAgICBsZXQgZGVsZXRlZE1hcHBpbmdJbmRleDogbnVtYmVyID0gdGhpcy5lZGl0TWFwcGluZ3NPcHRpb25zLmluZGV4T2YoZGVsZXRlZEFETUFwcGluZyk7XHJcbiAgICBpZiAoZGVsZXRlZE1hcHBpbmdJbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5lZGl0TWFwcGluZ3NPcHRpb25zLnNwbGljZShkZWxldGVkTWFwcGluZ0luZGV4LCAxKTtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZWxldGVkQURNQXBwaW5nLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5lZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybS5yZW1vdmVDb250cm9sKGRlbGV0ZWRBRE1BcHBpbmdbaV0uTmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZEFETWFwcGluZygpIHtcclxuICAgIGxldCBpbmRleCA9IHRoaXMuZWRpdE1hcHBpbmdzQ291bnQ7XHJcblxyXG4gICAgbGV0IG9iamVjdE1hcHBpbmdPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGxldCBBRE1hcHBpbmdUeXBlID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgQURNYXBwaW5nVHlwZS5OYW1lID0gXCJBRE1hcHBpbmdUeXBlXCIgKyBpbmRleDtcclxuICAgIEFETWFwcGluZ1R5cGUuSGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ1R5cGUuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ1R5cGUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcbiAgICBBRE1hcHBpbmdUeXBlLkRhdGFTb3VyY2UgPSB0aGlzLm1hcHBpbmdUeXBlc0xpc3Q7XHJcblxyXG4gICAgbGV0IEFETWFwcGluZ1Byb3BlcnR5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHkuTmFtZSA9IFwiQURNYXBwaW5nUHJvcGVydHlcIiAraW5kZXg7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHkuU2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5LlZpZXdUeXBlID0gQ29udHJvbExheW91dC5Ib3Jpem9udGFsO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHkuRGF0YVNvdXJjZSA9IHRoaXMubWFwcGluZ1Byb3BlcnRpZXNMaXN0O1xyXG5cclxuXHJcbiAgICBsZXQgQURNYXBwaW5nUHJvcGVydHlOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuTmFtZSA9IFwiQURNYXBwaW5nUHJvcGVydHlOYW1lXCIgKyBpbmRleDtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgQURNYXBwaW5nUHJvcGVydHlOYW1lLlR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIEFETWFwcGluZ1Byb3BlcnR5TmFtZS5Jc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgICBBRE1hcHBpbmdQcm9wZXJ0eU5hbWUuVmlld1R5cGUgPSBDb250cm9sTGF5b3V0Lkhvcml6b250YWw7XHJcblxyXG4gICAgbGV0IEFETWFwcGluZ0luY2x1ZGVVcGRhdGUgPSBuZXcgQ2hlY2tCb3hPcHRpb25zKCk7XHJcbiAgICBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlLk5hbWUgPSBcIkFETWFwcGluZ0luY2x1ZGVVcGRhdGVcIiArIGluZGV4O1xyXG5cclxuICAgIGxldCBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlLk5hbWUgPSBcIkFETWFwcGluZ0hpZGRlbkluY2x1ZGVVcGRhdGVcIiArIGluZGV4O1xyXG4gICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5IaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgQURNYXBwaW5nSGlkZGVuSW5jbHVkZVVwZGF0ZS5UeXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcblxyXG4gICAgb2JqZWN0TWFwcGluZ09wdGlvbnMucHVzaChBRE1hcHBpbmdUeXBlLCBBRE1hcHBpbmdQcm9wZXJ0eSwgQURNYXBwaW5nUHJvcGVydHlOYW1lLCBBRE1hcHBpbmdJbmNsdWRlVXBkYXRlLCBBRE1hcHBpbmdIaWRkZW5JbmNsdWRlVXBkYXRlKTtcclxuXHJcbiAgICB0aGlzLmVkaXRNYXBwaW5nc09wdGlvbnMucHVzaChvYmplY3RNYXBwaW5nT3B0aW9ucyk7XHJcbiAgICB0aGlzLmVkaXRNYXBwaW5nc0NvdW50ICs9IDE7XHJcblxyXG4gIH1cclxuICAvL0RlbGV0ZSBBQ3RpdmVEaXJlY3RvcnlcclxuICBzaG93RGVsZXRlQWN0aXZlRGlyZWN0b3J5TW9kYWwoYWN0aXZlRGlyZWN0b3J5SUQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kZWxldGVBY3RpdmVEaXJlY3RvcnlJZCA9IGFjdGl2ZURpcmVjdG9yeUlEO1xyXG5cclxuICAgIC8vYXJyYXkgc2VudCB0byBzZXJ2aWNlIGZ1bmN0aW9uXHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIHBhcmFtQXJyYXkucHVzaCh0aGlzLmRlbGV0ZUFjdGl2ZURpcmVjdG9yeUlkKTtcclxuXHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5kZWxldGVBY3RpdmVEaXJlY3Rvcnk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdE1vZGVsID0gcGFyYW1BcnJheTtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnQ7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbnRyb2xMb2FkZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dNb2RhbCgpO1xyXG4gICAgfSwgMjAwKTtcclxuICB9XHJcbiAgZGVsZXRlQWN0aXZlRGlyZWN0b3J5ID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5kZWxldGVBY3RpdmVEaXJlY3RvcnkoaWQpO1xyXG4gIH1cclxuXHJcbiAgLy9TeW5jIEFjdGl2ZSBEaXJlY3RvcnlcclxuICBzaG93QURTeW5jaHJvbml6YXRpb25Nb2RhbChhY3RpdmVEaXJlY3RvcnlJRDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnN5bmNBY3RpdmVEaXJlY3RvcnlJZCA9IGFjdGl2ZURpcmVjdG9yeUlEO1xyXG5cclxuICAgIC8vYXJyYXkgc2VudCB0byBzZXJ2aWNlIGZ1bmN0aW9uXHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIHBhcmFtQXJyYXkucHVzaCh0aGlzLnN5bmNBY3RpdmVEaXJlY3RvcnlJZCk7XHJcblxyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucyA9IG5ldyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMoKTtcclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5ydW5TeW5jcm9uaXphdGlvbjtcclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMuU2VydmljZVN1Ym1pdE1vZGVsID0gcGFyYW1BcnJheTtcclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG4gICAgdGhpcy5zeW5jQ29uZmlybWF0aW9uT3B0aW9ucy5QYWdpbmdBY3Rpb25Nb2RlID0gUGFnaW5nQWN0aW9uTW9kZS5SZWluaXRpYWxpemU7XHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zLkNvbmZpcm1hdGlvbkhlYWRlciA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJ1blN5bmNocm9uaXphdGlvblwiKTtcclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlJ1blN5bmNocm9uaXphdGlvbkNvbmZpcm1hdGlvblwiKTtcclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMuU3R5bGVDb25maXJtYXRpb25Nb2RlID0gU3R5bGVDb25maXJtYXRpb25Nb2RlLldhcm5pbmc7XHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zLlN1Ym1pdEJ1dHRvblRleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJZZXNcIik7XHJcbiAgICB0aGlzLnN5bmNDb25maXJtYXRpb25PcHRpb25zLkRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk9wdGlvbnMuT25TdWNjZXNzSGFuZGxlciA9IHRoaXMucnVuU3luY09uU3VjY2VzcztcclxuICAgIHRoaXMuc3luY0NvbnRyb2xMb2FkZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3luY0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbC5zaG93TW9kYWwoKTtcclxuICAgIH0sIDIwMCk7XHJcbiAgfVxyXG4gIHJ1blN5bmNyb25pemF0aW9uID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRGlyZWN0b3J5U2VydmljZS5ydW5BRFN5bmNocm9uaXphdGlvbihpZCk7XHJcbiAgfVxyXG5cclxuICBydW5TeW5jT25TdWNjZXNzID0gKHJlc3VsdCkgPT4ge1xyXG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xyXG4gIH1cclxuICAvL0xhc3QgcnVuIGxvZ3NcclxuICBzaG93QURMYXN0UnVuTG9nc01vZGFsKGFjdGl2ZURpcmVjdG9yeUlEOiBzdHJpbmcsbGFzdFJ1bkxvZ3NNb2RhbCkge1xyXG4gICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldExhc3RSdW5Mb2dzKGFjdGl2ZURpcmVjdG9yeUlEKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBsZXQgbGFzdFJ1bkxvZ3NNb2RlbCA9IHJlc3VsdCBhcyBhbnk7XHJcblxyXG4gICAgICB0aGlzLmFkQ29ubmVjdGlvbk5hbWUgPSBsYXN0UnVuTG9nc01vZGVsLm1vZGVsLmFkQ29ubmVjdGlvbk5hbWU7XHJcbiAgICAgIHRoaXMubGFzdFJ1bkxvZ3MgPSBsYXN0UnVuTG9nc01vZGVsLm1vZGVsLmxvZ3M7XHJcblxyXG4gICAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKGxhc3RSdW5Mb2dzTW9kYWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvL09uIGRlc3Ryb3lcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuXHJcbjwhLS0gUGFnZSBDb250ZW50IC0tPlxyXG48ZGl2ICpuZ0lmPVwic2hvd1BhZ2VDb250ZW50XCIgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICA8IS0tIGJlZ2luOjpIZWFkZXIgLS0+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1jdXN0b20taFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCI+XHJcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJhY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInNlYXJjaFRleHRCb3hcIiBbZ3JvdXBdPVwiYWN0aXZlRGlyZWN0b3J5Rm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnlcIiB0aXRsZT0ne3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX0nIFtyb3V0ZXJMaW5rXT1cIlsnL0FkbWluL0FEQ29ubmVjdGlvbi9BZGQnXVwiPlxyXG4gICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cyBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICA8IS0tYmVnaW46OkFjdGl2ZURpcmVjdG9yeSBsaXN0LS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyIGNsYXNzPVwidGV4dC1zdGFydCB0ZXh0LWdyYXktNDAwIGZ3LWJvbGRlciBmcy03IHRleHQtdXBwZXJjYXNlIGdzLTBcIj5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5hbWVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJUeXBlXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUGVybWlzc2lvblNldFwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkQ29ubmVjdGlvblJ1bm5pbmdOb3dcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGlvbnNcIil9fTwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5IGlkPVwibGlzdGluZ0NvbnRhaW5lclwiIGNsYXNzPVwiZnctYm9sZCB0ZXh0LWdyYXktNjAwIGJvcmRlci0wXCI+XHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgYWN0aXZlRGlyZWN0b3J5IG9mIGNsaWVudFNpZGVQYWdpbmdSZXN1bHRcIj5cclxuXHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGV4dC1kYXJrXCI+XHJcbiAgICAgICAgICAgICAgICB7e2FjdGl2ZURpcmVjdG9yeS5uYW1lfX1cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIHt7YWN0aXZlRGlyZWN0b3J5LmFkVHlwZU5hbWV9fVxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAge3thY3RpdmVEaXJlY3RvcnkucGVybWlzc2lvblNldE5hbWV9fVxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzXCIgKm5nSWY9XCJhY3RpdmVEaXJlY3RvcnkuaXNSdW5uaW5nTm93O2Vsc2Ugbm90X1J1bm5pbmdcIj5cclxuICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiWWVzXCIpfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90X1J1bm5pbmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTm9cIil9fVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1saWdodCBidG4tYWN0aXZlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVsbGlwc2lzLWhcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RWRpdEFjdGl2ZURpcmVjdG9yeU1vZGFsKGFjdGl2ZURpcmVjdG9yeS5pZCxhY3RpdmVEaXJlY3RvcnkuaWRFbmNyeXB0ZWQsZWRpdEFjdGl2ZURpcmVjdG9yeU1vZGFsKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgbmdiRHJvcGRvd25JdGVtIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlQWN0aXZlRGlyZWN0b3J5TW9kYWwoYWN0aXZlRGlyZWN0b3J5LmlkRW5jcnlwdGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8YSBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dBRFN5bmNocm9uaXphdGlvbk1vZGFsKGFjdGl2ZURpcmVjdG9yeS5pZEVuY3J5cHRlZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3RpdmVEaXJlY3RvcnlSdW5TeW5jcm9uaXphdGlvblwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8YSBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dBRExhc3RSdW5Mb2dzTW9kYWwoYWN0aXZlRGlyZWN0b3J5LmlkRW5jcnlwdGVkLGxhc3RSdW5Mb2dzTW9kYWwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWN0aXZlRGlyZWN0b3J5TGFzdFJ1bkxvZ3NcIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8dHIgKm5nSWY9XCJjbGllbnRTaWRlUGFnaW5nUmVzdWx0Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCI1XCI+XHJcbiAgICAgICAgICAgICAgICA8bGliLWVtcHR5LWRhdGE+PC9saWItZW1wdHktZGF0YT5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLWVuZDo6QWN0aXZlIGRpcmVjdG9yeSBsaXN0LS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldEFjdGl2ZURpcmVjdG9yeUxpc3RSZXN1bHQoJGV2ZW50KVwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiYWN0aXZlRGlyZWN0b3J5UGFnaW5nXCIgW2dyb3VwXT1cImFjdGl2ZURpcmVjdG9yeUZvcm1cIiAjYWN0aXZlRGlyZWN0b3J5UGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgIDwvQkJTRi1QYWdpbmc+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuPCEtLSBFZGl0IE1vZGFsIC0tPlxyXG48bmctdGVtcGxhdGUgI2VkaXRBY3RpdmVEaXJlY3RvcnlNb2RhbCBsZXQtbW9kYWw+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRWRpdFwiKX19IHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yeVwiKX19XHJcbiAgICAgIDwvaDE+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1PcHRpb25zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdE5hbWVcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImVkaXRQZXJtaXNzaW9uU2V0T3B0aW9uc1wiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJlZGl0TGFuZ3VhZ2VPcHRpb25zXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImVkaXRXZWxjb21lTXNnVGVtcGxhdGVPcHRpb25zXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgIDxoNj5cclxuICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQURUeXBlXCIpfX1cclxuICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgIHt7ZWRpdEFEVHlwZU5hbWV9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93V2luZG93c0NvbnRyb2xcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPGg2PlxyXG4gICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIklkZW50aWZpZXJcIil9fVxyXG4gICAgICAgICAgICA8L2g2PlxyXG4gICAgICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICAgICAge3tlZGl0SWRlbnRpZmllcn19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICA8aDY+XHJcbiAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVHlwZVwiKX19XHJcbiAgICAgICAgICAgIDwvaDY+XHJcbiAgICAgICAgICAgIDxsYWJlbD5cclxuICAgICAgICAgICAgICB7e2VkaXRXaW5kb3dzVHlwZU5hbWV9fVxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXREb21haW5cIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0U2FtQWNjb3VudFwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdFBhc3N3b3JkXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd0F6dXJlQ29udHJvbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJlZGl0VGVuYW50SURcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdENsaWVudElEXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXRDbGllbnRTZWNyZXRcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgPEJCU0YtVG9nZ2xlc2xpZGUgW29wdGlvbnNdPVwiZWRpdEluYWN0aXZlXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCI+XHJcbiAgICAgICAgICA8L0JCU0YtVG9nZ2xlc2xpZGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICA8QkJTRi1Ub2dnbGVzbGlkZSBbb3B0aW9uc109XCJlZGl0RGFpbHlKb2JcIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgIDwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBhbXN4LXRhYmxlLXVzZXJzXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGg+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiVHlwZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGg+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiUHJvcGVydHlcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGl2ZURpcmVjdG9yeV9Qcm9wZXJ0eVwiKX19PC90aD5cclxuICAgICAgICAgICAgICA8dGg+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSW5jbHVkZUluVXBkYXRlXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD48L3RoPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZWRpdE1hcHBpbmdzT3B0aW9ucztsZXQgaT1pbmRleDtcIj5cclxuXHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cIm9wdGlvblswXVwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxCQlNGLURyb3Bkb3duTGlzdCBbb3B0aW9uc109XCJvcHRpb25bMV1cIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cIm9wdGlvblsyXVwiIFtncm91cF09XCJlZGl0QWN0aXZlRGlyZWN0b3J5Rm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8QkJTRi1DaGVja0JveCBbb3B0aW9uc109XCJvcHRpb25bM11cIiBbZ3JvdXBdPVwiZWRpdEFjdGl2ZURpcmVjdG9yeUZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICAgICAgICAgIDwhLS1IaWRkZW4gaW5jbHVkZSBpbiB1cGRhdGUgdmFsdWUtLT5cclxuICAgICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwib3B0aW9uWzRdXCIgW2dyb3VwXT1cImVkaXRBY3RpdmVEaXJlY3RvcnlGb3JtXCIgW2hpZGRlbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWNlbnRlciBhbGlnbi1taWRkbGVcIj5cclxuICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwia3QtbmF2X19saW5rXCIgKGNsaWNrKT1cImRlbGV0ZUFETWFwcGluZyhvcHRpb24pXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwia3QtbmF2X19saW5rLWljb24gZmEgZmEtdHJhc2ggaGlkZGVuXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidy0xMDAgYnRuIGJ0bi1zdWNjZXNzXCIgKGNsaWNrKT1cImFkZEFETWFwcGluZygpXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZE5ld1JlY29yZFwiKX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgPGJ1dHRvbiAjQ2xvc2VFZGl0QURNb2RhbCBpZD1cIkNsb3NlRWRpdEFETW9kYWxcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiPlxyXG4gICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9CQlNGLUZvcm0+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tIERlbGV0ZSAgTW9kYWwgLS0+XHJcbjxCQlNGLUNvbmZpcm1hdGlvbk1vZGFsICpuZ0lmPVwiZGVsZXRlQ29udHJvbExvYWRlZFwiIFtvcHRpb25zXT1cImRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnNcIiBpZD1cImRlbGV0ZUNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbFwiICNkZWxldGVDb25maXJtYXRpb25Nb2RhbENvbnRyb2w+PC9CQlNGLUNvbmZpcm1hdGlvbk1vZGFsPlxyXG5cclxuPCEtLSBTeW5jaHJvbml6YXRpb24gIE1vZGFsIC0tPlxyXG48QkJTRi1Db25maXJtYXRpb25Nb2RhbCAqbmdJZj1cInN5bmNDb250cm9sTG9hZGVkXCIgW29wdGlvbnNdPVwic3luY0NvbmZpcm1hdGlvbk9wdGlvbnNcIiBpZD1cInN5bmNDb25maXJtYXRpb25Nb2RhbENvbnRyb2xcIiAjc3luY0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbD48L0JCU0YtQ29uZmlybWF0aW9uTW9kYWw+XHJcblxyXG48IS0tIFZpZXcgTGFzdCBSdW4gTG9ncyAtLT5cclxuPG5nLXRlbXBsYXRlICNsYXN0UnVuTG9nc01vZGFsIGxldC1tb2RhbD5cclxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3RpdmVEaXJlY3RvcnlMYXN0UnVuTG9nc1wiKX19IDoge3thZENvbm5lY3Rpb25OYW1lfX08L2gxPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgPHA+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTmFtZVwiKX19IDoge3thZENvbm5lY3Rpb25OYW1lfX08L3A+XHJcbiAgICAgICAgICA8cHJlIGNsYXNzPVwiY29sLW1kLTEyXCI+e3tsYXN0UnVuTG9nc319PC9wcmU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgIDxidXR0b24gI0Nsb3NlRGVmYXVsdFByb3ZpZGVyTW9kYWwgaWQ9XCJDbG9zZURlZmF1bHRQcm92aWRlck1vZGFsXCIgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIG1lLTMgXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+XHJcbiAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDbG9zZVwiKX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcbiJdfQ==
|