@bnsights/bbsf-admin-portal 1.1.49 → 1.1.50

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 (256) hide show
  1. package/README.md +4 -0
  2. package/bnsights-bbsf-admin-portal-1.1.50.tgz +0 -0
  3. package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +3 -3
  4. package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +1 -1
  5. package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +16 -9
  6. package/esm2022/lib/Pages/_layout/components/aside/aside.component.mjs +3 -3
  7. package/esm2022/lib/Pages/_layout/components/topbar/topbar.component.mjs +15 -22
  8. package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +1 -1
  9. package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +1 -1
  10. package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +1 -1
  11. package/esm2022/lib/Pages/anonymouslayout/change-password/change-password.component.mjs +1 -1
  12. package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +1 -1
  13. package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +1 -1
  14. package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +1 -1
  15. package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +1 -1
  16. package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +4 -4
  17. package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +3 -3
  18. package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +167 -99
  19. package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +7 -4
  20. package/esm2022/lib/Pages/core/authentication/auth.guard.mjs +1 -1
  21. package/esm2022/lib/Pages/departments/department/department.component.mjs +108 -30
  22. package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +1 -1
  23. package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +1 -1
  24. package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +1 -1
  25. package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +1 -1
  26. package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +1 -1
  27. package/esm2022/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +1 -1
  28. package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +96 -15
  29. package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +1 -1
  30. package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +1 -1
  31. package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +1 -1
  32. package/esm2022/lib/Pages/home/home.component.mjs +17 -6
  33. package/esm2022/lib/Pages/home/home.module.mjs +1 -1
  34. package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +1 -1
  35. package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +1 -1
  36. package/esm2022/lib/Pages/license/license/license.component.mjs +1 -1
  37. package/esm2022/lib/Pages/license/license.module.mjs +1 -1
  38. package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +1 -1
  39. package/esm2022/lib/Pages/localizations/localizations.component.mjs +1 -1
  40. package/esm2022/lib/Pages/localizations/localizations.module.mjs +1 -1
  41. package/esm2022/lib/Pages/logs/log/log.component.mjs +1 -1
  42. package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +1 -1
  43. package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +1 -1
  44. package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +1 -1
  45. package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +85 -58
  46. package/esm2022/lib/Pages/notifications/edit-email/edit-email.component.mjs +1 -1
  47. package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +55 -26
  48. package/esm2022/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +1 -1
  49. package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +68 -16
  50. package/esm2022/lib/Pages/notifications/notifications.module.mjs +2 -2
  51. package/esm2022/lib/Pages/notifications/notifications.routing.mjs +66 -0
  52. package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +1 -1
  53. package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +105 -58
  54. package/esm2022/lib/Pages/organization/add-organization/add-organization.component.mjs +107 -0
  55. package/esm2022/lib/Pages/organization/add-organization/index.mjs +2 -0
  56. package/esm2022/lib/Pages/organization/edit-organization/edit-organization.component.mjs +115 -0
  57. package/esm2022/lib/Pages/organization/edit-organization/index.mjs +2 -0
  58. package/esm2022/lib/Pages/organization/index.mjs +7 -0
  59. package/esm2022/lib/Pages/organization/list-organization/index.mjs +2 -0
  60. package/esm2022/lib/Pages/organization/list-organization/list-organization.component.mjs +181 -0
  61. package/esm2022/lib/Pages/organization/organization.component.mjs +15 -0
  62. package/esm2022/lib/Pages/organization/organization.module.mjs +89 -0
  63. package/esm2022/lib/Pages/organization/organization.routing.mjs +36 -0
  64. package/esm2022/lib/Pages/providers/provider/provider.component.mjs +98 -43
  65. package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +1 -1
  66. package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +3 -3
  67. package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +73 -33
  68. package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +166 -105
  69. package/esm2022/lib/Pages/roles/roles-routing.module.mjs +24 -7
  70. package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +83 -16
  71. package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +2 -1
  72. package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +1 -1
  73. package/esm2022/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +1 -1
  74. package/esm2022/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +1 -1
  75. package/esm2022/lib/Pages/shared/Services/ConfigurationsService.service.mjs +4 -1
  76. package/esm2022/lib/Pages/shared/Services/DepartmentService.service.mjs +7 -3
  77. package/esm2022/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +1 -1
  78. package/esm2022/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +1 -1
  79. package/esm2022/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +6 -1
  80. package/esm2022/lib/Pages/shared/Services/HelpCenterService.service.mjs +7 -3
  81. package/esm2022/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +1 -1
  82. package/esm2022/lib/Pages/shared/Services/JobsService.service.mjs +1 -1
  83. package/esm2022/lib/Pages/shared/Services/LicenseService.service.mjs +1 -1
  84. package/esm2022/lib/Pages/shared/Services/LogsService.mjs +1 -1
  85. package/esm2022/lib/Pages/shared/Services/LookupGroupsService.service.mjs +1 -1
  86. package/esm2022/lib/Pages/shared/Services/LookupService.service.mjs +1 -1
  87. package/esm2022/lib/Pages/shared/Services/PermissionSetService.service.mjs +7 -3
  88. package/esm2022/lib/Pages/shared/Services/PermissionsService.service.mjs +1 -1
  89. package/esm2022/lib/Pages/shared/Services/PublicHolidayService.service.mjs +1 -1
  90. package/esm2022/lib/Pages/shared/Services/SectorService.service.mjs +4 -1
  91. package/esm2022/lib/Pages/shared/Services/TemplateService.service.mjs +4 -3
  92. package/esm2022/lib/Pages/shared/Services/WorkFlowVersionService.service.mjs +1 -1
  93. package/esm2022/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +1 -1
  94. package/esm2022/lib/Pages/shared/Services/WorkflowInstanceService.service.mjs +1 -1
  95. package/esm2022/lib/Pages/shared/Services/WorkflowLogVariablesService.service.mjs +1 -1
  96. package/esm2022/lib/Pages/shared/Services/WorkflowService.service.mjs +1 -1
  97. package/esm2022/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +1 -1
  98. package/esm2022/lib/Pages/shared/Services/injectionModuleService.service.mjs +52 -22
  99. package/esm2022/lib/Pages/shared/Services/localizationsService.service .mjs +1 -1
  100. package/esm2022/lib/Pages/shared/Services/organization.service.mjs +36 -0
  101. package/esm2022/lib/Pages/shared/Services/provider.service.mjs +1 -1
  102. package/esm2022/lib/Pages/shared/Services/survey-question.service.mjs +1 -1
  103. package/esm2022/lib/Pages/shared/Services/survey.service.mjs +1 -1
  104. package/esm2022/lib/Pages/shared/Services/userService.service.mjs +1 -1
  105. package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +1 -1
  106. package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +1 -1
  107. package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +1 -1
  108. package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +1 -1
  109. package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +1 -1
  110. package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +1 -1
  111. package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +1 -1
  112. package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +1 -1
  113. package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +1 -1
  114. package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +1 -1
  115. package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +1 -1
  116. package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +1 -1
  117. package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +1 -1
  118. package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +1 -1
  119. package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +1 -1
  120. package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +1 -1
  121. package/esm2022/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +1 -1
  122. package/esm2022/lib/Pages/shared/config.service.mjs +17 -0
  123. package/esm2022/lib/Pages/shared/constants.mjs +2 -1
  124. package/esm2022/lib/Pages/shared/index.mjs +14 -0
  125. package/esm2022/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.mjs +36 -3
  126. package/esm2022/lib/Pages/shared/models/DepartmentModels/DepartmentModel.mjs +1 -1
  127. package/esm2022/lib/Pages/shared/models/DocumentsModels/DocumentHeaderAndFooterTemplate.mjs +1 -1
  128. package/esm2022/lib/Pages/shared/models/DocumentsModels/DocumentTemplateDTO.mjs +1 -1
  129. package/esm2022/lib/Pages/shared/models/DocumentsModels/DocumentTemplateInfoDTO.mjs +1 -1
  130. package/esm2022/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.mjs +1 -1
  131. package/esm2022/lib/Pages/shared/models/ImpersonationRuleModels/ImpersonationRuleModel.mjs +1 -1
  132. package/esm2022/lib/Pages/shared/models/ImpersonationRuleModels/ParticipantModel.mjs +1 -1
  133. package/esm2022/lib/Pages/shared/models/InjectedModuleModel/InjectedModule.mjs +1 -1
  134. package/esm2022/lib/Pages/shared/models/LicenseModel/LicenseModel.mjs +1 -1
  135. package/esm2022/lib/Pages/shared/models/LocalizationModels/EditResourceModel.mjs +1 -1
  136. package/esm2022/lib/Pages/shared/models/LocalizationModels/UploadJsonVM.mjs +1 -1
  137. package/esm2022/lib/Pages/shared/models/Lookups/LookupGroupModel.mjs +1 -1
  138. package/esm2022/lib/Pages/shared/models/Lookups/LookupItem.mjs +1 -1
  139. package/esm2022/lib/Pages/shared/models/Lookups/LookupModel.mjs +1 -1
  140. package/esm2022/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.mjs +9 -6
  141. package/esm2022/lib/Pages/shared/models/NotificationsModels/EmailTemplateInfoDTO.mjs +1 -1
  142. package/esm2022/lib/Pages/shared/models/NotificationsModels/EmailTemplateTesterModel.mjs +1 -1
  143. package/esm2022/lib/Pages/shared/models/NotificationsModels/SMSTemplateInfoDTO.mjs +1 -1
  144. package/esm2022/lib/Pages/shared/models/NotificationsModels/SMSTemplateTesterModel.mjs +1 -1
  145. package/esm2022/lib/Pages/shared/models/NotificationsModels/SendEmailTemplateModel.mjs +1 -1
  146. package/esm2022/lib/Pages/shared/models/NotificationsModels/TemplateDTO.mjs +1 -2
  147. package/esm2022/lib/Pages/shared/models/NotificationsModels/TemplateEditViewModel.mjs +1 -1
  148. package/esm2022/lib/Pages/shared/models/PermissionsModels/PermissionModel.mjs +17 -3
  149. package/esm2022/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.mjs +17 -3
  150. package/esm2022/lib/Pages/shared/models/PublicHolidayModels/PublicHolidayModel.mjs +1 -1
  151. package/esm2022/lib/Pages/shared/models/SectorModels/SectorModel.mjs +1 -1
  152. package/esm2022/lib/Pages/shared/models/SurveyModels/add-survey-submissio.mjs +1 -1
  153. package/esm2022/lib/Pages/shared/models/SurveyModels/survey-field-options.mjs +1 -1
  154. package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question-option.mjs +1 -1
  155. package/esm2022/lib/Pages/shared/models/SurveyModels/survey-question.mjs +1 -1
  156. package/esm2022/lib/Pages/shared/models/UserModels/AddUserModel.mjs +1 -1
  157. package/esm2022/lib/Pages/shared/models/UserModels/DropdownsResponseModel.mjs +3 -1
  158. package/esm2022/lib/Pages/shared/models/UserModels/EditUserModel.mjs +1 -1
  159. package/esm2022/lib/Pages/shared/models/UserModels/ExportedFileDTO.mjs +3 -0
  160. package/esm2022/lib/Pages/shared/models/UserModels/FilteredUsersRequestModel.mjs +9 -0
  161. package/esm2022/lib/Pages/shared/models/UserModels/UserListingViewModel.mjs +8 -0
  162. package/esm2022/lib/Pages/shared/models/UserModels/UserModelDTO.mjs +41 -0
  163. package/esm2022/lib/Pages/shared/models/UserModels/UserSearchParamDTO.mjs +1 -1
  164. package/esm2022/lib/Pages/shared/models/UserModels/UsersCountsDTO.mjs +3 -0
  165. package/esm2022/lib/Pages/shared/models/UserModels/index.mjs +13 -0
  166. package/esm2022/lib/Pages/shared/models/WorkflowModels/VariableLookupModel.mjs +1 -1
  167. package/esm2022/lib/Pages/shared/models/WorkflowModels/WFActivityModel.mjs +1 -1
  168. package/esm2022/lib/Pages/shared/models/WorkflowModels/WFCreationModel.mjs +1 -1
  169. package/esm2022/lib/Pages/shared/models/WorkflowModels/WFVariableModel.mjs +1 -1
  170. package/esm2022/lib/Pages/shared/models/index.mjs +24 -0
  171. package/esm2022/lib/Pages/shared/models/organization/organization.model.mjs +15 -0
  172. package/esm2022/lib/Pages/shared/modules/public-survey.module.mjs +1 -1
  173. package/esm2022/lib/Pages/shared/modules/survey.module.mjs +1 -1
  174. package/esm2022/lib/Pages/users/users.component.mjs +143 -60
  175. package/esm2022/lib/Pages/users/users.module.mjs +1 -1
  176. package/esm2022/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +1 -1
  177. package/esm2022/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +1 -1
  178. package/esm2022/lib/Pages/workflows/instance-info/instance-info.component.mjs +1 -1
  179. package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +1 -1
  180. package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +1 -1
  181. package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +1 -1
  182. package/esm2022/lib/masterlayout.component.mjs +8 -14
  183. package/esm2022/lib/masterlayout.module.mjs +2 -25
  184. package/esm2022/lib/masterlayout.routing.mjs +43 -0
  185. package/fesm2022/bnsights-bbsf-admin-portal.mjs +2516 -1136
  186. package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
  187. package/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.d.ts +5 -2
  188. package/lib/Pages/_layout/components/topbar/topbar.component.d.ts +2 -8
  189. package/lib/Pages/configurations/configuration/configuration.component.d.ts +21 -8
  190. package/lib/Pages/core/authentication/admin.guard.d.ts +3 -2
  191. package/lib/Pages/departments/department/department.component.d.ts +15 -3
  192. package/lib/Pages/helpCenter/help-center/help-center.component.d.ts +16 -3
  193. package/lib/Pages/home/home.component.d.ts +5 -2
  194. package/lib/Pages/notifications/add-notification/add-notification.component.d.ts +16 -5
  195. package/lib/Pages/notifications/edit-notification/edit-notification.component.d.ts +15 -4
  196. package/lib/Pages/notifications/master-layouts/master-layouts.component.d.ts +17 -5
  197. package/lib/Pages/notifications/notifications.module.d.ts +1 -1
  198. package/lib/Pages/notifications/templates/templates.component.d.ts +13 -3
  199. package/lib/Pages/organization/add-organization/add-organization.component.d.ts +36 -0
  200. package/lib/Pages/organization/add-organization/index.d.ts +1 -0
  201. package/lib/Pages/organization/edit-organization/edit-organization.component.d.ts +36 -0
  202. package/lib/Pages/organization/edit-organization/index.d.ts +1 -0
  203. package/lib/Pages/organization/index.d.ts +6 -0
  204. package/lib/Pages/organization/list-organization/index.d.ts +1 -0
  205. package/lib/Pages/organization/list-organization/list-organization.component.d.ts +59 -0
  206. package/lib/Pages/organization/organization.component.d.ts +8 -0
  207. package/lib/Pages/organization/organization.module.d.ts +24 -0
  208. package/lib/Pages/organization/organization.routing.d.ts +7 -0
  209. package/lib/Pages/providers/provider/provider.component.d.ts +17 -8
  210. package/lib/Pages/roles/permissions/permissions.component.d.ts +14 -5
  211. package/lib/Pages/roles/permissionsets/permissionsets.component.d.ts +21 -8
  212. package/lib/Pages/sectors/sector/sector.component.d.ts +12 -1
  213. package/lib/Pages/shared/Services/ConfigurationsService.service.d.ts +2 -1
  214. package/lib/Pages/shared/Services/DepartmentService.service.d.ts +2 -1
  215. package/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.d.ts +2 -0
  216. package/lib/Pages/shared/Services/HelpCenterService.service.d.ts +2 -1
  217. package/lib/Pages/shared/Services/PermissionSetService.service.d.ts +2 -1
  218. package/lib/Pages/shared/Services/SectorService.service.d.ts +1 -0
  219. package/lib/Pages/shared/Services/TemplateService.service.d.ts +1 -1
  220. package/lib/Pages/shared/Services/injectionModuleService.service.d.ts +2 -0
  221. package/lib/Pages/shared/Services/organization.service.d.ts +17 -0
  222. package/lib/Pages/shared/Services/userService.service.d.ts +4 -1
  223. package/lib/Pages/shared/config.service.d.ts +8 -0
  224. package/lib/Pages/shared/constants.d.ts +1 -0
  225. package/lib/Pages/shared/index.d.ts +5 -0
  226. package/lib/Pages/shared/models/ConfigurationModels/ConfigurationModel.d.ts +32 -28
  227. package/lib/Pages/shared/models/DepartmentModels/DepartmentModel.d.ts +1 -0
  228. package/lib/Pages/shared/models/HelpCenterModels/HelpCenterItemModel.d.ts +1 -0
  229. package/lib/Pages/shared/models/NotificationsModels/EmailHeaderAndFooterTemplate.d.ts +8 -6
  230. package/lib/Pages/shared/models/NotificationsModels/TemplateDTO.d.ts +0 -1
  231. package/lib/Pages/shared/models/PermissionsModels/PermissionModel.d.ts +17 -5
  232. package/lib/Pages/shared/models/PermissionsModels/PermissionSetModel.d.ts +20 -8
  233. package/lib/Pages/shared/models/SectorModels/SectorModel.d.ts +1 -0
  234. package/lib/Pages/shared/models/UserModels/DropdownsResponseModel.d.ts +2 -0
  235. package/lib/Pages/shared/models/UserModels/EditUserModel.d.ts +1 -0
  236. package/lib/Pages/shared/models/UserModels/ExportedFileDTO.d.ts +4 -0
  237. package/lib/Pages/shared/models/UserModels/FilteredUsersRequestModel.d.ts +7 -0
  238. package/lib/Pages/shared/models/UserModels/UserListingViewModel.d.ts +10 -0
  239. package/lib/Pages/shared/models/UserModels/UserModelDTO.d.ts +38 -0
  240. package/lib/Pages/shared/models/UserModels/UserSearchParamDTO.d.ts +1 -0
  241. package/lib/Pages/shared/models/UserModels/UsersCountsDTO.d.ts +5 -0
  242. package/lib/Pages/shared/models/UserModels/index.d.ts +12 -0
  243. package/lib/Pages/shared/models/index.d.ts +2 -0
  244. package/lib/Pages/shared/models/organization/organization.model.d.ts +22 -0
  245. package/lib/Pages/users/users.component.d.ts +17 -7
  246. package/lib/masterlayout.component.d.ts +1 -2
  247. package/lib/masterlayout.module.d.ts +1 -1
  248. package/package.json +7 -7
  249. package/src/lib/assets/images/menu/organization.svg +16 -0
  250. package/src/lib/assets/sass/custom-styles.scss +2 -2
  251. package/src/lib/assets/sass/style.scss +1 -0
  252. package/bnsights-bbsf-admin-portal-1.1.49.tgz +0 -0
  253. package/esm2022/lib/Pages/notifications/notifications-routing.module.mjs +0 -39
  254. package/esm2022/lib/masterlayout-routing.module.mjs +0 -41
  255. /package/lib/Pages/notifications/{notifications-routing.module.d.ts → notifications.routing.d.ts} +0 -0
  256. /package/lib/{masterlayout-routing.module.d.ts → masterlayout.routing.d.ts} +0 -0
@@ -294,4 +294,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
294
294
  type: ViewChild,
295
295
  args: ['ConfirmationModalControl', { static: false }]
296
296
  }] } });
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9sb29rdXBzL2xvb2t1cC1pdGVtL2xvb2t1cC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtaXRlbS9sb29rdXAtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBOEIsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFtQixhQUFhLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxUSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVNyRixNQUFNLE9BQU8sbUJBQW1CO0lBeUQ5QixZQUNVLGVBQWdDLEVBQ2pDLGNBQThCLEVBQzdCLGtCQUFzQyxFQUN0QyxpQkFBbUMsRUFDbkMsYUFBNEIsRUFDNUIsY0FBOEIsRUFDOUIsWUFBc0IsRUFDdEIscUJBQTRDO1FBUDVDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsdUJBQWtC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QUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFJRCxzQ0FBc0M7SUFDdEMsK0RBQStEO0lBQy9ELGdCQUFnQjtJQUNoQiw2Q0FBNkM7SUFDN0Msb0JBQW9CLENBQUMsV0FBVztRQUM5QixJQUFJLFdBQVc7WUFDYixJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7O1lBRXhKLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUE7SUFDckUsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBblhVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDRTQ2pCaEMsb29WQStNQTs7MkZEOUxhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUI7cVNBMEJrQyxhQUFhO3NCQUF6RSxTQUFTO3VCQUFDLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkEwQkQsd0JBQXdCO3NCQUFqRixTQUFTO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hPcHRpb25zLCBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgUGFnaW5nQ29tcG9uZW50LCBQYWdpbmdPcHRpb25zLCBSYW5nZU51bWJlciwgVGV4dEFyZWFPcHRpb25zLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSB9IGZyb20gJ25neC1jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBMb29rVXBJdGVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Mb29rdXBzL0xvb2t1cEl0ZW0nO1xyXG5pbXBvcnQgeyBMb29rdXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xvb2t1cFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEVuZ2xpc2hBcmFiaWNEVE8gfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxvb2t1cC1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9va3VwLWl0ZW0uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb29rdXBJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAvL1BhZ2UgcmVxdWlyZW1lbnRzXHJcbiAgQXBpVXJsID0gdGhpcy5sb29rdXBTZXJ2aWNlLkFwaVVybFxyXG4gIFByb2R1Y3Rpb25Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vUGFyZW50IExvb2t1cCBkYXRhXHJcbiAgTG9va3VwSWQ6IHN0cmluZztcclxuICBMb29rdXBOYW1lOiBFbmdsaXNoQXJhYmljRFRPID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICBJc1BhcmVudExvb2t1cE1hbmFnZWFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIC8vRmlsdGVyIGFuZCBwYWdpbmcgY29tcG9uZW50c1xyXG4gIHNlYXJjaFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIGxvb2t1cElkVGV4dEJveDogVGV4dEJveE9wdGlvbnM7XHJcbiAgbG9va3VwSXRlbUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBzaG93RmlsdGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9va3VwSXRlbVBhZ2luZ1Jlc3VsdDogYW55W10gPSBbXTtcclxuICBmaWx0ZXJlZExvb2t1cEl0ZW1QYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgbG9va3VwSXRlbVBhZ2luZzogUGFnaW5nT3B0aW9ucztcclxuICB0ZXh0SW5wdXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgbG9va3VwSWRJbnB1dEZpbHRlcjogRmlsdGVySXRlbTtcclxuICBpc0ZpbHRlckxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ0xvb2t1cEl0ZW1QYWdpbmdWaWV3RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwYWdpbmdFbGVtZW50OiBQYWdpbmdDb21wb25lbnQ8YW55PjtcclxuXHJcbiAgLy9BZGQgTW9kZWwgQ29udHJvbHNcclxuICBhZGRMb29rdXBJdGVtRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBtdWx0aUxpbmd1YWxOYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9uc1xyXG4gIHN5c05hbWU6IFRleHRCb3hPcHRpb25zO1xyXG4gIHZhbHVlOiBUZXh0QXJlYU9wdGlvbnM7XHJcbiAgZGlzcGxheU9yZGVyOiBUZXh0Qm94T3B0aW9ucztcclxuICBpc01hbmFnZWFibGU6IENoZWNrQm94T3B0aW9ucztcclxuXHJcbiAgLy9FZGl0IE1vZGVsIENvbnRyb2xzXHJcbiAgZWRpdExvb2t1cEl0ZW1Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZWRpdExvb2t1cEl0ZW1Gb3JtT3B0aW9uczogRm9ybU9wdGlvbnNcclxuICBsb29rdXBJdGVtSWQ6IHN0cmluZ1xyXG4gIGVkaXRMb29rdXBJZDogbnVtYmVyXHJcbiAgZWRpdE11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zXHJcbiAgZWRpdFN5c05hbWU6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRWYWx1ZTogVGV4dEFyZWFPcHRpb25zO1xyXG4gIGVkaXREaXNwbGF5T3JkZXI6IFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRJc01hbmFnZWFibGU6IENoZWNrQm94T3B0aW9ucztcclxuXHJcbiAgLy9kZWxldGUgIE1vZGVsIENvbnRyb2xzXHJcbiAgZGVsZXRlZExvb2t1cEl0ZW1JZDogc3RyaW5nO1xyXG4gIGRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnM6IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucztcclxuICBkZWxldGVDb250cm9sTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnQ29uZmlybWF0aW9uTW9kYWxDb250cm9sJywgeyBzdGF0aWM6IGZhbHNlIH0pIENvbmZpcm1hdGlvbk1vZGFsQ29udHJvbDogQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQ7XHJcblxyXG5cclxuICAvL0dlbmVyYXRlQ29kZSAgTW9kZWwgQ29udHJvbHNcclxuICBnZW5lcmF0ZUNvZGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zXHJcbiAgZ2VuZXJhdGVDb2RlVGV4dEFyZWE6IFRleHRBcmVhT3B0aW9ucztcclxuICB2YWx1ZVRvQ29weTogc3RyaW5nID0gXCJcIjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcGFnZUluZm9TZXJ2aWNlOiBQYWdlSW5mb1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2NsaXBib2FyZFNlcnZpY2U6IENsaXBib2FyZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxvb2t1cFNlcnZpY2U6IExvb2t1cFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucGFyYW1zLnN1YnNjcmliZShwYXJhbXMgPT4ge1xyXG4gICAgICB0aGlzLkxvb2t1cElkID0gcGFyYW1zWydpZCddO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5Qcm9kdWN0aW9uTW9kZSA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFByb2R1Y3Rpb25Nb2RlKClcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vUGFnaW5nIGZ1bmN0aW9uc1xyXG4gIHNldExvb2t1cEl0ZW1MaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5sb29rdXBJdGVtUGFnaW5nUmVzdWx0ID0gcmVzdWx0XHJcbiAgICB0aGlzLmZpbHRlcmVkTG9va3VwSXRlbVBhZ2luZ1Jlc3VsdCA9IHRoaXMubG9va3VwSXRlbVBhZ2luZ1Jlc3VsdFxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmxvb2t1cFNlcnZpY2UuZ2V0TG9va3VwSW5mbyh0aGlzLkxvb2t1cElkKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICB0aGlzLmlzRmlsdGVyTG9hZGVkID0gZmFsc2VcclxuICAgICAgbGV0IHJlc3VsdE1vZGVsID0gcmVzdWx0IGFzIGFueVxyXG4gICAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gcmVzdWx0TW9kZWwudmFsLm5hbWUuY3VycmVudF9GYWlsT3ZlcjtcclxuICAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJIb21lXCIpLCBwYXRoOiAnL0FkbWluL0hvbWUnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6ICcnLCBwYXRoOiAnJywgaXNTZXBhcmF0b3I6IHRydWUsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICAgIHsgdGl0bGU6IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkxvb2t1cHNcIiksIHBhdGg6ICcvQWRtaW4vTG9va3Vwcy9Mb29rdXBzJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG5cclxuICAgICAgXTtcclxuXHJcbiAgICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZUJyZWFkY3J1bWJzKCk7XHJcblxyXG5cclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveC5uYW1lID0gXCJzZWFyY2hUZXh0Qm94XCJcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LmhpZGVMYWJlbCA9IHRydWVcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LnR5cGUgPSBJbnB1dFR5cGUuVGV4dFxyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3gucGxhY2Vob2xkZXIgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTZWFyY2hCeU5hbWVcIilcclxuXHJcblxyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmZvcm1Db250cm9sTmFtZSA9IFwic2VhcmNoVGV4dEJveFwiXHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIlxyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5pc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgICB0aGlzLnRleHRJbnB1dEZpbHRlci5maWx0ZXJUeXBlID0gRmlsdGVyVHlwZS5UZXh0Qm94XHJcblxyXG4gICAgICAvLyBUZXh0Qm94IGludGlcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3ggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3gubmFtZSA9IFwiTG9va3VwSWRUZXh0Qm94XCJcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3guaGlkZUxhYmVsID0gdHJ1ZVxyXG4gICAgICB0aGlzLmxvb2t1cElkVGV4dEJveC50eXBlID0gSW5wdXRUeXBlLlRleHRcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3gudmFsdWUgPSB0aGlzLkxvb2t1cElkO1xyXG5cclxuXHJcbiAgICAgIHRoaXMubG9va3VwSWRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICAgIHRoaXMubG9va3VwSWRJbnB1dEZpbHRlci5mb3JtQ29udHJvbE5hbWUgPSBcIkxvb2t1cElkVGV4dEJveFwiXHJcbiAgICAgIHRoaXMubG9va3VwSWRJbnB1dEZpbHRlci5hY3Rpb25QYXJhbWV0ZXJOYW1lID0gXCJsb29rdXBJZFwiXHJcbiAgICAgIHRoaXMubG9va3VwSWRJbnB1dEZpbHRlci5pc0Zvcm1Db250cm9sID0gdHJ1ZVxyXG4gICAgICB0aGlzLmxvb2t1cElkSW5wdXRGaWx0ZXIuZmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveFxyXG5cclxuXHJcbiAgICAgIHRoaXMubG9va3VwSXRlbVBhZ2luZyA9IG5ldyBQYWdpbmdPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMubG9va3VwSXRlbVBhZ2luZy5hY3Rpb25Qb3N0VVJMID0gdGhpcy5BcGlVcmwgKyAnR2V0TG9va3VwSXRlbXNCeUZpbHRlcic7XHJcbiAgICAgIHRoaXMubG9va3VwSXRlbVBhZ2luZy5vbktleVByZXNzRmlsdGVyc0NvbnRyb2xOYW1lcyA9IFtcInNlYXJjaFRleHRCb3hcIiwgXCJMb29rdXBJZFRleHRCb3hcIl1cclxuICAgICAgdGhpcy5sb29rdXBJdGVtUGFnaW5nLmZpbHRlcnMgPSBbdGhpcy5sb29rdXBJZElucHV0RmlsdGVyLCB0aGlzLnRleHRJbnB1dEZpbHRlcl1cclxuXHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vLy8gU3RhcnQgYWRkIExvb2t1cCBJdGVtIFBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG4gIHNob3dBZGRMb29rdXBJdGVtTW9kYWwoQWRkTG9va3VwSXRlbU1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy5hZGRMb29rdXBJdGVtRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuYWRkTG9va3VwSXRlbUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5mb3JtR3JvdXAgPSB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtXHJcbiAgICB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5nZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMb29rdXBJdGVtTW9kZWw7XHJcbiAgICB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEFkZExvb2t1cEl0ZW1GdW5jdGlvbjtcclxuICAgIHRoaXMuYWRkTG9va3VwSXRlbUZvcm1PcHRpb25zLnBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG5cclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLm5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5hcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuZW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUubWF4TGVuZ3RoID0gNTAwMDtcclxuXHJcbiAgICB0aGlzLnN5c05hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgIHRoaXMuc3lzTmFtZS5uYW1lID0gXCJTeXNOYW1lXCI7XHJcbiAgICB0aGlzLnN5c05hbWUubGFiZWxLZXkgPSBcIlN5c05hbWVcIjtcclxuICAgIHRoaXMuc3lzTmFtZS50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICB0aGlzLnN5c05hbWUudmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5zeXNOYW1lLm1heExlbmd0aCA9IDEwMDtcclxuXHJcbiAgICB0aGlzLnZhbHVlID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgdGhpcy52YWx1ZS5uYW1lID0gXCJWYWx1ZVwiO1xyXG4gICAgdGhpcy52YWx1ZS5sYWJlbEtleSA9IFwiVmFsdWVcIjtcclxuICAgIHRoaXMudmFsdWUudmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy52YWx1ZS5tYXhMZW5ndGggPSA1MDAwO1xyXG5cclxuXHJcbiAgICB0aGlzLmRpc3BsYXlPcmRlciA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5kaXNwbGF5T3JkZXIubmFtZSA9IFwiRGlzcGxheU9yZGVyXCJcclxuICAgIHRoaXMuZGlzcGxheU9yZGVyLmxhYmVsS2V5ID0gXCJEaXNwbGF5T3JkZXJcIlxyXG4gICAgdGhpcy5kaXNwbGF5T3JkZXIudHlwZSA9IElucHV0VHlwZS5OdW1iZXJcclxuICAgIHRoaXMuZGlzcGxheU9yZGVyLm51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKClcclxuICAgIHRoaXMuZGlzcGxheU9yZGVyLm51bWJlclJhbmdlLmZyb20gPSAxO1xyXG4gICAgdGhpcy5kaXNwbGF5T3JkZXIubnVtYmVyUmFuZ2UudG8gPSAxMDAwMDAwMDAwO1xyXG5cclxuICAgIHRoaXMuaXNNYW5hZ2VhYmxlID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5pc01hbmFnZWFibGUubmFtZSA9IFwiSXNNYW5hZ2VhYmxlXCJcclxuICAgIHRoaXMuaXNNYW5hZ2VhYmxlLmxhYmVsS2V5ID0gXCJNYW5hZ2VhYmxlXCJcclxuXHJcblxyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihBZGRMb29rdXBJdGVtTW9kYWwpO1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldEFkZExvb2t1cEl0ZW1Nb2RlbCA9ICgpID0+IHtcclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5hZGRMb29rdXBJdGVtRm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICBsZXQgQWRkTW9kZWwgPSBuZXcgTG9va1VwSXRlbSgpO1xyXG4gICAgQWRkTW9kZWwuTmFtZSA9IFJlc3VsdE1vZGVsLk5hbWVcclxuICAgIGlmICghdGhpcy5Qcm9kdWN0aW9uTW9kZSkge1xyXG4gICAgICBBZGRNb2RlbC5TeXNOYW1lID0gUmVzdWx0TW9kZWwuU3lzTmFtZVxyXG4gICAgfVxyXG4gICAgQWRkTW9kZWwuVmFsdWUgPSBSZXN1bHRNb2RlbC5WYWx1ZVxyXG4gICAgQWRkTW9kZWwuRGlzcGxheU9yZGVyID0gUmVzdWx0TW9kZWwuRGlzcGxheU9yZGVyXHJcbiAgICBBZGRNb2RlbC5Mb29rdXBJRF9HVUlEID0gdGhpcy5Mb29rdXBJZFxyXG4gICAgQWRkTW9kZWwuTWFuYWdlYWJsZSA9IHRoaXMuUHJvZHVjdGlvbk1vZGU7XHJcbiAgICBwYXJhbUFycmF5LnB1c2goQWRkTW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRBZGRMb29rdXBJdGVtRnVuY3Rpb24gPSAoQWRkTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG9va3VwU2VydmljZS5hZGRMb29rdXBJdGVtKEFkZE1vZGVsKTtcclxuICB9XHJcbiAgLy8vLy8vLy8vLy8vIEVuZCBvZiBhZGQgTG9va3VwIEdyb3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vU3RhcnQgb2YgZWRpdCBMb29rdXAgSXRlbSBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHNob3dFZGl0TG9va3VwSXRlbU1vZGFsKGxvb2t1cEl0ZW1JRDogc3RyaW5nLCBlZGl0TG9va3VwR3JvdXBNb2RhbCkge1xyXG5cclxuICAgIHRoaXMuZWRpdExvb2t1cEl0ZW1Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgdGhpcy5lZGl0TG9va3VwSXRlbUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnMuZm9ybUdyb3VwID0gdGhpcy5lZGl0TG9va3VwSXRlbUZvcm1cclxuICAgIHRoaXMuZWRpdExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5nZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRFZGl0TG9va3VwSXRlbU1vZGVsO1xyXG4gICAgdGhpcy5lZGl0TG9va3VwSXRlbUZvcm1PcHRpb25zLnNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZ2V0RWRpdExvb2t1cEl0ZW1GdW5jdGlvbjtcclxuICAgIHRoaXMuZWRpdExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5wYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnRcclxuXHJcbiAgICB0aGlzLmxvb2t1cFNlcnZpY2UuZ2V0TG9va3VwSXRlbShsb29rdXBJdGVtSUQpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgbGV0IExvb2t1cEl0ZW0gPSByZXN1bHQubW9kZWwgYXMgYW55O1xyXG4gICAgICBsZXQgTmFtZSA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgICAgIE5hbWUuYXJhYmljID0gTG9va3VwSXRlbVswXS5uYW1lLmFyYWJpYztcclxuICAgICAgTmFtZS5lbmdsaXNoID0gTG9va3VwSXRlbVswXS5uYW1lLmVuZ2xpc2g7XHJcblxyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUubmFtZSA9IFwiTmFtZVwiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLmFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5lbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS52YWx1ZSA9IE5hbWU7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUubWF4TGVuZ3RoID0gNTAwMDtcclxuXHJcblxyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUubmFtZSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lLmxhYmVsS2V5ID0gXCJTeXNOYW1lXCI7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUudHlwZSA9IElucHV0VHlwZS5UZXh0O1xyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lLnZhbHVlID0gTG9va3VwSXRlbVswXS5zeXNOYW1lO1xyXG4gICAgICB0aGlzLmVkaXRTeXNOYW1lLm1heExlbmd0aCA9IDEwMDtcclxuXHJcblxyXG4gICAgICB0aGlzLmVkaXRWYWx1ZSA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0VmFsdWUubmFtZSA9IFwiVmFsdWVcIjtcclxuICAgICAgdGhpcy5lZGl0VmFsdWUubGFiZWxLZXkgPSBcIlZhbHVlXCI7XHJcbiAgICAgIHRoaXMuZWRpdFZhbHVlLnZhbHVlID0gTG9va3VwSXRlbVswXS52YWx1ZTtcclxuICAgICAgdGhpcy5lZGl0VmFsdWUubWF4TGVuZ3RoID0gNTAwMDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdERpc3BsYXlPcmRlciA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXREaXNwbGF5T3JkZXIubmFtZSA9IFwiRGlzcGxheU9yZGVyXCJcclxuICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyLmxhYmVsS2V5ID0gXCJEaXNwbGF5T3JkZXJcIlxyXG4gICAgICB0aGlzLmVkaXREaXNwbGF5T3JkZXIudHlwZSA9IElucHV0VHlwZS5OdW1iZXJcclxuICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyLnZhbHVlID0gTG9va3VwSXRlbVswXS5kaXNwbGF5T3JkZXI7XHJcbiAgICAgIHRoaXMuZWRpdERpc3BsYXlPcmRlci5udW1iZXJSYW5nZSA9IG5ldyBSYW5nZU51bWJlcigpXHJcbiAgICAgIHRoaXMuZWRpdERpc3BsYXlPcmRlci5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyLm51bWJlclJhbmdlLnRvID0gMTAwMDAwMDAwMDtcclxuXHJcblxyXG5cclxuXHJcbiAgICAgIHRoaXMuZWRpdElzTWFuYWdlYWJsZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlLm5hbWUgPSBcIk1hbmFnZWFibGVcIlxyXG4gICAgICB0aGlzLmVkaXRJc01hbmFnZWFibGUubGFiZWxLZXkgPSBcIk1hbmFnZWFibGVcIlxyXG4gICAgICB0aGlzLmVkaXRJc01hbmFnZWFibGUudmFsdWUgPSBMb29rdXBJdGVtWzBdLm1hbmFnZWFibGVcclxuICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlLmlzRGlzYWJsZWQgPSAodGhpcy5Qcm9kdWN0aW9uTW9kZSAmJiBMb29rdXBJdGVtWzBdLm1hbmFnZWFibGUgPT0gZmFsc2UpID09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmxvb2t1cEl0ZW1JZCA9IExvb2t1cEl0ZW1bMF0uaURfR1VJRDtcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihlZGl0TG9va3VwR3JvdXBNb2RhbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRFZGl0TG9va3VwSXRlbU1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICBsZXQgRWRpdE1vZGVsID0gbmV3IExvb2tVcEl0ZW0oKTtcclxuICAgIEVkaXRNb2RlbC5JRF9HVUlEID0gdGhpcy5sb29rdXBJdGVtSWQ7XHJcbiAgICBFZGl0TW9kZWwuTG9va3VwSURfR1VJRCA9IHRoaXMuTG9va3VwSWQ7XHJcbiAgICBFZGl0TW9kZWwuTmFtZSA9IFJlc3VsdE1vZGVsLk5hbWVcclxuICAgIGlmICghdGhpcy5Qcm9kdWN0aW9uTW9kZSkge1xyXG4gICAgICBFZGl0TW9kZWwuU3lzTmFtZSA9IFJlc3VsdE1vZGVsLlN5c05hbWVcclxuICAgIH1cclxuICAgIEVkaXRNb2RlbC5WYWx1ZSA9IFJlc3VsdE1vZGVsLlZhbHVlXHJcbiAgICBFZGl0TW9kZWwuRGlzcGxheU9yZGVyID0gUmVzdWx0TW9kZWwuRGlzcGxheU9yZGVyXHJcbiAgICBFZGl0TW9kZWwuTWFuYWdlYWJsZSA9IFJlc3VsdE1vZGVsLk1hbmFnZWFibGVcclxuICAgIHBhcmFtQXJyYXkucHVzaChFZGl0TW9kZWwpO1xyXG4gICAgcmV0dXJuIHBhcmFtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXRFZGl0TG9va3VwSXRlbUZ1bmN0aW9uID0gKEVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb29rdXBTZXJ2aWNlLmVkaXRMb29rdXBJdGVtKEVkaXRNb2RlbClcclxuICB9XHJcbiAgLy8vLy8vLy8vLy9FbmQgb2YgZWRpdCBMb29rdXAgSXRlbSBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vU3RhcnQgb2YgZGVsZXRlIExvb2t1cCBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHNob3dEZWxldGVMb29rdXBJdGVtTW9kYWwobG9va3VwSXRlbUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5kZWxldGVkTG9va3VwSXRlbUlkID0gbG9va3VwSXRlbUlkO1xyXG4gICAgLy9hcnJheSBzZW50IHRvIHNlcnZpY2UgZnVuY3Rpb25cclxuICAgIGxldCBwYXJhbUFycmF5OiBhbnlbXSA9IFtdO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKHRoaXMuZGVsZXRlZExvb2t1cEl0ZW1JZCk7XHJcblxyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zID0gbmV3IENvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucygpO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLnNlcnZpY2VTdWJtaXRGdW5jdGlvbiA9IHRoaXMuZGVsZXRlTG9va3VwSXRlbTtcclxuICAgIHRoaXMuZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9ucy5zZXJ2aWNlU3VibWl0TW9kZWwgPSBwYXJhbUFycmF5O1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLnBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudDtcclxuXHJcbiAgICB0aGlzLmRlbGV0ZUNvbnRyb2xMb2FkZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuQ29uZmlybWF0aW9uTW9kYWxDb250cm9sLnNob3dNb2RhbCgpO1xyXG4gICAgfSwgMjAwKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUxvb2t1cEl0ZW0gPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb29rdXBTZXJ2aWNlLmRlbGV0ZUxvb2t1cEl0ZW0oaWQpXHJcbiAgfVxyXG4gIC8vLy8vLy8vLy8vRW5kIG9mIGRlbGV0ZSBMb29rdXBHcm91cCBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHJcbiAgY29weUlucHV0TWVzc2FnZSgpIHtcclxuICAgIHRoaXMuX2NsaXBib2FyZFNlcnZpY2UuY29weSh0aGlzLnZhbHVlVG9Db3B5LnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0dlbmVyYXRlQ29kZUJ5SWRNb2RhbChHZW5lcmF0ZUNvZGVNb2RhbCkge1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMuZm9ybUdyb3VwID0gdGhpcy5nZW5lcmF0ZUNvZGVGb3JtXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zLnBhZ2luZ1JlZmVyZW5jZSA9IHRoaXMucGFnaW5nRWxlbWVudFxyXG5cclxuICAgIHRoaXMubG9va3VwU2VydmljZS5nZW5lcmF0ZUNvZGVCeUlkKHRoaXMuTG9va3VwSWQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHZhciBWYWx1ZSA9IHJlc3VsdCBhcyBhbnlcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYSA9IG5ldyBUZXh0QXJlYU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5uYW1lID0gXCJHZW5lcmF0ZUNvZGVUZXh0QXJlYVwiO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLnZhbHVlID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMudmFsdWVUb0NvcHkgPSBWYWx1ZS52YWwudG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5oaWRlTGFiZWwgPSB0cnVlO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLnJvd3MgPSAyMDtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5jb2xzID0gMjA7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEubWF4TGVuZ3RoID0gMTAwMDAwMDtcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihHZW5lcmF0ZUNvZGVNb2RhbCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgLyoqRnVuY3Rpb25OYW1lOmZpbHRlckxvb2t1cEl0ZW1MaXN0Ki9cclxuICAvKipEZWNsYXJhdGlvbjpmdW5jdGlvbiB0byBmaWx0ZXIgTG9va3VwIEl0ZW0gaW4gY2xpZW50LXNpZGUgKi9cclxuICAvKipQYXJhbWV0ZXJzOiovXHJcbiAgLyoqc2VhcmNoVmFsdWU6IGN1cnJlbnQgdmFsdWUgb2Ygc2VhcmNoIGJveCovXHJcbiAgZmlsdGVyTG9va3VwSXRlbUxpc3Qoc2VhcmNoVmFsdWUpIHtcclxuICAgIGlmIChzZWFyY2hWYWx1ZSlcclxuICAgICAgdGhpcy5maWx0ZXJlZExvb2t1cEl0ZW1QYWdpbmdSZXN1bHQgPSB0aGlzLmxvb2t1cEl0ZW1QYWdpbmdSZXN1bHQuZmlsdGVyKGl0ZW0gPT4gaXRlbS5sb29rVXBJdGVtTmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCkpKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5maWx0ZXJlZExvb2t1cEl0ZW1QYWdpbmdSZXN1bHQgPSB0aGlzLmxvb2t1cEl0ZW1QYWdpbmdSZXN1bHRcclxuICB9XHJcblxyXG4gIC8vLy8vLy8vLy8vRGVzdHJveSBPYnNlcnZhYmxlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPGJsb2NrLXVpPjwvYmxvY2stdWk+XHJcbiAgPCEtLSBQYWdlIENvbnRlbnQgLS0+XHJcbiAgPGRpdiAgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBib3JkZXItMCBwdC01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCI+XHJcbiAgICAgICAgIDwhLS0oT25DaGFuZ2UpPVwiZmlsdGVyTG9va3VwSXRlbUxpc3QoJGV2ZW50KVwiIC0tPlxyXG4gICAgICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cInNlYXJjaFRleHRCb3hcIiAgW2dyb3VwXT1cImxvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgIDxkaXYgW2hpZGRlbl09XCJ0cnVlXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwibG9va3VwSWRUZXh0Qm94XCIgW2dyb3VwXT1cImxvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgIDwhLS0gYmVnaW46Ok1lbnUgLS0+XHJcbiAgICAgICAgICA8YnV0dG9uIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0LXByaW1hcnkgbWUtM1wiIChjbGljayk9XCJzaG93R2VuZXJhdGVDb2RlQnlJZE1vZGFsKEdlbmVyYXRlQ29kZU1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWtleSBtZS0xXCI+PC9pPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlQ29kZVwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnlcIiB0aXRsZT1cIkFkZFwiIChjbGljayk9XCJzaG93QWRkTG9va3VwSXRlbU1vZGFsKEFkZExvb2t1cEl0ZW1Nb2RhbClcIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cyBtZS0xXCI+PC9pPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPCEtLSBlbmQ6Ok1lbnUgLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB5LTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgPCEtLWJlZ2luOjpQZXJtaXNzaW9uIGxpc3QtLT5cclxuICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGFsaWduLW1pZGRsZSB0YWJsZS1yb3ctZGFzaGVkIGZzLTYgZ3ktNSBkYXRhVGFibGUgbm8tZm9vdGVyXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJ0ZXh0LXN0YXJ0IHRleHQtZ3JheS00MDAgZnctYm9sZGVyIGZzLTcgdGV4dC11cHBlcmNhc2UgZ3MtMFwiPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJJZFwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTmFtZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCIgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTeXNOYW1lXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJWYWx1ZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTE1MHB4XCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWFuYWdlYWJsZVwiKX19PC90aD5cclxuICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1pbi13LTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBY3Rpb25cIil9fTwvdGg+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICA8dGJvZHkgaWQ9XCJsaXN0aW5nQ29udGFpbmVyXCIgY2xhc3M9XCJmdy1ib2xkIHRleHQtZ3JheS02MDAgYm9yZGVyLTBcIj5cclxuXHJcbiAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBMb29rdXBJdGVtIG9mIGZpbHRlcmVkTG9va3VwSXRlbVBhZ2luZ1Jlc3VsdFwiPlxyXG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGV4dC1kYXJrXCI+e3tMb29rdXBJdGVtLmlkfX08L3RkPlxyXG5cclxuICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAge3tMb29rdXBJdGVtLmxvb2tVcEl0ZW1OYW1lfX1cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCI+e3tMb29rdXBJdGVtLnN5c05hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+e3tMb29rdXBJdGVtLnZhbHVlfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIkxvb2t1cEl0ZW0ubWFuYWdlYWJsZTtlbHNlIGRlZmF1bHRfbm9cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJZZXNcIil9fVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdF9ubz5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5vXCIpfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tbGlnaHQgYnRuLWFjdGl2ZS1saWdodC1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWVsbGlwc2lzLWhcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wLWl0ZW0gcHgtM1wiIG5nYkRyb3Bkb3duSXRlbSAoY2xpY2spPVwic2hvd0VkaXRMb29rdXBJdGVtTW9kYWwoTG9va3VwSXRlbS5pRF9HVUlELEVkaXRMb29rdXBJdGVtTW9kYWwpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcC1saW5rIHB4LTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPGEgKm5nSWY9XCIoIShMb29rdXBJdGVtLm1hbmFnZWFibGU9PWZhbHNlJiZQcm9kdWN0aW9uTW9kZSl8fChMb29rdXBJdGVtLmlzUGFyZW50TG9va3VwTWFuYWdlYWJsZSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlTG9va3VwSXRlbU1vZGFsKExvb2t1cEl0ZW0uaURfR1VJRClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJmaWx0ZXJlZExvb2t1cEl0ZW1QYWdpbmdSZXN1bHQubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cIlByb2R1Y3Rpb25Nb2RlID8gJzYnIDogJzcnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaWItZW1wdHktZGF0YT48L2xpYi1lbXB0eS1kYXRhPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuXHJcbiAgICAgICAgICA8IS0tZW5kOjpQZXJtaXNzaW9uIGxpc3QtLT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICA8QkJTRi1QYWdpbmcgKEl0ZW1zKT1cInNldExvb2t1cEl0ZW1MaXN0UmVzdWx0KCRldmVudClcIiAqbmdJZj1cImlzRmlsdGVyTG9hZGVkXCIgW29wdGlvbnNdPVwibG9va3VwSXRlbVBhZ2luZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtncm91cF09XCJsb29rdXBJdGVtRm9ybVwiICNMb29rdXBJdGVtUGFnaW5nVmlld0VsZW1lbnQ+XHJcbiAgICAgICAgPC9CQlNGLVBhZ2luZz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcblxyXG4gIDwhLS0gQWRkIE1vZGFsIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjQWRkTG9va3VwSXRlbU1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkXCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwSXRlbVwiKX19PC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiYWRkTG9va3VwSXRlbUZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJtdWx0aUxpbmd1YWxOYW1lXCIgW2dyb3VwXT1cImFkZExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgPEJCU0YtVGV4dEJveCAgICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCIgW29wdGlvbnNdPVwic3lzTmFtZVwiIFtncm91cF09XCJhZGRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICAgIDxCQlNGLVRleHRBcmVhIFtvcHRpb25zXT1cInZhbHVlXCIgW2dyb3VwXT1cImFkZExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLVRleHRBcmVhPlxyXG4gICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZGlzcGxheU9yZGVyXCIgW2dyb3VwXT1cImFkZExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwiaXNNYW5hZ2VhYmxlXCIgW2dyb3VwXT1cImFkZExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLUNoZWNrQm94PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VMb29rdXBJdGVtTW9kYWwgaWQ9XCJDbG9zZUxvb2t1cEl0ZW1Nb2RhbFwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX0gPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0JCU0YtRm9ybT5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcblxyXG4gIDwhLS0gRWRpdCBNb2RhbCAtLT5cclxuICA8bmctdGVtcGxhdGUgI0VkaXRMb29rdXBJdGVtTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJFZGl0XCIpfX0ge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTG9va3VwSXRlbVwiKX19PC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiZWRpdExvb2t1cEl0ZW1Gb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiZWRpdE11bHRpTGluZ3VhbE5hbWVcIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbFRleHRCb3g+XHJcbiAgICAgICAgPEJCU0YtVGV4dEJveCAgICpuZ0lmPVwiIVByb2R1Y3Rpb25Nb2RlXCIgW29wdGlvbnNdPVwiZWRpdFN5c05hbWVcIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPEJCU0YtVGV4dEFyZWEgW29wdGlvbnNdPVwiZWRpdFZhbHVlXCIgW2dyb3VwXT1cImVkaXRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1UZXh0QXJlYT5cclxuICAgICAgICA8QkJTRi1UZXh0Qm94IFtvcHRpb25zXT1cImVkaXREaXNwbGF5T3JkZXJcIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPEJCU0YtQ2hlY2tCb3ggW29wdGlvbnNdPVwiZWRpdElzTWFuYWdlYWJsZVwiIFtncm91cF09XCJlZGl0TG9va3VwSXRlbUZvcm1cIj48L0JCU0YtQ2hlY2tCb3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNDbG9zZUVkaXRMb29rdXBJdGVtTW9kYWwgaWQ9XCJDbG9zZUVkaXRMb29rdXBJdGVtTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG48IS0tZGVsZXRlIE1vZGFsLS0+XHJcbjxCQlNGLUNvbmZpcm1hdGlvbk1vZGFsICpuZ0lmPVwiZGVsZXRlQ29udHJvbExvYWRlZFwiIFtvcHRpb25zXT1cImRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnNcIiBpZD1cIkNvbmZpcm1hdGlvbk1vZGFsQ29udHJvbFwiXHJcbiNDb25maXJtYXRpb25Nb2RhbENvbnRyb2w+PC9CQlNGLUNvbmZpcm1hdGlvbk1vZGFsPlxyXG5cclxuXHJcbiAgPCEtLSBHZW5lcmF0ZUNvZGUgTW9kYWwgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNHZW5lcmF0ZUNvZGVNb2RhbCBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkdlbmVyYXRlQ29kZVwiKX19PC9oMT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8ZGl2PlxyXG5cclxuICAgICAgICAgIDxCQlNGLVRleHRBcmVhIFtvcHRpb25zXT1cImdlbmVyYXRlQ29kZVRleHRBcmVhXCIgW2dyb3VwXT1cImdlbmVyYXRlQ29kZUZvcm1cIiAjR2VuZXJhdGVDb2RlSW5wdXQ+XHJcbiAgICAgICAgICA8L0JCU0YtVGV4dEFyZWE+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBwdC03XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjQ2xvc2VHZW5lcmF0ZUNvZGVNb2RhbCBpZD1cIkNsb3NlR2VuZXJhdGVDb2RlTW9kYWxcIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBtZS0zIGJ0bi1zbVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19IDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCIgKGNsaWNrKT1cImNvcHlJbnB1dE1lc3NhZ2UoKVwiPlxyXG4gICAgICAgICAgICB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDb3B5VG9DbGlwYm9hcmRcIil9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvQkJTRi1Gb3JtPlxyXG5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuXHJcbiJdfQ==
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9sb29rdXBzL2xvb2t1cC1pdGVtL2xvb2t1cC1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbG9va3Vwcy9sb29rdXAtaXRlbS9sb29rdXAtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBOEIsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFtQixhQUFhLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxUSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVNyRixNQUFNLE9BQU8sbUJBQW1CO0lBeUQ5QixZQUNVLGVBQWdDLEVBQ2pDLGNBQThCLEVBQzdCLGtCQUFzQyxFQUN0QyxpQkFBbUMsRUFDbkMsYUFBNEIsRUFDNUIsY0FBOEIsRUFDOUIsWUFBc0IsRUFDdEIscUJBQTRDO1FBUDVDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDN0IsdUJBQWtC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QUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFJRCxzQ0FBc0M7SUFDdEMsK0RBQStEO0lBQy9ELGdCQUFnQjtJQUNoQiw2Q0FBNkM7SUFDN0Msb0JBQW9CLENBQUMsV0FBVztRQUM5QixJQUFJLFdBQVc7WUFDYixJQUFJLENBQUMsOEJBQThCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7O1lBRXhKLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdEUsQ0FBQztJQUVELG9EQUFvRDtJQUNwRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBblhVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDRTQ2pCaEMsb29WQStNQTs7MkZEOUxhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDRSxpQkFBaUI7cVNBMEJrQyxhQUFhO3NCQUF6RSxTQUFTO3VCQUFDLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkEwQkQsd0JBQXdCO3NCQUFqRixTQUFTO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hPcHRpb25zLCBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCwgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zLCBGaWx0ZXJJdGVtLCBGaWx0ZXJUeXBlLCBGb3JtT3B0aW9ucywgSW5wdXRUeXBlLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucywgUGFnaW5nQ29tcG9uZW50LCBQYWdpbmdPcHRpb25zLCBSYW5nZU51bWJlciwgVGV4dEFyZWFPcHRpb25zLCBUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSB9IGZyb20gJ25neC1jbGlwYm9hcmQnO1xyXG5pbXBvcnQgeyBMb29rVXBJdGVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9Mb29rdXBzL0xvb2t1cEl0ZW0nO1xyXG5pbXBvcnQgeyBMb29rdXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL1NlcnZpY2VzL0xvb2t1cFNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEVuZ2xpc2hBcmFiaWNEVE8gfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCBFbnZpcm9ubWVudFNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWxvb2t1cC1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9va3VwLWl0ZW0uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb29rdXBJdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAvL1BhZ2UgcmVxdWlyZW1lbnRzXHJcbiAgQXBpVXJsID0gdGhpcy5sb29rdXBTZXJ2aWNlLkFwaVVybDtcclxuICBQcm9kdWN0aW9uTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL1BhcmVudCBMb29rdXAgZGF0YVxyXG4gIExvb2t1cElkOiBzdHJpbmc7XHJcbiAgTG9va3VwTmFtZTogRW5nbGlzaEFyYWJpY0RUTyA9IG5ldyBFbmdsaXNoQXJhYmljRFRPKCk7XHJcbiAgSXNQYXJlbnRMb29rdXBNYW5hZ2VhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAvL0ZpbHRlciBhbmQgcGFnaW5nIGNvbXBvbmVudHNcclxuICBzZWFyY2hUZXh0Qm94OiBUZXh0Qm94T3B0aW9ucztcclxuICBsb29rdXBJZFRleHRCb3g6IFRleHRCb3hPcHRpb25zO1xyXG4gIGxvb2t1cEl0ZW1Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgc2hvd0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvb2t1cEl0ZW1QYWdpbmdSZXN1bHQ6IGFueVtdID0gW107XHJcbiAgZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0OiBhbnlbXSA9IFtdO1xyXG4gIGxvb2t1cEl0ZW1QYWdpbmc6IFBhZ2luZ09wdGlvbnM7XHJcbiAgdGV4dElucHV0RmlsdGVyOiBGaWx0ZXJJdGVtO1xyXG4gIGxvb2t1cElkSW5wdXRGaWx0ZXI6IEZpbHRlckl0ZW07XHJcbiAgaXNGaWx0ZXJMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdMb29rdXBJdGVtUGFnaW5nVmlld0VsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSkgcGFnaW5nRWxlbWVudDogUGFnaW5nQ29tcG9uZW50PGFueT47XHJcblxyXG4gIC8vQWRkIE1vZGVsIENvbnRyb2xzXHJcbiAgYWRkTG9va3VwSXRlbUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBhZGRMb29rdXBJdGVtRm9ybU9wdGlvbnM6IEZvcm1PcHRpb25zO1xyXG4gIG11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIHN5c05hbWU6IFRleHRCb3hPcHRpb25zO1xyXG4gIHZhbHVlOiBUZXh0QXJlYU9wdGlvbnM7XHJcbiAgZGlzcGxheU9yZGVyOiBUZXh0Qm94T3B0aW9ucztcclxuICBpc01hbmFnZWFibGU6IENoZWNrQm94T3B0aW9ucztcclxuXHJcbiAgLy9FZGl0IE1vZGVsIENvbnRyb2xzXHJcbiAgZWRpdExvb2t1cEl0ZW1Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgZWRpdExvb2t1cEl0ZW1Gb3JtT3B0aW9uczogRm9ybU9wdGlvbnM7XHJcbiAgbG9va3VwSXRlbUlkOiBzdHJpbmc7XHJcbiAgZWRpdExvb2t1cElkOiBudW1iZXI7XHJcbiAgZWRpdE11bHRpTGluZ3VhbE5hbWU6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIGVkaXRTeXNOYW1lOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0VmFsdWU6IFRleHRBcmVhT3B0aW9ucztcclxuICBlZGl0RGlzcGxheU9yZGVyOiBUZXh0Qm94T3B0aW9ucztcclxuICBlZGl0SXNNYW5hZ2VhYmxlOiBDaGVja0JveE9wdGlvbnM7XHJcblxyXG4gIC8vZGVsZXRlICBNb2RlbCBDb250cm9sc1xyXG4gIGRlbGV0ZWRMb29rdXBJdGVtSWQ6IHN0cmluZztcclxuICBkZWxldGVDb25maXJtYXRpb25PcHRpb25zOiBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnM7XHJcbiAgZGVsZXRlQ29udHJvbExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBDb25maXJtYXRpb25Nb2RhbENvbnRyb2w6IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50O1xyXG5cclxuXHJcbiAgLy9HZW5lcmF0ZUNvZGUgIE1vZGVsIENvbnRyb2xzXHJcbiAgZ2VuZXJhdGVDb2RlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIGdlbmVyYXRlQ29kZUZvcm1PcHRpb25zOiBGb3JtT3B0aW9ucztcclxuICBnZW5lcmF0ZUNvZGVUZXh0QXJlYTogVGV4dEFyZWFPcHRpb25zO1xyXG4gIHZhbHVlVG9Db3B5OiBzdHJpbmcgPSBcIlwiO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwYWdlSW5mb1NlcnZpY2U6IFBhZ2VJbmZvU2VydmljZSxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2xpcGJvYXJkU2VydmljZTogQ2xpcGJvYXJkU2VydmljZSxcclxuICAgIHByaXZhdGUgbG9va3VwU2VydmljZTogTG9va3VwU2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0SGFuZGxlclNlcnZpY2U6IFJlcXVlc3RIYW5kbGVyU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICAgIHRoaXMuTG9va3VwSWQgPSBwYXJhbXNbJ2lkJ107XHJcbiAgICB9KTtcclxuICB9XHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLlByb2R1Y3Rpb25Nb2RlID0gdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0UHJvZHVjdGlvbk1vZGUoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVBhZ2UoKTtcclxuICB9XHJcblxyXG4gIC8vUGFnaW5nIGZ1bmN0aW9uc1xyXG4gIHNldExvb2t1cEl0ZW1MaXN0UmVzdWx0KHJlc3VsdCkge1xyXG4gICAgdGhpcy5sb29rdXBJdGVtUGFnaW5nUmVzdWx0ID0gcmVzdWx0O1xyXG4gICAgdGhpcy5maWx0ZXJlZExvb2t1cEl0ZW1QYWdpbmdSZXN1bHQgPSB0aGlzLmxvb2t1cEl0ZW1QYWdpbmdSZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplUGFnZSgpIHtcclxuICAgIHRoaXMubG9va3VwU2VydmljZS5nZXRMb29rdXBJbmZvKHRoaXMuTG9va3VwSWQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJMb2FkZWQgPSBmYWxzZTtcclxuICAgICAgbGV0IHJlc3VsdE1vZGVsID0gcmVzdWx0IGFzIGFueTtcclxuICAgICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VUaXRsZSA9IHJlc3VsdE1vZGVsLnZhbC5uYW1lLmN1cnJlbnRfRmFpbE92ZXI7XHJcbiAgICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlQnJlYWRjcnVtYnMgPSBbXHJcbiAgICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgICB7IHRpdGxlOiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMb29rdXBzXCIpLCBwYXRoOiAnL0FkbWluL0xvb2t1cHMvTG9va3VwcycsIGlzU2VwYXJhdG9yOiBmYWxzZSwgaXNBY3RpdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgeyB0aXRsZTogJycsIHBhdGg6ICcnLCBpc1NlcGFyYXRvcjogdHJ1ZSwgaXNBY3RpdmU6IGZhbHNlIH1cclxuXHJcbiAgICAgIF07XHJcblxyXG4gICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVUaXRsZSgpO1xyXG4gICAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuc2VhcmNoVGV4dEJveCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3gubmFtZSA9IFwic2VhcmNoVGV4dEJveFwiO1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHRCb3guaGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0Qm94LnBsYWNlaG9sZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2VhcmNoQnlOYW1lXCIpO1xyXG5cclxuXHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyID0gbmV3IEZpbHRlckl0ZW0oKTtcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuZm9ybUNvbnRyb2xOYW1lID0gXCJzZWFyY2hUZXh0Qm94XCI7XHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmFjdGlvblBhcmFtZXRlck5hbWUgPSBcInNlYXJjaFRleHRcIjtcclxuICAgICAgdGhpcy50ZXh0SW5wdXRGaWx0ZXIuaXNGb3JtQ29udHJvbCA9IHRydWU7XHJcbiAgICAgIHRoaXMudGV4dElucHV0RmlsdGVyLmZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlRleHRCb3g7XHJcblxyXG4gICAgICAvLyBUZXh0Qm94IGludGlcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3ggPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3gubmFtZSA9IFwiTG9va3VwSWRUZXh0Qm94XCI7XHJcbiAgICAgIHRoaXMubG9va3VwSWRUZXh0Qm94LmhpZGVMYWJlbCA9IHRydWU7XHJcbiAgICAgIHRoaXMubG9va3VwSWRUZXh0Qm94LnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgdGhpcy5sb29rdXBJZFRleHRCb3gudmFsdWUgPSB0aGlzLkxvb2t1cElkO1xyXG5cclxuXHJcbiAgICAgIHRoaXMubG9va3VwSWRJbnB1dEZpbHRlciA9IG5ldyBGaWx0ZXJJdGVtKCk7XHJcbiAgICAgIHRoaXMubG9va3VwSWRJbnB1dEZpbHRlci5mb3JtQ29udHJvbE5hbWUgPSBcIkxvb2t1cElkVGV4dEJveFwiO1xyXG4gICAgICB0aGlzLmxvb2t1cElkSW5wdXRGaWx0ZXIuYWN0aW9uUGFyYW1ldGVyTmFtZSA9IFwibG9va3VwSWRcIjtcclxuICAgICAgdGhpcy5sb29rdXBJZElucHV0RmlsdGVyLmlzRm9ybUNvbnRyb2wgPSB0cnVlO1xyXG4gICAgICB0aGlzLmxvb2t1cElkSW5wdXRGaWx0ZXIuZmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuVGV4dEJveDtcclxuXHJcblxyXG4gICAgICB0aGlzLmxvb2t1cEl0ZW1QYWdpbmcgPSBuZXcgUGFnaW5nT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmxvb2t1cEl0ZW1QYWdpbmcuYWN0aW9uUG9zdFVSTCA9IHRoaXMuQXBpVXJsICsgJ0dldExvb2t1cEl0ZW1zQnlGaWx0ZXInO1xyXG4gICAgICB0aGlzLmxvb2t1cEl0ZW1QYWdpbmcub25LZXlQcmVzc0ZpbHRlcnNDb250cm9sTmFtZXMgPSBbXCJzZWFyY2hUZXh0Qm94XCIsIFwiTG9va3VwSWRUZXh0Qm94XCJdO1xyXG4gICAgICB0aGlzLmxvb2t1cEl0ZW1QYWdpbmcuZmlsdGVycyA9IFt0aGlzLmxvb2t1cElkSW5wdXRGaWx0ZXIsIHRoaXMudGV4dElucHV0RmlsdGVyXTtcclxuXHJcbiAgICAgIHRoaXMuaXNGaWx0ZXJMb2FkZWQgPSB0cnVlO1xyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vLy8gU3RhcnQgYWRkIExvb2t1cCBJdGVtIFBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG4gIHNob3dBZGRMb29rdXBJdGVtTW9kYWwoQWRkTG9va3VwSXRlbU1vZGFsKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0YXJ0QmxvY2tVSSgpO1xyXG4gICAgdGhpcy5hZGRMb29rdXBJdGVtRm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5cclxuICAgIHRoaXMuYWRkTG9va3VwSXRlbUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5mb3JtR3JvdXAgPSB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtO1xyXG4gICAgdGhpcy5hZGRMb29rdXBJdGVtRm9ybU9wdGlvbnMuZ2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTG9va3VwSXRlbU1vZGVsO1xyXG4gICAgdGhpcy5hZGRMb29rdXBJdGVtRm9ybU9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRMb29rdXBJdGVtRnVuY3Rpb247XHJcbiAgICB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5wYWdpbmdSZWZlcmVuY2UgPSB0aGlzLnBhZ2luZ0VsZW1lbnQ7XHJcblxyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLm11bHRpTGluZ3VhbE5hbWUubmFtZSA9IFwiTmFtZVwiO1xyXG4gICAgdGhpcy5tdWx0aUxpbmd1YWxOYW1lLmFyYWJpY0xhYmVsS2V5ID0gXCJOYW1lSW5BcmFiaWNcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5lbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgIHRoaXMubXVsdGlMaW5ndWFsTmFtZS5tYXhMZW5ndGggPSA1MDAwO1xyXG5cclxuICAgIHRoaXMuc3lzTmFtZSA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5zeXNOYW1lLm5hbWUgPSBcIlN5c05hbWVcIjtcclxuICAgIHRoaXMuc3lzTmFtZS5sYWJlbEtleSA9IFwiU3lzTmFtZVwiO1xyXG4gICAgdGhpcy5zeXNOYW1lLnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgIHRoaXMuc3lzTmFtZS52YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLnN5c05hbWUubWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgIHRoaXMudmFsdWUgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICB0aGlzLnZhbHVlLm5hbWUgPSBcIlZhbHVlXCI7XHJcbiAgICB0aGlzLnZhbHVlLmxhYmVsS2V5ID0gXCJWYWx1ZVwiO1xyXG4gICAgdGhpcy52YWx1ZS52YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLnZhbHVlLm1heExlbmd0aCA9IDUwMDA7XHJcblxyXG5cclxuICAgIHRoaXMuZGlzcGxheU9yZGVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLmRpc3BsYXlPcmRlci5uYW1lID0gXCJEaXNwbGF5T3JkZXJcIjtcclxuICAgIHRoaXMuZGlzcGxheU9yZGVyLmxhYmVsS2V5ID0gXCJEaXNwbGF5T3JkZXJcIjtcclxuICAgIHRoaXMuZGlzcGxheU9yZGVyLnR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG4gICAgdGhpcy5kaXNwbGF5T3JkZXIubnVtYmVyUmFuZ2UgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgIHRoaXMuZGlzcGxheU9yZGVyLm51bWJlclJhbmdlLmZyb20gPSAxO1xyXG4gICAgdGhpcy5kaXNwbGF5T3JkZXIubnVtYmVyUmFuZ2UudG8gPSAxMDAwMDAwMDAwO1xyXG5cclxuICAgIHRoaXMuaXNNYW5hZ2VhYmxlID0gbmV3IENoZWNrQm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5pc01hbmFnZWFibGUubmFtZSA9IFwiSXNNYW5hZ2VhYmxlXCI7XHJcbiAgICB0aGlzLmlzTWFuYWdlYWJsZS5sYWJlbEtleSA9IFwiTWFuYWdlYWJsZVwiO1xyXG5cclxuXHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEFkZExvb2t1cEl0ZW1Nb2RhbCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0QWRkTG9va3VwSXRlbU1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmFkZExvb2t1cEl0ZW1Gb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBBZGRNb2RlbCA9IG5ldyBMb29rVXBJdGVtKCk7XHJcbiAgICBBZGRNb2RlbC5OYW1lID0gUmVzdWx0TW9kZWwuTmFtZTtcclxuICAgIGlmICghdGhpcy5Qcm9kdWN0aW9uTW9kZSkge1xyXG4gICAgICBBZGRNb2RlbC5TeXNOYW1lID0gUmVzdWx0TW9kZWwuU3lzTmFtZTtcclxuICAgIH1cclxuICAgIEFkZE1vZGVsLlZhbHVlID0gUmVzdWx0TW9kZWwuVmFsdWU7XHJcbiAgICBBZGRNb2RlbC5EaXNwbGF5T3JkZXIgPSBSZXN1bHRNb2RlbC5EaXNwbGF5T3JkZXI7XHJcbiAgICBBZGRNb2RlbC5Mb29rdXBJRF9HVUlEID0gdGhpcy5Mb29rdXBJZDtcclxuICAgIEFkZE1vZGVsLk1hbmFnZWFibGUgPSB0aGlzLlByb2R1Y3Rpb25Nb2RlO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKEFkZE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH07XHJcblxyXG4gIGdldEFkZExvb2t1cEl0ZW1GdW5jdGlvbiA9IChBZGRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb29rdXBTZXJ2aWNlLmFkZExvb2t1cEl0ZW0oQWRkTW9kZWwpO1xyXG4gIH07XHJcbiAgLy8vLy8vLy8vLy8vIEVuZCBvZiBhZGQgTG9va3VwIEdyb3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG5cclxuXHJcblxyXG4gIC8vLy8vLy8vLy8vU3RhcnQgb2YgZWRpdCBMb29rdXAgSXRlbSBwYXJ0Ly8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHNob3dFZGl0TG9va3VwSXRlbU1vZGFsKGxvb2t1cEl0ZW1JRDogc3RyaW5nLCBlZGl0TG9va3VwR3JvdXBNb2RhbCkge1xyXG5cclxuICAgIHRoaXMuZWRpdExvb2t1cEl0ZW1Gb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gICAgdGhpcy5lZGl0TG9va3VwSXRlbUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnMuZm9ybUdyb3VwID0gdGhpcy5lZGl0TG9va3VwSXRlbUZvcm07XHJcbiAgICB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnMuZ2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0RWRpdExvb2t1cEl0ZW1Nb2RlbDtcclxuICAgIHRoaXMuZWRpdExvb2t1cEl0ZW1Gb3JtT3B0aW9ucy5zZXJ2aWNlU3VibWl0RnVuY3Rpb24gPSB0aGlzLmdldEVkaXRMb29rdXBJdGVtRnVuY3Rpb247XHJcbiAgICB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybU9wdGlvbnMucGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMubG9va3VwU2VydmljZS5nZXRMb29rdXBJdGVtKGxvb2t1cEl0ZW1JRCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgTG9va3VwSXRlbSA9IHJlc3VsdC5tb2RlbCBhcyBhbnk7XHJcbiAgICAgIGxldCBOYW1lID0gbmV3IEVuZ2xpc2hBcmFiaWNEVE8oKTtcclxuICAgICAgTmFtZS5hcmFiaWMgPSBMb29rdXBJdGVtWzBdLm5hbWUuYXJhYmljO1xyXG4gICAgICBOYW1lLmVuZ2xpc2ggPSBMb29rdXBJdGVtWzBdLm5hbWUuZW5nbGlzaDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5uYW1lID0gXCJOYW1lXCI7XHJcbiAgICAgIHRoaXMuZWRpdE11bHRpTGluZ3VhbE5hbWUuYXJhYmljTGFiZWxLZXkgPSBcIk5hbWVJbkFyYWJpY1wiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLmVuZ2xpc2hMYWJlbEtleSA9IFwiTmFtZUluRW5nbGlzaFwiO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVkaXRNdWx0aUxpbmd1YWxOYW1lLnZhbHVlID0gTmFtZTtcclxuICAgICAgdGhpcy5lZGl0TXVsdGlMaW5ndWFsTmFtZS5tYXhMZW5ndGggPSA1MDAwO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0U3lzTmFtZS5uYW1lID0gXCJTeXNOYW1lXCI7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUubGFiZWxLZXkgPSBcIlN5c05hbWVcIjtcclxuICAgICAgdGhpcy5lZGl0U3lzTmFtZS50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUudmFsdWUgPSBMb29rdXBJdGVtWzBdLnN5c05hbWU7XHJcbiAgICAgIHRoaXMuZWRpdFN5c05hbWUubWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuXHJcbiAgICAgIHRoaXMuZWRpdFZhbHVlID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLmVkaXRWYWx1ZS5uYW1lID0gXCJWYWx1ZVwiO1xyXG4gICAgICB0aGlzLmVkaXRWYWx1ZS5sYWJlbEtleSA9IFwiVmFsdWVcIjtcclxuICAgICAgdGhpcy5lZGl0VmFsdWUudmFsdWUgPSBMb29rdXBJdGVtWzBdLnZhbHVlO1xyXG4gICAgICB0aGlzLmVkaXRWYWx1ZS5tYXhMZW5ndGggPSA1MDAwO1xyXG5cclxuICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZWRpdERpc3BsYXlPcmRlci5uYW1lID0gXCJEaXNwbGF5T3JkZXJcIjtcclxuICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyLmxhYmVsS2V5ID0gXCJEaXNwbGF5T3JkZXJcIjtcclxuICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyLnR5cGUgPSBJbnB1dFR5cGUuTnVtYmVyO1xyXG4gICAgICB0aGlzLmVkaXREaXNwbGF5T3JkZXIudmFsdWUgPSBMb29rdXBJdGVtWzBdLmRpc3BsYXlPcmRlcjtcclxuICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyLm51bWJlclJhbmdlID0gbmV3IFJhbmdlTnVtYmVyKCk7XHJcbiAgICAgIHRoaXMuZWRpdERpc3BsYXlPcmRlci5udW1iZXJSYW5nZS5mcm9tID0gMTtcclxuICAgICAgdGhpcy5lZGl0RGlzcGxheU9yZGVyLm51bWJlclJhbmdlLnRvID0gMTAwMDAwMDAwMDtcclxuXHJcblxyXG5cclxuXHJcbiAgICAgIHRoaXMuZWRpdElzTWFuYWdlYWJsZSA9IG5ldyBDaGVja0JveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlLm5hbWUgPSBcIk1hbmFnZWFibGVcIjtcclxuICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlLmxhYmVsS2V5ID0gXCJNYW5hZ2VhYmxlXCI7XHJcbiAgICAgIHRoaXMuZWRpdElzTWFuYWdlYWJsZS52YWx1ZSA9IExvb2t1cEl0ZW1bMF0ubWFuYWdlYWJsZTtcclxuICAgICAgdGhpcy5lZGl0SXNNYW5hZ2VhYmxlLmlzRGlzYWJsZWQgPSAodGhpcy5Qcm9kdWN0aW9uTW9kZSAmJiBMb29rdXBJdGVtWzBdLm1hbmFnZWFibGUgPT0gZmFsc2UpID09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLmxvb2t1cEl0ZW1JZCA9IExvb2t1cEl0ZW1bMF0uaURfR1VJRDtcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihlZGl0TG9va3VwR3JvdXBNb2RhbCk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRFZGl0TG9va3VwSXRlbU1vZGVsID0gKCkgPT4ge1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBsZXQgUmVzdWx0TW9kZWwgPSB0aGlzLmVkaXRMb29rdXBJdGVtRm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICBsZXQgRWRpdE1vZGVsID0gbmV3IExvb2tVcEl0ZW0oKTtcclxuICAgIEVkaXRNb2RlbC5JRF9HVUlEID0gdGhpcy5sb29rdXBJdGVtSWQ7XHJcbiAgICBFZGl0TW9kZWwuTG9va3VwSURfR1VJRCA9IHRoaXMuTG9va3VwSWQ7XHJcbiAgICBFZGl0TW9kZWwuTmFtZSA9IFJlc3VsdE1vZGVsLk5hbWU7XHJcbiAgICBpZiAoIXRoaXMuUHJvZHVjdGlvbk1vZGUpIHtcclxuICAgICAgRWRpdE1vZGVsLlN5c05hbWUgPSBSZXN1bHRNb2RlbC5TeXNOYW1lO1xyXG4gICAgfVxyXG4gICAgRWRpdE1vZGVsLlZhbHVlID0gUmVzdWx0TW9kZWwuVmFsdWU7XHJcbiAgICBFZGl0TW9kZWwuRGlzcGxheU9yZGVyID0gUmVzdWx0TW9kZWwuRGlzcGxheU9yZGVyO1xyXG4gICAgRWRpdE1vZGVsLk1hbmFnZWFibGUgPSBSZXN1bHRNb2RlbC5NYW5hZ2VhYmxlO1xyXG4gICAgcGFyYW1BcnJheS5wdXNoKEVkaXRNb2RlbCk7XHJcbiAgICByZXR1cm4gcGFyYW1BcnJheTtcclxuICB9O1xyXG5cclxuICBnZXRFZGl0TG9va3VwSXRlbUZ1bmN0aW9uID0gKEVkaXRNb2RlbCk6IE9ic2VydmFibGU8YW55PiA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb29rdXBTZXJ2aWNlLmVkaXRMb29rdXBJdGVtKEVkaXRNb2RlbCk7XHJcbiAgfTtcclxuICAvLy8vLy8vLy8vL0VuZCBvZiBlZGl0IExvb2t1cCBJdGVtIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cclxuXHJcbiAgLy8vLy8vLy8vLy9TdGFydCBvZiBkZWxldGUgTG9va3VwIHBhcnQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcbiAgc2hvd0RlbGV0ZUxvb2t1cEl0ZW1Nb2RhbChsb29rdXBJdGVtSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5kZWxldGVDb250cm9sTG9hZGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmRlbGV0ZWRMb29rdXBJdGVtSWQgPSBsb29rdXBJdGVtSWQ7XHJcbiAgICAvL2FycmF5IHNlbnQgdG8gc2VydmljZSBmdW5jdGlvblxyXG4gICAgbGV0IHBhcmFtQXJyYXk6IGFueVtdID0gW107XHJcbiAgICBwYXJhbUFycmF5LnB1c2godGhpcy5kZWxldGVkTG9va3VwSXRlbUlkKTtcclxuXHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMgPSBuZXcgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zKCk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5kZWxldGVMb29rdXBJdGVtO1xyXG4gICAgdGhpcy5kZWxldGVDb25maXJtYXRpb25PcHRpb25zLnNlcnZpY2VTdWJtaXRNb2RlbCA9IHBhcmFtQXJyYXk7XHJcbiAgICB0aGlzLmRlbGV0ZUNvbmZpcm1hdGlvbk9wdGlvbnMucGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuZGVsZXRlQ29udHJvbExvYWRlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5Db25maXJtYXRpb25Nb2RhbENvbnRyb2wuc2hvd01vZGFsKCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTG9va3VwSXRlbSA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmxvb2t1cFNlcnZpY2UuZGVsZXRlTG9va3VwSXRlbShpZCk7XHJcbiAgfTtcclxuICAvLy8vLy8vLy8vL0VuZCBvZiBkZWxldGUgTG9va3VwR3JvdXAgcGFydC8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuXHJcblxyXG4gIGNvcHlJbnB1dE1lc3NhZ2UoKSB7XHJcbiAgICB0aGlzLl9jbGlwYm9hcmRTZXJ2aWNlLmNvcHkodGhpcy52YWx1ZVRvQ29weS50b1N0cmluZygpKTtcclxuICB9XHJcblxyXG4gIHNob3dHZW5lcmF0ZUNvZGVCeUlkTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpIHtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLmdlbmVyYXRlQ29kZUZvcm1PcHRpb25zLmZvcm1Hcm91cCA9IHRoaXMuZ2VuZXJhdGVDb2RlRm9ybTtcclxuICAgIHRoaXMuZ2VuZXJhdGVDb2RlRm9ybU9wdGlvbnMucGFnaW5nUmVmZXJlbmNlID0gdGhpcy5wYWdpbmdFbGVtZW50O1xyXG5cclxuICAgIHRoaXMubG9va3VwU2VydmljZS5nZW5lcmF0ZUNvZGVCeUlkKHRoaXMuTG9va3VwSWQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgIHZhciBWYWx1ZSA9IHJlc3VsdCBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEubmFtZSA9IFwiR2VuZXJhdGVDb2RlVGV4dEFyZWFcIjtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS52YWx1ZSA9IFZhbHVlLnZhbC50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLnZhbHVlVG9Db3B5ID0gVmFsdWUudmFsLnRvU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuaGlkZUxhYmVsID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZW5lcmF0ZUNvZGVUZXh0QXJlYS5yb3dzID0gMjA7XHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDb2RlVGV4dEFyZWEuY29scyA9IDIwO1xyXG4gICAgICB0aGlzLmdlbmVyYXRlQ29kZVRleHRBcmVhLm1heExlbmd0aCA9IDEwMDAwMDA7XHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oR2VuZXJhdGVDb2RlTW9kYWwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8qKkZ1bmN0aW9uTmFtZTpmaWx0ZXJMb29rdXBJdGVtTGlzdCovXHJcbiAgLyoqRGVjbGFyYXRpb246ZnVuY3Rpb24gdG8gZmlsdGVyIExvb2t1cCBJdGVtIGluIGNsaWVudC1zaWRlICovXHJcbiAgLyoqUGFyYW1ldGVyczoqL1xyXG4gIC8qKnNlYXJjaFZhbHVlOiBjdXJyZW50IHZhbHVlIG9mIHNlYXJjaCBib3gqL1xyXG4gIGZpbHRlckxvb2t1cEl0ZW1MaXN0KHNlYXJjaFZhbHVlKSB7XHJcbiAgICBpZiAoc2VhcmNoVmFsdWUpXHJcbiAgICAgIHRoaXMuZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0ID0gdGhpcy5sb29rdXBJdGVtUGFnaW5nUmVzdWx0LmZpbHRlcihpdGVtID0+IGl0ZW0ubG9va1VwSXRlbU5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0ID0gdGhpcy5sb29rdXBJdGVtUGFnaW5nUmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vLy8vLy8vLy9EZXN0cm95IE9ic2VydmFibGUgLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0SGFuZGxlclNlcnZpY2UuZGVzdHJveUhhbmRsZXIoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCI8YmxvY2stdWk+PC9ibG9jay11aT5cclxuICA8IS0tIFBhZ2UgQ29udGVudCAtLT5cclxuICA8ZGl2ICBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIj5cclxuICAgICAgICAgPCEtLShPbkNoYW5nZSk9XCJmaWx0ZXJMb29rdXBJdGVtTGlzdCgkZXZlbnQpXCIgLS0+XHJcbiAgICAgICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwic2VhcmNoVGV4dEJveFwiICBbZ3JvdXBdPVwibG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPGRpdiBbaGlkZGVuXT1cInRydWVcIiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJsb29rdXBJZFRleHRCb3hcIiBbZ3JvdXBdPVwibG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgPCEtLSBiZWdpbjo6TWVudSAtLT5cclxuICAgICAgICAgIDxidXR0b24gaHJlZj1cImphdmFzY3JpcHQ6O1wiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tbGlnaHQtcHJpbWFyeSBtZS0zXCIgKGNsaWNrKT1cInNob3dHZW5lcmF0ZUNvZGVCeUlkTW9kYWwoR2VuZXJhdGVDb2RlTW9kYWwpXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEta2V5IG1lLTFcIj48L2k+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tcHJpbWFyeVwiIHRpdGxlPVwiQWRkXCIgKGNsaWNrKT1cInNob3dBZGRMb29rdXBJdGVtTW9kYWwoQWRkTG9va3VwSXRlbU1vZGFsKVwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIG1lLTFcIj48L2k+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8IS0tIGVuZDo6TWVudSAtLT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgICA8IS0tYmVnaW46OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYWxpZ24tbWlkZGxlIHRhYmxlLXJvdy1kYXNoZWQgZnMtNiBneS01IGRhdGFUYWJsZSBuby1mb290ZXJcIj5cclxuICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgIDx0ciBjbGFzcz1cInRleHQtc3RhcnQgdGV4dC1ncmF5LTQwMCBmdy1ib2xkZXIgZnMtNyB0ZXh0LXVwcGVyY2FzZSBncy0wXCI+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIklkXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJOYW1lXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIiAqbmdJZj1cIiFQcm9kdWN0aW9uTW9kZVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlN5c05hbWVcIil9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJtaW4tdy0xNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlZhbHVlXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctMTUwcHhcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJNYW5hZ2VhYmxlXCIpfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibWluLXctNTBweFwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFjdGlvblwiKX19PC90aD5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgIDx0Ym9keSBpZD1cImxpc3RpbmdDb250YWluZXJcIiBjbGFzcz1cImZ3LWJvbGQgdGV4dC1ncmF5LTYwMCBib3JkZXItMFwiPlxyXG5cclxuICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IExvb2t1cEl0ZW0gb2YgZmlsdGVyZWRMb29rdXBJdGVtUGFnaW5nUmVzdWx0XCI+XHJcbiAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJ0ZXh0LWRhcmtcIj57e0xvb2t1cEl0ZW0uaWR9fTwvdGQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICB7e0xvb2t1cEl0ZW0ubG9va1VwSXRlbU5hbWV9fVxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIj57e0xvb2t1cEl0ZW0uc3lzTmFtZX19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD57e0xvb2t1cEl0ZW0udmFsdWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiTG9va3VwSXRlbS5tYW5hZ2VhYmxlO2Vsc2UgZGVmYXVsdF9ub1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlllc1wiKX19XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0X25vPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTm9cIil9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1saWdodCBidG4tYWN0aXZlLWxpZ2h0LXByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZWxsaXBzaXMtaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImRyb3AtaXRlbSBweC0zXCIgbmdiRHJvcGRvd25JdGVtIChjbGljayk9XCJzaG93RWRpdExvb2t1cEl0ZW1Nb2RhbChMb29rdXBJdGVtLmlEX0dVSUQsRWRpdExvb2t1cEl0ZW1Nb2RhbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wLWxpbmsgcHgtM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIighKExvb2t1cEl0ZW0ubWFuYWdlYWJsZT09ZmFsc2UmJlByb2R1Y3Rpb25Nb2RlKXx8KExvb2t1cEl0ZW0uaXNQYXJlbnRMb29rdXBNYW5hZ2VhYmxlKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25JdGVtIGNsYXNzPVwiZHJvcC1pdGVtIHB4LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dEZWxldGVMb29rdXBJdGVtTW9kYWwoTG9va3VwSXRlbS5pRF9HVUlEKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3AtbGluayBweC0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlXCIpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDx0ciAqbmdJZj1cImZpbHRlcmVkTG9va3VwSXRlbVBhZ2luZ1Jlc3VsdC5sZW5ndGggPT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiUHJvZHVjdGlvbk1vZGUgPyAnNicgOiAnNydcIj5cclxuICAgICAgICAgICAgICAgICAgPGxpYi1lbXB0eS1kYXRhPjwvbGliLWVtcHR5LWRhdGE+XHJcbiAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICA8L3RhYmxlPlxyXG5cclxuICAgICAgICAgIDwhLS1lbmQ6OlBlcm1pc3Npb24gbGlzdC0tPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMFwiPlxyXG4gICAgICAgIDxCQlNGLVBhZ2luZyAoSXRlbXMpPVwic2V0TG9va3VwSXRlbUxpc3RSZXN1bHQoJGV2ZW50KVwiICpuZ0lmPVwiaXNGaWx0ZXJMb2FkZWRcIiBbb3B0aW9uc109XCJsb29rdXBJdGVtUGFnaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2dyb3VwXT1cImxvb2t1cEl0ZW1Gb3JtXCIgI0xvb2t1cEl0ZW1QYWdpbmdWaWV3RWxlbWVudD5cclxuICAgICAgICA8L0JCU0YtUGFnaW5nPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuXHJcbiAgPCEtLSBBZGQgTW9kYWwgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICNBZGRMb29rdXBJdGVtTW9kYWwgbGV0LW1vZGFsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlciBwYi0wIGJvcmRlci0wIGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgPGg1IGNsYXNzPVwibW9kYWwtdGl0bGVcIiBpZD1cImV4YW1wbGVNb2RhbExhYmVsXCI+PC9oNT5cclxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCIgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1pY29uIGJ0bi1hY3RpdmUtY29sb3ItcHJpbWFyeVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMVwiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubGluZVNWR109XCInLi9zcmMvYXNzZXRzL2ltYWdlcy9hcnIwNjEuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBzY3JvbGwteSBweC0xMCBweC1sZy0xNSBwdC0wIHBiLTE1XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0xMyB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIm1iLTNcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJBZGRcIil9fSB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMb29rdXBJdGVtXCIpfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJhZGRMb29rdXBJdGVtRm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIm11bHRpTGluZ3VhbE5hbWVcIiBbZ3JvdXBdPVwiYWRkTG9va3VwSXRlbUZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICA8QkJTRi1UZXh0Qm94ICAgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIiBbb3B0aW9uc109XCJzeXNOYW1lXCIgW2dyb3VwXT1cImFkZExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLVRleHRCb3g+XHJcbiAgICAgICAgPEJCU0YtVGV4dEFyZWEgW29wdGlvbnNdPVwidmFsdWVcIiBbZ3JvdXBdPVwiYWRkTG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEFyZWE+XHJcbiAgICAgICAgPEJCU0YtVGV4dEJveCBbb3B0aW9uc109XCJkaXNwbGF5T3JkZXJcIiBbZ3JvdXBdPVwiYWRkTG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8QkJTRi1DaGVja0JveCBbb3B0aW9uc109XCJpc01hbmFnZWFibGVcIiBbZ3JvdXBdPVwiYWRkTG9va3VwSXRlbUZvcm1cIj48L0JCU0YtQ2hlY2tCb3g+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNDbG9zZUxvb2t1cEl0ZW1Nb2RhbCBpZD1cIkNsb3NlTG9va3VwSXRlbU1vZGFsXCIgZGF0YS1kaXNtaXNzPVwibW9kYWxcIiBhcmlhLWxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cImJ0biBidG4tbGlnaHQgbWUtMyBidG4tc21cIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQ2FuY2VsTGFiZWxcIil9fSA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIlNhdmVMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvQkJTRi1Gb3JtPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuXHJcbiAgPCEtLSBFZGl0IE1vZGFsIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSAjRWRpdExvb2t1cEl0ZW1Nb2RhbCBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIHBiLTAgYm9yZGVyLTAganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZVwiIGlkPVwiZXhhbXBsZU1vZGFsTGFiZWxcIj48L2g1PlxyXG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBkYXRhLWRpc21pc3M9XCJtb2RhbFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiIChjbGljayk9XCJtb2RhbC5kaXNtaXNzKClcIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5saW5lU1ZHXT1cIicuL3NyYy9hc3NldHMvaW1hZ2VzL2FycjA2MS5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IHNjcm9sbC15IHB4LTEwIHB4LWxnLTE1IHB0LTAgcGItMTVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1iLTEzIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwibWItM1wiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkVkaXRcIil9fSB7e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJMb29rdXBJdGVtXCIpfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJlZGl0TG9va3VwSXRlbUZvcm1PcHRpb25zXCI+XHJcbiAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJlZGl0TXVsdGlMaW5ndWFsTmFtZVwiIFtncm91cF09XCJlZGl0TG9va3VwSXRlbUZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICA8QkJTRi1UZXh0Qm94ICAgKm5nSWY9XCIhUHJvZHVjdGlvbk1vZGVcIiBbb3B0aW9uc109XCJlZGl0U3lzTmFtZVwiIFtncm91cF09XCJlZGl0TG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8QkJTRi1UZXh0QXJlYSBbb3B0aW9uc109XCJlZGl0VmFsdWVcIiBbZ3JvdXBdPVwiZWRpdExvb2t1cEl0ZW1Gb3JtXCI+PC9CQlNGLVRleHRBcmVhPlxyXG4gICAgICAgIDxCQlNGLVRleHRCb3ggW29wdGlvbnNdPVwiZWRpdERpc3BsYXlPcmRlclwiIFtncm91cF09XCJlZGl0TG9va3VwSXRlbUZvcm1cIj48L0JCU0YtVGV4dEJveD5cclxuICAgICAgICA8QkJTRi1DaGVja0JveCBbb3B0aW9uc109XCJlZGl0SXNNYW5hZ2VhYmxlXCIgW2dyb3VwXT1cImVkaXRMb29rdXBJdGVtRm9ybVwiPjwvQkJTRi1DaGVja0JveD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI0Nsb3NlRWRpdExvb2t1cEl0ZW1Nb2RhbCBpZD1cIkNsb3NlRWRpdExvb2t1cEl0ZW1Nb2RhbFwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX0gPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJTYXZlTGFiZWxcIil9fTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0JCU0YtRm9ybT5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcbjwhLS1kZWxldGUgTW9kYWwtLT5cclxuPEJCU0YtQ29uZmlybWF0aW9uTW9kYWwgKm5nSWY9XCJkZWxldGVDb250cm9sTG9hZGVkXCIgW29wdGlvbnNdPVwiZGVsZXRlQ29uZmlybWF0aW9uT3B0aW9uc1wiIGlkPVwiQ29uZmlybWF0aW9uTW9kYWxDb250cm9sXCJcclxuI0NvbmZpcm1hdGlvbk1vZGFsQ29udHJvbD48L0JCU0YtQ29uZmlybWF0aW9uTW9kYWw+XHJcblxyXG5cclxuICA8IS0tIEdlbmVyYXRlQ29kZSBNb2RhbCAtLT5cclxuICA8bmctdGVtcGxhdGUgI0dlbmVyYXRlQ29kZU1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgcGItMCBib3JkZXItMCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCIgaWQ9XCJleGFtcGxlTW9kYWxMYWJlbFwiPjwvaDU+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBidG4tYWN0aXZlLWNvbG9yLXByaW1hcnlcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTFcIj5cclxuICAgICAgICAgIDxzcGFuIFtpbmxpbmVTVkddPVwiJy4vc3JjL2Fzc2V0cy9pbWFnZXMvYXJyMDYxLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgc2Nyb2xsLXkgcHgtMTAgcHgtbGctMTUgcHQtMCBwYi0xNVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWItMTMgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJtYi0zXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiR2VuZXJhdGVDb2RlXCIpfX08L2gxPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJnZW5lcmF0ZUNvZGVGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgPEJCU0YtVGV4dEFyZWEgW29wdGlvbnNdPVwiZ2VuZXJhdGVDb2RlVGV4dEFyZWFcIiBbZ3JvdXBdPVwiZ2VuZXJhdGVDb2RlRm9ybVwiICNHZW5lcmF0ZUNvZGVJbnB1dD5cclxuICAgICAgICAgIDwvQkJTRi1UZXh0QXJlYT5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICNDbG9zZUdlbmVyYXRlQ29kZU1vZGFsIGlkPVwiQ2xvc2VHZW5lcmF0ZUNvZGVNb2RhbFwiIGRhdGEtZGlzbWlzcz1cIm1vZGFsXCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IG1lLTMgYnRuLXNtXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpfX0gPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIiAoY2xpY2spPVwiY29weUlucHV0TWVzc2FnZSgpXCI+XHJcbiAgICAgICAgICAgIHt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNvcHlUb0NsaXBib2FyZFwiKX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcblxyXG5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcblxyXG5cclxuIl19
@@ -1,91 +1,118 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
- import { FormOptions, MultiLingualHtmlEditorOptions, MultiLingualTextBoxOptions } from '@bnsights/bbsf-controls';
3
+ import { DropdownOptions, FormOptions, MultiLingualHtmlEditorOptions, MultiLingualTextBoxOptions, PermissionSets } from '@bnsights/bbsf-controls';
4
4
  import { EmailHeaderAndFooterTemplate } from '../../shared/models/NotificationsModels/EmailHeaderAndFooterTemplate';
5
5
  import { PageInfoService } from '../../../_metronic/core/services/page-info.service';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@bnsights/bbsf-utilities";
8
8
  import * as i2 from "../../shared/Services/EmailHeaderAndFooterTemplateService.Service";
9
9
  import * as i3 from "@angular/router";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@bnsights/bbsf-controls";
10
+ import * as i4 from "../../../_metronic/core/services/page-info.service";
11
+ import * as i5 from "@angular/common";
12
+ import * as i6 from "@bnsights/bbsf-controls";
12
13
  export class AddNotificationComponent {
13
- constructor(utilityService, bbsfTranslateService, emailHeaderAndFooterTemplateService, router, requestHandlerService) {
14
+ constructor(utilityService, bbsfTranslateService, emailHeaderAndFooterTemplateService, router, requestHandlerService, pageInfoService, authService, environmentService) {
14
15
  this.utilityService = utilityService;
15
16
  this.bbsfTranslateService = bbsfTranslateService;
16
17
  this.emailHeaderAndFooterTemplateService = emailHeaderAndFooterTemplateService;
17
18
  this.router = router;
18
19
  this.requestHandlerService = requestHandlerService;
20
+ this.pageInfoService = pageInfoService;
21
+ this.authService = authService;
22
+ this.environmentService = environmentService;
19
23
  //Page requirements
20
24
  this.ShowPageContent = false;
25
+ this.organizationList = [];
26
+ this.permissionSets = PermissionSets;
27
+ this.isMultiTenancyAllowed = false;
28
+ this.isSuperAdmin = false;
21
29
  //Add Model Controls
22
30
  this.AddForm = new FormGroup({});
23
31
  this.AddFormOptions = new FormOptions;
32
+ this.organization = new DropdownOptions();
24
33
  this.getAddModel = () => {
25
- let paramArray = [];
26
34
  let ResultModel = this.AddForm.value;
27
- let AddModel = new EmailHeaderAndFooterTemplate();
28
- AddModel.Name.english = ResultModel.Name.English;
29
- AddModel.Name.arabic = ResultModel.Name.Arabic;
30
- AddModel.Header.english = ResultModel.Header.English;
31
- AddModel.Header.arabic = ResultModel.Header.Arabic;
32
- AddModel.Footer.english = ResultModel.Footer.English;
33
- AddModel.Footer.arabic = ResultModel.Footer.Arabic;
34
- AddModel.HeadSection.english = ResultModel.HtmlHeadSection.English;
35
- AddModel.HeadSection.arabic = ResultModel.HtmlHeadSection.Arabic;
36
- AddModel.HeadTagAttributes.english = ResultModel.HtmlHeadTagAttributes.English;
37
- AddModel.HeadTagAttributes.arabic = ResultModel.HtmlHeadTagAttributes.Arabic;
38
- paramArray.push(AddModel);
39
- return paramArray;
35
+ let addModel = new EmailHeaderAndFooterTemplate();
36
+ addModel.name.english = ResultModel.Name.English;
37
+ addModel.name.arabic = ResultModel.Name.Arabic;
38
+ addModel.header.english = ResultModel.Header.English;
39
+ addModel.header.arabic = ResultModel.Header.Arabic;
40
+ addModel.footer.english = ResultModel.Footer.English;
41
+ addModel.footer.arabic = ResultModel.Footer.Arabic;
42
+ addModel.headSection.english = ResultModel.HtmlHeadSection.English;
43
+ addModel.headSection.arabic = ResultModel.HtmlHeadSection.Arabic;
44
+ addModel.headTagAttributes.english = ResultModel.HtmlHeadTagAttributes.English;
45
+ addModel.headTagAttributes.arabic = ResultModel.HtmlHeadTagAttributes.Arabic;
46
+ addModel.organizationID_GUID = ResultModel[this.organization.name];
47
+ return Array(addModel);
40
48
  };
41
- this.getAddFunction = (AddModel) => {
42
- return this.emailHeaderAndFooterTemplateService.addEmailHeaderAndFooterTemplate(AddModel);
49
+ this.getAddFunction = (addModel) => {
50
+ return this.emailHeaderAndFooterTemplateService.addEmailHeaderAndFooterTemplate(addModel);
43
51
  };
44
52
  this.onAddSuccess = (result) => {
45
53
  this.cancelAdd();
46
54
  };
47
55
  }
48
56
  async ngOnInit() {
49
- PageInfoService.PageTitle = "";
50
- PageInfoService.PageBreadcrumbs = [];
57
+ PageInfoService.PageTitle = this.utilityService.getResourceValue("AddMasterLayout");
58
+ PageInfoService.PageBreadcrumbs = [
59
+ { title: this.utilityService.getResourceValue("Home"), path: '/Admin/Home', isSeparator: false, isActive: false },
60
+ { title: this.utilityService.getResourceValue("MasterLayouts"), path: '/Notifications/MasterLayouts', isSeparator: false, isActive: false },
61
+ { title: '', path: '', isSeparator: true, isActive: false }
62
+ ];
63
+ this.pageInfoService.calculateTitle();
64
+ this.pageInfoService.calculateBreadcrumbs();
51
65
  this.bbsfTranslateService.onLangChange.subscribe((event) => {
52
66
  this.ngOnInit();
53
67
  });
68
+ this.isMultiTenancyAllowed = this.environmentService.getAllowMultiTenancy();
69
+ this.currentUserProfile = this.authService.getCurrentUser().profile;
70
+ this.isSuperAdmin = this.currentUserProfile.permissionSetSID == this.permissionSets.Admin;
54
71
  this.initializePage();
55
72
  }
56
73
  //Initialize add page
57
74
  initializePage() {
58
- this.AddForm = new FormGroup({});
59
- this.AddFormOptions = new FormOptions();
60
- this.AddFormOptions.formGroup = this.AddForm;
61
- this.AddFormOptions.getModelFunction = this.getAddModel;
62
- this.AddFormOptions.serviceSubmitFunction = this.getAddFunction;
63
- this.AddFormOptions.onSuccessHandler = this.onAddSuccess;
64
- this.MultiLingualName = new MultiLingualTextBoxOptions();
65
- this.MultiLingualName.name = "Name";
66
- this.MultiLingualName.arabicLabelKey = "NameInArabic";
67
- this.MultiLingualName.englishLabelKey = "NameInEnglish";
68
- this.MultiLingualName.isRequired = true;
69
- this.MultiLingualName.maxLength = 100;
70
- this.MultiLingualHtmlHeadTagAttributes = new MultiLingualTextBoxOptions();
71
- this.MultiLingualHtmlHeadTagAttributes.name = "HtmlHeadTagAttributes";
72
- this.MultiLingualHtmlHeadTagAttributes.arabicLabelKey = "HtmlHeadTagAttributesInArabic";
73
- this.MultiLingualHtmlHeadTagAttributes.englishLabelKey = "HtmlHeadTagAttributesInEnglish";
74
- this.MultiLingualHeader = new MultiLingualHtmlEditorOptions();
75
- this.MultiLingualHeader.name = "Header";
76
- this.MultiLingualHeader.arabicLabelKey = "HeaderInArabic";
77
- this.MultiLingualHeader.englishLabelKey = "HeaderInEnglish";
78
- this.MultiLingualHeader.isRequired = true;
79
- this.MultiLingualFooter = new MultiLingualHtmlEditorOptions();
80
- this.MultiLingualFooter.name = "Footer";
81
- this.MultiLingualFooter.arabicLabelKey = "FooterInArabic";
82
- this.MultiLingualFooter.englishLabelKey = "FooterInEnglish";
83
- this.MultiLingualFooter.isRequired = true;
84
- this.MultiLingualHtmlHeadSection = new MultiLingualHtmlEditorOptions();
85
- this.MultiLingualHtmlHeadSection.name = "HtmlHeadSection";
86
- this.MultiLingualHtmlHeadSection.arabicLabelKey = "HTMLHeadSectionInArabic";
87
- this.MultiLingualHtmlHeadSection.englishLabelKey = "HTMLHeadSectionInEnglish";
88
- this.ShowPageContent = true;
75
+ this.emailHeaderAndFooterTemplateService.loadDropdownForFilters().subscribe(res => {
76
+ this.organizationList = res.organizations;
77
+ this.AddForm = new FormGroup({});
78
+ this.AddFormOptions = new FormOptions();
79
+ this.AddFormOptions.formGroup = this.AddForm;
80
+ this.AddFormOptions.getModelFunction = this.getAddModel;
81
+ this.AddFormOptions.serviceSubmitFunction = this.getAddFunction;
82
+ this.AddFormOptions.onSuccessHandler = this.onAddSuccess;
83
+ this.organization.name = "OrganizationID_GUID";
84
+ this.organization.labelKey = "Organization";
85
+ this.organization.selectedItems = null;
86
+ this.organization.dataSource = this.organizationList;
87
+ this.organization.singleSelection = true;
88
+ this.organization.allowSearchFilter = true;
89
+ this.organization.isRequired = false;
90
+ this.MultiLingualName = new MultiLingualTextBoxOptions();
91
+ this.MultiLingualName.name = "Name";
92
+ this.MultiLingualName.arabicLabelKey = "NameInArabic";
93
+ this.MultiLingualName.englishLabelKey = "NameInEnglish";
94
+ this.MultiLingualName.isRequired = true;
95
+ this.MultiLingualName.maxLength = 100;
96
+ this.MultiLingualHtmlHeadTagAttributes = new MultiLingualTextBoxOptions();
97
+ this.MultiLingualHtmlHeadTagAttributes.name = "HtmlHeadTagAttributes";
98
+ this.MultiLingualHtmlHeadTagAttributes.arabicLabelKey = "HtmlHeadTagAttributesInArabic";
99
+ this.MultiLingualHtmlHeadTagAttributes.englishLabelKey = "HtmlHeadTagAttributesInEnglish";
100
+ this.MultiLingualHeader = new MultiLingualHtmlEditorOptions();
101
+ this.MultiLingualHeader.name = "Header";
102
+ this.MultiLingualHeader.arabicLabelKey = "HeaderInArabic";
103
+ this.MultiLingualHeader.englishLabelKey = "HeaderInEnglish";
104
+ this.MultiLingualHeader.isRequired = true;
105
+ this.MultiLingualFooter = new MultiLingualHtmlEditorOptions();
106
+ this.MultiLingualFooter.name = "Footer";
107
+ this.MultiLingualFooter.arabicLabelKey = "FooterInArabic";
108
+ this.MultiLingualFooter.englishLabelKey = "FooterInEnglish";
109
+ this.MultiLingualFooter.isRequired = true;
110
+ this.MultiLingualHtmlHeadSection = new MultiLingualHtmlEditorOptions();
111
+ this.MultiLingualHtmlHeadSection.name = "HtmlHeadSection";
112
+ this.MultiLingualHtmlHeadSection.arabicLabelKey = "HTMLHeadSectionInArabic";
113
+ this.MultiLingualHtmlHeadSection.englishLabelKey = "HTMLHeadSectionInEnglish";
114
+ this.ShowPageContent = true;
115
+ });
89
116
  }
90
117
  cancelAdd() {
91
118
  this.router.navigate(['/Admin/Notifications/MasterLayouts']);
@@ -94,11 +121,11 @@ export class AddNotificationComponent {
94
121
  ngOnDestroy() {
95
122
  this.requestHandlerService.destroyHandler();
96
123
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AddNotificationComponent, deps: [{ token: i1.UtilityService }, { token: i1.BBSFTranslateService }, { token: i2.EmailHeaderAndFooterTemplateService }, { token: i3.Router }, { token: i1.RequestHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AddNotificationComponent, selector: "lib-add-notification", ngImport: i0, template: " \r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\" *ngIf=\"ShowPageContent\">\r\n <!-- begin::Body -->\r\n <div class=\"card-body\">\r\n <BBSF-Form [options]=\"AddFormOptions\">\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"MultiLingualName\" [group]=\"AddForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualHeader\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\" row\">\r\n <div class=\"col-md-12 table-dark-skin\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualFooter\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\" row\">\r\n <div class=\"col-md-12 \">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualHtmlHeadSection\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"MultiLingualHtmlHeadTagAttributes\" [group]=\"AddForm\"></BBSF-MultiLingualTextBox>\r\n\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" class=\"btn btn-light-primary btn-sm me-3\" (click)=\"cancelAdd()\">{{utilityService.getResourceValue(\"CancelLabel\")}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm \">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i5.MultiLingualHtmlEditorComponent, selector: "BBSF-MultiLingualHtmlEditor", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i5.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }] }); }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AddNotificationComponent, deps: [{ token: i1.UtilityService }, { token: i1.BBSFTranslateService }, { token: i2.EmailHeaderAndFooterTemplateService }, { token: i3.Router }, { token: i1.RequestHandlerService }, { token: i4.PageInfoService }, { token: i1.AuthService }, { token: i1.EnvironmentService }], target: i0.ɵɵFactoryTarget.Component }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AddNotificationComponent, selector: "lib-add-notification", ngImport: i0, template: "<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\" *ngIf=\"ShowPageContent\">\r\n <!-- begin::Body -->\r\n <div class=\"card-body\">\r\n <BBSF-Form [options]=\"AddFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"MultiLingualName\" [group]=\"AddForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualHeader\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12 table-dark-skin\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualFooter\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualHtmlHeadSection\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"MultiLingualHtmlHeadTagAttributes\" [group]=\"AddForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\" [options]=\"organization\" [group]=\"AddForm\"></BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" class=\"btn btn-light-primary btn-sm me-3\" (click)=\"cancelAdd()\">\r\n {{ utilityService.getResourceValue('CancelLabel') }}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{ utilityService.getResourceValue('SaveLabel') }}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MultiLingualTextBoxComponent, selector: "BBSF-MultiLingualTextBox", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i6.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["onChange", "onClear"] }, { kind: "component", type: i6.MultiLingualHtmlEditorComponent, selector: "BBSF-MultiLingualHtmlEditor", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i6.FormComponent, selector: "BBSF-Form", inputs: ["options"], outputs: ["onChange"] }] }); }
99
126
  }
100
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AddNotificationComponent, decorators: [{
101
128
  type: Component,
102
- args: [{ selector: 'lib-add-notification', template: " \r\n<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\" *ngIf=\"ShowPageContent\">\r\n <!-- begin::Body -->\r\n <div class=\"card-body\">\r\n <BBSF-Form [options]=\"AddFormOptions\">\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"MultiLingualName\" [group]=\"AddForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualHeader\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\" row\">\r\n <div class=\"col-md-12 table-dark-skin\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualFooter\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\" row\">\r\n <div class=\"col-md-12 \">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualHtmlHeadSection\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n <div class=\" row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"MultiLingualHtmlHeadTagAttributes\" [group]=\"AddForm\"></BBSF-MultiLingualTextBox>\r\n\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" class=\"btn btn-light-primary btn-sm me-3\" (click)=\"cancelAdd()\">{{utilityService.getResourceValue(\"CancelLabel\")}}</button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm \">{{utilityService.getResourceValue(\"SaveLabel\")}}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n" }]
103
- }], ctorParameters: () => [{ type: i1.UtilityService }, { type: i1.BBSFTranslateService }, { type: i2.EmailHeaderAndFooterTemplateService }, { type: i3.Router }, { type: i1.RequestHandlerService }] });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vdGlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL25vdGlmaWNhdGlvbnMvYWRkLW5vdGlmaWNhdGlvbi9hZGQtbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbm90aWZpY2F0aW9ucy9hZGQtbm90aWZpY2F0aW9uL2FkZC1ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR2pILE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7OztBQVFyRixNQUFNLE9BQU8sd0JBQXdCO0lBYW5DLFlBQW1CLGNBQThCLEVBQVUsb0JBQTBDLEVBQzNGLG1DQUF3RSxFQUFVLE1BQWMsRUFDaEcscUJBQTRDO1FBRm5DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDM0Ysd0NBQW1DLEdBQW5DLG1DQUFtQyxDQUFxQztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDaEcsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQWR0RCxtQkFBbUI7UUFDbkIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFFakMsb0JBQW9CO1FBQ3BCLFlBQU8s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LGlCQUFpQixDQUFDO1FBQzVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRTFDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUM7UUFDdkUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztRQUMxRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsY0FBYyxHQUFHLHlCQUF5QixDQUFDO1FBQzVFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxlQUFlLEdBQUcsMEJBQTBCLENBQUM7UUFFOUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQTZCRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFlBQVk7SUFDWixXQUFXO1FBQ1QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7OEdBM0dVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDREQ2RyQywyMERBMkNBOzsyRkQ3QmEsd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybU9wdGlvbnMsIE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zLCBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucyB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvU2VydmljZXMvRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVNlcnZpY2UuU2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEVtYWlsSGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWxzL05vdGlmaWNhdGlvbnNNb2RlbHMvRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZSc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19tZXRyb25pYy9jb3JlL3NlcnZpY2VzL3BhZ2UtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UsIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1hZGQtbm90aWZpY2F0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLW5vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZE5vdGlmaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLy9QYWdlIHJlcXVpcmVtZW50c1xyXG4gIFNob3dQYWdlQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL0FkZCBNb2RlbCBDb250cm9sc1xyXG4gIEFkZEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBBZGRGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucztcclxuICBNdWx0aUxpbmd1YWxOYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9uc1xyXG4gIE11bHRpTGluZ3VhbEh0bWxIZWFkVGFnQXR0cmlidXRlczogTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnNcclxuICBNdWx0aUxpbmd1YWxIZWFkZXI6IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zXHJcbiAgTXVsdGlMaW5ndWFsRm9vdGVyOiBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9uc1xyXG4gIE11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvbjogTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnNcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVtYWlsSGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlOiBFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIFBhZ2VJbmZvU2VydmljZS5QYWdlVGl0bGUgPSBcIlwiXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZUJyZWFkY3J1bWJzID0gW1xyXG4gICAgXTtcclxuXHJcbiAgICB0aGlzLmJic2ZUcmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmluaXRpYWxpemVQYWdlKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgLy9Jbml0aWFsaXplIGFkZCBwYWdlXHJcbiAgaW5pdGlhbGl6ZVBhZ2UoKSB7XHJcblxyXG4gICAgdGhpcy5BZGRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICB0aGlzLkFkZEZvcm1PcHRpb25zID0gbmV3IEZvcm1PcHRpb25zKCk7XHJcbiAgICB0aGlzLkFkZEZvcm1PcHRpb25zLmZvcm1Hcm91cCA9IHRoaXMuQWRkRm9ybVxyXG4gICAgdGhpcy5BZGRGb3JtT3B0aW9ucy5nZXRNb2RlbEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRNb2RlbDtcclxuICAgIHRoaXMuQWRkRm9ybU9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRGdW5jdGlvbjtcclxuICAgIHRoaXMuQWRkRm9ybU9wdGlvbnMub25TdWNjZXNzSGFuZGxlciA9IHRoaXMub25BZGRTdWNjZXNzO1xyXG5cclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZSA9IG5ldyBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxOYW1lLm5hbWUgPSBcIk5hbWVcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZS5hcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuZW5nbGlzaExhYmVsS2V5ID0gXCJOYW1lSW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUuaXNSZXF1aXJlZCA9IHRydWU7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUubWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRUYWdBdHRyaWJ1dGVzID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkVGFnQXR0cmlidXRlcy5uYW1lID0gXCJIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRUYWdBdHRyaWJ1dGVzLmFyYWJpY0xhYmVsS2V5ID0gXCJIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNJbkFyYWJpY1wiO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFRhZ0F0dHJpYnV0ZXMuZW5nbGlzaExhYmVsS2V5ID0gXCJIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNJbkVuZ2xpc2hcIjtcclxuXHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEhlYWRlciA9IG5ldyBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIZWFkZXIubmFtZSA9IFwiSGVhZGVyXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEhlYWRlci5hcmFiaWNMYWJlbEtleSA9IFwiSGVhZGVySW5BcmFiaWNcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSGVhZGVyLmVuZ2xpc2hMYWJlbEtleSA9IFwiSGVhZGVySW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEhlYWRlci5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEZvb3RlciA9IG5ldyBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxGb290ZXIubmFtZSA9IFwiRm9vdGVyXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEZvb3Rlci5hcmFiaWNMYWJlbEtleSA9IFwiRm9vdGVySW5BcmFiaWNcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsRm9vdGVyLmVuZ2xpc2hMYWJlbEtleSA9IFwiRm9vdGVySW5FbmdsaXNoXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEZvb3Rlci5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvbiA9IG5ldyBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFNlY3Rpb24ubmFtZSA9IFwiSHRtbEhlYWRTZWN0aW9uXCI7XHJcbiAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvbi5hcmFiaWNMYWJlbEtleSA9IFwiSFRNTEhlYWRTZWN0aW9uSW5BcmFiaWNcIjtcclxuICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRTZWN0aW9uLmVuZ2xpc2hMYWJlbEtleSA9IFwiSFRNTEhlYWRTZWN0aW9uSW5FbmdsaXNoXCI7XHJcblxyXG4gICAgdGhpcy5TaG93UGFnZUNvbnRlbnQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWRkTW9kZWwgPSAoKSA9PiB7XHJcbiAgICBsZXQgcGFyYW1BcnJheTogYW55W10gPSBbXTtcclxuICAgIGxldCBSZXN1bHRNb2RlbCA9IHRoaXMuQWRkRm9ybS52YWx1ZSBhcyBhbnk7XHJcbiAgICBsZXQgQWRkTW9kZWwgPSBuZXcgRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZSgpO1xyXG4gICAgQWRkTW9kZWwuTmFtZS5lbmdsaXNoID0gUmVzdWx0TW9kZWwuTmFtZS5FbmdsaXNoXHJcbiAgICBBZGRNb2RlbC5OYW1lLmFyYWJpYyA9IFJlc3VsdE1vZGVsLk5hbWUuQXJhYmljXHJcbiAgICBBZGRNb2RlbC5IZWFkZXIuZW5nbGlzaCA9IFJlc3VsdE1vZGVsLkhlYWRlci5FbmdsaXNoXHJcbiAgICBBZGRNb2RlbC5IZWFkZXIuYXJhYmljID0gUmVzdWx0TW9kZWwuSGVhZGVyLkFyYWJpY1xyXG4gICAgQWRkTW9kZWwuRm9vdGVyLmVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5Gb290ZXIuRW5nbGlzaFxyXG4gICAgQWRkTW9kZWwuRm9vdGVyLmFyYWJpYyA9IFJlc3VsdE1vZGVsLkZvb3Rlci5BcmFiaWNcclxuICAgIEFkZE1vZGVsLkhlYWRTZWN0aW9uLmVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5IdG1sSGVhZFNlY3Rpb24uRW5nbGlzaFxyXG4gICAgQWRkTW9kZWwuSGVhZFNlY3Rpb24uYXJhYmljID0gUmVzdWx0TW9kZWwuSHRtbEhlYWRTZWN0aW9uLkFyYWJpY1xyXG4gICAgQWRkTW9kZWwuSGVhZFRhZ0F0dHJpYnV0ZXMuZW5nbGlzaCA9IFJlc3VsdE1vZGVsLkh0bWxIZWFkVGFnQXR0cmlidXRlcy5FbmdsaXNoXHJcbiAgICBBZGRNb2RlbC5IZWFkVGFnQXR0cmlidXRlcy5hcmFiaWMgPSBSZXN1bHRNb2RlbC5IdG1sSGVhZFRhZ0F0dHJpYnV0ZXMuQXJhYmljXHJcblxyXG4gICAgcGFyYW1BcnJheS5wdXNoKEFkZE1vZGVsKTtcclxuICAgIHJldHVybiBwYXJhbUFycmF5O1xyXG4gIH1cclxuXHJcbiAgZ2V0QWRkRnVuY3Rpb24gPSAoQWRkTW9kZWwpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZVNlcnZpY2UuYWRkRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZShBZGRNb2RlbClcclxuICB9XHJcblxyXG4gIG9uQWRkU3VjY2VzcyA9IChyZXN1bHQpID0+IHtcclxuICAgIHRoaXMuY2FuY2VsQWRkKCk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxBZGQoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9BZG1pbi9Ob3RpZmljYXRpb25zL01hc3RlckxheW91dHMnXSk7XHJcbiAgfVxyXG5cclxuICAvL09uIGRlc3Ryb3lcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVxdWVzdEhhbmRsZXJTZXJ2aWNlLmRlc3Ryb3lIYW5kbGVyKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCIgXHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWN1c3RvbS1oXCIgKm5nSWY9XCJTaG93UGFnZUNvbnRlbnRcIj5cclxuICAgIDwhLS0gYmVnaW46OkJvZHkgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDxCQlNGLUZvcm0gW29wdGlvbnNdPVwiQWRkRm9ybU9wdGlvbnNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiIHJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94IFtvcHRpb25zXT1cIk11bHRpTGluZ3VhbE5hbWVcIiBbZ3JvdXBdPVwiQWRkRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIiByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvciBbb3B0aW9uc109XCJNdWx0aUxpbmd1YWxIZWFkZXJcIiBbZ3JvdXBdPVwiQWRkRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxIdG1sRWRpdG9yPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHRhYmxlLWRhcmstc2tpblwiPlxyXG4gICAgICAgICAgICA8QkJTRi1NdWx0aUxpbmd1YWxIdG1sRWRpdG9yIFtvcHRpb25zXT1cIk11bHRpTGluZ3VhbEZvb3RlclwiIFtncm91cF09XCJBZGRGb3JtXCI+PC9CQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3I+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIiByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3IgW29wdGlvbnNdPVwiTXVsdGlMaW5ndWFsSHRtbEhlYWRTZWN0aW9uXCIgW2dyb3VwXT1cIkFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCIgcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbFRleHRCb3ggW29wdGlvbnNdPVwiTXVsdGlMaW5ndWFsSHRtbEhlYWRUYWdBdHRyaWJ1dGVzXCIgW2dyb3VwXT1cIkFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcHQtN1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkgYnRuLXNtIG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsQWRkKClcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJDYW5jZWxMYWJlbFwiKX19PC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gXCI+e3t1dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiU2F2ZUxhYmVsXCIpfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiJdfQ==
129
+ args: [{ selector: 'lib-add-notification', template: "<div class=\"container-fluid\">\r\n <div class=\"card card-custom-h\" *ngIf=\"ShowPageContent\">\r\n <!-- begin::Body -->\r\n <div class=\"card-body\">\r\n <BBSF-Form [options]=\"AddFormOptions\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"MultiLingualName\" [group]=\"AddForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualHeader\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12 table-dark-skin\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualFooter\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualHtmlEditor [options]=\"MultiLingualHtmlHeadSection\" [group]=\"AddForm\"></BBSF-MultiLingualHtmlEditor>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-MultiLingualTextBox [options]=\"MultiLingualHtmlHeadTagAttributes\" [group]=\"AddForm\"></BBSF-MultiLingualTextBox>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n <BBSF-DropdownList *ngIf=\"isMultiTenancyAllowed && isSuperAdmin\" [options]=\"organization\" [group]=\"AddForm\"></BBSF-DropdownList>\r\n </div>\r\n </div>\r\n <div class=\"text-center pt-7\">\r\n <button type=\"button\" class=\"btn btn-light-primary btn-sm me-3\" (click)=\"cancelAdd()\">\r\n {{ utilityService.getResourceValue('CancelLabel') }}\r\n </button>\r\n <button type=\"submit\" class=\"btn btn-primary btn-sm\">{{ utilityService.getResourceValue('SaveLabel') }}</button>\r\n </div>\r\n </BBSF-Form>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
130
+ }], ctorParameters: () => [{ type: i1.UtilityService }, { type: i1.BBSFTranslateService }, { type: i2.EmailHeaderAndFooterTemplateService }, { type: i3.Router }, { type: i1.RequestHandlerService }, { type: i4.PageInfoService }, { type: i1.AuthService }, { type: i1.EnvironmentService }] });
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vdGlmaWNhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL25vdGlmaWNhdGlvbnMvYWRkLW5vdGlmaWNhdGlvbi9hZGQtbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtYWRtaW4tcG9ydGFsL3NyYy9saWIvUGFnZXMvbm90aWZpY2F0aW9ucy9hZGQtbm90aWZpY2F0aW9uL2FkZC1ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsNkJBQTZCLEVBQUUsMEJBQTBCLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHbEosT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7Ozs7OztBQVFyRixNQUFNLE9BQU8sd0JBQXdCO0lBcUJuQyxZQUFtQixjQUE4QixFQUFVLG9CQUEwQyxFQUMzRixtQ0FBd0UsRUFBVSxNQUFjLEVBQ2hHLHFCQUE0QyxFQUFTLGVBQWdDLEVBQ3JGLFdBQXdCLEVBQVUsa0JBQXNDO1FBSC9ELG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDM0Ysd0NBQW1DLEdBQW5DLG1DQUFtQyxDQUFxQztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDaEcsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUFTLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNyRixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUF2QmxGLG1CQUFtQjtRQUNuQixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEIsbUJBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEMsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLG9CQUFvQjtRQUNwQixZQUFPLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsbUJBQWMsR0FBRyxJQUFJLFdBQVcsQ0FBQztRQU1qQyxpQkFBWSxHQUFvQixJQUFJLGVBQWUsRUFBRSxDQUFDO1FBcUZ0RCxnQkFBVyxHQUFHLEdBQW1DLEVBQUU7WUFDakQsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFZLENBQUM7WUFDNUMsSUFBSSxRQUFRLEdBQUcsSUFBSSw0QkFBNEIsRUFBRSxDQUFDO1lBQ2xELFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQy9DLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3JELFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ25ELFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3JELFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ25ELFFBQVEsQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO1lBQ25FLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO1lBQ2pFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztZQUMvRSxRQUFRLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7WUFDN0UsUUFBUSxDQUFDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25FLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQztRQUVGLG1CQUFjLEdBQUcsQ0FBQyxRQUFzQyxFQUFtQixFQUFFO1lBQzNFLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDLCtCQUErQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVGLENBQUMsQ0FBQztRQUVGLGlCQUFZLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDO0lBckdGLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTtRQUVaLGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BGLGVBQWUsQ0FBQyxlQUFlLEdBQUc7WUFDaEMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUNqSCxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksRUFBRSw4QkFBOEIsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUU7WUFDM0ksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO1NBQzVELENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1RSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDcEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFFMUYsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBRXhCLENBQUM7SUFFRCxxQkFBcUI7SUFDckIsY0FBYztRQUNaLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQztZQUUxQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDaEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBRXpELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFDO1lBQy9DLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQztZQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1lBQ3JELElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUMzQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFFckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztZQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztZQUN4RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN4QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUV0QyxJQUFJLENBQUMsaUNBQWlDLEdBQUcsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO1lBQzFFLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLEdBQUcsdUJBQXVCLENBQUM7WUFDdEUsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGNBQWMsR0FBRywrQkFBK0IsQ0FBQztZQUN4RixJQUFJLENBQUMsaUNBQWlDLENBQUMsZUFBZSxHQUFHLGdDQUFnQyxDQUFDO1lBRTFGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7WUFDeEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztZQUMxRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxHQUFHLGlCQUFpQixDQUFDO1lBQzVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBRTFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7WUFDeEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztZQUMxRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxHQUFHLGlCQUFpQixDQUFDO1lBQzVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBRTFDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztZQUMxRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsY0FBYyxHQUFHLHlCQUF5QixDQUFDO1lBQzVFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxlQUFlLEdBQUcsMEJBQTBCLENBQUM7WUFFOUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFFTCxDQUFDO0lBMkJELFNBQVM7UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsWUFBWTtJQUNaLFdBQVc7UUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQzs4R0F2SVUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsNERDZHJDLHFsRUErQ0E7OzJGRGpDYSx3QkFBd0I7a0JBSnBDLFNBQVM7K0JBQ0Usc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEcm9wZG93bk9wdGlvbnMsIEZvcm1PcHRpb25zLCBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9ucywgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMsIFBlcm1pc3Npb25TZXRzIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtY29udHJvbHMnO1xyXG5pbXBvcnQgeyBFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9TZXJ2aWNlcy9FbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZS5TZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRW1haWxIZWFkZXJBbmRGb290ZXJUZW1wbGF0ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvTm90aWZpY2F0aW9uc01vZGVscy9FbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlJztcclxuaW1wb3J0IHsgUGFnZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vX21ldHJvbmljL2NvcmUvc2VydmljZXMvcGFnZS1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSwgQkJTRlRyYW5zbGF0ZVNlcnZpY2UsIFJlcXVlc3RIYW5kbGVyU2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBBdXRoU2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFkZC1ub3RpZmljYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkTm90aWZpY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvL1BhZ2UgcmVxdWlyZW1lbnRzXHJcbiAgU2hvd1BhZ2VDb250ZW50OiBib29sZWFuID0gZmFsc2U7XHJcbiAgb3JnYW5pemF0aW9uTGlzdCA9IFtdO1xyXG4gIGN1cnJlbnRVc2VyUHJvZmlsZTogYW55O1xyXG4gIHBlcm1pc3Npb25TZXRzID0gUGVybWlzc2lvblNldHM7XHJcbiAgaXNNdWx0aVRlbmFuY3lBbGxvd2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNTdXBlckFkbWluOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAvL0FkZCBNb2RlbCBDb250cm9sc1xyXG4gIEFkZEZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBBZGRGb3JtT3B0aW9ucyA9IG5ldyBGb3JtT3B0aW9ucztcclxuICBNdWx0aUxpbmd1YWxOYW1lOiBNdWx0aUxpbmd1YWxUZXh0Qm94T3B0aW9ucztcclxuICBNdWx0aUxpbmd1YWxIdG1sSGVhZFRhZ0F0dHJpYnV0ZXM6IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zO1xyXG4gIE11bHRpTGluZ3VhbEhlYWRlcjogTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnM7XHJcbiAgTXVsdGlMaW5ndWFsRm9vdGVyOiBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9ucztcclxuICBNdWx0aUxpbmd1YWxIdG1sSGVhZFNlY3Rpb246IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zO1xyXG4gIG9yZ2FuaXphdGlvbjogRHJvcGRvd25PcHRpb25zID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSwgcHJpdmF0ZSBiYnNmVHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVtYWlsSGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlOiBFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVxdWVzdEhhbmRsZXJTZXJ2aWNlOiBSZXF1ZXN0SGFuZGxlclNlcnZpY2UscHJpdmF0ZSBwYWdlSW5mb1NlcnZpY2U6IFBhZ2VJbmZvU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHJcbiAgICBQYWdlSW5mb1NlcnZpY2UuUGFnZVRpdGxlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiQWRkTWFzdGVyTGF5b3V0XCIpO1xyXG4gICAgUGFnZUluZm9TZXJ2aWNlLlBhZ2VCcmVhZGNydW1icyA9IFtcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiSG9tZVwiKSwgcGF0aDogJy9BZG1pbi9Ib21lJywgaXNTZXBhcmF0b3I6IGZhbHNlLCBpc0FjdGl2ZTogZmFsc2UgfSxcclxuICAgICAgeyB0aXRsZTogdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiTWFzdGVyTGF5b3V0c1wiKSwgcGF0aDogJy9Ob3RpZmljYXRpb25zL01hc3RlckxheW91dHMnLCBpc1NlcGFyYXRvcjogZmFsc2UsIGlzQWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgICB7IHRpdGxlOiAnJywgcGF0aDogJycsIGlzU2VwYXJhdG9yOiB0cnVlLCBpc0FjdGl2ZTogZmFsc2UgfVxyXG4gICAgXTtcclxuICAgIHRoaXMucGFnZUluZm9TZXJ2aWNlLmNhbGN1bGF0ZVRpdGxlKCk7XHJcbiAgICB0aGlzLnBhZ2VJbmZvU2VydmljZS5jYWxjdWxhdGVCcmVhZGNydW1icygpO1xyXG5cclxuICAgIHRoaXMuYmJzZlRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcclxuICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmlzTXVsdGlUZW5hbmN5QWxsb3dlZCA9IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEFsbG93TXVsdGlUZW5hbmN5KCk7XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyUHJvZmlsZSA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5wcm9maWxlO1xyXG4gICAgdGhpcy5pc1N1cGVyQWRtaW4gPSB0aGlzLmN1cnJlbnRVc2VyUHJvZmlsZS5wZXJtaXNzaW9uU2V0U0lEID09IHRoaXMucGVybWlzc2lvblNldHMuQWRtaW47XHJcblxyXG4gICAgdGhpcy5pbml0aWFsaXplUGFnZSgpO1xyXG5cclxuICB9XHJcblxyXG4gIC8vSW5pdGlhbGl6ZSBhZGQgcGFnZVxyXG4gIGluaXRpYWxpemVQYWdlKCkge1xyXG4gICAgdGhpcy5lbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlU2VydmljZS5sb2FkRHJvcGRvd25Gb3JGaWx0ZXJzKCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uTGlzdCA9IHJlcy5vcmdhbml6YXRpb25zO1xyXG5cclxuICAgICAgdGhpcy5BZGRGb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICAgIHRoaXMuQWRkRm9ybU9wdGlvbnMgPSBuZXcgRm9ybU9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5BZGRGb3JtT3B0aW9ucy5mb3JtR3JvdXAgPSB0aGlzLkFkZEZvcm07XHJcbiAgICAgIHRoaXMuQWRkRm9ybU9wdGlvbnMuZ2V0TW9kZWxGdW5jdGlvbiA9IHRoaXMuZ2V0QWRkTW9kZWw7XHJcbiAgICAgIHRoaXMuQWRkRm9ybU9wdGlvbnMuc2VydmljZVN1Ym1pdEZ1bmN0aW9uID0gdGhpcy5nZXRBZGRGdW5jdGlvbjtcclxuICAgICAgdGhpcy5BZGRGb3JtT3B0aW9ucy5vblN1Y2Nlc3NIYW5kbGVyID0gdGhpcy5vbkFkZFN1Y2Nlc3M7XHJcblxyXG4gICAgICB0aGlzLm9yZ2FuaXphdGlvbi5uYW1lID0gXCJPcmdhbml6YXRpb25JRF9HVUlEXCI7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uLmxhYmVsS2V5ID0gXCJPcmdhbml6YXRpb25cIjtcclxuICAgICAgdGhpcy5vcmdhbml6YXRpb24uc2VsZWN0ZWRJdGVtcyA9IG51bGw7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uLmRhdGFTb3VyY2UgPSB0aGlzLm9yZ2FuaXphdGlvbkxpc3Q7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uLnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uLmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vcmdhbml6YXRpb24uaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgdGhpcy5NdWx0aUxpbmd1YWxOYW1lID0gbmV3IE11bHRpTGluZ3VhbFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZS5uYW1lID0gXCJOYW1lXCI7XHJcbiAgICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZS5hcmFiaWNMYWJlbEtleSA9IFwiTmFtZUluQXJhYmljXCI7XHJcbiAgICAgIHRoaXMuTXVsdGlMaW5ndWFsTmFtZS5lbmdsaXNoTGFiZWxLZXkgPSBcIk5hbWVJbkVuZ2xpc2hcIjtcclxuICAgICAgdGhpcy5NdWx0aUxpbmd1YWxOYW1lLmlzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLk11bHRpTGluZ3VhbE5hbWUubWF4TGVuZ3RoID0gMTAwO1xyXG5cclxuICAgICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFRhZ0F0dHJpYnV0ZXMgPSBuZXcgTXVsdGlMaW5ndWFsVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFRhZ0F0dHJpYnV0ZXMubmFtZSA9IFwiSHRtbEhlYWRUYWdBdHRyaWJ1dGVzXCI7XHJcbiAgICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRUYWdBdHRyaWJ1dGVzLmFyYWJpY0xhYmVsS2V5ID0gXCJIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNJbkFyYWJpY1wiO1xyXG4gICAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkVGFnQXR0cmlidXRlcy5lbmdsaXNoTGFiZWxLZXkgPSBcIkh0bWxIZWFkVGFnQXR0cmlidXRlc0luRW5nbGlzaFwiO1xyXG5cclxuICAgICAgdGhpcy5NdWx0aUxpbmd1YWxIZWFkZXIgPSBuZXcgTXVsdGlMaW5ndWFsSHRtbEVkaXRvck9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5NdWx0aUxpbmd1YWxIZWFkZXIubmFtZSA9IFwiSGVhZGVyXCI7XHJcbiAgICAgIHRoaXMuTXVsdGlMaW5ndWFsSGVhZGVyLmFyYWJpY0xhYmVsS2V5ID0gXCJIZWFkZXJJbkFyYWJpY1wiO1xyXG4gICAgICB0aGlzLk11bHRpTGluZ3VhbEhlYWRlci5lbmdsaXNoTGFiZWxLZXkgPSBcIkhlYWRlckluRW5nbGlzaFwiO1xyXG4gICAgICB0aGlzLk11bHRpTGluZ3VhbEhlYWRlci5pc1JlcXVpcmVkID0gdHJ1ZTtcclxuXHJcbiAgICAgIHRoaXMuTXVsdGlMaW5ndWFsRm9vdGVyID0gbmV3IE11bHRpTGluZ3VhbEh0bWxFZGl0b3JPcHRpb25zKCk7XHJcbiAgICAgIHRoaXMuTXVsdGlMaW5ndWFsRm9vdGVyLm5hbWUgPSBcIkZvb3RlclwiO1xyXG4gICAgICB0aGlzLk11bHRpTGluZ3VhbEZvb3Rlci5hcmFiaWNMYWJlbEtleSA9IFwiRm9vdGVySW5BcmFiaWNcIjtcclxuICAgICAgdGhpcy5NdWx0aUxpbmd1YWxGb290ZXIuZW5nbGlzaExhYmVsS2V5ID0gXCJGb290ZXJJbkVuZ2xpc2hcIjtcclxuICAgICAgdGhpcy5NdWx0aUxpbmd1YWxGb290ZXIuaXNSZXF1aXJlZCA9IHRydWU7XHJcblxyXG4gICAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvbiA9IG5ldyBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yT3B0aW9ucygpO1xyXG4gICAgICB0aGlzLk11bHRpTGluZ3VhbEh0bWxIZWFkU2VjdGlvbi5uYW1lID0gXCJIdG1sSGVhZFNlY3Rpb25cIjtcclxuICAgICAgdGhpcy5NdWx0aUxpbmd1YWxIdG1sSGVhZFNlY3Rpb24uYXJhYmljTGFiZWxLZXkgPSBcIkhUTUxIZWFkU2VjdGlvbkluQXJhYmljXCI7XHJcbiAgICAgIHRoaXMuTXVsdGlMaW5ndWFsSHRtbEhlYWRTZWN0aW9uLmVuZ2xpc2hMYWJlbEtleSA9IFwiSFRNTEhlYWRTZWN0aW9uSW5FbmdsaXNoXCI7XHJcblxyXG4gICAgICB0aGlzLlNob3dQYWdlQ29udGVudCA9IHRydWU7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBnZXRBZGRNb2RlbCA9ICgpOiBFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlW10gPT4ge1xyXG4gICAgbGV0IFJlc3VsdE1vZGVsID0gdGhpcy5BZGRGb3JtLnZhbHVlIGFzIGFueTtcclxuICAgIGxldCBhZGRNb2RlbCA9IG5ldyBFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlKCk7XHJcbiAgICBhZGRNb2RlbC5uYW1lLmVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5OYW1lLkVuZ2xpc2g7XHJcbiAgICBhZGRNb2RlbC5uYW1lLmFyYWJpYyA9IFJlc3VsdE1vZGVsLk5hbWUuQXJhYmljO1xyXG4gICAgYWRkTW9kZWwuaGVhZGVyLmVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5IZWFkZXIuRW5nbGlzaDtcclxuICAgIGFkZE1vZGVsLmhlYWRlci5hcmFiaWMgPSBSZXN1bHRNb2RlbC5IZWFkZXIuQXJhYmljO1xyXG4gICAgYWRkTW9kZWwuZm9vdGVyLmVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5Gb290ZXIuRW5nbGlzaDtcclxuICAgIGFkZE1vZGVsLmZvb3Rlci5hcmFiaWMgPSBSZXN1bHRNb2RlbC5Gb290ZXIuQXJhYmljO1xyXG4gICAgYWRkTW9kZWwuaGVhZFNlY3Rpb24uZW5nbGlzaCA9IFJlc3VsdE1vZGVsLkh0bWxIZWFkU2VjdGlvbi5FbmdsaXNoO1xyXG4gICAgYWRkTW9kZWwuaGVhZFNlY3Rpb24uYXJhYmljID0gUmVzdWx0TW9kZWwuSHRtbEhlYWRTZWN0aW9uLkFyYWJpYztcclxuICAgIGFkZE1vZGVsLmhlYWRUYWdBdHRyaWJ1dGVzLmVuZ2xpc2ggPSBSZXN1bHRNb2RlbC5IdG1sSGVhZFRhZ0F0dHJpYnV0ZXMuRW5nbGlzaDtcclxuICAgIGFkZE1vZGVsLmhlYWRUYWdBdHRyaWJ1dGVzLmFyYWJpYyA9IFJlc3VsdE1vZGVsLkh0bWxIZWFkVGFnQXR0cmlidXRlcy5BcmFiaWM7XHJcbiAgICBhZGRNb2RlbC5vcmdhbml6YXRpb25JRF9HVUlEID0gUmVzdWx0TW9kZWxbdGhpcy5vcmdhbml6YXRpb24ubmFtZV07XHJcbiAgICByZXR1cm4gQXJyYXkoYWRkTW9kZWwpO1xyXG4gIH07XHJcblxyXG4gIGdldEFkZEZ1bmN0aW9uID0gKGFkZE1vZGVsOiBFbWFpbEhlYWRlckFuZEZvb3RlclRlbXBsYXRlKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcclxuICAgIHJldHVybiB0aGlzLmVtYWlsSGVhZGVyQW5kRm9vdGVyVGVtcGxhdGVTZXJ2aWNlLmFkZEVtYWlsSGVhZGVyQW5kRm9vdGVyVGVtcGxhdGUoYWRkTW9kZWwpO1xyXG4gIH07XHJcblxyXG4gIG9uQWRkU3VjY2VzcyA9IChyZXN1bHQpID0+IHtcclxuICAgIHRoaXMuY2FuY2VsQWRkKCk7XHJcbiAgfTtcclxuXHJcbiAgY2FuY2VsQWRkKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vTm90aWZpY2F0aW9ucy9NYXN0ZXJMYXlvdXRzJ10pO1xyXG4gIH1cclxuXHJcbiAgLy9PbiBkZXN0cm95XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlcXVlc3RIYW5kbGVyU2VydmljZS5kZXN0cm95SGFuZGxlcigpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtY3VzdG9tLWhcIiAqbmdJZj1cIlNob3dQYWdlQ29udGVudFwiPlxyXG4gICAgPCEtLSBiZWdpbjo6Qm9keSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgPEJCU0YtRm9ybSBbb3B0aW9uc109XCJBZGRGb3JtT3B0aW9uc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJNdWx0aUxpbmd1YWxOYW1lXCIgW2dyb3VwXT1cIkFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsVGV4dEJveD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvciBbb3B0aW9uc109XCJNdWx0aUxpbmd1YWxIZWFkZXJcIiBbZ3JvdXBdPVwiQWRkRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxIdG1sRWRpdG9yPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgdGFibGUtZGFyay1za2luXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3IgW29wdGlvbnNdPVwiTXVsdGlMaW5ndWFsRm9vdGVyXCIgW2dyb3VwXT1cIkFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgIDxCQlNGLU11bHRpTGluZ3VhbEh0bWxFZGl0b3IgW29wdGlvbnNdPVwiTXVsdGlMaW5ndWFsSHRtbEhlYWRTZWN0aW9uXCIgW2dyb3VwXT1cIkFkZEZvcm1cIj48L0JCU0YtTXVsdGlMaW5ndWFsSHRtbEVkaXRvcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgPEJCU0YtTXVsdGlMaW5ndWFsVGV4dEJveCBbb3B0aW9uc109XCJNdWx0aUxpbmd1YWxIdG1sSGVhZFRhZ0F0dHJpYnV0ZXNcIiBbZ3JvdXBdPVwiQWRkRm9ybVwiPjwvQkJTRi1NdWx0aUxpbmd1YWxUZXh0Qm94PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgKm5nSWY9XCJpc011bHRpVGVuYW5jeUFsbG93ZWQgJiYgaXNTdXBlckFkbWluXCIgW29wdGlvbnNdPVwib3JnYW5pemF0aW9uXCIgW2dyb3VwXT1cIkFkZEZvcm1cIj48L0JCU0YtRHJvcGRvd25MaXN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHB0LTdcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5IGJ0bi1zbSBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbEFkZCgpXCI+XHJcbiAgICAgICAgICAgIHt7IHV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0NhbmNlbExhYmVsJykgfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLXNtXCI+e3sgdXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnU2F2ZUxhYmVsJykgfX08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9CQlNGLUZvcm0+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==