@thetradeengineorg1/snova-shell-module 0.0.260 → 0.0.261

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/README.md +24 -24
  2. package/bundles/thetradeengineorg1-snova-shell-module.umd.js +18874 -18874
  3. package/bundles/thetradeengineorg1-snova-shell-module.umd.js.map +1 -1
  4. package/esm2015/lib/globaldependencies/components/avatar.component.js +33 -33
  5. package/esm2015/lib/globaldependencies/components/componentbase.js +538 -538
  6. package/esm2015/lib/globaldependencies/constants/feature-ids.js +449 -449
  7. package/esm2015/lib/globaldependencies/constants/localstorage-properties.js +38 -38
  8. package/esm2015/lib/globaldependencies/helpers/dom.helper.js +70 -70
  9. package/esm2015/lib/globaldependencies/helpers/fontawesome-icons.js +144 -144
  10. package/esm2015/lib/globaldependencies/helpers/moment-utc-date-adapter.js +37 -37
  11. package/esm2015/lib/globaldependencies/helpers/window.helper.js +32 -32
  12. package/esm2015/lib/globaldependencies/intercepter/jwt.interceptor.js +40 -40
  13. package/esm2015/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.js +36 -36
  14. package/esm2015/lib/globaldependencies/pipes/highLightText.pipe.js +24 -24
  15. package/esm2015/lib/globaldependencies/pipes/orderby-pipe.js +24 -24
  16. package/esm2015/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.js +22 -22
  17. package/esm2015/lib/globaldependencies/pipes/sanitize.pipe.js +24 -24
  18. package/esm2015/lib/globaldependencies/pipes/softlabels.pipes.js +346 -346
  19. package/esm2015/lib/globaldependencies/pipes/utctolocaltime.pipe.js +23 -23
  20. package/esm2015/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.js +25 -25
  21. package/esm2015/lib/globaldependencies/pipes/workflowstatus.pipes.js +27 -27
  22. package/esm2015/lib/shell-components/components/Payments/account.component.js +121 -121
  23. package/esm2015/lib/shell-components/components/Payments/company-information.js +558 -558
  24. package/esm2015/lib/shell-components/components/Payments/company-plans.component.js +636 -636
  25. package/esm2015/lib/shell-components/components/Payments/document.component.js +129 -129
  26. package/esm2015/lib/shell-components/components/Payments/payment-method.component.js +90 -90
  27. package/esm2015/lib/shell-components/components/Payments/product-service.component.js +438 -438
  28. package/esm2015/lib/shell-components/components/Payments/purchase-more-licenses.js +249 -249
  29. package/esm2015/lib/shell-components/components/Payments/transactions.component.js +172 -172
  30. package/esm2015/lib/shell-components/components/admin-layout/admin-layout.component.js +350 -350
  31. package/esm2015/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.js +102 -102
  32. package/esm2015/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.js +126 -126
  33. package/esm2015/lib/shell-components/components/export-import-configuration/export-configuration.component.js +502 -502
  34. package/esm2015/lib/shell-components/components/feed-time/feed-time-dialog.component.js +98 -98
  35. package/esm2015/lib/shell-components/components/feed-time/feed-time.component.js +87 -87
  36. package/esm2015/lib/shell-components/components/header-side/header-side.component.js +2342 -2342
  37. package/esm2015/lib/shell-components/components/header-top/header-top.component.js +489 -489
  38. package/esm2015/lib/shell-components/components/lives/lives-welcome-page.js +55 -55
  39. package/esm2015/lib/shell-components/components/menu/menu.component.js +3413 -3413
  40. package/esm2015/lib/shell-components/components/menu/searchTask.enum.js +10 -10
  41. package/esm2015/lib/shell-components/components/notifications/announcement-dialog.component.js +110 -110
  42. package/esm2015/lib/shell-components/components/notifications/notifications.component.js +534 -534
  43. package/esm2015/lib/shell-components/components/sidebar-top/sidebar-top.component.js +39 -39
  44. package/esm2015/lib/shell-components/components/sidenav/side-bar.component.js +148 -148
  45. package/esm2015/lib/shell-components/components/sidenav/sidenav.component.js +439 -439
  46. package/esm2015/lib/shell-components/components/submit-feedback/submit-feedback.component.js +75 -75
  47. package/esm2015/lib/shell-components/constants/api-urls.js +1052 -1052
  48. package/esm2015/lib/shell-components/constants/available-languages.js +25 -25
  49. package/esm2015/lib/shell-components/constants/channel-names.js +38 -38
  50. package/esm2015/lib/shell-components/constants/menu-categories.js +6 -6
  51. package/esm2015/lib/shell-components/constants/notification-routes.js +6 -6
  52. package/esm2015/lib/shell-components/constants/notification-type-ids.js +42 -42
  53. package/esm2015/lib/shell-components/enum/recentSearchType.enum.js +13 -13
  54. package/esm2015/lib/shell-components/models/AppMenuItemModel.js +3 -3
  55. package/esm2015/lib/shell-components/models/AppNotification.js +17 -17
  56. package/esm2015/lib/shell-components/models/AssetAssignedNotificationModel.js +12 -12
  57. package/esm2015/lib/shell-components/models/ChannelUpdateModel.js +3 -3
  58. package/esm2015/lib/shell-components/models/EmployeeStatusModel.js +3 -3
  59. package/esm2015/lib/shell-components/models/IAdjust-screen-options.js +2 -2
  60. package/esm2015/lib/shell-components/models/IBadge.js +2 -2
  61. package/esm2015/lib/shell-components/models/IChildItem.js +2 -2
  62. package/esm2015/lib/shell-components/models/ILayout-change-options.js +2 -2
  63. package/esm2015/lib/shell-components/models/IMenuItem.js +2 -2
  64. package/esm2015/lib/shell-components/models/IlayoutConf.js +2 -2
  65. package/esm2015/lib/shell-components/models/IntroModel.js +3 -3
  66. package/esm2015/lib/shell-components/models/MessageDetails.js +3 -3
  67. package/esm2015/lib/shell-components/models/MessageTypingDetails.js +3 -3
  68. package/esm2015/lib/shell-components/models/NewProjectCreatedNotificationModel.js +10 -10
  69. package/esm2015/lib/shell-components/models/NewProjectFeatureNotificationModel.js +10 -10
  70. package/esm2015/lib/shell-components/models/NotificationsOutPutModel.js +22 -22
  71. package/esm2015/lib/shell-components/models/ProjectSearchCriteriaInputModel.js +3 -3
  72. package/esm2015/lib/shell-components/models/RecentSearchModel.js +5 -5
  73. package/esm2015/lib/shell-components/models/ReportConfigAssignedNotification.js +11 -11
  74. package/esm2015/lib/shell-components/models/ReportSubmittedNotification.js +12 -12
  75. package/esm2015/lib/shell-components/models/RoleUpdatedNotification.js +9 -9
  76. package/esm2015/lib/shell-components/models/UserStoryAssignedNotification.js +13 -13
  77. package/esm2015/lib/shell-components/models/archiveUserStoryModel.js +10 -10
  78. package/esm2015/lib/shell-components/models/companieslist.model.js +3 -3
  79. package/esm2015/lib/shell-components/models/company-model.js +7 -7
  80. package/esm2015/lib/shell-components/models/company-payment-model.js +3 -3
  81. package/esm2015/lib/shell-components/models/dragedWidget.js +3 -3
  82. package/esm2015/lib/shell-components/models/employee-List.js +3 -3
  83. package/esm2015/lib/shell-components/models/employee.js +4 -4
  84. package/esm2015/lib/shell-components/models/entityRoleFeature.js +3 -3
  85. package/esm2015/lib/shell-components/models/export-configuration-model.js +3 -3
  86. package/esm2015/lib/shell-components/models/export-data.module.js +8 -8
  87. package/esm2015/lib/shell-components/models/goalApprovedNotificationModel.js +9 -9
  88. package/esm2015/lib/shell-components/models/import-configuration-model.js +3 -3
  89. package/esm2015/lib/shell-components/models/initialStatusofUsers.js +3 -3
  90. package/esm2015/lib/shell-components/models/invoiceOutput-model.js +3 -3
  91. package/esm2015/lib/shell-components/models/leaveApplicationNotifiction.js +9 -9
  92. package/esm2015/lib/shell-components/models/multiChartsScheduling.js +11 -11
  93. package/esm2015/lib/shell-components/models/parkUserStoryInputModel.js +10 -10
  94. package/esm2015/lib/shell-components/models/project.js +3 -3
  95. package/esm2015/lib/shell-components/models/recentSearchApiModel.js +3 -3
  96. package/esm2015/lib/shell-components/models/searchCriteriaInputModelBase.js +3 -3
  97. package/esm2015/lib/shell-components/models/shellModulesInfo.js +7 -7
  98. package/esm2015/lib/shell-components/models/softlabels-model.js +7 -7
  99. package/esm2015/lib/shell-components/models/sprintReplanRequestedModel.js +9 -9
  100. package/esm2015/lib/shell-components/models/sprintStartedNotificationModel.js +9 -9
  101. package/esm2015/lib/shell-components/models/store-model.js +3 -3
  102. package/esm2015/lib/shell-components/models/store-search-model.js +4 -4
  103. package/esm2015/lib/shell-components/models/themes.model.js +3 -3
  104. package/esm2015/lib/shell-components/models/timesheetenabledisable.js +4 -4
  105. package/esm2015/lib/shell-components/models/user.js +8 -8
  106. package/esm2015/lib/shell-components/models/userStory.js +3 -3
  107. package/esm2015/lib/shell-components/models/userStoryCommentNotificationModel.js +9 -9
  108. package/esm2015/lib/shell-components/models/userStoryUpdateNotificationModel.js +9 -9
  109. package/esm2015/lib/shell-components/models/userstory-custom-fields.model.js +3 -3
  110. package/esm2015/lib/shell-components/models/validation.model.js +2 -2
  111. package/esm2015/lib/shell-components/models/widgetlist.js +6 -6
  112. package/esm2015/lib/shell-components/models/workspaceList.js +3 -3
  113. package/esm2015/lib/shell-components/services/authentication.service.js +96 -96
  114. package/esm2015/lib/shell-components/services/chat.service.js +67 -67
  115. package/esm2015/lib/shell-components/services/common-used.service.js +263 -263
  116. package/esm2015/lib/shell-components/services/feature.service.js +101 -101
  117. package/esm2015/lib/shell-components/services/google-analytics.service.js +24 -24
  118. package/esm2015/lib/shell-components/services/layout.service.js +68 -68
  119. package/esm2015/lib/shell-components/services/payment.service.js +103 -103
  120. package/esm2015/lib/shell-components/services/recentSearch.service.js +90 -90
  121. package/esm2015/lib/shell-components/services/shell.modules.service.js +24 -24
  122. package/esm2015/lib/shell-components/services/signalr.service.js +113 -113
  123. package/esm2015/lib/shell-components/services/theme.service.js +161 -161
  124. package/esm2015/lib/shell-components/shell.module.js +450 -450
  125. package/esm2015/lib/shell-components/shell.routing.js +16 -16
  126. package/esm2015/lib/shell-components/store/actions/authentication.actions.js +260 -260
  127. package/esm2015/lib/shell-components/store/actions/chat.actions.js +248 -248
  128. package/esm2015/lib/shell-components/store/actions/menuitems.actions.js +39 -39
  129. package/esm2015/lib/shell-components/store/actions/notification-validator.action.js +19 -19
  130. package/esm2015/lib/shell-components/store/actions/notifications.actions.js +74 -74
  131. package/esm2015/lib/shell-components/store/effects/authentication.effects.js +503 -503
  132. package/esm2015/lib/shell-components/store/effects/chat.effects.js +139 -139
  133. package/esm2015/lib/shell-components/store/effects/index.js +13 -13
  134. package/esm2015/lib/shell-components/store/effects/menuitems.effects.js +53 -53
  135. package/esm2015/lib/shell-components/store/effects/notification-validator.effects.js +56 -56
  136. package/esm2015/lib/shell-components/store/effects/notifications.effects.js +116 -116
  137. package/esm2015/lib/shell-components/store/reducers/authentication.reducers.js +86 -86
  138. package/esm2015/lib/shell-components/store/reducers/chat.reducers.js +68 -68
  139. package/esm2015/lib/shell-components/store/reducers/index.js +80 -80
  140. package/esm2015/lib/shell-components/store/reducers/menuitems.reducers.js +56 -56
  141. package/esm2015/lib/shell-components/store/reducers/notification-validator.reducers.js +13 -13
  142. package/esm2015/lib/shell-components/store/reducers/notifications.reducers.js +38 -38
  143. package/esm2015/public-api.js +92 -92
  144. package/esm2015/store/reducers/index.js +47 -47
  145. package/esm2015/thetradeengineorg1-snova-shell-module.js +4 -4
  146. package/fesm2015/thetradeengineorg1-snova-shell-module.js +16979 -16979
  147. package/fesm2015/thetradeengineorg1-snova-shell-module.js.map +1 -1
  148. package/lib/globaldependencies/components/avatar.component.d.ts +10 -10
  149. package/lib/globaldependencies/components/componentbase.d.ts +455 -455
  150. package/lib/globaldependencies/constants/feature-ids.d.ts +448 -448
  151. package/lib/globaldependencies/constants/localstorage-properties.d.ts +37 -37
  152. package/lib/globaldependencies/helpers/dom.helper.d.ts +7 -7
  153. package/lib/globaldependencies/helpers/fontawesome-icons.d.ts +1 -1
  154. package/lib/globaldependencies/helpers/moment-utc-date-adapter.d.ts +9 -9
  155. package/lib/globaldependencies/helpers/window.helper.d.ts +12 -12
  156. package/lib/globaldependencies/intercepter/jwt.interceptor.d.ts +11 -11
  157. package/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.d.ts +8 -8
  158. package/lib/globaldependencies/pipes/highLightText.pipe.d.ts +8 -8
  159. package/lib/globaldependencies/pipes/orderby-pipe.d.ts +9 -9
  160. package/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.d.ts +8 -8
  161. package/lib/globaldependencies/pipes/sanitize.pipe.d.ts +11 -11
  162. package/lib/globaldependencies/pipes/softlabels.pipes.d.ts +8 -8
  163. package/lib/globaldependencies/pipes/utctolocaltime.pipe.d.ts +8 -8
  164. package/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.d.ts +8 -8
  165. package/lib/globaldependencies/pipes/workflowstatus.pipes.d.ts +8 -8
  166. package/lib/shell-components/components/Payments/account.component.d.ts +14 -14
  167. package/lib/shell-components/components/Payments/company-information.d.ts +62 -62
  168. package/lib/shell-components/components/Payments/company-plans.component.d.ts +47 -47
  169. package/lib/shell-components/components/Payments/document.component.d.ts +20 -20
  170. package/lib/shell-components/components/Payments/payment-method.component.d.ts +15 -15
  171. package/lib/shell-components/components/Payments/product-service.component.d.ts +48 -48
  172. package/lib/shell-components/components/Payments/purchase-more-licenses.d.ts +37 -37
  173. package/lib/shell-components/components/Payments/transactions.component.d.ts +28 -28
  174. package/lib/shell-components/components/admin-layout/admin-layout.component.d.ts +67 -67
  175. package/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.d.ts +32 -32
  176. package/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.d.ts +32 -32
  177. package/lib/shell-components/components/export-import-configuration/export-configuration.component.d.ts +60 -60
  178. package/lib/shell-components/components/feed-time/feed-time-dialog.component.d.ts +33 -33
  179. package/lib/shell-components/components/feed-time/feed-time.component.d.ts +27 -27
  180. package/lib/shell-components/components/header-side/header-side.component.d.ts +220 -220
  181. package/lib/shell-components/components/header-top/header-top.component.d.ts +40 -40
  182. package/lib/shell-components/components/lives/lives-welcome-page.d.ts +14 -14
  183. package/lib/shell-components/components/menu/menu.component.d.ts +220 -220
  184. package/lib/shell-components/components/menu/searchTask.enum.d.ts +8 -8
  185. package/lib/shell-components/components/notifications/announcement-dialog.component.d.ts +27 -27
  186. package/lib/shell-components/components/notifications/notifications.component.d.ts +53 -53
  187. package/lib/shell-components/components/sidebar-top/sidebar-top.component.d.ts +10 -10
  188. package/lib/shell-components/components/sidenav/side-bar.component.d.ts +23 -23
  189. package/lib/shell-components/components/sidenav/sidenav.component.d.ts +17 -17
  190. package/lib/shell-components/components/submit-feedback/submit-feedback.component.d.ts +25 -25
  191. package/lib/shell-components/constants/api-urls.d.ts +1051 -1051
  192. package/lib/shell-components/constants/available-languages.d.ts +7 -7
  193. package/lib/shell-components/constants/channel-names.d.ts +37 -37
  194. package/lib/shell-components/constants/menu-categories.d.ts +5 -5
  195. package/lib/shell-components/constants/notification-routes.d.ts +5 -5
  196. package/lib/shell-components/constants/notification-type-ids.d.ts +41 -41
  197. package/lib/shell-components/enum/recentSearchType.enum.d.ts +11 -11
  198. package/lib/shell-components/models/AppMenuItemModel.d.ts +12 -12
  199. package/lib/shell-components/models/AppNotification.d.ts +12 -12
  200. package/lib/shell-components/models/AssetAssignedNotificationModel.d.ts +10 -10
  201. package/lib/shell-components/models/ChannelUpdateModel.d.ts +47 -47
  202. package/lib/shell-components/models/EmployeeStatusModel.d.ts +11 -11
  203. package/lib/shell-components/models/IAdjust-screen-options.d.ts +4 -4
  204. package/lib/shell-components/models/IBadge.d.ts +4 -4
  205. package/lib/shell-components/models/IChildItem.d.ts +7 -7
  206. package/lib/shell-components/models/ILayout-change-options.d.ts +4 -4
  207. package/lib/shell-components/models/IMenuItem.d.ts +14 -14
  208. package/lib/shell-components/models/IlayoutConf.d.ts +10 -10
  209. package/lib/shell-components/models/IntroModel.d.ts +3 -3
  210. package/lib/shell-components/models/MessageDetails.d.ts +55 -55
  211. package/lib/shell-components/models/MessageTypingDetails.d.ts +9 -9
  212. package/lib/shell-components/models/NewProjectCreatedNotificationModel.d.ts +8 -8
  213. package/lib/shell-components/models/NewProjectFeatureNotificationModel.d.ts +8 -8
  214. package/lib/shell-components/models/NotificationsOutPutModel.d.ts +41 -41
  215. package/lib/shell-components/models/ProjectSearchCriteriaInputModel.d.ts +10 -10
  216. package/lib/shell-components/models/RecentSearchModel.d.ts +14 -14
  217. package/lib/shell-components/models/ReportConfigAssignedNotification.d.ts +9 -9
  218. package/lib/shell-components/models/ReportSubmittedNotification.d.ts +10 -10
  219. package/lib/shell-components/models/RoleUpdatedNotification.d.ts +7 -7
  220. package/lib/shell-components/models/UserStoryAssignedNotification.d.ts +8 -8
  221. package/lib/shell-components/models/archiveUserStoryModel.d.ts +7 -7
  222. package/lib/shell-components/models/companieslist.model.d.ts +8 -8
  223. package/lib/shell-components/models/company-model.d.ts +31 -31
  224. package/lib/shell-components/models/company-payment-model.d.ts +18 -18
  225. package/lib/shell-components/models/dragedWidget.d.ts +16 -16
  226. package/lib/shell-components/models/employee-List.d.ts +8 -8
  227. package/lib/shell-components/models/employee.d.ts +60 -60
  228. package/lib/shell-components/models/entityRoleFeature.d.ts +9 -9
  229. package/lib/shell-components/models/export-configuration-model.d.ts +8 -8
  230. package/lib/shell-components/models/export-data.module.d.ts +6 -6
  231. package/lib/shell-components/models/goalApprovedNotificationModel.d.ts +8 -8
  232. package/lib/shell-components/models/import-configuration-model.d.ts +3 -3
  233. package/lib/shell-components/models/initialStatusofUsers.d.ts +5 -5
  234. package/lib/shell-components/models/invoiceOutput-model.d.ts +9 -9
  235. package/lib/shell-components/models/leaveApplicationNotifiction.d.ts +7 -7
  236. package/lib/shell-components/models/multiChartsScheduling.d.ts +9 -9
  237. package/lib/shell-components/models/parkUserStoryInputModel.d.ts +7 -7
  238. package/lib/shell-components/models/project.d.ts +28 -28
  239. package/lib/shell-components/models/recentSearchApiModel.d.ts +6 -6
  240. package/lib/shell-components/models/searchCriteriaInputModelBase.d.ts +10 -10
  241. package/lib/shell-components/models/shellModulesInfo.d.ts +16 -16
  242. package/lib/shell-components/models/softlabels-model.d.ts +66 -66
  243. package/lib/shell-components/models/sprintReplanRequestedModel.d.ts +7 -7
  244. package/lib/shell-components/models/sprintStartedNotificationModel.d.ts +7 -7
  245. package/lib/shell-components/models/store-model.d.ts +13 -13
  246. package/lib/shell-components/models/store-search-model.d.ts +7 -7
  247. package/lib/shell-components/models/themes.model.d.ts +9 -9
  248. package/lib/shell-components/models/timesheetenabledisable.d.ts +16 -16
  249. package/lib/shell-components/models/user.d.ts +40 -40
  250. package/lib/shell-components/models/userStory.d.ts +188 -188
  251. package/lib/shell-components/models/userStoryCommentNotificationModel.d.ts +6 -6
  252. package/lib/shell-components/models/userStoryUpdateNotificationModel.d.ts +6 -6
  253. package/lib/shell-components/models/userstory-custom-fields.model.d.ts +6 -6
  254. package/lib/shell-components/models/validation.model.d.ts +5 -5
  255. package/lib/shell-components/models/widgetlist.d.ts +28 -28
  256. package/lib/shell-components/models/workspaceList.d.ts +19 -19
  257. package/lib/shell-components/services/authentication.service.d.ts +18 -18
  258. package/lib/shell-components/services/chat.service.d.ts +16 -16
  259. package/lib/shell-components/services/common-used.service.d.ts +45 -45
  260. package/lib/shell-components/services/feature.service.d.ts +19 -19
  261. package/lib/shell-components/services/google-analytics.service.d.ts +9 -9
  262. package/lib/shell-components/services/layout.service.d.ts +23 -23
  263. package/lib/shell-components/services/payment.service.d.ts +19 -19
  264. package/lib/shell-components/services/recentSearch.service.d.ts +16 -16
  265. package/lib/shell-components/services/shell.modules.service.d.ts +9 -9
  266. package/lib/shell-components/services/signalr.service.d.ts +25 -25
  267. package/lib/shell-components/services/theme.service.d.ts +14 -14
  268. package/lib/shell-components/shell.module.d.ts +119 -119
  269. package/lib/shell-components/shell.routing.d.ts +2 -2
  270. package/lib/shell-components/store/actions/authentication.actions.d.ts +327 -327
  271. package/lib/shell-components/store/actions/chat.actions.d.ts +399 -399
  272. package/lib/shell-components/store/actions/menuitems.actions.d.ts +51 -51
  273. package/lib/shell-components/store/actions/notification-validator.action.d.ts +25 -25
  274. package/lib/shell-components/store/actions/notifications.actions.d.ts +116 -116
  275. package/lib/shell-components/store/effects/authentication.effects.d.ts +54 -54
  276. package/lib/shell-components/store/effects/chat.effects.d.ts +30 -30
  277. package/lib/shell-components/store/effects/index.d.ts +1 -1
  278. package/lib/shell-components/store/effects/menuitems.effects.d.ts +17 -17
  279. package/lib/shell-components/store/effects/notification-validator.effects.d.ts +21 -21
  280. package/lib/shell-components/store/effects/notifications.effects.d.ts +23 -23
  281. package/lib/shell-components/store/reducers/authentication.reducers.d.ts +30 -30
  282. package/lib/shell-components/store/reducers/chat.reducers.d.ts +17 -17
  283. package/lib/shell-components/store/reducers/index.d.ts +59 -59
  284. package/lib/shell-components/store/reducers/menuitems.reducers.d.ts +11 -11
  285. package/lib/shell-components/store/reducers/notification-validator.reducers.d.ts +5 -5
  286. package/lib/shell-components/store/reducers/notifications.reducers.d.ts +10 -10
  287. package/package.json +1 -1
  288. package/public-api.d.ts +82 -82
  289. package/store/reducers/index.d.ts +24 -24
  290. package/thetradeengineorg1-snova-shell-module.d.ts +5 -5
@@ -1,260 +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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL3N0b3JlL2FjdGlvbnMvYXV0aGVudGljYXRpb24uYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxNQUFNLENBQU4sSUFBWSx5QkF1Q1g7QUF2Q0QsV0FBWSx5QkFBeUI7SUFDbkMscUdBQXdFLENBQUE7SUFDeEUsOEZBQWlFLENBQUE7SUFDakUsc0pBQXlILENBQUE7SUFDekgsbUtBQXNJLENBQUE7SUFDdEkscUtBQXdJLENBQUE7SUFDeEksdUZBQTBELENBQUE7SUFDMUQsNEdBQStFLENBQUE7SUFDL0UsMEdBQTZFLENBQUE7SUFDN0UseUhBQTRGLENBQUE7SUFDNUYsNElBQStHLENBQUE7SUFDL0csZ0lBQW1HLENBQUE7SUFDbkcsK0lBQWtILENBQUE7SUFDbEgsNkdBQWdGLENBQUE7SUFDaEYsMEhBQTZGLENBQUE7SUFDN0YsMEdBQTZFLENBQUE7SUFDN0UsdUhBQTBGLENBQUE7SUFDMUYsK0dBQWtGLENBQUE7SUFDbEYseUdBQTRFLENBQUE7SUFDNUUsNEhBQStGLENBQUE7SUFDL0YsdUhBQTBGLENBQUE7SUFDMUYsOElBQWlILENBQUE7SUFDakgsOElBQWlILENBQUE7SUFDakgsdUlBQTBHLENBQUE7SUFDMUcsdUhBQTBGLENBQUE7SUFDMUYsdUhBQTBGLENBQUE7SUFDMUYsaUhBQW9GLENBQUE7SUFDcEYsaUhBQW9GLENBQUE7SUFDcEYsbUhBQXNGLENBQUE7SUFDdEYsNkdBQWdGLENBQUE7SUFDaEYsc0hBQXlGLENBQUE7SUFDekYsc0hBQXlGLENBQUE7SUFDekYsZ0hBQW1GLENBQUE7SUFDbkYsc0dBQXlFLENBQUE7SUFDekUsNEdBQStFLENBQUE7SUFDL0UsNkhBQWdHLENBQUE7SUFDaEcsNkhBQWdHLENBQUE7SUFDaEcsdUhBQTBGLENBQUE7SUFDMUYsNEhBQStGLENBQUE7QUFDakcsQ0FBQyxFQXZDVyx5QkFBeUIsS0FBekIseUJBQXlCLFFBdUNwQztBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFTM0IsWUFBbUIsUUFBZ0IsRUFBUyxRQUFnQjtRQUF6QyxhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQVI1RCxTQUFJLEdBQUcseUJBQXlCLENBQUMsZ0JBQWdCLENBQUM7SUFRYyxDQUFDO0NBQ2xFO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtJQU85QixZQUFtQixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBTm5DLFNBQUksR0FBRyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQztJQU1kLENBQUM7Q0FDekM7QUFFRCxNQUFNLE9BQU8sYUFBYTtJQVF4QixZQUFtQixRQUFnQixFQUFTLFNBQWlCO1FBQTFDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBUDdELFNBQUksR0FBRyx5QkFBeUIsQ0FBQyxhQUFhLENBQUM7SUFPa0IsQ0FBQztDQUNuRTtBQUVELE1BQU0sT0FBTyx5Q0FBeUM7SUFVcEQ7UUFUQSxTQUFJLEdBQUcseUJBQXlCLENBQUMseUNBQXlDLENBQUM7SUFTM0QsQ0FBQztDQUNsQjtBQUdELE1BQU0sT0FBTyxnREFBZ0Q7SUFVM0QsWUFBbUIsY0FBdUI7UUFBdkIsbUJBQWMsR0FBZCxjQUFjLENBQVM7UUFUMUMsU0FBSSxHQUFHLHlCQUF5QixDQUFDLGdEQUFnRCxDQUFDO0lBU3BDLENBQUM7Q0FDaEQ7QUFFRCxNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLFlBQW1CLFlBQW9CO1FBQXBCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBUnZDLFNBQUksR0FBRyx5QkFBeUIsQ0FBQyxvQkFBb0IsQ0FBQztJQVFYLENBQUM7Q0FDN0M7QUFFRCxNQUFNLE9BQU8sU0FBUztJQVVwQjtRQVRBLFNBQUksR0FBRyx5QkFBeUIsQ0FBQyxTQUFTLENBQUM7SUFTM0IsQ0FBQztDQUNsQjtBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFTN0IsWUFBbUIsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQVJ2QyxTQUFJLEdBQUcseUJBQXlCLENBQUMsa0JBQWtCLENBQUM7SUFRVCxDQUFDO0NBQzdDO0FBRUQsTUFBTSxPQUFPLDRCQUE0QjtJQVN2QyxZQUFtQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBUnZDLFNBQUksR0FBRyx5QkFBeUIsQ0FBQyw0QkFBNEIsQ0FBQztJQVFuQixDQUFDO0NBQzdDO0FBRUQsTUFBTSxPQUFPLG1DQUFtQztJQVM5QyxZQUFtQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBUnZDLFNBQUksR0FBRyx5QkFBeUIsQ0FBQyxtQ0FBbUMsQ0FBQztJQVExQixDQUFDO0NBQzdDO0FBRUQsTUFBTSxPQUFPLHlCQUF5QjtJQVNwQyxZQUFtQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBUnZDLFNBQUksR0FBRyx5QkFBeUIsQ0FBQyx5QkFBeUIsQ0FBQztJQVFoQixDQUFDO0NBQzdDO0FBRUQsTUFBTSxPQUFPLGtDQUFrQztJQVU3QyxZQUFtQixlQUFvQjtRQUFwQixvQkFBZSxHQUFmLGVBQWUsQ0FBSztRQVR2QyxTQUFJLEdBQUcseUJBQXlCLENBQUMsa0NBQWtDLENBQUM7SUFTekIsQ0FBQztDQUM3QztBQUVELE1BQU0sT0FBTywyQkFBMkI7SUFVdEM7UUFUQSxTQUFJLEdBQUcseUJBQXlCLENBQUMsMkJBQTJCLENBQUM7SUFTN0MsQ0FBQztDQUNsQjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7SUFTOUIsWUFDUyxTQUFjO1FBQWQsY0FBUyxHQUFULFNBQVMsQ0FBSztRQVR2QixTQUFJLEdBQUcseUJBQXlCLENBQUMsbUJBQW1CLENBQUM7SUFTMUIsQ0FBQztDQUM3QjtBQUVELE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFBbUIsWUFBbUI7UUFBbkIsaUJBQVksR0FBWixZQUFZLENBQU87UUFGdEMsU0FBSSxHQUFHLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDO0lBRVYsQ0FBQztDQUM1QztBQUVELE1BQU0sT0FBTyx3QkFBd0I7SUFHbkM7UUFGQSxTQUFJLEdBQUcseUJBQXlCLENBQUMsd0JBQXdCLENBQUM7SUFFMUMsQ0FBQztDQUNsQjtBQUVELE1BQU0sT0FBTyx3QkFBd0I7SUFHbkM7UUFGQSxTQUFJLEdBQUcseUJBQXlCLENBQUMsd0JBQXdCLENBQUM7SUFFMUMsQ0FBQztDQUNsQjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7SUFHOUI7UUFGQSxTQUFJLEdBQUcseUJBQXlCLENBQUMsbUJBQW1CLENBQUM7SUFFckMsQ0FBQztDQUNsQjtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBbUIsa0JBQTRCO1FBQTVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBVTtRQUQvQyxTQUFJLEdBQUcseUJBQXlCLENBQUMsZ0JBQWdCLENBQUM7SUFDQyxDQUFDO0NBQ3JEO0FBR0QsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxZQUFtQixTQUFpQjtRQUFqQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBRnBDLFNBQUksR0FBRyx5QkFBeUIsQ0FBQyx5QkFBeUIsQ0FBQztJQUVuQixDQUFDO0NBQzFDO0FBR0QsTUFBTSxPQUFPLGlDQUFpQztJQUc1QyxZQUFtQixTQUFpQixFQUFTLFlBQW9CLEVBQVMsWUFBcUI7UUFBNUUsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUFTLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQVMsaUJBQVksR0FBWixZQUFZLENBQVM7UUFGL0YsU0FBSSxHQUFHLHlCQUF5QixDQUFDLGlDQUFpQyxDQUFDO0lBRWdDLENBQUM7Q0FDckc7QUFHRCxNQUFNLE9BQU8sd0JBQXdCO0lBR25DLFlBQW1CLHNCQUFnRDtRQUFoRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTBCO1FBRm5FLFNBQUksR0FBRyx5QkFBeUIsQ0FBQyx3QkFBd0IsQ0FBQztJQUVhLENBQUM7Q0FDekU7QUFFRCxNQUFNLE9BQU8sa0NBQWtDO0lBRzdDLFlBQW1CLHNCQUFnRDtRQUFoRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTBCO1FBRm5FLFNBQUksR0FBRyx5QkFBeUIsQ0FBQyxrQ0FBa0MsQ0FBQztJQUVHLENBQUM7Q0FDekU7QUFHRCxNQUFNLE9BQU8sOEJBQThCO0lBRXpDLFlBQW1CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBRHhELFNBQUksR0FBRyx5QkFBeUIsQ0FBQyw4QkFBOEIsQ0FBQztJQUNKLENBQUM7Q0FDOUQ7QUFFRCxNQUFNLE9BQU8scUJBQXFCO0lBR2hDO1FBRkEsU0FBSSxHQUFHLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDO0lBRXZDLENBQUM7Q0FDbEI7QUFFRCxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFlBQW1CLFNBQWlCO1FBQWpCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFGcEMsU0FBSSxHQUFHLHlCQUF5QixDQUFDLHNCQUFzQixDQUFDO0lBRWhCLENBQUM7Q0FDMUM7QUFFRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQW1CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBRnhELFNBQUksR0FBRyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQztJQUVPLENBQUM7Q0FDOUQ7QUFHRCxNQUFNLE9BQU8sd0JBQXdCO0lBR25DO1FBRkEsU0FBSSxHQUFHLHlCQUF5QixDQUFDLHdCQUF3QixDQUFDO0lBRTFDLENBQUM7Q0FDbEI7QUFHRCxNQUFNLE9BQU8sd0JBQXdCO0lBR25DLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGekMsU0FBSSxHQUFHLHlCQUF5QixDQUFDLHdCQUF3QixDQUFDO0lBRWIsQ0FBQztDQUMvQztBQUVELE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFBbUIsa0JBQXFDO1FBQXJDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFGeEQsU0FBSSxHQUFHLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDO0lBRUssQ0FBQztDQUM5RDtBQUVELE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBbUIsMkJBQTZDO1FBQTdDLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBa0I7UUFGaEUsU0FBSSxHQUFHLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDO0lBRVcsQ0FBQztDQUN0RTtBQUVELE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBbUIsZ0JBQTRCO1FBQTVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBWTtRQUYvQyxTQUFJLEdBQUcseUJBQXlCLENBQUMsdUJBQXVCLENBQUM7SUFFTixDQUFDO0NBQ3JEO0FBR0QsTUFBTSxPQUFPLDJCQUEyQjtJQUd0QyxZQUFtQixvQkFBMEM7UUFBMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUY3RCxTQUFJLEdBQUcseUJBQXlCLENBQUMsMkJBQTJCLENBQUM7SUFFSSxDQUFDO0NBQ25FO0FBSUQsTUFBTSxPQUFPLDJCQUEyQjtJQUd0QyxZQUFtQixvQkFBMkI7UUFBM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFPO1FBRjlDLFNBQUksR0FBRyx5QkFBeUIsQ0FBQywyQkFBMkIsQ0FBQztJQUVYLENBQUM7Q0FDcEQ7QUFHRCxNQUFNLE9BQU8sd0JBQXdCO0lBR25DLFlBQW1CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBRnhELFNBQUksR0FBRyx5QkFBeUIsQ0FBQyx3QkFBd0IsQ0FBQztJQUVFLENBQUM7Q0FDOUQ7QUFLRCxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQW1CLGtCQUF5QjtRQUF6Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQU87UUFGNUMsU0FBSSxHQUFHLHlCQUF5QixDQUFDLG9CQUFvQixDQUFDO0lBRU4sQ0FBQztDQUNsRDtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFBbUIsWUFBb0I7UUFBcEIsaUJBQVksR0FBWixZQUFZLENBQVE7UUFGdkMsU0FBSSxHQUFHLHlCQUF5QixDQUFDLGdCQUFnQixDQUFDO0lBRVAsQ0FBQztDQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlcic7XHJcbmltcG9ydCB7IEVudGl0eVJvbGVGZWF0dXJlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZW50aXR5Um9sZUZlYXR1cmUnO1xyXG5pbXBvcnQgeyBUaGVtZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RoZW1lcy5tb2RlbCc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy92YWxpZGF0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU3RvcmVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdG9yZS1tb2RlbCc7XHJcbmltcG9ydCB7IFN0b3JlU2VhcmNoTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc3RvcmUtc2VhcmNoLW1vZGVsJztcclxuaW1wb3J0IHsgQ29tcGFueXNldHRpbmdzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tcGFueS1tb2RlbCc7XHJcblxyXG5leHBvcnQgZW51bSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzIHtcclxuICBBdXRoZW50aWNhdGVVc2VyID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQXV0aGVudGljYXRlIFVzZXJcIixcclxuICBBdXRoZW50aWNhdGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQXV0aGVudGljYXRlZFwiLFxyXG4gIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWRcIixcclxuICBDb21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZEZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkIEZhaWxlZFwiLFxyXG4gIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkU3VjY2VzcyA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkIFN1Y2Nlc3NcIixcclxuICBTaWduZWRPZmYgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBTaWduZWQgT2ZmXCIsXHJcbiAgVXNlckRldGFpbHNGZXRjaGluZyA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIFVzZXIgRGV0YWlsc1wiLFxyXG4gIFVzZXJEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBEZXRhaWxzXCIsXHJcbiAgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBJbml0aWFsIERldGFpbHNcIixcclxuICBVc2VySW5pdGlhbERldGFpbHNGZXRjaGVkQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hlZCBVc2VyIEluaXRpYWwgRGV0YWlscyBDb21wbGV0ZWRcIixcclxuICBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckxvZ2luID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hlZCBVc2VyIERldGFpbHMgQWZ0ZXIgTG9naW5cIixcclxuICBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckNvbXBhbnlMb2dpbiA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBEZXRhaWxzIEFmdGVyIENvbXBhbnkgTG9naW5cIixcclxuICBBdXRoZW50aWNhdGlvbkZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEF1dGhlbnRpY2F0aW9uIEZhaWxlZFwiLFxyXG4gIFJvbGVEZXRhaWxzRmV0Y2hPblJlbG9hZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIFJvbGUgRGV0YWlscyBGZXRjaGVkIE9uIFJlbG9hZFwiLFxyXG4gIFJvbGVEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIFJvbGUgRGV0YWlscyBGZXRjaGVkXCIsXHJcbiAgSW5pdGlhbGl6ZUFmdGVyTG9naW5EYXRhID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gSW5pdGlhbGl6ZSBhZnRlciBsb2dpbiBkYXRhXCIsXHJcbiAgUm9sZXNGZXRjaFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIFJvbGVzIFRyaWdnZXJlZFwiLFxyXG4gIFJvbGVzRmV0Y2hGYWlsZWQgPSAnW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIFJvbGVzIEZhaWxlZCcsXHJcbiAgRW50aXR5Um9sZXNGZXRjaFRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIEVudGl0eSBSb2xlcyBUcmlnZ2VyZWRcIixcclxuICBFbnRpdHlSb2xlRGV0YWlsc0ZldGNoZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBFbnRpdHkgUm9sZSBEZXRhaWxzIEZldGNoZWRcIixcclxuICBFbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGluZyBFbnRpdHkgUm9sZXMgQnkgVXNlcklkIFRyaWdnZXJlZFwiLFxyXG4gIEVudGl0eVJlb2xlc0J5VXNlcklkRmV0Y2hDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGluZyBFbnRpdHlSb2xlcyBCeSBVc2VySWQgQ29tcGxldGVkXCIsXHJcbiAgRW50aXR5Um9sZXNCeVVzZXJJZEZldGNoRmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hpbmcgRW50aXR5Um9sZXMgQnkgVXNlcklkIEZhaWxlZFwiLFxyXG4gIEdldENvbXBhbnlUaGVtZVRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdFdCBDb21wYW55IFRoZW1lIFRyaWdnZXJlZFwiLFxyXG4gIEdldENvbXBhbnlUaGVtZUNvbXBsZXRlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdFdCBDb21wYW55IFRoZW1lIENvbXBsZXRlZFwiLFxyXG4gIEdldENvbXBhbnlUaGVtZUZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdFdCBDb21wYW55IFRoZW1lIEZhaWxlZFwiLFxyXG4gIENsZWFyRGVtb0RhdGFUcmlnZ3JlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENsZWFyIERlbW8gRGF0YSBUcmlnZ3JlZFwiLFxyXG4gIENsZWFyRGVtb0RhdGFDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBDbGVhciBEZW1vIERhdGEgQ29tcGxldGVkXCIsXHJcbiAgQ2xlYXJEZW1vRGF0YUZhaWxlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENsZWFyIERlbW8gRGF0YSBGYWlsZWRcIixcclxuICBHZXRVc2VyU3RvcmVJZFRyaWdnZXJlZCA9ICdbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IFVzZXIgU3RvcmUgSWQgVHJpZ2dlcmVkJyxcclxuICBHZXRVc2VyU3RvcmVJZENvbXBsZXRlZCA9ICdbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IFVzZXIgU3RvcmUgSWQgQ29tcGxldGVkJyxcclxuICBHZXRVc2VyU3RvcmVJZEZhaWxlZCA9ICdbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IFVzZXIgU3RvcmUgSWQgRmFpbGVkJyxcclxuICBFeGNlcHRpb25IYW5kbGVkID0gJ1tTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBFeGNlcHRpb24gSGFuZGxpbmcnLFxyXG4gIEF1dGhlbnRpY2F0ZU5ld1VzZXIgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBBdXRoZW50aWNhdGUgTmV3IFVzZXJcIixcclxuICBHZXRDb21wYW55U2V0dGluZ3NUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgQ29tcGFueSBTZXR0aW5ncyBUcmlnZ2VyZWRcIixcclxuICBHZXRDb21wYW55U2V0dGluZ3NDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgQ29tcGFueSBTZXR0aW5ncyBDb21wbGV0ZWRcIixcclxuICBHZXRDb21wYW55U2V0dGluZ3NGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgQ29tcGFueSBTZXR0aW5ncyBGYWlsZWRcIixcclxuICBGZXRjaFRpbWVTaGVldEJ1dHRvbkRldGFpbHMgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgVGltZSBTaGVldCBCdXR0b24gRGV0YWlsc1wiXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGVVc2VyIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5BdXRoZW50aWNhdGVVc2VyO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xyXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBwdWJsaWMgaXNTdGFydEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck5hbWU6IHN0cmluZywgcHVibGljIHBhc3N3b3JkOiBzdHJpbmcpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQXV0aGVudGljYXRlTmV3VXNlciBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQXV0aGVudGljYXRlTmV3VXNlcjtcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkF1dGhlbnRpY2F0ZWQ7XHJcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck5hbWU6IHN0cmluZywgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5Db21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZDtcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuICBwdWJsaWMgdXNlck5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkU3VjY2VzcyBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWRTdWNjZXNzO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbikgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvbkZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQXV0aGVudGljYXRpb25GYWlsZWQ7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2lnbmVkT2ZmIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5TaWduZWRPZmY7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuVXNlckRldGFpbHNGZXRjaGVkO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyVG9rZW46IHN0cmluZztcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW4gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW47XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWwpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlckRldGFpbHNGZXRjaGVkQWZ0ZXJDb21wYW55TG9naW4gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyQ29tcGFueUxvZ2luO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyVG9rZW46IHN0cmluZztcclxuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJJbml0aWFsRGV0YWlsc0ZldGNoZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJJbml0aWFsRGV0YWlsc0ZldGNoZWQ7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWwpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZDtcclxuICBwdWJsaWMgdXNlck5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBwdWJsaWMgaXNTdGFydEVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlckluaXRpYWxEYXRhOiBhbnkpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRmV0Y2hUaW1lU2hlZXRCdXR0b25EZXRhaWxzIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5GZXRjaFRpbWVTaGVldEJ1dHRvbkRldGFpbHM7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcclxuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hpbmcgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hpbmc7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcclxuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcclxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xyXG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGxvZ2luRGF0YTogYW55KSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvbGVEZXRhaWxzRmV0Y2hlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuUm9sZURldGFpbHNGZXRjaGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm9sZUZlYXR1cmVzOiBhbnlbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSb2xlRGV0YWlsc0ZldGNoT25SZWxvYWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlJvbGVEZXRhaWxzRmV0Y2hPblJlbG9hZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRpYWxpemVBZnRlckxvZ2luRGF0YSBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuSW5pdGlhbGl6ZUFmdGVyTG9naW5EYXRhO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUm9sZXNGZXRjaFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuUm9sZXNGZXRjaFRyaWdnZXJlZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJvbGVzRmV0Y2hGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlJvbGVzRmV0Y2hGYWlsZWQ7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHZhbGlkYXRpb25NZXNzYWdlczogc3RyaW5nW10pIHsgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEVudGl0eVJvbGVzRmV0Y2hUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVzRmV0Y2hUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9qZWN0SWQ6IHN0cmluZykgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5Um9sZXNCeVVzZXJJZEZldGNoVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5FbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9qZWN0SWQ6IHN0cmluZywgcHVibGljIHJlcXVpcmVkVHlwZTogc3RyaW5nLCBwdWJsaWMgaXNTcHJpbnRUeXBlOiBib29sZWFuKSB7IH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlSb2xlRGV0YWlsc0ZldGNoZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVEZXRhaWxzRmV0Y2hlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVudGl0eVR5cGVSb2xlRmVhdHVyZXM6IEVudGl0eVJvbGVGZWF0dXJlTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlSZW9sZXNCeVVzZXJJZEZldGNoQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5FbnRpdHlSZW9sZXNCeVVzZXJJZEZldGNoQ29tcGxldGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW50aXR5VHlwZVJvbGVGZWF0dXJlczogRW50aXR5Um9sZUZlYXR1cmVNb2RlbFtdKSB7IH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVzQnlVc2VySWRGZXRjaEZhaWxlZDtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBWYWxpZGF0aW9uTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGVhckRlbW9EYXRhVHJpZ2dyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkNsZWFyRGVtb0RhdGFUcmlnZ3JlZDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENsZWFyRGVtb0RhdGFDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkNsZWFyRGVtb0RhdGFDb21wbGV0ZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wYW55SWQ6IHN0cmluZykgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDbGVhckRlbW9EYXRhRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5DbGVhckRlbW9EYXRhRmFpbGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBWYWxpZGF0aW9uTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVRoZW1lVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55VGhlbWVUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVRoZW1lQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55VGhlbWVDb21wbGV0ZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0aGVtZU1vZGVsOiBUaGVtZU1vZGVsKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEdldENvbXBhbnlUaGVtZUZhaWxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuR2V0Q29tcGFueVRoZW1lRmFpbGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBWYWxpZGF0aW9uTW9kZWxbXSkgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHZXRVc2VyU3RvcmVJZFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuR2V0VXNlclN0b3JlSWRUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZWFyY2hVc2VyU3RvcmVEZXRhaWxzTW9kZWw6IFN0b3JlU2VhcmNoTW9kZWwpIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2V0VXNlclN0b3JlSWRDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkdldFVzZXJTdG9yZUlkQ29tcGxldGVkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlclN0b3JlRGV0YWlsczogU3RvcmVNb2RlbCkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVNldHRpbmdzVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55U2V0dGluZ3NUcmlnZ2VyZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wYW55U2V0dGluZ3NNb2RlbDogQ29tcGFueXNldHRpbmdzTW9kZWwpIHsgfVxyXG59XHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBHZXRDb21wYW55U2V0dGluZ3NDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkdldENvbXBhbnlTZXR0aW5nc0NvbXBsZXRlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBhbnlTZXR0aW5nc01vZGVsOiBhbnlbXSkgeyB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVNldHRpbmdzRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55U2V0dGluZ3NGYWlsZWQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWxpZGF0aW9uTWVzc2FnZXM6IFZhbGlkYXRpb25Nb2RlbFtdKSB7IH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEdldFVzZXJTdG9yZUlkRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRVc2VyU3RvcmVJZEZhaWxlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHZhbGlkYXRpb25NZXNzYWdlczogYW55W10pIHsgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRXhjZXB0aW9uSGFuZGxlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuRXhjZXB0aW9uSGFuZGxlZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nKSB7IH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRpb25BY3Rpb25zID1cclxuICB8IEF1dGhlbnRpY2F0ZVVzZXJcclxuICB8IEF1dGhlbnRpY2F0ZWRcclxuICB8IFNpZ25lZE9mZlxyXG4gIHwgVXNlckRldGFpbHNGZXRjaGluZ1xyXG4gIHwgVXNlckRldGFpbHNGZXRjaGVkXHJcbiAgfCBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckxvZ2luXHJcbiAgfCBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckNvbXBhbnlMb2dpblxyXG4gIHwgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZFxyXG4gIHwgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZFxyXG4gIHwgQXV0aGVudGljYXRpb25GYWlsZWRcclxuICB8IENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkXHJcbiAgfCBDb21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZFN1Y2Nlc3NcclxuICB8IEF1dGhlbnRpY2F0ZU5ld1VzZXJcclxuIl19
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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LHlCQUF5QixDQUFDLGdCQUFnQixDQUFDO0lBRVAsQ0FBQztDQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXInO1xuaW1wb3J0IHsgRW50aXR5Um9sZUZlYXR1cmVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9lbnRpdHlSb2xlRmVhdHVyZSc7XG5pbXBvcnQgeyBUaGVtZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RoZW1lcy5tb2RlbCc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdmFsaWRhdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBTdG9yZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3N0b3JlLW1vZGVsJztcbmltcG9ydCB7IFN0b3JlU2VhcmNoTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc3RvcmUtc2VhcmNoLW1vZGVsJztcbmltcG9ydCB7IENvbXBhbnlzZXR0aW5nc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbXBhbnktbW9kZWwnO1xuXG5leHBvcnQgZW51bSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzIHtcbiAgQXV0aGVudGljYXRlVXNlciA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEF1dGhlbnRpY2F0ZSBVc2VyXCIsXG4gIEF1dGhlbnRpY2F0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBBdXRoZW50aWNhdGVkXCIsXG4gIENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWRcIixcbiAgQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWRGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBDb21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZCBGYWlsZWRcIixcbiAgQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWRTdWNjZXNzID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWQgU3VjY2Vzc1wiLFxuICBTaWduZWRPZmYgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBTaWduZWQgT2ZmXCIsXG4gIFVzZXJEZXRhaWxzRmV0Y2hpbmcgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGluZyBVc2VyIERldGFpbHNcIixcbiAgVXNlckRldGFpbHNGZXRjaGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hlZCBVc2VyIERldGFpbHNcIixcbiAgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBJbml0aWFsIERldGFpbHNcIixcbiAgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBJbml0aWFsIERldGFpbHMgQ29tcGxldGVkXCIsXG4gIFVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW4gPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGVkIFVzZXIgRGV0YWlscyBBZnRlciBMb2dpblwiLFxuICBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckNvbXBhbnlMb2dpbiA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoZWQgVXNlciBEZXRhaWxzIEFmdGVyIENvbXBhbnkgTG9naW5cIixcbiAgQXV0aGVudGljYXRpb25GYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBBdXRoZW50aWNhdGlvbiBGYWlsZWRcIixcbiAgUm9sZURldGFpbHNGZXRjaE9uUmVsb2FkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gUm9sZSBEZXRhaWxzIEZldGNoZWQgT24gUmVsb2FkXCIsXG4gIFJvbGVEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIFJvbGUgRGV0YWlscyBGZXRjaGVkXCIsXG4gIEluaXRpYWxpemVBZnRlckxvZ2luRGF0YSA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEluaXRpYWxpemUgYWZ0ZXIgbG9naW4gZGF0YVwiLFxuICBSb2xlc0ZldGNoVHJpZ2dlcmVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hpbmcgUm9sZXMgVHJpZ2dlcmVkXCIsXG4gIFJvbGVzRmV0Y2hGYWlsZWQgPSAnW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEZldGNoaW5nIFJvbGVzIEZhaWxlZCcsXG4gIEVudGl0eVJvbGVzRmV0Y2hUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGluZyBFbnRpdHkgUm9sZXMgVHJpZ2dlcmVkXCIsXG4gIEVudGl0eVJvbGVEZXRhaWxzRmV0Y2hlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEVudGl0eSBSb2xlIERldGFpbHMgRmV0Y2hlZFwiLFxuICBFbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hUcmlnZ2VyZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGluZyBFbnRpdHkgUm9sZXMgQnkgVXNlcklkIFRyaWdnZXJlZFwiLFxuICBFbnRpdHlSZW9sZXNCeVVzZXJJZEZldGNoQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gRmV0Y2hpbmcgRW50aXR5Um9sZXMgQnkgVXNlcklkIENvbXBsZXRlZFwiLFxuICBFbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hGYWlsZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBGZXRjaGluZyBFbnRpdHlSb2xlcyBCeSBVc2VySWQgRmFpbGVkXCIsXG4gIEdldENvbXBhbnlUaGVtZVRyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdFdCBDb21wYW55IFRoZW1lIFRyaWdnZXJlZFwiLFxuICBHZXRDb21wYW55VGhlbWVDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHRXQgQ29tcGFueSBUaGVtZSBDb21wbGV0ZWRcIixcbiAgR2V0Q29tcGFueVRoZW1lRmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR0V0IENvbXBhbnkgVGhlbWUgRmFpbGVkXCIsXG4gIENsZWFyRGVtb0RhdGFUcmlnZ3JlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIENsZWFyIERlbW8gRGF0YSBUcmlnZ3JlZFwiLFxuICBDbGVhckRlbW9EYXRhQ29tcGxldGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQ2xlYXIgRGVtbyBEYXRhIENvbXBsZXRlZFwiLFxuICBDbGVhckRlbW9EYXRhRmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQ2xlYXIgRGVtbyBEYXRhIEZhaWxlZFwiLFxuICBHZXRVc2VyU3RvcmVJZFRyaWdnZXJlZCA9ICdbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IFVzZXIgU3RvcmUgSWQgVHJpZ2dlcmVkJyxcbiAgR2V0VXNlclN0b3JlSWRDb21wbGV0ZWQgPSAnW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdldCBVc2VyIFN0b3JlIElkIENvbXBsZXRlZCcsXG4gIEdldFVzZXJTdG9yZUlkRmFpbGVkID0gJ1tTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgVXNlciBTdG9yZSBJZCBGYWlsZWQnLFxuICBFeGNlcHRpb25IYW5kbGVkID0gJ1tTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBFeGNlcHRpb24gSGFuZGxpbmcnLFxuICBBdXRoZW50aWNhdGVOZXdVc2VyID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gQXV0aGVudGljYXRlIE5ldyBVc2VyXCIsXG4gIEdldENvbXBhbnlTZXR0aW5nc1RyaWdnZXJlZCA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdldCBDb21wYW55IFNldHRpbmdzIFRyaWdnZXJlZFwiLFxuICBHZXRDb21wYW55U2V0dGluZ3NDb21wbGV0ZWQgPSBcIltTbm92YXN5cy1TaGVsbF0gW0F1dGhlbnRpY2F0aW9uXSBHZXQgQ29tcGFueSBTZXR0aW5ncyBDb21wbGV0ZWRcIixcbiAgR2V0Q29tcGFueVNldHRpbmdzRmFpbGVkID0gXCJbU25vdmFzeXMtU2hlbGxdIFtBdXRoZW50aWNhdGlvbl0gR2V0IENvbXBhbnkgU2V0dGluZ3MgRmFpbGVkXCIsXG4gIEZldGNoVGltZVNoZWV0QnV0dG9uRGV0YWlscyA9IFwiW1Nub3Zhc3lzLVNoZWxsXSBbQXV0aGVudGljYXRpb25dIEdldCBUaW1lIFNoZWV0IEJ1dHRvbiBEZXRhaWxzXCJcbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZVVzZXIgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5BdXRoZW50aWNhdGVVc2VyO1xuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VyVG9rZW46IHN0cmluZztcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nLCBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZykgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGVOZXdVc2VyIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQXV0aGVudGljYXRlTmV3VXNlcjtcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5BdXRoZW50aWNhdGVkO1xuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nLCBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmcpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29tcGFueVdvcmtJdGVtU3RhcnRGdW5jdGlvbmFsaXR5UmVxdWlyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5Db21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZDtcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWw7XG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBDb21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZFN1Y2Nlc3MgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5Db21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZFN1Y2Nlc3M7XG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xuICBwdWJsaWMgdXNlck5hbWU6IHN0cmluZztcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRmFpbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuQXV0aGVudGljYXRpb25GYWlsZWQ7XG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZykgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBTaWduZWRPZmYgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5TaWduZWRPZmY7XG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBwdWJsaWMgaXNTdGFydEVuYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hlZDtcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VyVG9rZW46IHN0cmluZztcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBwdWJsaWMgaXNTdGFydEVuYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW4gaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5Vc2VyRGV0YWlsc0ZldGNoZWRBZnRlckxvZ2luO1xuICBwdWJsaWMgdXNlck5hbWU6IHN0cmluZztcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWwpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNlckRldGFpbHNGZXRjaGVkQWZ0ZXJDb21wYW55TG9naW4gaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5Vc2VyRGV0YWlsc0ZldGNoZWRBZnRlckNvbXBhbnlMb2dpbjtcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VyVG9rZW46IHN0cmluZztcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBwdWJsaWMgaXNTdGFydEVuYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFVzZXJJbml0aWFsRGV0YWlsc0ZldGNoZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5Vc2VySW5pdGlhbERldGFpbHNGZXRjaGVkO1xuICBwdWJsaWMgdXNlck5hbWU6IHN0cmluZztcbiAgcHVibGljIHVzZXJUb2tlbjogc3RyaW5nO1xuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBwYXNzd29yZDogc3RyaW5nO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBpc1N0YXJ0RW5hYmxlZDogYm9vbGVhbjtcbiAgcHVibGljIGxvZ2luRGF0YTogYW55O1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWwpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNlckluaXRpYWxEZXRhaWxzRmV0Y2hlZENvbXBsZXRlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJJbml0aWFsRGV0YWlsc0ZldGNoZWRDb21wbGV0ZWQ7XG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xuICBwdWJsaWMgbG9naW5EYXRhOiBhbnk7XG4gIHB1YmxpYyB1c2VyTW9kZWw6IFVzZXJNb2RlbDtcbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJJbml0aWFsRGF0YTogYW55KSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEZldGNoVGltZVNoZWV0QnV0dG9uRGV0YWlscyBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkZldGNoVGltZVNoZWV0QnV0dG9uRGV0YWlscztcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VyVG9rZW46IHN0cmluZztcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xuICBwdWJsaWMgcGFzc3dvcmQ6IHN0cmluZztcbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBwdWJsaWMgaXNTdGFydEVuYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBsb2dpbkRhdGE6IGFueTtcbiAgcHVibGljIHVzZXJNb2RlbDogVXNlck1vZGVsO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNlckRldGFpbHNGZXRjaGluZyBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlVzZXJEZXRhaWxzRmV0Y2hpbmc7XG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgdXNlclRva2VuOiBzdHJpbmc7XG4gIHB1YmxpYyB1c2VySWQ6IHN0cmluZztcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmc7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgcHVibGljIGlzU3RhcnRFbmFibGVkOiBib29sZWFuO1xuICBwdWJsaWMgdXNlck1vZGVsOiBVc2VyTW9kZWxcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxvZ2luRGF0YTogYW55KSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvbGVEZXRhaWxzRmV0Y2hlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlJvbGVEZXRhaWxzRmV0Y2hlZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm9sZUZlYXR1cmVzOiBhbnlbXSkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBSb2xlRGV0YWlsc0ZldGNoT25SZWxvYWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5Sb2xlRGV0YWlsc0ZldGNoT25SZWxvYWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEluaXRpYWxpemVBZnRlckxvZ2luRGF0YSBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkluaXRpYWxpemVBZnRlckxvZ2luRGF0YTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgUm9sZXNGZXRjaFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLlJvbGVzRmV0Y2hUcmlnZ2VyZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvbGVzRmV0Y2hGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5Sb2xlc0ZldGNoRmFpbGVkO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBzdHJpbmdbXSkgeyB9XG59XG5cblxuZXhwb3J0IGNsYXNzIEVudGl0eVJvbGVzRmV0Y2hUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5FbnRpdHlSb2xlc0ZldGNoVHJpZ2dlcmVkO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9qZWN0SWQ6IHN0cmluZykgeyB9XG59XG5cblxuZXhwb3J0IGNsYXNzIEVudGl0eVJvbGVzQnlVc2VySWRGZXRjaFRyaWdnZXJlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVzQnlVc2VySWRGZXRjaFRyaWdnZXJlZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcHJvamVjdElkOiBzdHJpbmcsIHB1YmxpYyByZXF1aXJlZFR5cGU6IHN0cmluZywgcHVibGljIGlzU3ByaW50VHlwZTogYm9vbGVhbikgeyB9XG59XG5cblxuZXhwb3J0IGNsYXNzIEVudGl0eVJvbGVEZXRhaWxzRmV0Y2hlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkVudGl0eVJvbGVEZXRhaWxzRmV0Y2hlZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZW50aXR5VHlwZVJvbGVGZWF0dXJlczogRW50aXR5Um9sZUZlYXR1cmVNb2RlbFtdKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEVudGl0eVJlb2xlc0J5VXNlcklkRmV0Y2hDb21wbGV0ZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5FbnRpdHlSZW9sZXNCeVVzZXJJZEZldGNoQ29tcGxldGVkO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbnRpdHlUeXBlUm9sZUZlYXR1cmVzOiBFbnRpdHlSb2xlRmVhdHVyZU1vZGVsW10pIHsgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5FbnRpdHlSb2xlc0J5VXNlcklkRmV0Y2hGYWlsZWQ7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWxpZGF0aW9uTWVzc2FnZXM6IFZhbGlkYXRpb25Nb2RlbFtdKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyRGVtb0RhdGFUcmlnZ3JlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkNsZWFyRGVtb0RhdGFUcmlnZ3JlZDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2xlYXJEZW1vRGF0YUNvbXBsZXRlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkNsZWFyRGVtb0RhdGFDb21wbGV0ZWQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBhbnlJZDogc3RyaW5nKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIENsZWFyRGVtb0RhdGFGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5DbGVhckRlbW9EYXRhRmFpbGVkO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB2YWxpZGF0aW9uTWVzc2FnZXM6IFZhbGlkYXRpb25Nb2RlbFtdKSB7IH1cbn1cblxuXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVRoZW1lVHJpZ2dlcmVkIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuR2V0Q29tcGFueVRoZW1lVHJpZ2dlcmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG5cblxuZXhwb3J0IGNsYXNzIEdldENvbXBhbnlUaGVtZUNvbXBsZXRlZCBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHR5cGUgPSBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkdldENvbXBhbnlUaGVtZUNvbXBsZXRlZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGhlbWVNb2RlbDogVGhlbWVNb2RlbCkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRDb21wYW55VGhlbWVGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55VGhlbWVGYWlsZWQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHZhbGlkYXRpb25NZXNzYWdlczogVmFsaWRhdGlvbk1vZGVsW10pIHsgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0VXNlclN0b3JlSWRUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRVc2VyU3RvcmVJZFRyaWdnZXJlZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VhcmNoVXNlclN0b3JlRGV0YWlsc01vZGVsOiBTdG9yZVNlYXJjaE1vZGVsKSB7IH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldFVzZXJTdG9yZUlkQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuR2V0VXNlclN0b3JlSWRDb21wbGV0ZWQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHVzZXJTdG9yZURldGFpbHM6IFN0b3JlTW9kZWwpIHsgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBHZXRDb21wYW55U2V0dGluZ3NUcmlnZ2VyZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55U2V0dGluZ3NUcmlnZ2VyZWQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBhbnlTZXR0aW5nc01vZGVsOiBDb21wYW55c2V0dGluZ3NNb2RlbCkgeyB9XG59XG5cblxuXG5leHBvcnQgY2xhc3MgR2V0Q29tcGFueVNldHRpbmdzQ29tcGxldGVkIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuR2V0Q29tcGFueVNldHRpbmdzQ29tcGxldGVkO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb21wYW55U2V0dGluZ3NNb2RlbDogYW55W10pIHsgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBHZXRDb21wYW55U2V0dGluZ3NGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRDb21wYW55U2V0dGluZ3NGYWlsZWQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHZhbGlkYXRpb25NZXNzYWdlczogVmFsaWRhdGlvbk1vZGVsW10pIHsgfVxufVxuXG5cblxuXG5leHBvcnQgY2xhc3MgR2V0VXNlclN0b3JlSWRGYWlsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICB0eXBlID0gQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5HZXRVc2VyU3RvcmVJZEZhaWxlZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2VzOiBhbnlbXSkgeyB9XG59XG5cbmV4cG9ydCBjbGFzcyBFeGNlcHRpb25IYW5kbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgdHlwZSA9IEF1dGhlbnRpY2F0aW9uQWN0aW9uVHlwZXMuRXhjZXB0aW9uSGFuZGxlZDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcpIHsgfVxufVxuXG5leHBvcnQgdHlwZSBBdXRoZW50aWNhdGlvbkFjdGlvbnMgPVxuICB8IEF1dGhlbnRpY2F0ZVVzZXJcbiAgfCBBdXRoZW50aWNhdGVkXG4gIHwgU2lnbmVkT2ZmXG4gIHwgVXNlckRldGFpbHNGZXRjaGluZ1xuICB8IFVzZXJEZXRhaWxzRmV0Y2hlZFxuICB8IFVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW5cbiAgfCBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckNvbXBhbnlMb2dpblxuICB8IFVzZXJJbml0aWFsRGV0YWlsc0ZldGNoZWRcbiAgfCBVc2VySW5pdGlhbERldGFpbHNGZXRjaGVkQ29tcGxldGVkXG4gIHwgQXV0aGVudGljYXRpb25GYWlsZWRcbiAgfCBDb21wYW55V29ya0l0ZW1TdGFydEZ1bmN0aW9uYWxpdHlSZXF1aXJlZFxuICB8IENvbXBhbnlXb3JrSXRlbVN0YXJ0RnVuY3Rpb25hbGl0eVJlcXVpcmVkU3VjY2Vzc1xuICB8IEF1dGhlbnRpY2F0ZU5ld1VzZXJcbiJdfQ==