@thetradeengineorg1/snova-shell-module 0.0.1
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 +24 -0
- package/bundles/thetradeengineorg1-snova-shell-module.umd.js +13896 -0
- package/bundles/thetradeengineorg1-snova-shell-module.umd.js.map +1 -0
- package/esm2015/lib/globaldependencies/components/componentbase.js +538 -0
- package/esm2015/lib/globaldependencies/constants/feature-ids.js +449 -0
- package/esm2015/lib/globaldependencies/constants/localstorage-properties.js +38 -0
- package/esm2015/lib/globaldependencies/helpers/dom.helper.js +70 -0
- package/esm2015/lib/globaldependencies/helpers/fontawesome-icons.js +144 -0
- package/esm2015/lib/globaldependencies/helpers/moment-utc-date-adapter.js +37 -0
- package/esm2015/lib/globaldependencies/helpers/window.helper.js +32 -0
- package/esm2015/lib/globaldependencies/intercepter/jwt.interceptor.js +40 -0
- package/esm2015/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.js +36 -0
- package/esm2015/lib/globaldependencies/pipes/highLightText.pipe.js +24 -0
- package/esm2015/lib/globaldependencies/pipes/orderby-pipe.js +24 -0
- package/esm2015/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.js +22 -0
- package/esm2015/lib/globaldependencies/pipes/sanitize.pipe.js +24 -0
- package/esm2015/lib/globaldependencies/pipes/softlabels.pipes.js +346 -0
- package/esm2015/lib/globaldependencies/pipes/utctolocaltime.pipe.js +23 -0
- package/esm2015/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.js +25 -0
- package/esm2015/lib/globaldependencies/pipes/workflowstatus.pipes.js +27 -0
- package/esm2015/lib/shell-components/components/Payments/account.component.js +50 -0
- package/esm2015/lib/shell-components/components/Payments/company-information.js +262 -0
- package/esm2015/lib/shell-components/components/Payments/company-plans.component.js +138 -0
- package/esm2015/lib/shell-components/components/Payments/document.component.js +57 -0
- package/esm2015/lib/shell-components/components/Payments/payment-method.component.js +32 -0
- package/esm2015/lib/shell-components/components/Payments/product-service.component.js +143 -0
- package/esm2015/lib/shell-components/components/Payments/purchase-more-licenses.js +152 -0
- package/esm2015/lib/shell-components/components/Payments/transactions.component.js +60 -0
- package/esm2015/lib/shell-components/components/admin-layout/admin-layout.component.js +250 -0
- package/esm2015/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.js +89 -0
- package/esm2015/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.js +90 -0
- package/esm2015/lib/shell-components/components/export-import-configuration/export-configuration.component.js +357 -0
- package/esm2015/lib/shell-components/components/feed-time/feed-time-dialog.component.js +85 -0
- package/esm2015/lib/shell-components/components/feed-time/feed-time.component.js +83 -0
- package/esm2015/lib/shell-components/components/header-side/header-side.component.js +1642 -0
- package/esm2015/lib/shell-components/components/header-top/header-top.component.js +93 -0
- package/esm2015/lib/shell-components/components/lives/lives-welcome-page.js +26 -0
- package/esm2015/lib/shell-components/components/menu/menu.component.js +2478 -0
- package/esm2015/lib/shell-components/components/menu/searchTask.enum.js +10 -0
- package/esm2015/lib/shell-components/components/notifications/announcement-dialog.component.js +73 -0
- package/esm2015/lib/shell-components/components/notifications/notifications.component.js +449 -0
- package/esm2015/lib/shell-components/components/sidebar-top/sidebar-top.component.js +33 -0
- package/esm2015/lib/shell-components/components/sidenav/side-bar.component.js +81 -0
- package/esm2015/lib/shell-components/components/sidenav/sidenav.component.js +43 -0
- package/esm2015/lib/shell-components/components/submit-feedback/submit-feedback.component.js +71 -0
- package/esm2015/lib/shell-components/constants/api-urls.js +1052 -0
- package/esm2015/lib/shell-components/constants/available-languages.js +25 -0
- package/esm2015/lib/shell-components/constants/channel-names.js +38 -0
- package/esm2015/lib/shell-components/constants/menu-categories.js +6 -0
- package/esm2015/lib/shell-components/constants/notification-routes.js +6 -0
- package/esm2015/lib/shell-components/constants/notification-type-ids.js +42 -0
- package/esm2015/lib/shell-components/enum/recentSearchType.enum.js +13 -0
- package/esm2015/lib/shell-components/models/AppMenuItemModel.js +3 -0
- package/esm2015/lib/shell-components/models/AppNotification.js +17 -0
- package/esm2015/lib/shell-components/models/AssetAssignedNotificationModel.js +12 -0
- package/esm2015/lib/shell-components/models/ChannelUpdateModel.js +3 -0
- package/esm2015/lib/shell-components/models/EmployeeStatusModel.js +3 -0
- package/esm2015/lib/shell-components/models/IAdjust-screen-options.js +2 -0
- package/esm2015/lib/shell-components/models/IBadge.js +2 -0
- package/esm2015/lib/shell-components/models/IChildItem.js +2 -0
- package/esm2015/lib/shell-components/models/ILayout-change-options.js +2 -0
- package/esm2015/lib/shell-components/models/IMenuItem.js +2 -0
- package/esm2015/lib/shell-components/models/IlayoutConf.js +2 -0
- package/esm2015/lib/shell-components/models/IntroModel.js +3 -0
- package/esm2015/lib/shell-components/models/MessageDetails.js +3 -0
- package/esm2015/lib/shell-components/models/MessageTypingDetails.js +3 -0
- package/esm2015/lib/shell-components/models/NewProjectCreatedNotificationModel.js +10 -0
- package/esm2015/lib/shell-components/models/NewProjectFeatureNotificationModel.js +10 -0
- package/esm2015/lib/shell-components/models/NotificationsOutPutModel.js +22 -0
- package/esm2015/lib/shell-components/models/ProjectSearchCriteriaInputModel.js +3 -0
- package/esm2015/lib/shell-components/models/RecentSearchModel.js +5 -0
- package/esm2015/lib/shell-components/models/ReportConfigAssignedNotification.js +11 -0
- package/esm2015/lib/shell-components/models/ReportSubmittedNotification.js +12 -0
- package/esm2015/lib/shell-components/models/RoleUpdatedNotification.js +9 -0
- package/esm2015/lib/shell-components/models/UserStoryAssignedNotification.js +13 -0
- package/esm2015/lib/shell-components/models/archiveUserStoryModel.js +10 -0
- package/esm2015/lib/shell-components/models/companieslist.model.js +3 -0
- package/esm2015/lib/shell-components/models/company-model.js +7 -0
- package/esm2015/lib/shell-components/models/company-payment-model.js +3 -0
- package/esm2015/lib/shell-components/models/dragedWidget.js +3 -0
- package/esm2015/lib/shell-components/models/employee-List.js +3 -0
- package/esm2015/lib/shell-components/models/employee.js +4 -0
- package/esm2015/lib/shell-components/models/entityRoleFeature.js +3 -0
- package/esm2015/lib/shell-components/models/export-configuration-model.js +3 -0
- package/esm2015/lib/shell-components/models/export-data.module.js +8 -0
- package/esm2015/lib/shell-components/models/goalApprovedNotificationModel.js +9 -0
- package/esm2015/lib/shell-components/models/import-configuration-model.js +3 -0
- package/esm2015/lib/shell-components/models/initialStatusofUsers.js +3 -0
- package/esm2015/lib/shell-components/models/invoiceOutput-model.js +3 -0
- package/esm2015/lib/shell-components/models/leaveApplicationNotifiction.js +9 -0
- package/esm2015/lib/shell-components/models/multiChartsScheduling.js +11 -0
- package/esm2015/lib/shell-components/models/parkUserStoryInputModel.js +10 -0
- package/esm2015/lib/shell-components/models/project.js +3 -0
- package/esm2015/lib/shell-components/models/recentSearchApiModel.js +3 -0
- package/esm2015/lib/shell-components/models/searchCriteriaInputModelBase.js +3 -0
- package/esm2015/lib/shell-components/models/shellModulesInfo.js +7 -0
- package/esm2015/lib/shell-components/models/softlabels-model.js +7 -0
- package/esm2015/lib/shell-components/models/sprintReplanRequestedModel.js +9 -0
- package/esm2015/lib/shell-components/models/sprintStartedNotificationModel.js +9 -0
- package/esm2015/lib/shell-components/models/store-model.js +3 -0
- package/esm2015/lib/shell-components/models/store-search-model.js +4 -0
- package/esm2015/lib/shell-components/models/themes.model.js +3 -0
- package/esm2015/lib/shell-components/models/timesheetenabledisable.js +4 -0
- package/esm2015/lib/shell-components/models/user.js +8 -0
- package/esm2015/lib/shell-components/models/userStory.js +3 -0
- package/esm2015/lib/shell-components/models/userStoryCommentNotificationModel.js +9 -0
- package/esm2015/lib/shell-components/models/userStoryUpdateNotificationModel.js +9 -0
- package/esm2015/lib/shell-components/models/userstory-custom-fields.model.js +3 -0
- package/esm2015/lib/shell-components/models/validation.model.js +2 -0
- package/esm2015/lib/shell-components/models/widgetlist.js +6 -0
- package/esm2015/lib/shell-components/models/workspaceList.js +3 -0
- package/esm2015/lib/shell-components/services/authentication.service.js +96 -0
- package/esm2015/lib/shell-components/services/chat.service.js +67 -0
- package/esm2015/lib/shell-components/services/common-used.service.js +263 -0
- package/esm2015/lib/shell-components/services/feature.service.js +101 -0
- package/esm2015/lib/shell-components/services/google-analytics.service.js +24 -0
- package/esm2015/lib/shell-components/services/layout.service.js +68 -0
- package/esm2015/lib/shell-components/services/payment.service.js +103 -0
- package/esm2015/lib/shell-components/services/recentSearch.service.js +90 -0
- package/esm2015/lib/shell-components/services/shell.modules.service.js +24 -0
- package/esm2015/lib/shell-components/services/signalr.service.js +113 -0
- package/esm2015/lib/shell-components/services/theme.service.js +161 -0
- package/esm2015/lib/shell-components/shell.module.js +436 -0
- package/esm2015/lib/shell-components/shell.routing.js +16 -0
- package/esm2015/lib/shell-components/store/actions/authentication.actions.js +260 -0
- package/esm2015/lib/shell-components/store/actions/chat.actions.js +248 -0
- package/esm2015/lib/shell-components/store/actions/menuitems.actions.js +39 -0
- package/esm2015/lib/shell-components/store/actions/notification-validator.action.js +19 -0
- package/esm2015/lib/shell-components/store/actions/notifications.actions.js +74 -0
- package/esm2015/lib/shell-components/store/effects/authentication.effects.js +503 -0
- package/esm2015/lib/shell-components/store/effects/chat.effects.js +139 -0
- package/esm2015/lib/shell-components/store/effects/index.js +13 -0
- package/esm2015/lib/shell-components/store/effects/menuitems.effects.js +53 -0
- package/esm2015/lib/shell-components/store/effects/notification-validator.effects.js +56 -0
- package/esm2015/lib/shell-components/store/effects/notifications.effects.js +116 -0
- package/esm2015/lib/shell-components/store/reducers/authentication.reducers.js +86 -0
- package/esm2015/lib/shell-components/store/reducers/chat.reducers.js +68 -0
- package/esm2015/lib/shell-components/store/reducers/index.js +80 -0
- package/esm2015/lib/shell-components/store/reducers/menuitems.reducers.js +56 -0
- package/esm2015/lib/shell-components/store/reducers/notification-validator.reducers.js +13 -0
- package/esm2015/lib/shell-components/store/reducers/notifications.reducers.js +38 -0
- package/esm2015/public-api.js +90 -0
- package/esm2015/store/reducers/index.js +47 -0
- package/esm2015/thetradeengineorg1-snova-shell-module.js +5 -0
- package/fesm2015/thetradeengineorg1-snova-shell-module.js +12808 -0
- package/fesm2015/thetradeengineorg1-snova-shell-module.js.map +1 -0
- package/lib/globaldependencies/components/componentbase.d.ts +455 -0
- package/lib/globaldependencies/constants/feature-ids.d.ts +448 -0
- package/lib/globaldependencies/constants/localstorage-properties.d.ts +37 -0
- package/lib/globaldependencies/helpers/dom.helper.d.ts +7 -0
- package/lib/globaldependencies/helpers/fontawesome-icons.d.ts +1 -0
- package/lib/globaldependencies/helpers/moment-utc-date-adapter.d.ts +9 -0
- package/lib/globaldependencies/helpers/window.helper.d.ts +12 -0
- package/lib/globaldependencies/intercepter/jwt.interceptor.d.ts +11 -0
- package/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.d.ts +8 -0
- package/lib/globaldependencies/pipes/highLightText.pipe.d.ts +8 -0
- package/lib/globaldependencies/pipes/orderby-pipe.d.ts +9 -0
- package/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.d.ts +8 -0
- package/lib/globaldependencies/pipes/sanitize.pipe.d.ts +11 -0
- package/lib/globaldependencies/pipes/softlabels.pipes.d.ts +8 -0
- package/lib/globaldependencies/pipes/utctolocaltime.pipe.d.ts +8 -0
- package/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.d.ts +8 -0
- package/lib/globaldependencies/pipes/workflowstatus.pipes.d.ts +8 -0
- package/lib/shell-components/components/Payments/account.component.d.ts +14 -0
- package/lib/shell-components/components/Payments/company-information.d.ts +62 -0
- package/lib/shell-components/components/Payments/company-plans.component.d.ts +47 -0
- package/lib/shell-components/components/Payments/document.component.d.ts +20 -0
- package/lib/shell-components/components/Payments/payment-method.component.d.ts +15 -0
- package/lib/shell-components/components/Payments/product-service.component.d.ts +48 -0
- package/lib/shell-components/components/Payments/purchase-more-licenses.d.ts +37 -0
- package/lib/shell-components/components/Payments/transactions.component.d.ts +28 -0
- package/lib/shell-components/components/admin-layout/admin-layout.component.d.ts +67 -0
- package/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.d.ts +32 -0
- package/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.d.ts +32 -0
- package/lib/shell-components/components/export-import-configuration/export-configuration.component.d.ts +60 -0
- package/lib/shell-components/components/feed-time/feed-time-dialog.component.d.ts +33 -0
- package/lib/shell-components/components/feed-time/feed-time.component.d.ts +27 -0
- package/lib/shell-components/components/header-side/header-side.component.d.ts +216 -0
- package/lib/shell-components/components/header-top/header-top.component.d.ts +40 -0
- package/lib/shell-components/components/lives/lives-welcome-page.d.ts +14 -0
- package/lib/shell-components/components/menu/menu.component.d.ts +220 -0
- package/lib/shell-components/components/menu/searchTask.enum.d.ts +8 -0
- package/lib/shell-components/components/notifications/announcement-dialog.component.d.ts +27 -0
- package/lib/shell-components/components/notifications/notifications.component.d.ts +53 -0
- package/lib/shell-components/components/sidebar-top/sidebar-top.component.d.ts +10 -0
- package/lib/shell-components/components/sidenav/side-bar.component.d.ts +23 -0
- package/lib/shell-components/components/sidenav/sidenav.component.d.ts +17 -0
- package/lib/shell-components/components/submit-feedback/submit-feedback.component.d.ts +25 -0
- package/lib/shell-components/constants/api-urls.d.ts +1051 -0
- package/lib/shell-components/constants/available-languages.d.ts +7 -0
- package/lib/shell-components/constants/channel-names.d.ts +37 -0
- package/lib/shell-components/constants/menu-categories.d.ts +5 -0
- package/lib/shell-components/constants/notification-routes.d.ts +5 -0
- package/lib/shell-components/constants/notification-type-ids.d.ts +41 -0
- package/lib/shell-components/enum/recentSearchType.enum.d.ts +11 -0
- package/lib/shell-components/models/AppMenuItemModel.d.ts +12 -0
- package/lib/shell-components/models/AppNotification.d.ts +12 -0
- package/lib/shell-components/models/AssetAssignedNotificationModel.d.ts +10 -0
- package/lib/shell-components/models/ChannelUpdateModel.d.ts +47 -0
- package/lib/shell-components/models/EmployeeStatusModel.d.ts +11 -0
- package/lib/shell-components/models/IAdjust-screen-options.d.ts +4 -0
- package/lib/shell-components/models/IBadge.d.ts +4 -0
- package/lib/shell-components/models/IChildItem.d.ts +7 -0
- package/lib/shell-components/models/ILayout-change-options.d.ts +4 -0
- package/lib/shell-components/models/IMenuItem.d.ts +14 -0
- package/lib/shell-components/models/IlayoutConf.d.ts +10 -0
- package/lib/shell-components/models/IntroModel.d.ts +3 -0
- package/lib/shell-components/models/MessageDetails.d.ts +55 -0
- package/lib/shell-components/models/MessageTypingDetails.d.ts +9 -0
- package/lib/shell-components/models/NewProjectCreatedNotificationModel.d.ts +8 -0
- package/lib/shell-components/models/NewProjectFeatureNotificationModel.d.ts +8 -0
- package/lib/shell-components/models/NotificationsOutPutModel.d.ts +41 -0
- package/lib/shell-components/models/ProjectSearchCriteriaInputModel.d.ts +10 -0
- package/lib/shell-components/models/RecentSearchModel.d.ts +14 -0
- package/lib/shell-components/models/ReportConfigAssignedNotification.d.ts +9 -0
- package/lib/shell-components/models/ReportSubmittedNotification.d.ts +10 -0
- package/lib/shell-components/models/RoleUpdatedNotification.d.ts +7 -0
- package/lib/shell-components/models/UserStoryAssignedNotification.d.ts +8 -0
- package/lib/shell-components/models/archiveUserStoryModel.d.ts +7 -0
- package/lib/shell-components/models/companieslist.model.d.ts +8 -0
- package/lib/shell-components/models/company-model.d.ts +31 -0
- package/lib/shell-components/models/company-payment-model.d.ts +18 -0
- package/lib/shell-components/models/dragedWidget.d.ts +16 -0
- package/lib/shell-components/models/employee-List.d.ts +8 -0
- package/lib/shell-components/models/employee.d.ts +60 -0
- package/lib/shell-components/models/entityRoleFeature.d.ts +9 -0
- package/lib/shell-components/models/export-configuration-model.d.ts +8 -0
- package/lib/shell-components/models/export-data.module.d.ts +6 -0
- package/lib/shell-components/models/goalApprovedNotificationModel.d.ts +8 -0
- package/lib/shell-components/models/import-configuration-model.d.ts +3 -0
- package/lib/shell-components/models/initialStatusofUsers.d.ts +5 -0
- package/lib/shell-components/models/invoiceOutput-model.d.ts +9 -0
- package/lib/shell-components/models/leaveApplicationNotifiction.d.ts +7 -0
- package/lib/shell-components/models/multiChartsScheduling.d.ts +9 -0
- package/lib/shell-components/models/parkUserStoryInputModel.d.ts +7 -0
- package/lib/shell-components/models/project.d.ts +28 -0
- package/lib/shell-components/models/recentSearchApiModel.d.ts +6 -0
- package/lib/shell-components/models/searchCriteriaInputModelBase.d.ts +10 -0
- package/lib/shell-components/models/shellModulesInfo.d.ts +16 -0
- package/lib/shell-components/models/softlabels-model.d.ts +66 -0
- package/lib/shell-components/models/sprintReplanRequestedModel.d.ts +7 -0
- package/lib/shell-components/models/sprintStartedNotificationModel.d.ts +7 -0
- package/lib/shell-components/models/store-model.d.ts +13 -0
- package/lib/shell-components/models/store-search-model.d.ts +7 -0
- package/lib/shell-components/models/themes.model.d.ts +9 -0
- package/lib/shell-components/models/timesheetenabledisable.d.ts +16 -0
- package/lib/shell-components/models/user.d.ts +40 -0
- package/lib/shell-components/models/userStory.d.ts +188 -0
- package/lib/shell-components/models/userStoryCommentNotificationModel.d.ts +6 -0
- package/lib/shell-components/models/userStoryUpdateNotificationModel.d.ts +6 -0
- package/lib/shell-components/models/userstory-custom-fields.model.d.ts +6 -0
- package/lib/shell-components/models/validation.model.d.ts +5 -0
- package/lib/shell-components/models/widgetlist.d.ts +28 -0
- package/lib/shell-components/models/workspaceList.d.ts +19 -0
- package/lib/shell-components/services/authentication.service.d.ts +18 -0
- package/lib/shell-components/services/chat.service.d.ts +16 -0
- package/lib/shell-components/services/common-used.service.d.ts +45 -0
- package/lib/shell-components/services/feature.service.d.ts +19 -0
- package/lib/shell-components/services/google-analytics.service.d.ts +9 -0
- package/lib/shell-components/services/layout.service.d.ts +23 -0
- package/lib/shell-components/services/payment.service.d.ts +19 -0
- package/lib/shell-components/services/recentSearch.service.d.ts +16 -0
- package/lib/shell-components/services/shell.modules.service.d.ts +9 -0
- package/lib/shell-components/services/signalr.service.d.ts +25 -0
- package/lib/shell-components/services/theme.service.d.ts +14 -0
- package/lib/shell-components/shell.module.d.ts +117 -0
- package/lib/shell-components/shell.routing.d.ts +2 -0
- package/lib/shell-components/store/actions/authentication.actions.d.ts +327 -0
- package/lib/shell-components/store/actions/chat.actions.d.ts +399 -0
- package/lib/shell-components/store/actions/menuitems.actions.d.ts +51 -0
- package/lib/shell-components/store/actions/notification-validator.action.d.ts +25 -0
- package/lib/shell-components/store/actions/notifications.actions.d.ts +116 -0
- package/lib/shell-components/store/effects/authentication.effects.d.ts +54 -0
- package/lib/shell-components/store/effects/chat.effects.d.ts +30 -0
- package/lib/shell-components/store/effects/index.d.ts +1 -0
- package/lib/shell-components/store/effects/menuitems.effects.d.ts +17 -0
- package/lib/shell-components/store/effects/notification-validator.effects.d.ts +21 -0
- package/lib/shell-components/store/effects/notifications.effects.d.ts +23 -0
- package/lib/shell-components/store/reducers/authentication.reducers.d.ts +30 -0
- package/lib/shell-components/store/reducers/chat.reducers.d.ts +17 -0
- package/lib/shell-components/store/reducers/index.d.ts +59 -0
- package/lib/shell-components/store/reducers/menuitems.reducers.d.ts +11 -0
- package/lib/shell-components/store/reducers/notification-validator.reducers.d.ts +5 -0
- package/lib/shell-components/store/reducers/notifications.reducers.d.ts +10 -0
- package/package.json +22 -0
- package/public-api.d.ts +80 -0
- package/store/reducers/index.d.ts +24 -0
- package/thetradeengineorg1-snova-shell-module.d.ts +5 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
export var AuthenticationActionTypes;
|
|
2
|
+
(function (AuthenticationActionTypes) {
|
|
3
|
+
AuthenticationActionTypes["AuthenticateUser"] = "[Snovasys-Shell] [Authentication] Authenticate User";
|
|
4
|
+
AuthenticationActionTypes["Authenticated"] = "[Snovasys-Shell] [Authentication] Authenticated";
|
|
5
|
+
AuthenticationActionTypes["CompanyWorkItemStartFunctionalityRequired"] = "[Snovasys-Shell] [Authentication] CompanyWorkItemStartFunctionalityRequired";
|
|
6
|
+
AuthenticationActionTypes["CompanyWorkItemStartFunctionalityRequiredFailed"] = "[Snovasys-Shell] [Authentication] CompanyWorkItemStartFunctionalityRequired Failed";
|
|
7
|
+
AuthenticationActionTypes["CompanyWorkItemStartFunctionalityRequiredSuccess"] = "[Snovasys-Shell] [Authentication] CompanyWorkItemStartFunctionalityRequired Success";
|
|
8
|
+
AuthenticationActionTypes["SignedOff"] = "[Snovasys-Shell] [Authentication] Signed Off";
|
|
9
|
+
AuthenticationActionTypes["UserDetailsFetching"] = "[Snovasys-Shell] [Authentication] Fetching User Details";
|
|
10
|
+
AuthenticationActionTypes["UserDetailsFetched"] = "[Snovasys-Shell] [Authentication] Fetched User Details";
|
|
11
|
+
AuthenticationActionTypes["UserInitialDetailsFetched"] = "[Snovasys-Shell] [Authentication] Fetched User Initial Details";
|
|
12
|
+
AuthenticationActionTypes["UserInitialDetailsFetchedCompleted"] = "[Snovasys-Shell] [Authentication] Fetched User Initial Details Completed";
|
|
13
|
+
AuthenticationActionTypes["UserDetailsFetchedAfterLogin"] = "[Snovasys-Shell] [Authentication] Fetched User Details After Login";
|
|
14
|
+
AuthenticationActionTypes["UserDetailsFetchedAfterCompanyLogin"] = "[Snovasys-Shell] [Authentication] Fetched User Details After Company Login";
|
|
15
|
+
AuthenticationActionTypes["AuthenticationFailed"] = "[Snovasys-Shell] [Authentication] Authentication Failed";
|
|
16
|
+
AuthenticationActionTypes["RoleDetailsFetchOnReload"] = "[Snovasys-Shell] [Authentication] Role Details Fetched On Reload";
|
|
17
|
+
AuthenticationActionTypes["RoleDetailsFetched"] = "[Snovasys-Shell] [Authentication] Role Details Fetched";
|
|
18
|
+
AuthenticationActionTypes["InitializeAfterLoginData"] = "[Snovasys-Shell] [Authentication] Initialize after login data";
|
|
19
|
+
AuthenticationActionTypes["RolesFetchTriggered"] = "[Snovasys-Shell] [Authentication] Fetching Roles Triggered";
|
|
20
|
+
AuthenticationActionTypes["RolesFetchFailed"] = "[Snovasys-Shell] [Authentication] Fetching Roles Failed";
|
|
21
|
+
AuthenticationActionTypes["EntityRolesFetchTriggered"] = "[Snovasys-Shell] [Authentication] Fetching Entity Roles Triggered";
|
|
22
|
+
AuthenticationActionTypes["EntityRoleDetailsFetched"] = "[Snovasys-Shell] [Authentication] Entity Role Details Fetched";
|
|
23
|
+
AuthenticationActionTypes["EntityRolesByUserIdFetchTriggered"] = "[Snovasys-Shell] [Authentication] Fetching Entity Roles By UserId Triggered";
|
|
24
|
+
AuthenticationActionTypes["EntityReolesByUserIdFetchCompleted"] = "[Snovasys-Shell] [Authentication] Fetching EntityRoles By UserId Completed";
|
|
25
|
+
AuthenticationActionTypes["EntityRolesByUserIdFetchFailed"] = "[Snovasys-Shell] [Authentication] Fetching EntityRoles By UserId Failed";
|
|
26
|
+
AuthenticationActionTypes["GetCompanyThemeTriggered"] = "[Snovasys-Shell] [Authentication] GEt Company Theme Triggered";
|
|
27
|
+
AuthenticationActionTypes["GetCompanyThemeCompleted"] = "[Snovasys-Shell] [Authentication] GEt Company Theme Completed";
|
|
28
|
+
AuthenticationActionTypes["GetCompanyThemeFailed"] = "[Snovasys-Shell] [Authentication] GEt Company Theme Failed";
|
|
29
|
+
AuthenticationActionTypes["ClearDemoDataTriggred"] = "[Snovasys-Shell] [Authentication] Clear Demo Data Triggred";
|
|
30
|
+
AuthenticationActionTypes["ClearDemoDataCompleted"] = "[Snovasys-Shell] [Authentication] Clear Demo Data Completed";
|
|
31
|
+
AuthenticationActionTypes["ClearDemoDataFailed"] = "[Snovasys-Shell] [Authentication] Clear Demo Data Failed";
|
|
32
|
+
AuthenticationActionTypes["GetUserStoreIdTriggered"] = "[Snovasys-Shell] [Authentication] Get User Store Id Triggered";
|
|
33
|
+
AuthenticationActionTypes["GetUserStoreIdCompleted"] = "[Snovasys-Shell] [Authentication] Get User Store Id Completed";
|
|
34
|
+
AuthenticationActionTypes["GetUserStoreIdFailed"] = "[Snovasys-Shell] [Authentication] Get User Store Id Failed";
|
|
35
|
+
AuthenticationActionTypes["ExceptionHandled"] = "[Snovasys-Shell] [Authentication] Exception Handling";
|
|
36
|
+
AuthenticationActionTypes["AuthenticateNewUser"] = "[Snovasys-Shell] [Authentication] Authenticate New User";
|
|
37
|
+
AuthenticationActionTypes["GetCompanySettingsTriggered"] = "[Snovasys-Shell] [Authentication] Get Company Settings Triggered";
|
|
38
|
+
AuthenticationActionTypes["GetCompanySettingsCompleted"] = "[Snovasys-Shell] [Authentication] Get Company Settings Completed";
|
|
39
|
+
AuthenticationActionTypes["GetCompanySettingsFailed"] = "[Snovasys-Shell] [Authentication] Get Company Settings Failed";
|
|
40
|
+
AuthenticationActionTypes["FetchTimeSheetButtonDetails"] = "[Snovasys-Shell] [Authentication] Get Time Sheet Button Details";
|
|
41
|
+
})(AuthenticationActionTypes || (AuthenticationActionTypes = {}));
|
|
42
|
+
export class AuthenticateUser {
|
|
43
|
+
constructor(userName, password) {
|
|
44
|
+
this.userName = userName;
|
|
45
|
+
this.password = password;
|
|
46
|
+
this.type = AuthenticationActionTypes.AuthenticateUser;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export class AuthenticateNewUser {
|
|
50
|
+
constructor(userName) {
|
|
51
|
+
this.userName = userName;
|
|
52
|
+
this.type = AuthenticationActionTypes.AuthenticateNewUser;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export class Authenticated {
|
|
56
|
+
constructor(userName, userToken) {
|
|
57
|
+
this.userName = userName;
|
|
58
|
+
this.userToken = userToken;
|
|
59
|
+
this.type = AuthenticationActionTypes.Authenticated;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export class CompanyWorkItemStartFunctionalityRequired {
|
|
63
|
+
constructor() {
|
|
64
|
+
this.type = AuthenticationActionTypes.CompanyWorkItemStartFunctionalityRequired;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export class CompanyWorkItemStartFunctionalityRequiredSuccess {
|
|
68
|
+
constructor(isStartEnabled) {
|
|
69
|
+
this.isStartEnabled = isStartEnabled;
|
|
70
|
+
this.type = AuthenticationActionTypes.CompanyWorkItemStartFunctionalityRequiredSuccess;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
export class AuthenticationFailed {
|
|
74
|
+
constructor(errorMessage) {
|
|
75
|
+
this.errorMessage = errorMessage;
|
|
76
|
+
this.type = AuthenticationActionTypes.AuthenticationFailed;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export class SignedOff {
|
|
80
|
+
constructor() {
|
|
81
|
+
this.type = AuthenticationActionTypes.SignedOff;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export class UserDetailsFetched {
|
|
85
|
+
constructor(userModel) {
|
|
86
|
+
this.userModel = userModel;
|
|
87
|
+
this.type = AuthenticationActionTypes.UserDetailsFetched;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export class UserDetailsFetchedAfterLogin {
|
|
91
|
+
constructor(userModel) {
|
|
92
|
+
this.userModel = userModel;
|
|
93
|
+
this.type = AuthenticationActionTypes.UserDetailsFetchedAfterLogin;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export class UserDetailsFetchedAfterCompanyLogin {
|
|
97
|
+
constructor(userModel) {
|
|
98
|
+
this.userModel = userModel;
|
|
99
|
+
this.type = AuthenticationActionTypes.UserDetailsFetchedAfterCompanyLogin;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export class UserInitialDetailsFetched {
|
|
103
|
+
constructor(userModel) {
|
|
104
|
+
this.userModel = userModel;
|
|
105
|
+
this.type = AuthenticationActionTypes.UserInitialDetailsFetched;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export class UserInitialDetailsFetchedCompleted {
|
|
109
|
+
constructor(userInitialData) {
|
|
110
|
+
this.userInitialData = userInitialData;
|
|
111
|
+
this.type = AuthenticationActionTypes.UserInitialDetailsFetchedCompleted;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
export class FetchTimeSheetButtonDetails {
|
|
115
|
+
constructor() {
|
|
116
|
+
this.type = AuthenticationActionTypes.FetchTimeSheetButtonDetails;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export class UserDetailsFetching {
|
|
120
|
+
constructor(loginData) {
|
|
121
|
+
this.loginData = loginData;
|
|
122
|
+
this.type = AuthenticationActionTypes.UserDetailsFetching;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export class RoleDetailsFetched {
|
|
126
|
+
constructor(roleFeatures) {
|
|
127
|
+
this.roleFeatures = roleFeatures;
|
|
128
|
+
this.type = AuthenticationActionTypes.RoleDetailsFetched;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export class RoleDetailsFetchOnReload {
|
|
132
|
+
constructor() {
|
|
133
|
+
this.type = AuthenticationActionTypes.RoleDetailsFetchOnReload;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export class InitializeAfterLoginData {
|
|
137
|
+
constructor() {
|
|
138
|
+
this.type = AuthenticationActionTypes.InitializeAfterLoginData;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
export class RolesFetchTriggered {
|
|
142
|
+
constructor() {
|
|
143
|
+
this.type = AuthenticationActionTypes.RolesFetchTriggered;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
export class RolesFetchFailed {
|
|
147
|
+
constructor(validationMessages) {
|
|
148
|
+
this.validationMessages = validationMessages;
|
|
149
|
+
this.type = AuthenticationActionTypes.RolesFetchFailed;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
export class EntityRolesFetchTriggered {
|
|
153
|
+
constructor(projectId) {
|
|
154
|
+
this.projectId = projectId;
|
|
155
|
+
this.type = AuthenticationActionTypes.EntityRolesFetchTriggered;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
export class EntityRolesByUserIdFetchTriggered {
|
|
159
|
+
constructor(projectId, requiredType, isSprintType) {
|
|
160
|
+
this.projectId = projectId;
|
|
161
|
+
this.requiredType = requiredType;
|
|
162
|
+
this.isSprintType = isSprintType;
|
|
163
|
+
this.type = AuthenticationActionTypes.EntityRolesByUserIdFetchTriggered;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
export class EntityRoleDetailsFetched {
|
|
167
|
+
constructor(entityTypeRoleFeatures) {
|
|
168
|
+
this.entityTypeRoleFeatures = entityTypeRoleFeatures;
|
|
169
|
+
this.type = AuthenticationActionTypes.EntityRoleDetailsFetched;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
export class EntityReolesByUserIdFetchCompleted {
|
|
173
|
+
constructor(entityTypeRoleFeatures) {
|
|
174
|
+
this.entityTypeRoleFeatures = entityTypeRoleFeatures;
|
|
175
|
+
this.type = AuthenticationActionTypes.EntityReolesByUserIdFetchCompleted;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
export class EntityRolesByUserIdFetchFailed {
|
|
179
|
+
constructor(validationMessages) {
|
|
180
|
+
this.validationMessages = validationMessages;
|
|
181
|
+
this.type = AuthenticationActionTypes.EntityRolesByUserIdFetchFailed;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
export class ClearDemoDataTriggred {
|
|
185
|
+
constructor() {
|
|
186
|
+
this.type = AuthenticationActionTypes.ClearDemoDataTriggred;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
export class ClearDemoDataCompleted {
|
|
190
|
+
constructor(companyId) {
|
|
191
|
+
this.companyId = companyId;
|
|
192
|
+
this.type = AuthenticationActionTypes.ClearDemoDataCompleted;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
export class ClearDemoDataFailed {
|
|
196
|
+
constructor(validationMessages) {
|
|
197
|
+
this.validationMessages = validationMessages;
|
|
198
|
+
this.type = AuthenticationActionTypes.ClearDemoDataFailed;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
export class GetCompanyThemeTriggered {
|
|
202
|
+
constructor() {
|
|
203
|
+
this.type = AuthenticationActionTypes.GetCompanyThemeTriggered;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
export class GetCompanyThemeCompleted {
|
|
207
|
+
constructor(themeModel) {
|
|
208
|
+
this.themeModel = themeModel;
|
|
209
|
+
this.type = AuthenticationActionTypes.GetCompanyThemeCompleted;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
export class GetCompanyThemeFailed {
|
|
213
|
+
constructor(validationMessages) {
|
|
214
|
+
this.validationMessages = validationMessages;
|
|
215
|
+
this.type = AuthenticationActionTypes.GetCompanyThemeFailed;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
export class GetUserStoreIdTriggered {
|
|
219
|
+
constructor(searchUserStoreDetailsModel) {
|
|
220
|
+
this.searchUserStoreDetailsModel = searchUserStoreDetailsModel;
|
|
221
|
+
this.type = AuthenticationActionTypes.GetUserStoreIdTriggered;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
export class GetUserStoreIdCompleted {
|
|
225
|
+
constructor(userStoreDetails) {
|
|
226
|
+
this.userStoreDetails = userStoreDetails;
|
|
227
|
+
this.type = AuthenticationActionTypes.GetUserStoreIdCompleted;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
export class GetCompanySettingsTriggered {
|
|
231
|
+
constructor(companySettingsModel) {
|
|
232
|
+
this.companySettingsModel = companySettingsModel;
|
|
233
|
+
this.type = AuthenticationActionTypes.GetCompanySettingsTriggered;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
export class GetCompanySettingsCompleted {
|
|
237
|
+
constructor(companySettingsModel) {
|
|
238
|
+
this.companySettingsModel = companySettingsModel;
|
|
239
|
+
this.type = AuthenticationActionTypes.GetCompanySettingsCompleted;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
export class GetCompanySettingsFailed {
|
|
243
|
+
constructor(validationMessages) {
|
|
244
|
+
this.validationMessages = validationMessages;
|
|
245
|
+
this.type = AuthenticationActionTypes.GetCompanySettingsFailed;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
export class GetUserStoreIdFailed {
|
|
249
|
+
constructor(validationMessages) {
|
|
250
|
+
this.validationMessages = validationMessages;
|
|
251
|
+
this.type = AuthenticationActionTypes.GetUserStoreIdFailed;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
export class ExceptionHandled {
|
|
255
|
+
constructor(errorMessage) {
|
|
256
|
+
this.errorMessage = errorMessage;
|
|
257
|
+
this.type = AuthenticationActionTypes.ExceptionHandled;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL3N0b3JlL2FjdGlvbnMvYXV0aGVudGljYXRpb24uYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLENBQU4sSUFBWSx5QkF1Q1g7QUF2Q0QsV0FBWSx5QkFBeUI7SUFDbkMscUdBQXdFLENBQUE7SUFDeEUsOEZBQWlFLENBQUE7SUFDakUsc0pBQXlILENBQUE7SUFDekgsbUtBQXNJLENBQUE7SUFDdEkscUtBQXdJLENBQUE7SUFDeEksdUZBQTBELENBQUE7SUFDMUQsNEdBQStFLENBQUE7SUFDL0UsMEdBQTZFLENBQUE7SUFDN0UseUhBQTRGLENBQUE7SUFDNUYsNElBQStHLENBQUE7SUFDL0csZ0lBQW1HLENBQUE7SUFDbkcsK0lBQWtILENBQUE7SUFDbEgsNkdBQWdGLENBQUE7SUFDaEYsMEhBQTZGLENBQUE7SUFDN0YsMEdBQTZFLENBQUE7SUFDN0UsdUhBQTBGLENBQUE7SUFDMUYsK0dBQWtGLENBQUE7SUFDbEYseUdBQTRFLENBQUE7SUFDNUUsNEhBQStGLENBQUE7SUFDL0YsdUhBQTBGLENBQUE7SUFDMUYsOElBQWlILENBQUE7SUFDakgsOElBQWlILENBQUE7SUFDakgsdUlBQTBHLENBQUE7SUFDMUcsdUhBQTBGLENBQUE7SUFDMUYsdUhBQTBGLENBQUE7SUFDMUYsaUhBQW9GLENBQUE7SUFDcEYsaUhBQW9GLENBQUE7SUFDcEYsbUhBQXNGLENBQUE7SUFDdEYsNkdBQWdGLENBQUE7SUFDaEYsc0hBQXlGLENBQUE7SUFDekYsc0hBQXlGLENBQUE7SUFDekYsZ0hBQW1GLENBQUE7SUFDbkYsc0dBQXlFLENBQUE7SUFDekUsNEdBQStFLENBQUE7SUFDL0UsNkhBQWdHLENB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LHlCQUF5QixDQUFDLGdCQUFnQixDQUFDO0lBRVAsQ0FBQztDQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlcic7XHJcbmltcG9ydCB7IEVudGl0eVJvbGVGZWF0dXJlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5Um9sZUZlYXR1cmUnO1xyXG5pbXBvcnQgeyBUaGVtZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RoZW1lcy5tb2RlbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy92YWxpZGF0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU3RvcmVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdG9yZS1tb2RlbCc7XHJcbmltcG9ydCB7IFN0b3JlU2VhcmNoTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc3RvcmUtc2VhcmNoLW1vZGVsJztcclxuaW1wb3J0IHsgQ29tcGFueXNldHRpbmdzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tcGFueS1tb2RlbCc7XHJcblxyXG5leHBvcnQgZW51bSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzIHtcclxuICBBdXRoZW50aWNhdGVVc2VyID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQXV0aGVudGljYXRlIFVzZXJcIixcclxuICBBdXRoZW50aWNhdGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQXV0aGVudGljYXRlZFwiLFxyXG4gIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWRcIixcclxuICBDb21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZEZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkIEZhaWxlZFwiLFxyXG4gIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkU3VjY2VzcyA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkIFN1Y2Nlc3NcIixcclxuICBTaWduZWRPZmYgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBTaWduZWQgT2ZmXCIsXHJcbiAgVXNlckRldGFpbHNGZXRjaGluZyA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIFVzZXIgRGV0YWlsc1wiLFxyXG4gIFVzZXJEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBEZXRhaWxzXCIsXHJcbiAgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBJbml0aWFsIERldGFpbHNcIixcclxuICBVc2VySW5pdGlhbERldGFpbHNGZXRjaGVkQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hlZCBVc2VyIEluaXRpYWwgRGV0YWlscyBDb21wbGV0ZWRcIixcclxuICBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckxvZ2luID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hlZCBVc2VyIERldGFpbHMgQWZ0ZXIgTG9naW5cIixcclxuICBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckNvbXBhbnlMb2dpbiA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBEZXRhaWxzIEFmdGVyIENvbXBhbnkgTG9naW5cIixcclxuICBBdXRoZW50aWNhdGlvbkZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEF1dGhlbnRpY2F0aW9uIEZhaWxlZFwiLFxyXG4gIFJvbGVEZXRhaWxzRmV0Y2hPblJlbG9hZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIFJvbGUgRGV0YWlscyBGZXRjaGVkIE9uIFJlbG9hZFwiLFxyXG4gIFJvbGVEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIFJvbGUgRGV0YWlscyBGZXRjaGVkXCIsXHJcbiAgSW5pdGlhbGl6ZUFmdGVyTG9naW5EYXRhID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gSW5pdGlhbGl6ZSBhZnRlciBsb2dpbiBkYXRhXCIsXHJcbiAgUm9sZXNGZXRjaFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIFJvbGVzIFRyaWdnZXJlZFwiLFxyXG4gIFJvbGVzRmV0Y2hGYWlsZWQgPSAnW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIFJvbGVzIEZhaWxlZCcsXHJcbiAgRW50aXR5Um9sZXNGZXRjaFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIEVudGl0eSBSb2xlcyBUcmlnZ2VyZWRcIixcclxuICBFbnRpdHlSb2xlRGV0YWlsc0ZldGNoZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBFbnRpdHkgUm9sZSBEZXRhaWxzIEZldGNoZWRcIixcclxuICBFbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGluZyBFbnRpdHkgUm9sZXMgQnkgVXNlcklkIFRyaWdnZXJlZFwiLFxyXG4gIEVudGl0eVJlb2xlc0J5VXNlcklkRmV0Y2hDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGluZyBFbnRpdHlSb2xlcyBCeSBVc2VySWQgQ29tcGxldGVkXCIsXHJcbiAgRW50aXR5Um9sZXNCeVVzZXJJZEZldGNoRmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hpbmcgRW50aXR5Um9sZXMgQnkgVXNlcklkIEZhaWxlZFwiLFxyXG4gIEdldENvbXBhbnlUaGVtZVRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdFdCBDb21wYW55IFRoZW1lIFRyaWdnZXJlZFwiLFxyXG4gIEdldENvbXBhbnlUaGVtZUNvbXBsZXRlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdFdCBDb21wYW55IFRoZW1lIENvbXBsZXRlZFwiLFxyXG4gIEdldENvbXBhbnlUaGVtZUZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdFdCBDb21wYW55IFRoZW1lIEZhaWxlZFwiLFxyXG4gIENsZWFyRGVtb0RhdGFUcmlnZ3JlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENsZWFyIERlbW8gRGF0YSBUcmlnZ3JlZFwiLFxyXG4gIENsZWFyRGVtb0RhdGFDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBDbGVhciBEZW1vIERhdGEgQ29tcGxldGVkXCIsXHJcbiAgQ2xlYXJEZW1vRGF0YUZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENsZWFyIERlbW8gRGF0YSBGYWlsZWRcIixcclxuICBHZXRVc2VyU3RvcmVJZFRyaWdnZXJlZCA9ICdbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IFVzZXIgU3RvcmUgSWQgVHJpZ2dlcmVkJyxcclxuICBHZXRVc2VyU3RvcmVJZENvbXBsZXRlZCA9ICdbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IFVzZXIgU3RvcmUgSWQgQ29tcGxldGVkJyxcclxuICBHZXRVc2VyU3RvcmVJZEZhaWxlZCA9ICdbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IFVzZXIgU3RvcmUgSWQgRmFpbGVkJyxcclxuICBFeGNlcHRpb25IYW5kbGVkID0gJ1tTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBFeGNlcHRpb24gSGFuZGxpbmcnLFxyXG4gIEF1dGhlbnRpY2F0ZU5ld1VzZXIgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBBdXRoZW50aWNhdGUgTmV3IFVzZXJcIixcclxuICBHZXRDb21wYW55U2V0dGluZ3NUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgQ29tcGFueSBTZXR0aW5ncyBUcmlnZ2VyZWRcIixcclxuICBHZXRDb21wYW55U2V0dGluZ3NDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgQ29tcGFueSBTZXR0aW5ncyBDb21wbGV0ZWRcIixcclxuICBHZXRDb21wYW55U2V0dGluZ3NGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgQ29tcGFueSBTZXR0aW5ncyBGYWlsZWRcIixcclxuICBGZXRjaFRpbWVTaGVldEJ1dHRvbkRldGFpbHMgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgVGltZSBTaGVldCBCdXR0b24gRGV0YWlsc1wiXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGVVc2VyIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5BdXRoZW50aWNhdGVVc2VyO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xyXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBwdWJsaWMgaXNTdGFydEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck5hbWU6IHN0cmluZywgcHVibGljIHBhc3N3b3JkOiBzdHJpbmcpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRlTmV3VXNlciBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQXV0aGVudGljYXRlTmV3VXNlcjtcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkF1dGhlbnRpY2F0ZWQ7XHJcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck5hbWU6IHN0cmluZywgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5Db21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZDtcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuICBwdWJsaWMgdXNlck5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkU3VjY2VzcyBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWRTdWNjZXNzO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbikgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvbkZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQXV0aGVudGljYXRpb25GYWlsZWQ7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2lnbmVkT2ZmIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5TaWduZWRPZmY7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuVXNlckRldGFpbHNGZXRjaGVkO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyVG9rZW46IHN0cmluZztcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW4gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW47XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWwpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlckRldGFpbHNGZXRjaGVkQWZ0ZXJDb21wYW55TG9naW4gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyQ29tcGFueUxvZ2luO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyVG9rZW46IHN0cmluZztcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJJbml0aWFsRGV0YWlsc0ZldGNoZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJJbml0aWFsRGV0YWlsc0ZldGNoZWQ7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWwpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZDtcclxuICBwdWJsaWMgdXNlck5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBwdWJsaWMgaXNTdGFydEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlckluaXRpYWxEYXRhOiBhbnkpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmV0Y2hUaW1lU2hlZXRCdXR0b25EZXRhaWxzIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5GZXRjaFRpbWVTaGVldEJ1dHRvbkRldGFpbHM7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hpbmcgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hpbmc7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGxvZ2luRGF0YTogYW55KSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvbGVEZXRhaWxzRmV0Y2hlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuUm9sZURldGFpbHNGZXRjaGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm9sZUZlYXR1cmVzOiBhbnlbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSb2xlRGV0YWlsc0ZldGNoT25SZWxvYWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlJvbGVEZXRhaWxzRmV0Y2hPblJlbG9hZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRpYWxpemVBZnRlckxvZ2luRGF0YSBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuSW5pdGlhbGl6ZUFmdGVyTG9naW5EYXRhO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm9sZXNGZXRjaFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuUm9sZXNGZXRjaFRyaWdnZXJlZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvbGVzRmV0Y2hGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlJvbGVzRmV0Y2hGYWlsZWQ7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHZhbGlkYXRpb25NZXNzYWdlczogc3RyaW5nW10pIHsgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eVJvbGVzRmV0Y2hUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVzRmV0Y2hUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9qZWN0SWQ6IHN0cmluZykgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5Um9sZXNCeVVzZXJJZEZldGNoVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5FbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9qZWN0SWQ6IHN0cmluZywgcHVibGljIHJlcXVpcmVkVHlwZTogc3RyaW5nLCBwdWJsaWMgaXNTcHJpbnRUeXBlOiBib29sZWFuKSB7IH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlSb2xlRGV0YWlsc0ZldGNoZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVEZXRhaWxzRmV0Y2hlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVudGl0eVR5cGVSb2xlRmVhdHVyZXM6IEVudGl0eVJvbGVGZWF0dXJlTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlSZW9sZXNCeVVzZXJJZEZldGNoQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5FbnRpdHlSZW9sZXNCeVVzZXJJZEZldGNoQ29tcGxldGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW50aXR5VHlwZVJvbGVGZWF0dXJlczogRW50aXR5Um9sZUZlYXR1cmVNb2RlbFtdKSB7IH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVzQnlVc2VySWRGZXRjaEZhaWxlZDtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBWYWxpZGF0aW9uTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGVhckRlbW9EYXRhVHJpZ2dyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkNsZWFyRGVtb0RhdGFUcmlnZ3JlZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENsZWFyRGVtb0RhdGFDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkNsZWFyRGVtb0RhdGFDb21wbGV0ZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wYW55SWQ6IHN0cmluZykgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGVhckRlbW9EYXRhRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5DbGVhckRlbW9EYXRhRmFpbGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBWYWxpZGF0aW9uTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVRoZW1lVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55VGhlbWVUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVRoZW1lQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55VGhlbWVDb21wbGV0ZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aGVtZU1vZGVsOiBUaGVtZU1vZGVsKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEdldENvbXBhbnlUaGVtZUZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuR2V0Q29tcGFueVRoZW1lRmFpbGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBWYWxpZGF0aW9uTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHZXRVc2VyU3RvcmVJZFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuR2V0VXNlclN0b3JlSWRUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZWFyY2hVc2VyU3RvcmVEZXRhaWxzTW9kZWw6IFN0b3JlU2VhcmNoTW9kZWwpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2V0VXNlclN0b3JlSWRDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkdldFVzZXJTdG9yZUlkQ29tcGxldGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlclN0b3JlRGV0YWlsczogU3RvcmVNb2RlbCkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVNldHRpbmdzVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55U2V0dGluZ3NUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wYW55U2V0dGluZ3NNb2RlbDogQ29tcGFueXNldHRpbmdzTW9kZWwpIHsgfVxyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBHZXRDb21wYW55U2V0dGluZ3NDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkdldENvbXBhbnlTZXR0aW5nc0NvbXBsZXRlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBhbnlTZXR0aW5nc01vZGVsOiBhbnlbXSkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVNldHRpbmdzRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55U2V0dGluZ3NGYWlsZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWxpZGF0aW9uTWVzc2FnZXM6IFZhbGlkYXRpb25Nb2RlbFtdKSB7IH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEdldFVzZXJTdG9yZUlkRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRVc2VyU3RvcmVJZEZhaWxlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHZhbGlkYXRpb25NZXNzYWdlczogYW55W10pIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRXhjZXB0aW9uSGFuZGxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuRXhjZXB0aW9uSGFuZGxlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRpb25BY3Rpb25zID1cclxuICB8IEF1dGhlbnRpY2F0ZVVzZXJcclxuICB8IEF1dGhlbnRpY2F0ZWRcclxuICB8IFNpZ25lZE9mZlxyXG4gIHwgVXNlckRldGFpbHNGZXRjaGluZ1xyXG4gIHwgVXNlckRldGFpbHNGZXRjaGVkXHJcbiAgfCBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckxvZ2luXHJcbiAgfCBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckNvbXBhbnlMb2dpblxyXG4gIHwgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZFxyXG4gIHwgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZFxyXG4gIHwgQXV0aGVudGljYXRpb25GYWlsZWRcclxuICB8IENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkXHJcbiAgfCBDb21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZFN1Y2Nlc3NcclxuICB8IEF1dGhlbnRpY2F0ZU5ld1VzZXJcclxuIl19
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
export var MessageActionTypes;
|
|
2
|
+
(function (MessageActionTypes) {
|
|
3
|
+
// Message Sending from chat-web to shell
|
|
4
|
+
MessageActionTypes["MessageTriggered"] = "[Snovasys-Shell] [chat-web-module] MessageTriggered";
|
|
5
|
+
MessageActionTypes["MessageCompleted"] = "[Snovasys-Shell] [chat-web-module] MessageCompleted";
|
|
6
|
+
MessageActionTypes["MessageFailed"] = "[Snovasys-Shell] [chat-web-module] MessageFailed";
|
|
7
|
+
//Message Receiving shell to chat-web
|
|
8
|
+
MessageActionTypes["ReceiveMessageTriggered"] = "[Snovasys-Shell] [chat-web-module] ReceiveMessageTriggered";
|
|
9
|
+
MessageActionTypes["ReceiveMessageCompleted"] = "[Snovasys-Shell] [chat-web-module] ReceiveMessageCompleted";
|
|
10
|
+
MessageActionTypes["ReceiveMessageFailed"] = "[Snovasys-Shell] [chat-web-module] ReceiveMessageFailed";
|
|
11
|
+
// Newly joined people status
|
|
12
|
+
MessageActionTypes["PresenceEventTriggered"] = "[Snovasys-Shell] [chat-web-module] PresenceEventTriggered";
|
|
13
|
+
MessageActionTypes["PresenceEventCompleted"] = "[Snovasys-Shell] [chat-web-module] PresenceEventCompleted";
|
|
14
|
+
MessageActionTypes["PresenceEventFailed"] = "[Snovasys-Shell] [chat-web-module] PresenceEventFailed";
|
|
15
|
+
// Message Unread Count of Shell
|
|
16
|
+
MessageActionTypes["CountTriggered"] = "[Snovasys-Shell] [chat-web-module] CountTriggered";
|
|
17
|
+
MessageActionTypes["CountCompleted"] = "[Snovasys-Shell] [chat-web-module] CountCompleted";
|
|
18
|
+
MessageActionTypes["CountFailed"] = "[Snovasys-Shell] [chat-web-module] CountFailed";
|
|
19
|
+
//Previously joined people status
|
|
20
|
+
MessageActionTypes["InitalStateOfUsersTriggered"] = "[Snovasys-Shell] [chat-web-module] InitalStateOfUsersTriggered";
|
|
21
|
+
MessageActionTypes["InitalStateOfUsersCompleted"] = "[Snovasys-Shell] [chat-web-module] InitalStateOfUsersCompleted";
|
|
22
|
+
MessageActionTypes["InitalStateOfUsersFailed"] = "[Snovasys-Shell] [chat-web-module] InitalStateOfUsersFailed";
|
|
23
|
+
//When we open the chat-web messenger this trigger will hit
|
|
24
|
+
MessageActionTypes["RequestingStateOfUsersTriggered"] = "[Snovasys-Shell] [chat-web-module] RequestingStateOfUsersTriggered";
|
|
25
|
+
MessageActionTypes["RequestingStateOfUsersCompleted"] = "[Snovasys-Shell] [chat-web-module] RequestingStateOfUsersCompleted";
|
|
26
|
+
MessageActionTypes["RequestingStateOfUsersFailed"] = "[Snovasys-Shell] [chat-web-module] RequestingStateOfUsersFailed";
|
|
27
|
+
//Sending TOpic details (chat-web to shell)
|
|
28
|
+
MessageActionTypes["SendChannelUpdateModelTriggered"] = "[Snovasys-Shell] [chat-web-module] SendChannelUpdateModelTriggered";
|
|
29
|
+
MessageActionTypes["SendChannelUpdateModelCompleted"] = "[Snovasys-Shell] [chat-web-module] SendChannelUpdateModelCompleted";
|
|
30
|
+
MessageActionTypes["SendChannelUpdateModelFailed"] = "[Snovasys-Shell] [chat-web-module] SendChannelUpdateModelFailed";
|
|
31
|
+
//Receiving Topic details (shell to chat-web)
|
|
32
|
+
MessageActionTypes["ReceiveChannelUpdateModelTriggered"] = "[Snovasys-Shell] [chat-web-module] ReceiveChannelUpdateModelTriggered";
|
|
33
|
+
MessageActionTypes["ReceiveChannelUpdateModelCompleted"] = "[Snovasys-Shell] [chat-web-module] ReceiveChannelUpdateModelCompleted";
|
|
34
|
+
MessageActionTypes["ReceiveChannelUpdateModelFailed"] = "[Snovasys-Shell] [chat-web-module] ReceiveChannelUpdateModelFailed";
|
|
35
|
+
//Sending Typing model (chat-web to shell)
|
|
36
|
+
MessageActionTypes["SendingSignalTriggered"] = "[Snovasys-Shell] [chat-web-module] SendingSignalTriggered";
|
|
37
|
+
MessageActionTypes["SendingSignalCompleted"] = "[Snovasys-Shell] [chat-web-module] SendingSignalCompleted";
|
|
38
|
+
MessageActionTypes["SendingSignalFailed"] = "[Snovasys-Shell] [chat-web-module] SendingSignalFailed";
|
|
39
|
+
//Receiving SignalEvent response (shell to chat-web)
|
|
40
|
+
MessageActionTypes["ReceiveSignalTriggered"] = "[Snovasys-Shell] [chat-web-module] ReceiveSignalTriggered";
|
|
41
|
+
MessageActionTypes["ReceiveSignalCompleted"] = "[Snovasys-Shell] [chat-web-module] ReceiveSignalCompleted";
|
|
42
|
+
MessageActionTypes["ReceiveSignalFailed"] = "[Snovasys-Shell] [chat-web-module] ReceiveSignalFailed";
|
|
43
|
+
})(MessageActionTypes || (MessageActionTypes = {}));
|
|
44
|
+
export class MessageTriggered {
|
|
45
|
+
constructor(messageDetails) {
|
|
46
|
+
this.messageDetails = messageDetails;
|
|
47
|
+
this.type = MessageActionTypes.MessageTriggered;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class MessageCompleted {
|
|
51
|
+
constructor(messageDetails) {
|
|
52
|
+
this.messageDetails = messageDetails;
|
|
53
|
+
this.type = MessageActionTypes.MessageCompleted;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
export class MessageFailed {
|
|
57
|
+
constructor(errorMessage) {
|
|
58
|
+
this.errorMessage = errorMessage;
|
|
59
|
+
this.type = MessageActionTypes.MessageFailed;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export class ReceiveMessageTriggered {
|
|
63
|
+
constructor(messageDetails) {
|
|
64
|
+
this.messageDetails = messageDetails;
|
|
65
|
+
this.type = MessageActionTypes.ReceiveMessageTriggered;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export class ReceiveMessageCompleted {
|
|
69
|
+
constructor(messageDetails) {
|
|
70
|
+
this.messageDetails = messageDetails;
|
|
71
|
+
this.type = MessageActionTypes.ReceiveMessageCompleted;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export class ReceiveMessageFailed {
|
|
75
|
+
constructor(errorMessage) {
|
|
76
|
+
this.errorMessage = errorMessage;
|
|
77
|
+
this.type = MessageActionTypes.ReceiveMessageFailed;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export class PresenceEventTriggered {
|
|
81
|
+
constructor(employeeStatusModel) {
|
|
82
|
+
this.employeeStatusModel = employeeStatusModel;
|
|
83
|
+
this.type = MessageActionTypes.PresenceEventTriggered;
|
|
84
|
+
}
|
|
85
|
+
;
|
|
86
|
+
}
|
|
87
|
+
export class PresenceEventCompleted {
|
|
88
|
+
constructor(employeeStatusModel) {
|
|
89
|
+
this.employeeStatusModel = employeeStatusModel;
|
|
90
|
+
this.type = MessageActionTypes.PresenceEventCompleted;
|
|
91
|
+
}
|
|
92
|
+
;
|
|
93
|
+
}
|
|
94
|
+
export class PresenceEventFailed {
|
|
95
|
+
constructor(errorMessage) {
|
|
96
|
+
this.errorMessage = errorMessage;
|
|
97
|
+
this.type = MessageActionTypes.PresenceEventFailed;
|
|
98
|
+
}
|
|
99
|
+
;
|
|
100
|
+
}
|
|
101
|
+
export class CountTriggered {
|
|
102
|
+
constructor(messageCount) {
|
|
103
|
+
this.messageCount = messageCount;
|
|
104
|
+
this.type = MessageActionTypes.CountTriggered;
|
|
105
|
+
}
|
|
106
|
+
;
|
|
107
|
+
}
|
|
108
|
+
export class CountCompleted {
|
|
109
|
+
constructor(messageCount) {
|
|
110
|
+
this.messageCount = messageCount;
|
|
111
|
+
this.type = MessageActionTypes.CountCompleted;
|
|
112
|
+
}
|
|
113
|
+
;
|
|
114
|
+
}
|
|
115
|
+
export class CountFailed {
|
|
116
|
+
constructor(errorMessage) {
|
|
117
|
+
this.errorMessage = errorMessage;
|
|
118
|
+
this.type = MessageActionTypes.CountFailed;
|
|
119
|
+
}
|
|
120
|
+
;
|
|
121
|
+
}
|
|
122
|
+
export class InitalStateOfUsersTriggered {
|
|
123
|
+
constructor(initialStatusOfUsers) {
|
|
124
|
+
this.initialStatusOfUsers = initialStatusOfUsers;
|
|
125
|
+
this.type = MessageActionTypes.InitalStateOfUsersTriggered;
|
|
126
|
+
}
|
|
127
|
+
;
|
|
128
|
+
}
|
|
129
|
+
export class InitalStateOfUsersCompleted {
|
|
130
|
+
constructor(initialStatusOfUsers) {
|
|
131
|
+
this.initialStatusOfUsers = initialStatusOfUsers;
|
|
132
|
+
this.type = MessageActionTypes.InitalStateOfUsersCompleted;
|
|
133
|
+
}
|
|
134
|
+
;
|
|
135
|
+
}
|
|
136
|
+
export class InitalStateOfUsersFailed {
|
|
137
|
+
constructor(errorMessage) {
|
|
138
|
+
this.errorMessage = errorMessage;
|
|
139
|
+
this.type = MessageActionTypes.InitalStateOfUsersFailed;
|
|
140
|
+
}
|
|
141
|
+
;
|
|
142
|
+
}
|
|
143
|
+
export class RequestingStateOfUsersTriggered {
|
|
144
|
+
constructor(gotColleagues) {
|
|
145
|
+
this.gotColleagues = gotColleagues;
|
|
146
|
+
this.type = MessageActionTypes.RequestingStateOfUsersTriggered;
|
|
147
|
+
}
|
|
148
|
+
;
|
|
149
|
+
}
|
|
150
|
+
export class RequestingStateOfUsersCompleted {
|
|
151
|
+
constructor(gotColleagues) {
|
|
152
|
+
this.gotColleagues = gotColleagues;
|
|
153
|
+
this.type = MessageActionTypes.RequestingStateOfUsersCompleted;
|
|
154
|
+
}
|
|
155
|
+
;
|
|
156
|
+
}
|
|
157
|
+
export class RequestingStateOfUsersFailed {
|
|
158
|
+
constructor(errorMessage) {
|
|
159
|
+
this.errorMessage = errorMessage;
|
|
160
|
+
this.type = MessageActionTypes.RequestingStateOfUsersFailed;
|
|
161
|
+
}
|
|
162
|
+
;
|
|
163
|
+
}
|
|
164
|
+
export class SendChannelUpdateModelTriggered {
|
|
165
|
+
constructor(channelUpdateModel) {
|
|
166
|
+
this.channelUpdateModel = channelUpdateModel;
|
|
167
|
+
this.type = MessageActionTypes.SendChannelUpdateModelTriggered;
|
|
168
|
+
}
|
|
169
|
+
;
|
|
170
|
+
}
|
|
171
|
+
export class SendChannelUpdateModelCompleted {
|
|
172
|
+
constructor(channelUpdateModel) {
|
|
173
|
+
this.channelUpdateModel = channelUpdateModel;
|
|
174
|
+
this.type = MessageActionTypes.SendChannelUpdateModelCompleted;
|
|
175
|
+
}
|
|
176
|
+
;
|
|
177
|
+
}
|
|
178
|
+
export class SendChannelUpdateModelFailed {
|
|
179
|
+
constructor(errorMessage) {
|
|
180
|
+
this.errorMessage = errorMessage;
|
|
181
|
+
this.type = MessageActionTypes.SendChannelUpdateModelFailed;
|
|
182
|
+
}
|
|
183
|
+
;
|
|
184
|
+
}
|
|
185
|
+
export class ReceiveChannelUpdateModelTriggered {
|
|
186
|
+
constructor(channelUpdateModel) {
|
|
187
|
+
this.channelUpdateModel = channelUpdateModel;
|
|
188
|
+
this.type = MessageActionTypes.ReceiveChannelUpdateModelTriggered;
|
|
189
|
+
}
|
|
190
|
+
;
|
|
191
|
+
}
|
|
192
|
+
export class ReceiveChannelUpdateModelCompleted {
|
|
193
|
+
constructor(channelUpdateModel) {
|
|
194
|
+
this.channelUpdateModel = channelUpdateModel;
|
|
195
|
+
this.type = MessageActionTypes.ReceiveChannelUpdateModelCompleted;
|
|
196
|
+
}
|
|
197
|
+
;
|
|
198
|
+
}
|
|
199
|
+
export class ReceiveChannelUpdateModelFailed {
|
|
200
|
+
constructor(errorMessage) {
|
|
201
|
+
this.errorMessage = errorMessage;
|
|
202
|
+
this.type = MessageActionTypes.ReceiveChannelUpdateModelFailed;
|
|
203
|
+
}
|
|
204
|
+
;
|
|
205
|
+
}
|
|
206
|
+
export class SendingSignalTriggered {
|
|
207
|
+
constructor(messageTypingDetails) {
|
|
208
|
+
this.messageTypingDetails = messageTypingDetails;
|
|
209
|
+
this.type = MessageActionTypes.SendingSignalTriggered;
|
|
210
|
+
}
|
|
211
|
+
;
|
|
212
|
+
}
|
|
213
|
+
export class SendingSignalCompleted {
|
|
214
|
+
constructor(messageTypingDetails) {
|
|
215
|
+
this.messageTypingDetails = messageTypingDetails;
|
|
216
|
+
this.type = MessageActionTypes.SendingSignalCompleted;
|
|
217
|
+
}
|
|
218
|
+
;
|
|
219
|
+
}
|
|
220
|
+
export class SendingSignalFailed {
|
|
221
|
+
constructor(errorMessage) {
|
|
222
|
+
this.errorMessage = errorMessage;
|
|
223
|
+
this.type = MessageActionTypes.SendingSignalFailed;
|
|
224
|
+
}
|
|
225
|
+
;
|
|
226
|
+
}
|
|
227
|
+
export class ReceiveSignalTriggered {
|
|
228
|
+
constructor(messageTypingDetails) {
|
|
229
|
+
this.messageTypingDetails = messageTypingDetails;
|
|
230
|
+
this.type = MessageActionTypes.ReceiveSignalTriggered;
|
|
231
|
+
}
|
|
232
|
+
;
|
|
233
|
+
}
|
|
234
|
+
export class ReceiveSignalCompleted {
|
|
235
|
+
constructor(messageTypingDetails) {
|
|
236
|
+
this.messageTypingDetails = messageTypingDetails;
|
|
237
|
+
this.type = MessageActionTypes.ReceiveSignalCompleted;
|
|
238
|
+
}
|
|
239
|
+
;
|
|
240
|
+
}
|
|
241
|
+
export class ReceiveSignalFailed {
|
|
242
|
+
constructor(errorMessage) {
|
|
243
|
+
this.errorMessage = errorMessage;
|
|
244
|
+
this.type = MessageActionTypes.ReceiveMessageFailed;
|
|
245
|
+
}
|
|
246
|
+
;
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvc3RvcmUvYWN0aW9ucy9jaGF0LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxDQUFOLElBQVksa0JBeUNYO0FBekNELFdBQVksa0JBQWtCO0lBQzVCLHlDQUF5QztJQUN6Qyw4RkFBd0UsQ0FBQTtJQUN4RSw4RkFBd0UsQ0FBQTtJQUN4RSx3RkFBa0UsQ0FBQTtJQUNsRSxxQ0FBcUM7SUFDckMsNEdBQXNGLENBQUE7SUFDdEYsNEdBQXNGLENBQUE7SUFDdEYsc0dBQWdGLENBQUE7SUFDaEYsNkJBQTZCO0lBQzdCLDJHQUFxRixDQUFBO0lBQ3JGLDBHQUFvRixDQUFBO0lBQ3BGLG9HQUE4RSxDQUFBO0lBQzlFLGdDQUFnQztJQUNoQywwRkFBb0UsQ0FBQTtJQUNwRSwwRkFBb0UsQ0FBQTtJQUNwRSxvRkFBOEQsQ0FBQTtJQUM5RCxpQ0FBaUM7SUFDakMscUhBQStGLENBQUE7SUFDL0YscUhBQStGLENBQUE7SUFDL0YsOEdBQXdGLENBQUE7SUFDeEYsMkRBQTJEO0lBQzNELDRIQUFzRyxDQUFBO0lBQ3RHLDRIQUFzRyxDQUFBO0lBQ3RHLHNIQUFnRyxDQUFBO0lBQ2hHLDJDQUEyQztJQUMzQyw0SEFBc0csQ0FBQTtJQUN0Ryw0SEFBc0csQ0FBQTtJQUN0RyxzSEFBZ0csQ0FBQTtJQUNoRyw2Q0FBNkM7SUFDN0MsbUlBQTZHLENBQUE7SUFDN0csbUlBQTZHLENBQUE7SUFDN0csNkhBQXVHLENBQUE7SUFDdkcsMENBQTBDO0lBQzFDLDBHQUFvRixDQUFBO0lBQ3BGLDBHQUFvRixDQUFBO0lBQ3BGLG9HQUE4RSxDQUFBO0lBQzlFLG9EQUFvRDtJQUNwRCwwR0FBb0YsQ0FBQTtJQUNwRiwwR0FBb0Ys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QWtCLENBQUMsbUJBQW1CLENBQUM7SUFTSCxDQUFDO0lBQUEsQ0FBQztDQUNoRDtBQUNELE1BQU0sT0FBTyxzQkFBc0I7SUFVL0IsWUFBbUIsb0JBQXlDO1FBQXpDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFUNUQsU0FBSSxHQUFHLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDO0lBU2UsQ0FBQztJQUFBLENBQUM7Q0FDckU7QUFDRCxNQUFNLE9BQU8sc0JBQXNCO0lBVS9CLFlBQW1CLG9CQUF5QztRQUF6Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBVDVELFNBQUksR0FBRyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQztJQVNlLENBQUM7SUFBQSxDQUFDO0NBQ3JFO0FBQ0QsTUFBTSxPQUFPLG1CQUFtQjtJQVU1QixZQUFtQixZQUFvQjtRQUFwQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQVR2QyxTQUFJLEdBQUcsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7SUFTSixDQUFDO0lBQUEsQ0FBQztDQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBNZXNzYWdlRGV0YWlscyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvTWVzc2FnZURldGFpbHNcIjtcclxuaW1wb3J0IHsgRW1wbG95ZWVTdGF0dXNNb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvRW1wbG95ZWVTdGF0dXNNb2RlbFwiO1xyXG5pbXBvcnQgeyBJbml0aWFsU3RhdHVzT2ZVc2VycyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvaW5pdGlhbFN0YXR1c29mVXNlcnNcIjtcclxuaW1wb3J0IHsgQ2hhbm5lbFVwZGF0ZU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9DaGFubmVsVXBkYXRlTW9kZWxcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVR5cGluZ0RldGFpbHN9IGZyb20gJy4uLy4uL21vZGVscy9NZXNzYWdlVHlwaW5nRGV0YWlscyc7XHJcblxyXG5cclxuZXhwb3J0IGVudW0gTWVzc2FnZUFjdGlvblR5cGVzIHtcclxuICAvLyBNZXNzYWdlIFNlbmRpbmcgZnJvbSBjaGF0LXdlYiB0byBzaGVsbFxyXG4gIE1lc3NhZ2VUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gTWVzc2FnZVRyaWdnZXJlZFwiLFxyXG4gIE1lc3NhZ2VDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gTWVzc2FnZUNvbXBsZXRlZFwiLFxyXG4gIE1lc3NhZ2VGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gTWVzc2FnZUZhaWxlZFwiLFxyXG4gIC8vTWVzc2FnZSBSZWNlaXZpbmcgc2hlbGwgdG8gY2hhdC13ZWJcclxuICBSZWNlaXZlTWVzc2FnZVRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBSZWNlaXZlTWVzc2FnZVRyaWdnZXJlZFwiLFxyXG4gIFJlY2VpdmVNZXNzYWdlQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFJlY2VpdmVNZXNzYWdlQ29tcGxldGVkXCIsXHJcbiAgUmVjZWl2ZU1lc3NhZ2VGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gUmVjZWl2ZU1lc3NhZ2VGYWlsZWRcIixcclxuICAvLyBOZXdseSBqb2luZWQgcGVvcGxlIHN0YXR1c1xyXG4gIFByZXNlbmNlRXZlbnRUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gIFtjaGF0LXdlYi1tb2R1bGVdIFByZXNlbmNlRXZlbnRUcmlnZ2VyZWRcIixcclxuICBQcmVzZW5jZUV2ZW50Q29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFByZXNlbmNlRXZlbnRDb21wbGV0ZWRcIixcclxuICBQcmVzZW5jZUV2ZW50RmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFByZXNlbmNlRXZlbnRGYWlsZWRcIixcclxuICAvLyBNZXNzYWdlIFVucmVhZCBDb3VudCBvZiBTaGVsbFxyXG4gIENvdW50VHJpZ2dlcmVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIENvdW50VHJpZ2dlcmVkXCIsXHJcbiAgQ291bnRDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gQ291bnRDb21wbGV0ZWRcIixcclxuICBDb3VudEZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBDb3VudEZhaWxlZFwiLFxyXG4gIC8vUHJldmlvdXNseSBqb2luZWQgcGVvcGxlIHN0YXR1c1xyXG4gIEluaXRhbFN0YXRlT2ZVc2Vyc1RyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSAgSW5pdGFsU3RhdGVPZlVzZXJzVHJpZ2dlcmVkXCIsXHJcbiAgSW5pdGFsU3RhdGVPZlVzZXJzQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdICBJbml0YWxTdGF0ZU9mVXNlcnNDb21wbGV0ZWRcIixcclxuICBJbml0YWxTdGF0ZU9mVXNlcnNGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gSW5pdGFsU3RhdGVPZlVzZXJzRmFpbGVkXCIsXHJcbiAgLy9XaGVuIHdlIG9wZW4gdGhlIGNoYXQtd2ViIG1lc3NlbmdlciB0aGlzIHRyaWdnZXIgd2lsbCBoaXRcclxuICBSZXF1ZXN0aW5nU3RhdGVPZlVzZXJzVHJpZ2dlcmVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNUcmlnZ2VyZWRcIixcclxuICBSZXF1ZXN0aW5nU3RhdGVPZlVzZXJzQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNDb21wbGV0ZWRcIixcclxuICBSZXF1ZXN0aW5nU3RhdGVPZlVzZXJzRmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdIFJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNGYWlsZWRcIixcclxuICAvL1NlbmRpbmcgVE9waWMgZGV0YWlscyAoY2hhdC13ZWIgdG8gc2hlbGwpXHJcbiAgU2VuZENoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kQ2hhbm5lbFVwZGF0ZU1vZGVsVHJpZ2dlcmVkXCIsXHJcbiAgU2VuZENoYW5uZWxVcGRhdGVNb2RlbENvbXBsZXRlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kQ2hhbm5lbFVwZGF0ZU1vZGVsQ29tcGxldGVkXCIsXHJcbiAgU2VuZENoYW5uZWxVcGRhdGVNb2RlbEZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kQ2hhbm5lbFVwZGF0ZU1vZGVsRmFpbGVkXCIsXHJcbiAgLy9SZWNlaXZpbmcgVG9waWMgZGV0YWlscyAoc2hlbGwgdG8gY2hhdC13ZWIpXHJcbiAgUmVjZWl2ZUNoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSAgUmVjZWl2ZUNoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZFwiLFxyXG4gIFJlY2VpdmVDaGFubmVsVXBkYXRlTW9kZWxDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gIFJlY2VpdmVDaGFubmVsVXBkYXRlTW9kZWxDb21wbGV0ZWRcIixcclxuICBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsRmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtjaGF0LXdlYi1tb2R1bGVdICBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsRmFpbGVkXCIsXHJcbiAgLy9TZW5kaW5nIFR5cGluZyBtb2RlbCAoY2hhdC13ZWIgdG8gc2hlbGwpXHJcbiAgU2VuZGluZ1NpZ25hbFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kaW5nU2lnbmFsVHJpZ2dlcmVkXCIsXHJcbiAgU2VuZGluZ1NpZ25hbENvbXBsZXRlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kaW5nU2lnbmFsQ29tcGxldGVkXCIsXHJcbiAgU2VuZGluZ1NpZ25hbEZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbY2hhdC13ZWItbW9kdWxlXSBTZW5kaW5nU2lnbmFsRmFpbGVkXCIsXHJcbiAgLy9SZWNlaXZpbmcgU2lnbmFsRXZlbnQgcmVzcG9uc2UgKHNoZWxsIHRvIGNoYXQtd2ViKVxyXG4gIFJlY2VpdmVTaWduYWxUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gUmVjZWl2ZVNpZ25hbFRyaWdnZXJlZFwiLFxyXG4gIFJlY2VpdmVTaWduYWxDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gUmVjZWl2ZVNpZ25hbENvbXBsZXRlZFwiLFxyXG4gIFJlY2VpdmVTaWduYWxGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW2NoYXQtd2ViLW1vZHVsZV0gUmVjZWl2ZVNpZ25hbEZhaWxlZFwiLFxyXG59XHJcbmV4cG9ydCBjbGFzcyBNZXNzYWdlVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuTWVzc2FnZVRyaWdnZXJlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICAgcHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscykgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNZXNzYWdlQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBsZXRlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICAgcHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHMpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWVzc2FnZUZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLk1lc3NhZ2VGYWlsZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH1cclxufVxyXG5leHBvcnQgY2xhc3MgUmVjZWl2ZU1lc3NhZ2VUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5SZWNlaXZlTWVzc2FnZVRyaWdnZXJlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHMpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVjZWl2ZU1lc3NhZ2VDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5SZWNlaXZlTWVzc2FnZUNvbXBsZXRlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHMpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVjZWl2ZU1lc3NhZ2VGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5SZWNlaXZlTWVzc2FnZUZhaWxlZDtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBQcmVzZW5jZUV2ZW50VHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuUHJlc2VuY2VFdmVudFRyaWdnZXJlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWwpIHsgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFByZXNlbmNlRXZlbnRDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5QcmVzZW5jZUV2ZW50Q29tcGxldGVkO1xyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgcHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscztcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbCkgeyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUHJlc2VuY2VFdmVudEZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlByZXNlbmNlRXZlbnRGYWlsZWQ7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH07XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb3VudFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLkNvdW50VHJpZ2dlcmVkO1xyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcikgeyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ291bnRDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5Db3VudENvbXBsZXRlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXIpIHsgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvdW50RmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuQ291bnRGYWlsZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH07XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBJbml0YWxTdGF0ZU9mVXNlcnNUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5Jbml0YWxTdGF0ZU9mVXNlcnNUcmlnZ2VyZWQ7XHJcbiAgICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIEluaXRhbFN0YXRlT2ZVc2Vyc0NvbXBsZXRlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLkluaXRhbFN0YXRlT2ZVc2Vyc0NvbXBsZXRlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnMpIHsgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRhbFN0YXRlT2ZVc2Vyc0ZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLkluaXRhbFN0YXRlT2ZVc2Vyc0ZhaWxlZDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfTtcclxufVxyXG5leHBvcnQgY2xhc3MgUmVxdWVzdGluZ1N0YXRlT2ZVc2Vyc1RyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNUcmlnZ2VyZWQ7XHJcbiAgICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5SZXF1ZXN0aW5nU3RhdGVPZlVzZXJzQ29tcGxldGVkO1xyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsO1xyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbikgeyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmVxdWVzdGluZ1N0YXRlT2ZVc2Vyc0ZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNGYWlsZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzICBTZW5kQ2hhbm5lbFVwZGF0ZU1vZGVsVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuIFNlbmRDaGFubmVsVXBkYXRlTW9kZWxUcmlnZ2VyZWQ7XHJcbiAgICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhblxyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWwpIHsgfTtcclxufVxyXG5leHBvcnQgY2xhc3MgIFNlbmRDaGFubmVsVXBkYXRlTW9kZWxDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy4gU2VuZENoYW5uZWxVcGRhdGVNb2RlbENvbXBsZXRlZDtcclxuICAgIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBnb3RDb2xsZWFndWVzOiBib29sZWFuXHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbCkgeyB9O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgIFNlbmRDaGFubmVsVXBkYXRlTW9kZWxGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy4gU2VuZENoYW5uZWxVcGRhdGVNb2RlbEZhaWxlZDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbFxyXG4gICBcclxuICAgIHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZykgeyB9O1xyXG59XHJcbmV4cG9ydCBjbGFzcyAgUmVjZWl2ZUNoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLiBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsVHJpZ2dlcmVkO1xyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW5cclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGNoYW5uZWxVcGRhdGVNb2RlbDogQ2hhbm5lbFVwZGF0ZU1vZGVsKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzICBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuIFJlY2VpdmVDaGFubmVsVXBkYXRlTW9kZWxDb21wbGV0ZWQ7XHJcbiAgICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhblxyXG4gICAgcHVibGljIG1lc3NhZ2VDb3VudDogbnVtYmVyO1xyXG4gICAgcHVibGljIG1lc3NhZ2VEZXRhaWxzOiBNZXNzYWdlRGV0YWlscztcclxuICAgIHB1YmxpYyBlbXBsb3llZVN0YXR1c01vZGVsOiBFbXBsb3llZVN0YXR1c01vZGVsO1xyXG4gICAgcHVibGljIGluaXRpYWxTdGF0dXNPZlVzZXJzOiBJbml0aWFsU3RhdHVzT2ZVc2VycztcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWwpIHsgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzICBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICAgIHR5cGUgPSBNZXNzYWdlQWN0aW9uVHlwZXMuIFJlY2VpdmVDaGFubmVsVXBkYXRlTW9kZWxGYWlsZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWxcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbmRpbmdTaWduYWxUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlNlbmRpbmdTaWduYWxUcmlnZ2VyZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgIFxyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZSA6c3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIFNlbmRpbmdTaWduYWxDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlNlbmRpbmdTaWduYWxDb21wbGV0ZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgIFxyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZSA6c3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIFNlbmRpbmdTaWduYWxGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlNlbmRpbmdTaWduYWxGYWlsZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgIFxyXG4gICAgcHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlY2VpdmVTaWduYWxUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlJlY2VpdmVTaWduYWxUcmlnZ2VyZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgIFxyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZSA6c3RyaW5nO1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2VUeXBpbmdEZXRhaWxzOk1lc3NhZ2VUeXBpbmdEZXRhaWxzKSB7IH07XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlY2VpdmVTaWduYWxDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgICB0eXBlID0gTWVzc2FnZUFjdGlvblR5cGVzLlJlY2VpdmVTaWduYWxDb21wbGV0ZWQ7XHJcbiAgICBwdWJsaWMgbWVzc2FnZUNvdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWVzc2FnZURldGFpbHM6IE1lc3NhZ2VEZXRhaWxzO1xyXG4gICAgcHVibGljIGVtcGxveWVlU3RhdHVzTW9kZWw6IEVtcGxveWVlU3RhdHVzTW9kZWw7XHJcbiAgICBwdWJsaWMgaW5pdGlhbFN0YXR1c09mVXNlcnM6IEluaXRpYWxTdGF0dXNPZlVzZXJzO1xyXG4gICAgcHVibGljIGdvdENvbGxlYWd1ZXM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY2hhbm5lbFVwZGF0ZU1vZGVsOiBDaGFubmVsVXBkYXRlTW9kZWw7XHJcbiAgIFxyXG4gICAgcHVibGljIGVycm9yTWVzc2FnZSA6IHN0cmluZztcclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBtZXNzYWdlVHlwaW5nRGV0YWlsczpNZXNzYWdlVHlwaW5nRGV0YWlscykgeyB9O1xyXG59XHJcbmV4cG9ydCBjbGFzcyBSZWNlaXZlU2lnbmFsRmFpbGVkIGltcGxlbWVudHMgQWN0aW9ue1xyXG4gICAgdHlwZSA9IE1lc3NhZ2VBY3Rpb25UeXBlcy5SZWNlaXZlTWVzc2FnZUZhaWxlZDtcclxuICAgIHB1YmxpYyBtZXNzYWdlQ291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBtZXNzYWdlRGV0YWlsczogTWVzc2FnZURldGFpbHM7XHJcbiAgICBwdWJsaWMgZW1wbG95ZWVTdGF0dXNNb2RlbDogRW1wbG95ZWVTdGF0dXNNb2RlbDtcclxuICAgIHB1YmxpYyBpbml0aWFsU3RhdHVzT2ZVc2VyczogSW5pdGlhbFN0YXR1c09mVXNlcnM7XHJcbiAgICBwdWJsaWMgZ290Q29sbGVhZ3VlczogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBjaGFubmVsVXBkYXRlTW9kZWw6IENoYW5uZWxVcGRhdGVNb2RlbDtcclxuICAgXHJcbiAgICBwdWJsaWMgbWVzc2FnZVR5cGluZ0RldGFpbHM6TWVzc2FnZVR5cGluZ0RldGFpbHM7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfTtcclxufVxyXG5leHBvcnQgdHlwZSBDaGF0V2ViQWN0aW9ucyA9IE1lc3NhZ2VUcmlnZ2VyZWQgfFxyXG4gICAgTWVzc2FnZUNvbXBsZXRlZCB8XHJcbiAgICBNZXNzYWdlRmFpbGVkIHxcclxuICAgIFByZXNlbmNlRXZlbnRUcmlnZ2VyZWQgfFxyXG4gICAgUHJlc2VuY2VFdmVudENvbXBsZXRlZCB8XHJcbiAgICBQcmVzZW5jZUV2ZW50RmFpbGVkIHxcclxuICAgIENvdW50VHJpZ2dlcmVkIHxcclxuICAgIENvdW50Q29tcGxldGVkIHxcclxuICAgIENvdW50RmFpbGVkIHxcclxuICAgIEluaXRhbFN0YXRlT2ZVc2Vyc0NvbXBsZXRlZCB8XHJcbiAgICBJbml0YWxTdGF0ZU9mVXNlcnNGYWlsZWQgfFxyXG4gICAgSW5pdGFsU3RhdGVPZlVzZXJzVHJpZ2dlcmVkIHxcclxuICAgIFJlY2VpdmVNZXNzYWdlQ29tcGxldGVkIHxcclxuICAgIFJlY2VpdmVNZXNzYWdlRmFpbGVkIHxcclxuICAgIFJlY2VpdmVNZXNzYWdlVHJpZ2dlcmVkIHxcclxuICAgIFJlcXVlc3RpbmdTdGF0ZU9mVXNlcnNUcmlnZ2VyZWQgfFxyXG4gICAgUmVxdWVzdGluZ1N0YXRlT2ZVc2Vyc0NvbXBsZXRlZCB8XHJcbiAgICBSZXF1ZXN0aW5nU3RhdGVPZlVzZXJzRmFpbGVkIHxcclxuICAgIFNlbmRDaGFubmVsVXBkYXRlTW9kZWxDb21wbGV0ZWR8XHJcbiAgICBTZW5kQ2hhbm5lbFVwZGF0ZU1vZGVsRmFpbGVkfFxyXG4gICAgU2VuZENoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZCB8XHJcbiAgICBSZWNlaXZlQ2hhbm5lbFVwZGF0ZU1vZGVsQ29tcGxldGVkIHxcclxuICAgIFJlY2VpdmVDaGFubmVsVXBkYXRlTW9kZWxGYWlsZWQgfFxyXG4gICAgUmVjZWl2ZUNoYW5uZWxVcGRhdGVNb2RlbFRyaWdnZXJlZCB8XHJcbiAgICBTZW5kaW5nU2lnbmFsQ29tcGxldGVkfFxyXG4gICAgU2VuZGluZ1NpZ25hbEZhaWxlZHxcclxuICAgIFNlbmRpbmdTaWduYWxUcmlnZ2VyZWR8XHJcbiAgICBSZWNlaXZlU2lnbmFsVHJpZ2dlcmVkfFxyXG4gICAgUmVjZWl2ZVNpZ25hbENvbXBsZXRlZHxcclxuICAgIFJlY2VpdmVTaWduYWxGYWlsZWRcclxuXHJcbiJdfQ==
|