@kando-env/kando-ui 1.2.363-alpha.28 → 1.2.363-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (586) hide show
  1. package/lib/Router.js +36 -73
  2. package/lib/Widgets/EventsCarousel/EventsCarousel.js +25 -35
  3. package/lib/Widgets/EventsRow/EventsRow.js +27 -39
  4. package/lib/Widgets/Map/GraphUtils.js +3 -3
  5. package/lib/Widgets/Map/Map.js +72 -94
  6. package/lib/Widgets/Map/MapUtils.js +70 -86
  7. package/lib/Widgets/Map/areas/AreaPolygon.js +53 -77
  8. package/lib/Widgets/Map/areas/AreaPolygons.js +23 -24
  9. package/lib/Widgets/Map/areas/AreaUtils.js +47 -46
  10. package/lib/Widgets/Map/areas/Patterns.js +4 -4
  11. package/lib/Widgets/Map/edges/Edge.js +31 -35
  12. package/lib/Widgets/Map/edges/Edges.js +19 -23
  13. package/lib/Widgets/Map/edges/arrows/Arrows.js +23 -44
  14. package/lib/Widgets/Map/events/Event.js +17 -17
  15. package/lib/Widgets/Map/events/EventIndicator.js +62 -68
  16. package/lib/Widgets/Map/events/EventPath.js +24 -22
  17. package/lib/Widgets/Map/events/EventUtils.js +60 -80
  18. package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +17 -18
  19. package/lib/Widgets/Map/events/PointOfEvent.js +29 -34
  20. package/lib/Widgets/Map/events/PointsForSpecificEvent.js +30 -37
  21. package/lib/Widgets/Map/events/Snail.js +19 -20
  22. package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +93 -86
  23. package/lib/Widgets/Map/map/FloatingGraph.js +22 -18
  24. package/lib/Widgets/Map/map/GraphDateButton.js +25 -17
  25. package/lib/Widgets/Map/matchGraph/MatchGraph.js +13 -12
  26. package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +16 -15
  27. package/lib/Widgets/Map/points/PointIcon.js +22 -15
  28. package/lib/Widgets/Map/points/PointMarker.js +71 -87
  29. package/lib/Widgets/Map/points/PointMarkers.js +45 -66
  30. package/lib/Widgets/Map/points/PointUtils.js +145 -84
  31. package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +30 -47
  32. package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +11 -10
  33. package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +11 -12
  34. package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
  35. package/lib/Widgets/MostPolluting/Areas/Areas.js +31 -60
  36. package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -3
  37. package/lib/Widgets/MostPolluting/Areas/styles.js +3 -3
  38. package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +11 -8
  39. package/lib/Widgets/MostPolluting/Factories/Factories.js +39 -70
  40. package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +15 -18
  41. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +8 -8
  42. package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +12 -10
  43. package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -3
  44. package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -2
  45. package/lib/Widgets/MostPolluting/Factories/styles.js +3 -3
  46. package/lib/Widgets/MostPolluting/MostPolluting.js +22 -28
  47. package/lib/Widgets/MostPolluting/MostPolluting.stories.js +18 -22
  48. package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +6 -4
  49. package/lib/Widgets/MostPolluting/ShowMore/styles.js +6 -4
  50. package/lib/Widgets/MostPolluting/assets/index.js +10 -10
  51. package/lib/Widgets/MostPolluting/components/ChangePercent.js +19 -13
  52. package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +35 -30
  53. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +45 -35
  54. package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +39 -35
  55. package/lib/Widgets/MostPolluting/components/PotentialImpact.js +28 -27
  56. package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +54 -50
  57. package/lib/Widgets/MostPolluting/styles.js +3 -3
  58. package/lib/Widgets/PotentialImpactSummary/Back/Back.js +7 -5
  59. package/lib/Widgets/PotentialImpactSummary/Icon.js +8 -6
  60. package/lib/Widgets/PotentialImpactSummary/index.js +19 -27
  61. package/lib/Widgets/PotentialImpactSummary/index.test.js +47 -52
  62. package/lib/Widgets/PotentialImpactSummary/styles.js +7 -7
  63. package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +9 -7
  64. package/lib/Widgets/QualitySummary/PieChart/PieChart.js +22 -17
  65. package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +35 -32
  66. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +26 -24
  67. package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +35 -37
  68. package/lib/Widgets/QualitySummary/QualitySummary.js +9 -13
  69. package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -4
  70. package/lib/Widgets/QualitySummary/styles.js +23 -15
  71. package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +12 -13
  72. package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +27 -26
  73. package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +29 -24
  74. package/lib/Widgets/UtilityInformation/UtilityInformation.js +23 -40
  75. package/lib/Widgets/UtilityInformation/styles.js +34 -25
  76. package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -3
  77. package/lib/assets/icons/TopNavbar/index.js +6 -6
  78. package/lib/assets/icons/TrendSvg.js +6 -6
  79. package/lib/assets/icons/index.js +15 -15
  80. package/lib/assets/icons/kandoStepper/index.js +5 -5
  81. package/lib/assets/icons/siteTypes/index.js +1 -1
  82. package/lib/components/ApplyButton/ApplyButton.js +9 -9
  83. package/lib/components/Backdrop/Backdrop.js +6 -4
  84. package/lib/components/ContentLoader/ContentLoader.js +11 -9
  85. package/lib/components/ContentLoader/index.js +1 -1
  86. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +13 -12
  87. package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +3 -5
  88. package/lib/components/CustomInputs/DoubleTabs/styles.js +20 -12
  89. package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +13 -20
  90. package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +6 -4
  91. package/lib/components/CustomInputs/Search/Search.js +42 -63
  92. package/lib/components/CustomInputs/Select/Select.js +45 -58
  93. package/lib/components/CustomInputs/Select/Select.stories.js +4 -6
  94. package/lib/components/DamageType/DamageType.js +35 -57
  95. package/lib/components/DataLoaderError/DataLoaderError.js +8 -6
  96. package/lib/components/DischargeHeatmap/DischargeHeatmap.js +9 -10
  97. package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +70 -71
  98. package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +27 -37
  99. package/lib/components/DischargeHeatmap/HighchartsOptions.js +10 -12
  100. package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
  101. package/lib/components/DischargeHeatmap/popupText.js +10 -10
  102. package/lib/components/DischargeHeatmap/titles.js +3 -3
  103. package/lib/components/ErrorBoundary.js +27 -41
  104. package/lib/components/Events/Events.js +41 -58
  105. package/lib/components/Graph/Graph.js +70 -89
  106. package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +17 -21
  107. package/lib/components/Header/DoubleTabs/DoubleTabs.js +25 -33
  108. package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +3 -5
  109. package/lib/components/Header/DoubleTabs/styles.js +4 -4
  110. package/lib/components/Header/Header.js +2 -2
  111. package/lib/components/Header/Header.stories.js +3 -5
  112. package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +82 -197
  113. package/lib/components/Header/InfoBar/InfoBar.js +74 -103
  114. package/lib/components/Header/InfoBar/Search/Control.js +9 -9
  115. package/lib/components/Header/InfoBar/Search/GroupLabel.js +7 -5
  116. package/lib/components/Header/InfoBar/Search/Search.js +14 -21
  117. package/lib/components/Header/InfoBar/Search/SearchContainer.js +18 -37
  118. package/lib/components/Header/InfoBar/Search/searchStyle.js +41 -49
  119. package/lib/components/Header/InfoBar/TimeFilter.js +11 -14
  120. package/lib/components/Header/KandoNavbar/KandoNavbar.js +64 -89
  121. package/lib/components/Header/Slideshow/Slideshow.js +68 -90
  122. package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +6 -4
  123. package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +21 -23
  124. package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +18 -18
  125. package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +37 -43
  126. package/lib/components/Header/Toolbar/Toolbar.js +55 -74
  127. package/lib/components/InfoBar/InfoBar.js +10 -23
  128. package/lib/components/InfoBar/InfoBar.stories.js +3 -5
  129. package/lib/components/KandoModal/KandoModal.js +27 -41
  130. package/lib/components/Link.js +8 -7
  131. package/lib/components/Links/CustomRedirect/CustomRedirect.js +9 -8
  132. package/lib/components/Links/StyledLink/StyledLink.js +12 -12
  133. package/lib/components/Links/StyledNavLink/StyledNavLink.js +11 -10
  134. package/lib/components/LiveEvents/CarouselSlide.js +9 -7
  135. package/lib/components/LiveEvents/LiveEvents.js +5 -3
  136. package/lib/components/LoaderByPercent/LoaderByPercent.js +37 -29
  137. package/lib/components/Map/Map.js +20 -23
  138. package/lib/components/Modal/Modal.js +9 -9
  139. package/lib/components/NarrowHeader.js +17 -31
  140. package/lib/components/PointInfo/PointInfo.js +19 -17
  141. package/lib/components/PopupModal/PopupModal.js +12 -16
  142. package/lib/components/PopupModal/PopupModal.stories.js +15 -19
  143. package/lib/components/Sector/Sector.js +8 -6
  144. package/lib/components/Sector/Sector.test.js +19 -20
  145. package/lib/components/Sector/sectorIcons.js +2 -2
  146. package/lib/components/SevereEvent/Eta/Eta.js +49 -52
  147. package/lib/components/SevereEvent/Eta/styles.js +10 -6
  148. package/lib/components/SevereEvent/SevereEvent.js +30 -37
  149. package/lib/components/Spinner/Spinner.js +8 -8
  150. package/lib/components/Spinner/Spinner.stories.js +4 -6
  151. package/lib/components/Spinner/styles.js +22 -14
  152. package/lib/components/Tabs/Tabs.js +21 -29
  153. package/lib/components/Tabs/Tabs.stories.js +4 -6
  154. package/lib/components/Tabs/assets/index.js +5 -5
  155. package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +12 -15
  156. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +40 -51
  157. package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +19 -31
  158. package/lib/components/TimeRangeSelector/TimeRangeHelper.js +20 -25
  159. package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +13 -13
  160. package/lib/components/TimeRangeSelector/TimeRangeList.js +23 -24
  161. package/lib/components/TimeRangeSelector/TimeRangeOptions.js +17 -25
  162. package/lib/components/TimeRangeSelector/TimeRangeSelector.js +31 -32
  163. package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +4 -6
  164. package/lib/components/TimeRangeSelector/constants.js +3 -3
  165. package/lib/components/Toggle/Toggle.js +12 -17
  166. package/lib/components/TrendGraph/TrendGraph.js +23 -39
  167. package/lib/components/TrendGraphNVL/TrendGraphNVL.js +27 -33
  168. package/lib/development-environment/index.js +8 -12
  169. package/lib/development-environment/mock/browser.js +2 -4
  170. package/lib/development-environment/mock/get.js +8 -10
  171. package/lib/development-environment/mock/handlers.js +2 -2
  172. package/lib/development-environment/mock/mockBus.js +4 -4
  173. package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -2
  174. package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -2
  175. package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -2
  176. package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -2
  177. package/lib/development-environment/mock/mockObjects/areasJson.js +2 -2
  178. package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -2
  179. package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -2
  180. package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -2
  181. package/lib/development-environment/mock/mockObjects/data-search.js +2 -2
  182. package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -2
  183. package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -2
  184. package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -2
  185. package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -2
  186. package/lib/development-environment/mock/mockObjects/metascore.js +2 -2
  187. package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -2
  188. package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -2
  189. package/lib/development-environment/mock/mockObjects/site-info.js +2 -2
  190. package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -2
  191. package/lib/development-environment/togly/ToglyDashboard.js +13 -22
  192. package/lib/development-environment/togly/ToglyItem.js +36 -31
  193. package/lib/development-environment/togly/init.js +2 -2
  194. package/lib/development-environment/togly/macro.js +14 -10
  195. package/lib/development-environment/togly/useDoubleKeyDown.js +7 -9
  196. package/lib/development-environment/togly/useLocalStorage.js +13 -18
  197. package/lib/hooks/useApi.js +19 -55
  198. package/lib/hooks/useApiWithDashboardQuery.js +30 -49
  199. package/lib/hooks/useClickOutside.js +3 -3
  200. package/lib/hooks/useInitializeHeaders.js +5 -5
  201. package/lib/hooks/useKandoFetch.js +16 -29
  202. package/lib/hooks/useMap.js +22 -34
  203. package/lib/hooks/useNavContext.js +22 -26
  204. package/lib/hooks/useRemoveExistingLayers.js +6 -6
  205. package/lib/hooks/useUpdateEventBodyTail.js +13 -17
  206. package/lib/hooks/useUserTimeZone.js +33 -30
  207. package/lib/hooks/useUserTimeZone.test.js +19 -22
  208. package/lib/hooks/useWindowSize.js +7 -14
  209. package/lib/i18n/en.json +2 -9
  210. package/lib/i18n/he.json +1 -3
  211. package/lib/index.js +11 -12
  212. package/lib/macros/getVersion.js +3 -3
  213. package/lib/pages/AreaPage/AreaPage.js +34 -67
  214. package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +16 -17
  215. package/lib/pages/AreaPage/Dashboard/Dashboard.js +28 -29
  216. package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +17 -25
  217. package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +4 -4
  218. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +8 -8
  219. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +11 -11
  220. package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -3
  221. package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -2
  222. package/lib/pages/AreaPage/Dashboard/Sites/styles.js +4 -4
  223. package/lib/pages/AssessmentPage/AssessmentPage.js +40 -46
  224. package/lib/pages/CannyWidget/Feedback.js +13 -13
  225. package/lib/pages/CovidPage/CovidPage.js +8 -13
  226. package/lib/pages/CovidPage/components/Body.js +25 -27
  227. package/lib/pages/CovidPage/components/Map.js +29 -39
  228. package/lib/pages/CovidPage/components/Sidebar.js +16 -15
  229. package/lib/pages/CovidPage/components/Summary.js +20 -27
  230. package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +27 -33
  231. package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +51 -73
  232. package/lib/pages/CovidPage/components/areas/Area.js +29 -40
  233. package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +55 -46
  234. package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +32 -35
  235. package/lib/pages/CovidPage/components/areas/AreasList.js +34 -46
  236. package/lib/pages/CovidPage/components/areas/Sort.js +11 -14
  237. package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
  238. package/lib/pages/DashboardMap/AreaCard.js +28 -28
  239. package/lib/pages/DashboardMap/AssessmentIcon.js +8 -7
  240. package/lib/pages/DashboardMap/Capacity.js +31 -80
  241. package/lib/pages/DashboardMap/FactoryCard.js +31 -26
  242. package/lib/pages/DashboardMap/HighchartsOptions.js +5 -4
  243. package/lib/pages/DashboardMap/List.js +81 -111
  244. package/lib/pages/DashboardMap/ListContext.js +15 -19
  245. package/lib/pages/DashboardMap/Loader.js +2 -2
  246. package/lib/pages/DashboardMap/SeverityBadge.js +10 -18
  247. package/lib/pages/DashboardMap/WWTPMap.js +71 -82
  248. package/lib/pages/DashboardMap/WaterDischarge.js +8 -8
  249. package/lib/pages/DashboardMap/Widget.js +54 -71
  250. package/lib/pages/DashboardMap/utils.js +49 -71
  251. package/lib/pages/EventsPage/Body/Body.js +20 -15
  252. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +17 -19
  253. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +27 -35
  254. package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +8 -6
  255. package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +11 -7
  256. package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +21 -30
  257. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +53 -65
  258. package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +19 -31
  259. package/lib/pages/EventsPage/EventsPage.js +7 -10
  260. package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +26 -38
  261. package/lib/pages/EventsPage/events/MoreInfo.js +17 -16
  262. package/lib/pages/EventsPage/events/Sidebar.js +21 -16
  263. package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +7 -7
  264. package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +17 -20
  265. package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +30 -35
  266. package/lib/pages/EventsPage/events/event_info/EventDetails.js +40 -37
  267. package/lib/pages/EventsPage/events/event_info/EventInfo.js +43 -42
  268. package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
  269. package/lib/pages/EventsPage/events/event_info/EventSection.js +17 -19
  270. package/lib/pages/EventsPage/events/event_info/EventSection.test.js +43 -38
  271. package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +39 -47
  272. package/lib/pages/EventsPage/events/event_info/Header/Header.js +6 -4
  273. package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +30 -33
  274. package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +6 -6
  275. package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +29 -36
  276. package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +4 -6
  277. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionAssessment.js +8 -16
  278. package/lib/pages/EventsPage/events/event_info/PollutionAssessment /PollutionTypesList.js +8 -9
  279. package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +22 -21
  280. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +12 -19
  281. package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +5 -3
  282. package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +11 -9
  283. package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +22 -26
  284. package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +12 -8
  285. package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +7 -7
  286. package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +6 -4
  287. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -2
  288. package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +12 -10
  289. package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +10 -8
  290. package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +10 -12
  291. package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +5 -3
  292. package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +7 -5
  293. package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +7 -5
  294. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +6 -4
  295. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +11 -9
  296. package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +15 -15
  297. package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +6 -6
  298. package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +7 -5
  299. package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +17 -15
  300. package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +4 -4
  301. package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +10 -8
  302. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +16 -11
  303. package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +9 -8
  304. package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +2 -2
  305. package/lib/pages/EventsPage/events/event_info/Timelines/style.js +3 -3
  306. package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +25 -38
  307. package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +29 -36
  308. package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +11 -9
  309. package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +15 -17
  310. package/lib/pages/EventsPage/events/event_info/sources/Source.js +27 -30
  311. package/lib/pages/EventsPage/events/event_info/sources/Sources.js +23 -26
  312. package/lib/pages/EventsPage/events/event_info/styles.js +20 -12
  313. package/lib/pages/EventsPage/events/events_list/EventItem.js +18 -19
  314. package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
  315. package/lib/pages/EventsPage/events/events_list/EventsList.js +124 -145
  316. package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +40 -55
  317. package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +79 -115
  318. package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +60 -77
  319. package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +38 -41
  320. package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +29 -36
  321. package/lib/pages/EventsPage/events/events_list/Sort.js +13 -16
  322. package/lib/pages/ImportFileWizard/FileUploadRespones.js +13 -20
  323. package/lib/pages/ImportFileWizard/ImportButtomButtons.js +6 -4
  324. package/lib/pages/ImportFileWizard/ImportFile.js +20 -22
  325. package/lib/pages/ImportFileWizard/ResponseBody.js +24 -33
  326. package/lib/pages/ImportFileWizard/ValidationForm.js +23 -22
  327. package/lib/pages/ImportFileWizard/ValidationResponse.js +21 -21
  328. package/lib/pages/ImportFileWizard/importFileUtils.js +1 -1
  329. package/lib/pages/ImportGisPage/ImportGisContainer.js +21 -24
  330. package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +21 -23
  331. package/lib/pages/ImportGisPage/importGisUtils.js +13 -21
  332. package/lib/pages/ImportGisProcess/index.js +12 -15
  333. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +7 -12
  334. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +17 -19
  335. package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +3 -3
  336. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +56 -65
  337. package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +6 -8
  338. package/lib/pages/NotificationsPage/Notification/Notification.js +16 -12
  339. package/lib/pages/NotificationsPage/Notifications.mock.js +2 -2
  340. package/lib/pages/NotificationsPage/Notifications.stories.js +4 -6
  341. package/lib/pages/NotificationsPage/NotificationsPage.js +18 -36
  342. package/lib/pages/NotificationsPage/assets/index.js +9 -9
  343. package/lib/pages/NotificationsPageV2/NotificationsPage.js +71 -103
  344. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +94 -63
  345. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +269 -145
  346. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +74 -76
  347. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +92 -99
  348. package/lib/pages/NotificationsPageV2/notificationUtils.js +55 -50
  349. package/lib/pages/OldSitePage/OldSitePage.js +57 -132
  350. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -5
  351. package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
  352. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +8 -6
  353. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +18 -20
  354. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
  355. package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +12 -18
  356. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
  357. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
  358. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -12
  359. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +51 -63
  360. package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
  361. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +29 -53
  362. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -4
  363. package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
  364. package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +11 -10
  365. package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +10 -11
  366. package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +32 -28
  367. package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +27 -29
  368. package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
  369. package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +18 -12
  370. package/lib/pages/ProfilePage/Container.js +2 -2
  371. package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +28 -44
  372. package/lib/pages/ProfilePage/ProfilePage.js +120 -237
  373. package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +25 -33
  374. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +19 -16
  375. package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +28 -30
  376. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +57 -117
  377. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +17 -20
  378. package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +12 -10
  379. package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +39 -41
  380. package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +25 -26
  381. package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +16 -16
  382. package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +13 -15
  383. package/lib/pages/SamplingsPage/NavigationDropdown.js +45 -32
  384. package/lib/pages/SamplingsPage/NewSamplingAction.js +76 -100
  385. package/lib/pages/SamplingsPage/SamplingMobileModal.js +129 -101
  386. package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +21 -22
  387. package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +34 -22
  388. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +36 -59
  389. package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +15 -18
  390. package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +9 -7
  391. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +110 -194
  392. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +49 -55
  393. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +47 -43
  394. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +49 -45
  395. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +19 -20
  396. package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -3
  397. package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +10 -6
  398. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +58 -54
  399. package/lib/pages/SamplingsPage/SamplingsMobileList.js +21 -28
  400. package/lib/pages/SamplingsPage/SamplingsPage.js +27 -33
  401. package/lib/pages/SamplingsPage/SamplingsPageContainer.js +50 -58
  402. package/lib/pages/SamplingsPage/samplingsPageUtils.js +68 -76
  403. package/lib/pages/SitePage/DischargePattern/DischargePattern.js +6 -4
  404. package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +14 -13
  405. package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +10 -13
  406. package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
  407. package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +3 -5
  408. package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +14 -10
  409. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +9 -8
  410. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +26 -23
  411. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +14 -17
  412. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +36 -32
  413. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +9 -7
  414. package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +15 -24
  415. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +16 -12
  416. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +3 -5
  417. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +18 -12
  418. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +58 -70
  419. package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +9 -7
  420. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +15 -26
  421. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -5
  422. package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +10 -12
  423. package/lib/pages/SitePage/SamplingParameters/body/Body.js +9 -9
  424. package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +29 -37
  425. package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -11
  426. package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +10 -11
  427. package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +60 -59
  428. package/lib/pages/SitePage/SamplingParameters/dataParser.js +30 -39
  429. package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +11 -9
  430. package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -4
  431. package/lib/pages/SitePage/SamplingParameters/styles/styles.js +18 -12
  432. package/lib/pages/SitePage/SiteInformation/EmptyState.js +11 -7
  433. package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -31
  434. package/lib/pages/SitePage/SitePage.js +40 -79
  435. package/lib/pages/UploadLabResult/index.js +13 -13
  436. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +26 -35
  437. package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +6 -8
  438. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +9 -8
  439. package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +3 -5
  440. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +47 -48
  441. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +10 -6
  442. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +4 -4
  443. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +4 -6
  444. package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +13 -12
  445. package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +15 -12
  446. package/lib/pages/UtilityDashboardPage/TopBar/constants.js +7 -7
  447. package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -2
  448. package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +18 -26
  449. package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +26 -30
  450. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +16 -17
  451. package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +7 -13
  452. package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +27 -31
  453. package/lib/pages/WbeDashboard/ExpandableComponent.js +9 -8
  454. package/lib/pages/WbeDashboard/GraphWrapper.js +30 -36
  455. package/lib/pages/WbeDashboard/IndividualTinyGraph.js +17 -19
  456. package/lib/pages/WbeDashboard/SearchInput.js +15 -20
  457. package/lib/pages/WbeDashboard/SummaryGraph.js +50 -76
  458. package/lib/pages/WbeDashboard/SummaryGraphModal.js +19 -17
  459. package/lib/pages/WbeDashboard/Tabs.js +11 -11
  460. package/lib/pages/WbeDashboard/WbeDashboardPage.js +151 -213
  461. package/lib/pages/WbeDashboard/WbeSummaryBar.js +40 -48
  462. package/lib/pages/WwtpPage/DashboardCard.js +26 -23
  463. package/lib/pages/WwtpPage/DischargePatternCard.js +14 -23
  464. package/lib/pages/WwtpPage/InletsCard/InletsBar.js +26 -22
  465. package/lib/pages/WwtpPage/InletsCard/InletsCard.js +19 -18
  466. package/lib/pages/WwtpPage/Map.js +5 -3
  467. package/lib/pages/WwtpPage/OrganicCard.js +2 -2
  468. package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -2
  469. package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +8 -6
  470. package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +9 -8
  471. package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +18 -14
  472. package/lib/pages/WwtpPage/PredictionCard.js +2 -2
  473. package/lib/pages/WwtpPage/TrendCard.js +18 -19
  474. package/lib/pages/WwtpPage/UpgradeBox.js +3 -3
  475. package/lib/pages/WwtpPage/WwtpPage.js +8 -8
  476. package/lib/pages/WwtpPage/WwtpPageContainer.js +21 -16
  477. package/lib/providers/Slideshow/SlideshowContext.js +11 -9
  478. package/lib/providers/Slideshow/SlideshowProvider.js +22 -38
  479. package/lib/providers/Slideshow/SlideshowRunner.js +17 -19
  480. package/lib/providers/UrlHistory/UrlHistoryContext.js +6 -4
  481. package/lib/providers/UrlHistory/UrlHistoryProvider.js +12 -11
  482. package/lib/providers/UrlHistory/index.js +2 -2
  483. package/lib/providers/UrlHistory/useLastVisited.js +5 -5
  484. package/lib/store/ImportGis/actionTypes.js +1 -1
  485. package/lib/store/ImportGis/actionsCreator.js +7 -5
  486. package/lib/store/ImportGis/reducer.js +40 -29
  487. package/lib/store/WBE/actionTypes.js +2 -2
  488. package/lib/store/WBE/reducer.js +13 -9
  489. package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +24 -14
  490. package/lib/store/areas/actionTypes.js +4 -4
  491. package/lib/store/areas/actions.js +7 -13
  492. package/lib/store/areas/reducer.js +8 -6
  493. package/lib/store/context/actionTypes.js +3 -3
  494. package/lib/store/context/actions.js +3 -3
  495. package/lib/store/context/contextMiddlewares.js +14 -16
  496. package/lib/store/context/reducer.js +13 -9
  497. package/lib/store/dashboard/dashboardSlice.js +18 -10
  498. package/lib/store/edges/actionTypes.js +5 -5
  499. package/lib/store/edges/actions.js +4 -8
  500. package/lib/store/edges/reducer.js +13 -17
  501. package/lib/store/events/actionTypes.js +17 -17
  502. package/lib/store/events/actions.js +3 -7
  503. package/lib/store/events/reducer.js +42 -49
  504. package/lib/store/global/actionTypes.js +11 -11
  505. package/lib/store/global/actions.js +8 -6
  506. package/lib/store/global/reducer.js +11 -10
  507. package/lib/store/permissions/permissionsSlice.js +12 -8
  508. package/lib/store/points/actionTypes.js +3 -3
  509. package/lib/store/points/actions.js +4 -8
  510. package/lib/store/points/reducer.js +7 -5
  511. package/lib/store/rootActionTypes.js +2 -2
  512. package/lib/store/rootReducer.js +17 -12
  513. package/lib/store/rootStore.js +5 -5
  514. package/lib/store/samplings/actionTypes.js +1 -1
  515. package/lib/store/samplings/reducer.js +16 -14
  516. package/lib/styles/StylesLayout.js +5 -3
  517. package/lib/styles/theme/theme.js +26 -27
  518. package/lib/test/mocks/browser.js +2 -4
  519. package/lib/test/test-utils.js +17 -15
  520. package/lib/ui-kit/Button/Button.js +128 -80
  521. package/lib/ui-kit/Button/Button.test.js +24 -29
  522. package/lib/ui-kit/Checkbox/Checkbox.js +30 -20
  523. package/lib/ui-kit/ContentCard/ContentCard.js +15 -18
  524. package/lib/ui-kit/Dashboard/Dashboard.js +25 -22
  525. package/lib/ui-kit/DropDown/DropDown.js +23 -24
  526. package/lib/ui-kit/DropDown/DropDown.test.js +12 -12
  527. package/lib/ui-kit/DropDown/DropDownItem.js +24 -21
  528. package/lib/ui-kit/DropDown/DropdownToggle.js +12 -8
  529. package/lib/ui-kit/EmptyState/EmptyState.js +6 -4
  530. package/lib/ui-kit/IconAction/IconAction.js +7 -5
  531. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +48 -64
  532. package/lib/ui-kit/InfoTooltip/InfoTooltip.js +69 -52
  533. package/lib/ui-kit/InletsPie/InletsPie.js +15 -13
  534. package/lib/ui-kit/InletsPie/options.js +6 -6
  535. package/lib/ui-kit/KandoList/KandoList.js +14 -12
  536. package/lib/ui-kit/KandoTable/KandoTable.js +48 -40
  537. package/lib/ui-kit/KandoTable/KandoTable.test.js +16 -22
  538. package/lib/ui-kit/Layout/Layout.js +6 -4
  539. package/lib/ui-kit/MobileInput/MobileInput.js +60 -50
  540. package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +13 -16
  541. package/lib/ui-kit/OrganicEvents/GaugeChart.js +8 -6
  542. package/lib/ui-kit/OrganicEvents/OrganicEvents.js +6 -6
  543. package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +27 -20
  544. package/lib/ui-kit/OrganicEvents/TextInfo.js +15 -10
  545. package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +10 -8
  546. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +14 -17
  547. package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -3
  548. package/lib/ui-kit/ScoreGauge/ScoreGauge.js +20 -20
  549. package/lib/ui-kit/ScoreGauge/constant.js +3 -3
  550. package/lib/ui-kit/TimeLineChart/TrendChart.js +54 -42
  551. package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +8 -7
  552. package/lib/ui-kit/Tooltip/Tooltip.js +14 -8
  553. package/lib/ui-kit/index.js +8 -8
  554. package/lib/ui-kit/kandoStepper/KandoStepper.js +12 -12
  555. package/lib/ui-kit/siteName/SiteName.js +11 -8
  556. package/lib/utilities/ActionUtility.js +7 -7
  557. package/lib/utilities/Alert.js +21 -17
  558. package/lib/utilities/Analytics.js +11 -11
  559. package/lib/utilities/Array.js +4 -5
  560. package/lib/utilities/Enum.js +15 -51
  561. package/lib/utilities/ErrorBoundary.js +27 -41
  562. package/lib/utilities/File.js +40 -69
  563. package/lib/utilities/GetDir.js +8 -7
  564. package/lib/utilities/KandoDate.js +7 -15
  565. package/lib/utilities/KandoModal.js +16 -26
  566. package/lib/utilities/LocalStorage.js +8 -10
  567. package/lib/utilities/ThousandsToK.js +3 -3
  568. package/lib/utilities/TimeFormat.js +21 -20
  569. package/lib/utilities/Truncate.js +17 -25
  570. package/lib/utilities/edgesMath.js +14 -15
  571. package/lib/utilities/i18n.js +3 -3
  572. package/lib/utilities/kql.js +12 -14
  573. package/lib/utilities/map/icons.js +3 -3
  574. package/lib/utilities/polylinedecorator.js +87 -112
  575. package/lib/utilities/scoreToData.js +17 -17
  576. package/lib/utilities/scoreToData.test.js +5 -5
  577. package/lib/utilities/time.js +8 -8
  578. package/lib/utilities/uploadToS3.js +11 -11
  579. package/lib/utilities/urls.js +61 -59
  580. package/package.json +1 -1
  581. package/lib/pages/NotificationsPageV2/components/NotificationsForm/EventType.js +0 -42
  582. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSendVia.js +0 -64
  583. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSensors.js +0 -58
  584. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationSources.js +0 -58
  585. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationTags.js +0 -59
  586. package/lib/pages/NotificationsPageV2/components/NotificationsForm/WaterAuthoritySelection.js +0 -59
@@ -1,63 +1,44 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.default = exports.NotificationsCheckboxesStyle = void 0;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
7
+ exports.default = void 0;
10
8
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
9
  var _react = _interopRequireWildcard(require("react"));
12
10
  var _reactBootstrap = require("react-bootstrap");
13
11
  var _i18n = _interopRequireDefault(require("utilities/i18n"));
14
12
  var _notificationUtils = require("pages/NotificationsPageV2/notificationUtils");
13
+ var _Checkbox = _interopRequireDefault(require("ui-kit/Checkbox/Checkbox"));
15
14
  var _RadioButtonGroup = _interopRequireDefault(require("ui-kit/RadioButtons/RadioButtonGroup"));
15
+ var _reactSelect = _interopRequireDefault(require("react-select"));
16
16
  var _NotificationsUtils = require("../NotificationsUtils");
17
- var _EventType = require("./EventType");
18
- var _NotificationSendVia = require("./NotificationSendVia");
19
- var _WaterAuthoritySelection = require("./WaterAuthoritySelection");
20
- var _NotificationSources = require("./NotificationSources");
21
- var _NotificationTags = require("./NotificationTags");
22
- var _NotificationSensors = require("./NotificationSensors");
23
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
- var NotificationsFormContent = function NotificationsFormContent(_ref) {
26
- var notification = _ref.notification,
27
- points = _ref.points,
28
- tags = _ref.tags,
29
- sensors = _ref.sensors,
30
- waterAuthorities = _ref.waterAuthorities,
31
- allowedNotifications = _ref.allowedNotifications,
32
- setNewNotification = _ref.setNewNotification,
33
- hasPhone = _ref.hasPhone,
34
- hasTelegram = _ref.hasTelegram,
35
- initialAdvancedConfig = _ref.initialAdvancedConfig;
36
- var _useState = (0, _react.useState)({
37
- open: false,
38
- instance: ''
39
- }),
40
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
41
- modalDetails = _useState2[0],
42
- setModalDetails = _useState2[1];
43
- var isDirectImpact = function isDirectImpact(notification) {
44
- return notification.direct_impact_only === '1' || notification.direct_impact_only === undefined;
45
- };
46
- var _useState3 = (0, _react.useState)(isDirectImpact(notification) ? false : true),
47
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
48
- showAdvancedConfig = _useState4[0],
49
- setShowAdvancedConfig = _useState4[1];
50
- var showAdvancedConfigLogic = function showAdvancedConfigLogic() {
51
- return (notification.type !== 'RollingEventAlertConfig' || initialAdvancedConfig) && showAdvancedConfig || notification.id === '' && notification.type !== 'RollingEventAlertConfig';
52
- };
53
- var showAdvancedConfigCheckbox = function showAdvancedConfigCheckbox() {
54
- return notification.type === 'RollingEventAlertConfig' && initialAdvancedConfig;
55
- };
56
- var defaultWaterAuthorityIfSingle = function defaultWaterAuthorityIfSingle() {
17
+ var _Alert = _interopRequireDefault(require("../../../../utilities/Alert"));
18
+ var _theme = require("../../../../styles/theme/theme");
19
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+ const NotificationsFormContent = _ref => {
22
+ let {
23
+ notification,
24
+ points,
25
+ tags,
26
+ sensors,
27
+ waterAuthorities,
28
+ allowedNotifications,
29
+ setNewNotification,
30
+ hasPhone,
31
+ hasTelegram
32
+ } = _ref;
33
+ const [modalDetails, setModalDetails] = (0, _react.useState)({
34
+ open: false,
35
+ instance: ''
36
+ });
37
+ const defaultWaterAuthorityIfSingle = () => {
57
38
  if (waterAuthorities.length === 1) {
58
39
  (0, _NotificationsUtils.handleNotificationType)({
59
40
  value: 'RollingEventAlertConfig',
60
- label: _i18n.default.t("notifications_page.RollingEventAlertConfig")
41
+ label: _i18n.default.t(`notifications_page.RollingEventAlertConfig`)
61
42
  }, notification, setNewNotification);
62
43
  (0, _NotificationsUtils.handleWaterAuthorities)(undefined, {
63
44
  selection_type: 'include',
@@ -68,130 +49,273 @@ var NotificationsFormContent = function NotificationsFormContent(_ref) {
68
49
  }, notification, setNewNotification);
69
50
  }
70
51
  };
71
- (0, _react.useEffect)(function () {
52
+ (0, _react.useEffect)(() => {
72
53
  defaultWaterAuthorityIfSingle();
73
54
  if (notification.type === '') {
74
55
  (0, _NotificationsUtils.handleNotificationType)({
75
56
  value: 'RollingEventAlertConfig',
76
- label: _i18n.default.t("notifications_page.RollingEventAlertConfig")
57
+ label: _i18n.default.t(`notifications_page.RollingEventAlertConfig`)
77
58
  }, notification, setNewNotification);
78
59
  }
79
60
  }, []);
80
- var basicConfiguration = function basicConfiguration(advancedComponents) {
81
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_EventType.EventType, {
82
- notification: notification,
83
- setNewNotification: setNewNotification,
84
- allowedNotifications: allowedNotifications
85
- }), showAdvancedConfigCheckbox() && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
86
- inline: true,
87
- label: _i18n.default.t('notifications_page.advanced_configuration'),
88
- name: "advanced_configuration",
89
- type: "checkbox",
90
- id: "advanced_configuration",
91
- onChange: function onChange(e) {
92
- setShowAdvancedConfig(!showAdvancedConfig);
93
- (0, _NotificationsUtils.handleDirectImpact)(e, setNewNotification, notification);
94
- },
95
- checked: showAdvancedConfig
96
- })), waterAuthorities.length > 1 && /*#__PURE__*/_react.default.createElement(_WaterAuthoritySelection.WaterAuthoritySelection, {
97
- waterAuthorities: waterAuthorities,
98
- allowedNotifications: allowedNotifications,
99
- notification: notification,
100
- setNewNotification: setNewNotification
101
- }), showAdvancedConfigLogic() && advancedComponents(), /*#__PURE__*/_react.default.createElement(_NotificationSendVia.NotificationSendVia, {
102
- notification: notification,
103
- setNewNotification: setNewNotification,
104
- modalDetails: modalDetails,
105
- setModalDetails: setModalDetails,
106
- hasTelegram: hasTelegram,
107
- hasPhone: hasPhone
108
- }), showAdvancedConfigLogic() && notification.type === 'RollingEventAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
109
- inline: true,
110
- label: _i18n.default.t('notifications_page.edit_sampler_active'),
111
- name: "pump_only",
112
- type: "checkbox",
113
- id: "pump_only",
114
- onChange: function onChange(e) {
115
- return (0, _NotificationsUtils.handleNotificationSample)(e, setNewNotification);
116
- },
117
- checked: notification.pump_only === '1'
118
- })));
119
- };
120
- var advancedConfiguration = function advancedConfiguration() {
121
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, notification.type === 'RollingEventAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
122
- controlId: "notification-severity"
123
- }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_severity')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
124
- gap: "10"
125
- }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
126
- options: _notificationUtils.severitiesRadioButtons,
127
- handleChange: function handleChange(event) {
128
- return (0, _NotificationsUtils.handleSeverities)(event, setNewNotification);
129
- },
130
- className: notification.severity,
131
- checked: notification.severity,
132
- type: "radio"
133
- }))), notification.type !== 'WbeWeeklyDigestAlertConfig' && notification.type !== 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_NotificationSources.NotificationSources, {
134
- notification: notification,
135
- setNewNotification: setNewNotification,
136
- points: points
137
- }), notification.type === 'WbeWeeklyDigestAlertConfig' && notification.tags !== undefined && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_NotificationTags.NotificationTags, {
138
- notification: notification,
139
- setNewNotification: setNewNotification,
140
- allowedNotifications: allowedNotifications,
141
- tags: tags
142
- }), notification.type === 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && notification.sensors !== undefined && /*#__PURE__*/_react.default.createElement(_NotificationSensors.NotificationSensors, {
143
- notification: notification,
144
- setNewNotification: setNewNotification,
145
- sensors: sensors
146
- }));
147
- };
148
- return /*#__PURE__*/_react.default.createElement(NotificationSidebarFormAreaStyle, null, basicConfiguration(advancedConfiguration));
61
+ return /*#__PURE__*/_react.default.createElement(NotificationSidebarFormAreaStyle, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
62
+ controlId: "notification-type"
63
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_type')), /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
64
+ onChange: option => (0, _NotificationsUtils.handleNotificationType)(option, notification, setNewNotification),
65
+ name: 'type',
66
+ options: allowedNotifications.map(type => ({
67
+ value: type,
68
+ label: _i18n.default.t(`notifications_page.${type}`)
69
+ })),
70
+ defaultValue: notification.type !== '' ? {
71
+ value: notification.type,
72
+ label: _i18n.default.t(`notifications_page.${notification.type}`)
73
+ } : {
74
+ value: 'RollingEventAlertConfig',
75
+ label: _i18n.default.t(`notifications_page.RollingEventAlertConfig`)
76
+ },
77
+ isDisabled: notification.id ? true : false,
78
+ isSearchable: false
79
+ })), notification.type === 'RollingEventAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
80
+ controlId: "notification-severity"
81
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_severity')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
82
+ gap: "10"
83
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
84
+ options: _notificationUtils.severitiesRadioButtons,
85
+ handleChange: event => (0, _NotificationsUtils.handleSeverities)(event, setNewNotification),
86
+ className: notification.severity,
87
+ checked: notification.severity,
88
+ type: "radio"
89
+ }))), waterAuthorities.length > 1 && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
90
+ controlId: "notification-water-authorities"
91
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.water_authorities')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
92
+ gap: "0"
93
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
94
+ options: _notificationUtils.waterAuthoritiesRadioButtons,
95
+ handleChange: event => (0, _NotificationsUtils.handleWaterAuthorities)(event, '', notification, setNewNotification),
96
+ className: notification.water_authorities.selection_type,
97
+ checked: notification.water_authorities.selection_type,
98
+ type: "radio"
99
+ })), notification.water_authorities.selection_type !== 'all' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
100
+ name: 'water_authority',
101
+ onChange: option => {
102
+ (0, _NotificationsUtils.handleWaterAuthorities)(undefined, {
103
+ selection_type: notification.water_authorities.selection_type,
104
+ set: option
105
+ }, notification, setNewNotification);
106
+ },
107
+ isSearchable: true,
108
+ isMulti: true,
109
+ classNamePrefix: 'water_authority',
110
+ options: waterAuthorities === null || waterAuthorities === void 0 ? void 0 : waterAuthorities.map(wa => ({
111
+ value: wa.water_authority.id,
112
+ label: wa.water_authority.label
113
+ })),
114
+ defaultValue: notification.water_authorities.set !== null ? notification.water_authorities.set.map(wa => ({
115
+ value: wa.id,
116
+ label: wa.text
117
+ })) : []
118
+ })), notification.type !== 'WbeWeeklyDigestAlertConfig' && notification.type !== 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
119
+ controlId: "notification-sources"
120
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.sources')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
121
+ gap: "0"
122
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
123
+ options: _notificationUtils.sourcesRadioButtons,
124
+ handleChange: event => (0, _NotificationsUtils.handleSources)(event, '', notification, setNewNotification),
125
+ className: notification.points.selection_type,
126
+ checked: notification.points.selection_type,
127
+ type: "radio"
128
+ })), notification.points.selection_type !== 'all' && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
129
+ name: 'point',
130
+ onChange: option => {
131
+ (0, _NotificationsUtils.handleSources)(undefined, {
132
+ selection_type: notification.points.selection_type,
133
+ set: option
134
+ }, notification, setNewNotification);
135
+ },
136
+ isSearchable: true,
137
+ isMulti: true,
138
+ classNamePrefix: 'point',
139
+ options: points === null || points === void 0 ? void 0 : points.map(p => ({
140
+ value: p.point.id,
141
+ label: p.point.label
142
+ })),
143
+ defaultValue: notification.points.set !== null ? notification.points.set.map(p => ({
144
+ value: p.id,
145
+ label: p.text
146
+ })) : []
147
+ })), notification.type === 'WbeWeeklyDigestAlertConfig' && notification.tags !== undefined && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
148
+ controlId: "notification-tags"
149
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.tags')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
150
+ gap: "0"
151
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
152
+ options: _notificationUtils.sourcesRadioButtons,
153
+ handleChange: event => (0, _NotificationsUtils.handleTags)(event, '', notification, setNewNotification),
154
+ className: notification.tags.selection_type,
155
+ checked: notification.tags.selection_type,
156
+ type: "radio"
157
+ })), notification.tags.selection_type !== 'all' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
158
+ name: 'point',
159
+ onChange: option => {
160
+ (0, _NotificationsUtils.handleTags)(undefined, {
161
+ selection_type: notification.tags !== undefined ? notification.tags.selection_type : [],
162
+ set: option
163
+ }, notification, setNewNotification);
164
+ },
165
+ isSearchable: true,
166
+ isMulti: true,
167
+ classNamePrefix: 'point',
168
+ options: tags === null || tags === void 0 ? void 0 : tags.map(p => ({
169
+ value: p.tag.id,
170
+ label: p.tag.label
171
+ })),
172
+ defaultValue: notification.tags.set !== null ? notification.tags.set.map(p => ({
173
+ value: p.id,
174
+ label: p.text
175
+ })) : []
176
+ })), notification.type === 'DataloggerThresholdAlertConfig' && allowedNotifications.includes(notification.type) && notification.sensors !== undefined && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
177
+ controlId: "notification-sensors"
178
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.sensors')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
179
+ gap: "0"
180
+ }, /*#__PURE__*/_react.default.createElement(_RadioButtonGroup.default, {
181
+ options: _notificationUtils.sourcesRadioButtons,
182
+ handleChange: event => (0, _NotificationsUtils.handleSensors)(event, '', notification, setNewNotification),
183
+ className: notification.sensors.selection_type,
184
+ checked: notification.sensors.selection_type,
185
+ type: "radio"
186
+ })), notification.sensors.selection_type !== 'all' && /*#__PURE__*/_react.default.createElement(_reactSelect.default, {
187
+ name: 'point',
188
+ onChange: option => {
189
+ (0, _NotificationsUtils.handleSensors)(undefined, {
190
+ selection_type: notification.sensors !== undefined ? notification.sensors.selection_type : [],
191
+ set: option
192
+ }, notification, setNewNotification);
193
+ },
194
+ isSearchable: true,
195
+ isMulti: true,
196
+ classNamePrefix: 'point',
197
+ options: sensors === null || sensors === void 0 ? void 0 : sensors.map(p => ({
198
+ value: p.sensor.id,
199
+ label: p.sensor.label
200
+ })),
201
+ defaultValue: notification.sensors.set !== null ? notification.sensors.set.map(p => ({
202
+ value: p.id,
203
+ label: p.text
204
+ })) : []
205
+ })), /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, {
206
+ controlId: "notification-send"
207
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Label, null, _i18n.default.t('notifications_page.edit_send_via')), /*#__PURE__*/_react.default.createElement(NotificationsCheckboxesStyle, {
208
+ gap: "10"
209
+ }, _notificationUtils.sendViaCheckBoxes.map(value => {
210
+ return /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
211
+ key: value.label,
212
+ option: value,
213
+ handleChange: event => (0, _NotificationsUtils.handleSendVia)(event, notification, setNewNotification, setModalDetails),
214
+ className: notification.actions,
215
+ checked: notification.actions,
216
+ type: "checkbox"
217
+ });
218
+ }), notification.actions.telegram && !hasTelegram && modalDetails.open && modalDetails.instance === 'telegram' && /*#__PURE__*/_react.default.createElement(_Alert.default, {
219
+ setModalDetails: setModalDetails,
220
+ children: /*#__PURE__*/_react.default.createElement(AlertContent, null, /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('notifications_page.edit_send_via_no_telegram')), /*#__PURE__*/_react.default.createElement(ModalActionsButton, {
221
+ color: _theme.theme.colorScheme.natural.n60
222
+ }, _i18n.default.t('notifications_page.ok')))
223
+ }), notification.actions.sms && !hasPhone && modalDetails.open && modalDetails.instance === 'sms' && /*#__PURE__*/_react.default.createElement(_Alert.default, {
224
+ setModalDetails: setModalDetails,
225
+ children: /*#__PURE__*/_react.default.createElement(AlertContent, null, /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('notifications_page.edit_send_via_no_phone')), /*#__PURE__*/_react.default.createElement(ModalActionsButton, {
226
+ color: _theme.theme.colorScheme.natural.n60
227
+ }, _i18n.default.t('notifications_page.ok')))
228
+ }))), notification.type === 'RollingEventAlertConfig' && allowedNotifications.includes(notification.type) && /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Group, null, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Form.Check, {
229
+ inline: true,
230
+ label: _i18n.default.t('notifications_page.edit_sampler_active'),
231
+ name: "pump_only",
232
+ type: "checkbox",
233
+ id: "pump_only",
234
+ onChange: e => (0, _NotificationsUtils.handleNotificationSample)(e, setNewNotification),
235
+ checked: notification.pump_only === '1'
236
+ })));
149
237
  };
150
238
  var _default = NotificationsFormContent;
151
239
  exports.default = _default;
152
- var NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfig({
153
- displayName: "NotificationsFormContent__NotificationSidebarFormAreaStyle",
240
+ const AlertContent = _styledComponents.default.div.withConfig({
241
+ displayName: "NotificationsFormContent__AlertContent",
154
242
  componentId: "sc-1u0oj29-0"
155
- })(["@media (max-width:500px){max-height:60vh !important;}width:100%;max-height:72vh;box-shadow:0px 0px 3px 1px ", ";padding:10px 30px;overflow:auto;label{display:block;font-size:", ";font-weight:", ";margin:0;}.form-group{display:flex;flex-direction:column;gap:8px;}.all,.include,.exclude,.telegram,.email,.sms{border:1px solid ", ";color:", ";}.extreme{border:1px solid ", ";color:", ";}.high{border:1px solid ", ";color:", ";}.medium{border:1px solid ", ";color:", ";}.form-check-inline{align-items:self-start !important;input{margin-top:7px !important;}}"], function (_ref2) {
156
- var theme = _ref2.theme;
243
+ })(["p{padding:30px 30px 0 30px;}display:flex;text-align:center;flex-direction:column;justify-content:space-between;align-content:center;height:100%;"]);
244
+ const ModalActionsButton = _styledComponents.default.div.withConfig({
245
+ displayName: "NotificationsFormContent__ModalActionsButton",
246
+ componentId: "sc-1u0oj29-1"
247
+ })(["border-top:1px solid #a8a8aa;text-align:center;height:45px;display:flex;justify-content:center;align-items:center;cursor:pointer;color:", ";"], _ref2 => {
248
+ let {
249
+ color
250
+ } = _ref2;
251
+ return color;
252
+ });
253
+ const NotificationSidebarFormAreaStyle = _styledComponents.default.div.withConfig({
254
+ displayName: "NotificationsFormContent__NotificationSidebarFormAreaStyle",
255
+ componentId: "sc-1u0oj29-2"
256
+ })(["@media (max-width:500px){max-height:60vh !important;}width:100%;max-height:72vh;box-shadow:0px 0px 3px 1px ", ";padding:10px 30px;overflow:auto;label{display:block;font-size:", ";font-weight:", ";margin:0;}.form-group{display:flex;flex-direction:column;gap:8px;}.all,.include,.exclude,.telegram,.email,.sms{border:1px solid ", ";color:", ";}.extreme{border:1px solid ", ";color:", ";}.high{border:1px solid ", ";color:", ";}.medium{border:1px solid ", ";color:", ";}.form-check-inline{align-items:self-start !important;input{margin-top:7px !important;}}"], _ref3 => {
257
+ let {
258
+ theme
259
+ } = _ref3;
157
260
  return theme.colorScheme.natural.n30;
158
- }, function (_ref3) {
159
- var theme = _ref3.theme;
261
+ }, _ref4 => {
262
+ let {
263
+ theme
264
+ } = _ref4;
160
265
  return theme.fontSize.md;
161
- }, function (_ref4) {
162
- var theme = _ref4.theme;
266
+ }, _ref5 => {
267
+ let {
268
+ theme
269
+ } = _ref5;
163
270
  return theme.fontWeight.w600;
164
- }, function (_ref5) {
165
- var theme = _ref5.theme;
271
+ }, _ref6 => {
272
+ let {
273
+ theme
274
+ } = _ref6;
166
275
  return theme.colorScheme.natural.n80;
167
- }, function (_ref6) {
168
- var theme = _ref6.theme;
276
+ }, _ref7 => {
277
+ let {
278
+ theme
279
+ } = _ref7;
169
280
  return theme.colorScheme.natural.n80;
170
- }, function (_ref7) {
171
- var theme = _ref7.theme;
281
+ }, _ref8 => {
282
+ let {
283
+ theme
284
+ } = _ref8;
172
285
  return theme.colorScheme.primary.p1;
173
- }, function (_ref8) {
174
- var theme = _ref8.theme;
286
+ }, _ref9 => {
287
+ let {
288
+ theme
289
+ } = _ref9;
175
290
  return theme.colorScheme.primary.p1;
176
- }, function (_ref9) {
177
- var theme = _ref9.theme;
291
+ }, _ref10 => {
292
+ let {
293
+ theme
294
+ } = _ref10;
178
295
  return theme.colorScheme.data.O100;
179
- }, function (_ref10) {
180
- var theme = _ref10.theme;
296
+ }, _ref11 => {
297
+ let {
298
+ theme
299
+ } = _ref11;
181
300
  return theme.colorScheme.data.O100;
182
- }, function (_ref11) {
183
- var theme = _ref11.theme;
301
+ }, _ref12 => {
302
+ let {
303
+ theme
304
+ } = _ref12;
184
305
  return theme.colorScheme.data.W100;
185
- }, function (_ref12) {
186
- var theme = _ref12.theme;
306
+ }, _ref13 => {
307
+ let {
308
+ theme
309
+ } = _ref13;
187
310
  return theme.colorScheme.data.W100;
188
311
  });
189
- var NotificationsCheckboxesStyle = _styledComponents.default.div.withConfig({
312
+ const NotificationsCheckboxesStyle = _styledComponents.default.div.withConfig({
190
313
  displayName: "NotificationsFormContent__NotificationsCheckboxesStyle",
191
- componentId: "sc-1u0oj29-1"
192
- })(["display:flex;gap:", ";margin-bottom:8px;"], function (_ref13) {
193
- var gap = _ref13.gap;
314
+ componentId: "sc-1u0oj29-3"
315
+ })(["display:flex;gap:", ";margin-bottom:8px;"], _ref14 => {
316
+ let {
317
+ gap
318
+ } = _ref14;
194
319
  return gap + 'px';
195
320
  });
196
- exports.NotificationsCheckboxesStyle = NotificationsCheckboxesStyle;
197
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbm90aWZpY2F0aW9uVXRpbHMiLCJfUmFkaW9CdXR0b25Hcm91cCIsIl9Ob3RpZmljYXRpb25zVXRpbHMiLCJfRXZlbnRUeXBlIiwiX05vdGlmaWNhdGlvblNlbmRWaWEiLCJfV2F0ZXJBdXRob3JpdHlTZWxlY3Rpb24iLCJfTm90aWZpY2F0aW9uU291cmNlcyIsIl9Ob3RpZmljYXRpb25UYWdzIiwiX05vdGlmaWNhdGlvblNlbnNvcnMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk5vdGlmaWNhdGlvbnNGb3JtQ29udGVudCIsIl9yZWYiLCJub3RpZmljYXRpb24iLCJwb2ludHMiLCJ0YWdzIiwic2Vuc29ycyIsIndhdGVyQXV0aG9yaXRpZXMiLCJhbGxvd2VkTm90aWZpY2F0aW9ucyIsInNldE5ld05vdGlmaWNhdGlvbiIsImhhc1Bob25lIiwiaGFzVGVsZWdyYW0iLCJpbml0aWFsQWR2YW5jZWRDb25maWciLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIm9wZW4iLCJpbnN0YW5jZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJtb2RhbERldGFpbHMiLCJzZXRNb2RhbERldGFpbHMiLCJpc0RpcmVjdEltcGFjdCIsImRpcmVjdF9pbXBhY3Rfb25seSIsInVuZGVmaW5lZCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd0FkdmFuY2VkQ29uZmlnIiwic2V0U2hvd0FkdmFuY2VkQ29uZmlnIiwic2hvd0FkdmFuY2VkQ29uZmlnTG9naWMiLCJ0eXBlIiwiaWQiLCJzaG93QWR2YW5jZWRDb25maWdDaGVja2JveCIsImRlZmF1bHRXYXRlckF1dGhvcml0eUlmU2luZ2xlIiwibGVuZ3RoIiwiaGFuZGxlTm90aWZpY2F0aW9uVHlwZSIsInZhbHVlIiwibGFiZWwiLCJpMThuIiwidCIsImhhbmRsZVdhdGVyQXV0aG9yaXRpZXMiLCJzZWxlY3Rpb25fdHlwZSIsIndhdGVyX2F1dGhvcml0eSIsInVzZUVmZmVjdCIsImJhc2ljQ29uZmlndXJhdGlvbiIsImFkdmFuY2VkQ29tcG9uZW50cyIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsIkV2ZW50VHlwZSIsIkZvcm0iLCJHcm91cCIsIkNoZWNrIiwiaW5saW5lIiwibmFtZSIsIm9uQ2hhbmdlIiwiZSIsImhhbmRsZURpcmVjdEltcGFjdCIsImNoZWNrZWQiLCJXYXRlckF1dGhvcml0eVNlbGVjdGlvbiIsIk5vdGlmaWNhdGlvblNlbmRWaWEiLCJpbmNsdWRlcyIsImhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSIsInB1bXBfb25seSIsImFkdmFuY2VkQ29uZmlndXJhdGlvbiIsImNvbnRyb2xJZCIsIkxhYmVsIiwiTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSIsImdhcCIsIm9wdGlvbnMiLCJzZXZlcml0aWVzUmFkaW9CdXR0b25zIiwiaGFuZGxlQ2hhbmdlIiwiZXZlbnQiLCJoYW5kbGVTZXZlcml0aWVzIiwiY2xhc3NOYW1lIiwic2V2ZXJpdHkiLCJOb3RpZmljYXRpb25Tb3VyY2VzIiwiTm90aWZpY2F0aW9uVGFncyIsIk5vdGlmaWNhdGlvblNlbnNvcnMiLCJOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZjIiLCJ0aGVtZSIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm4zMCIsIl9yZWYzIiwiZm9udFNpemUiLCJtZCIsIl9yZWY0IiwiZm9udFdlaWdodCIsInc2MDAiLCJfcmVmNSIsIm44MCIsIl9yZWY2IiwiX3JlZjciLCJwcmltYXJ5IiwicDEiLCJfcmVmOCIsIl9yZWY5IiwiZGF0YSIsIk8xMDAiLCJfcmVmMTAiLCJfcmVmMTEiLCJXMTAwIiwiX3JlZjEyIiwiX3JlZjEzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL05vdGlmaWNhdGlvbnNQYWdlVjIvY29tcG9uZW50cy9Ob3RpZmljYXRpb25zRm9ybS9Ob3RpZmljYXRpb25zRm9ybUNvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cy9tYWNybyc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAncmVhY3QtYm9vdHN0cmFwJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQge1xuICBOb3RpZmljYXRpb24sXG4gIHNldmVyaXRpZXNSYWRpb0J1dHRvbnMsXG4gIEFkdmFuY2VkU2VsZWN0aW9uLFxufSBmcm9tICdzcmMvcGFnZXMvTm90aWZpY2F0aW9uc1BhZ2VWMi9ub3RpZmljYXRpb25VdGlscyc7XG5pbXBvcnQgUmFkaW9CdXR0b25Hcm91cCBmcm9tICdzcmMvdWkta2l0L1JhZGlvQnV0dG9ucy9SYWRpb0J1dHRvbkdyb3VwJztcbmltcG9ydCB7XG4gIGhhbmRsZURpcmVjdEltcGFjdCxcbiAgaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlLFxuICBoYW5kbGVOb3RpZmljYXRpb25UeXBlLFxuICBoYW5kbGVTZXZlcml0aWVzLFxuICBoYW5kbGVXYXRlckF1dGhvcml0aWVzLFxufSBmcm9tICcuLi9Ob3RpZmljYXRpb25zVXRpbHMnO1xuaW1wb3J0IHsgQWxlcnREZXRhaWxzIH0gZnJvbSAnLi4vLi4vLi4vU2FtcGxpbmdzUGFnZS9TYW1wbGluZ1Byb3BlcnRpZXMvc2FtcGxpbmdQcm9wZXJ0aWVzVXRpbHMnO1xuaW1wb3J0IHsgRXZlbnRUeXBlIH0gZnJvbSAnLi9FdmVudFR5cGUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VuZFZpYSB9IGZyb20gJy4vTm90aWZpY2F0aW9uU2VuZFZpYSc7XG5pbXBvcnQgeyBXYXRlckF1dGhvcml0eVNlbGVjdGlvbiB9IGZyb20gJy4vV2F0ZXJBdXRob3JpdHlTZWxlY3Rpb24nO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU291cmNlcyB9IGZyb20gJy4vTm90aWZpY2F0aW9uU291cmNlcyc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25UYWdzIH0gZnJvbSAnLi9Ob3RpZmljYXRpb25UYWdzJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlbnNvcnMgfSBmcm9tICcuL05vdGlmaWNhdGlvblNlbnNvcnMnO1xuXG5pbnRlcmZhY2Ugbm90aWZpY2F0aW9uRm9ybUNvbnRlbnRQcm9wcyB7XG4gIG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uO1xuICBwb2ludHM6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIHRhZ3M6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIHNlbnNvcnM6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIHdhdGVyQXV0aG9yaXRpZXM6IEFkdmFuY2VkU2VsZWN0aW9uW107XG4gIGFsbG93ZWROb3RpZmljYXRpb25zOiBzdHJpbmdbXTtcbiAgc2V0TmV3Tm90aWZpY2F0aW9uOiBhbnk7XG4gIGhhc1Bob25lOiBib29sZWFuO1xuICBoYXNUZWxlZ3JhbTogYm9vbGVhbjtcbiAgaW5pdGlhbEFkdmFuY2VkQ29uZmlnOiBib29sZWFuO1xuICBkaXJlY3RfaW1wYWN0X29ubHk6IGJvb2xlYW47XG59XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNGb3JtQ29udGVudDogUmVhY3QuRkM8bm90aWZpY2F0aW9uRm9ybUNvbnRlbnRQcm9wcz4gPSAoe1xuICBub3RpZmljYXRpb24sXG4gIHBvaW50cyxcbiAgdGFncyxcbiAgc2Vuc29ycyxcbiAgd2F0ZXJBdXRob3JpdGllcyxcbiAgYWxsb3dlZE5vdGlmaWNhdGlvbnMsXG4gIHNldE5ld05vdGlmaWNhdGlvbixcbiAgaGFzUGhvbmUsXG4gIGhhc1RlbGVncmFtLFxuICBpbml0aWFsQWR2YW5jZWRDb25maWcsXG59KSA9PiB7XG4gIGNvbnN0IFttb2RhbERldGFpbHMsIHNldE1vZGFsRGV0YWlsc10gPSB1c2VTdGF0ZTxBbGVydERldGFpbHM+KHtcbiAgICBvcGVuOiBmYWxzZSxcbiAgICBpbnN0YW5jZTogJycsXG4gIH0pO1xuICBjb25zdCBpc0RpcmVjdEltcGFjdCA9IChub3RpZmljYXRpb24pID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgbm90aWZpY2F0aW9uLmRpcmVjdF9pbXBhY3Rfb25seSA9PT0gJzEnIHx8XG4gICAgICBub3RpZmljYXRpb24uZGlyZWN0X2ltcGFjdF9vbmx5ID09PSB1bmRlZmluZWRcbiAgICApO1xuICB9O1xuICBjb25zdCBbc2hvd0FkdmFuY2VkQ29uZmlnLCBzZXRTaG93QWR2YW5jZWRDb25maWddID0gdXNlU3RhdGUoXG4gICAgaXNEaXJlY3RJbXBhY3Qobm90aWZpY2F0aW9uKSA/IGZhbHNlIDogdHJ1ZSxcbiAgKTtcbiAgY29uc3Qgc2hvd0FkdmFuY2VkQ29uZmlnTG9naWMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgICgobm90aWZpY2F0aW9uLnR5cGUgIT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycgfHxcbiAgICAgICAgaW5pdGlhbEFkdmFuY2VkQ29uZmlnKSAmJlxuICAgICAgICBzaG93QWR2YW5jZWRDb25maWcpIHx8XG4gICAgICAobm90aWZpY2F0aW9uLmlkID09PSAnJyAmJlxuICAgICAgICBub3RpZmljYXRpb24udHlwZSAhPT0gJ1JvbGxpbmdFdmVudEFsZXJ0Q29uZmlnJylcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IHNob3dBZHZhbmNlZENvbmZpZ0NoZWNrYm94ID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBub3RpZmljYXRpb24udHlwZSA9PT0gJ1JvbGxpbmdFdmVudEFsZXJ0Q29uZmlnJyAmJiBpbml0aWFsQWR2YW5jZWRDb25maWdcbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IGRlZmF1bHRXYXRlckF1dGhvcml0eUlmU2luZ2xlID0gKCkgPT4ge1xuICAgIGlmICh3YXRlckF1dGhvcml0aWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgaGFuZGxlTm90aWZpY2F0aW9uVHlwZShcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiAnUm9sbGluZ0V2ZW50QWxlcnRDb25maWcnLFxuICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5Sb2xsaW5nRXZlbnRBbGVydENvbmZpZ2ApLFxuICAgICAgICB9LFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICk7XG4gICAgICBoYW5kbGVXYXRlckF1dGhvcml0aWVzKFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHtcbiAgICAgICAgICBzZWxlY3Rpb25fdHlwZTogJ2luY2x1ZGUnLFxuICAgICAgICAgIHNldDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWx1ZTogd2F0ZXJBdXRob3JpdGllc1swXS53YXRlcl9hdXRob3JpdHkuaWQsXG4gICAgICAgICAgICAgIGxhYmVsOiB3YXRlckF1dGhvcml0aWVzWzBdLndhdGVyX2F1dGhvcml0eS5sYWJlbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgbm90aWZpY2F0aW9uLFxuICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICApO1xuICAgIH1cbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGRlZmF1bHRXYXRlckF1dGhvcml0eUlmU2luZ2xlKCk7XG4gICAgaWYgKG5vdGlmaWNhdGlvbi50eXBlID09PSAnJykge1xuICAgICAgaGFuZGxlTm90aWZpY2F0aW9uVHlwZShcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiAnUm9sbGluZ0V2ZW50QWxlcnRDb25maWcnLFxuICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5Sb2xsaW5nRXZlbnRBbGVydENvbmZpZ2ApLFxuICAgICAgICB9LFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICk7XG4gICAgfVxuICB9LCBbXSk7XG5cbiAgY29uc3QgYmFzaWNDb25maWd1cmF0aW9uID0gKGFkdmFuY2VkQ29tcG9uZW50cykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8RXZlbnRUeXBlXG4gICAgICAgICAgbm90aWZpY2F0aW9uPXtub3RpZmljYXRpb259XG4gICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uPXtzZXROZXdOb3RpZmljYXRpb259XG4gICAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnM9e2FsbG93ZWROb3RpZmljYXRpb25zfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtzaG93QWR2YW5jZWRDb25maWdDaGVja2JveCgpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cD5cbiAgICAgICAgICAgIDxGb3JtLkNoZWNrXG4gICAgICAgICAgICAgIGlubGluZVxuICAgICAgICAgICAgICBsYWJlbD17aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuYWR2YW5jZWRfY29uZmlndXJhdGlvbicpfVxuICAgICAgICAgICAgICBuYW1lPVwiYWR2YW5jZWRfY29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIGlkPVwiYWR2YW5jZWRfY29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFNob3dBZHZhbmNlZENvbmZpZyghc2hvd0FkdmFuY2VkQ29uZmlnKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVEaXJlY3RJbXBhY3QoZSwgc2V0TmV3Tm90aWZpY2F0aW9uLCBub3RpZmljYXRpb24pO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBjaGVja2VkPXtzaG93QWR2YW5jZWRDb25maWd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAgICB7d2F0ZXJBdXRob3JpdGllcy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgICA8V2F0ZXJBdXRob3JpdHlTZWxlY3Rpb25cbiAgICAgICAgICAgIHdhdGVyQXV0aG9yaXRpZXM9e3dhdGVyQXV0aG9yaXRpZXN9XG4gICAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucz17YWxsb3dlZE5vdGlmaWNhdGlvbnN9XG4gICAgICAgICAgICBub3RpZmljYXRpb249e25vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbj17c2V0TmV3Tm90aWZpY2F0aW9ufVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG5cbiAgICAgICAge3Nob3dBZHZhbmNlZENvbmZpZ0xvZ2ljKCkgJiYgYWR2YW5jZWRDb21wb25lbnRzKCl9XG5cbiAgICAgICAgPE5vdGlmaWNhdGlvblNlbmRWaWFcbiAgICAgICAgICBub3RpZmljYXRpb249e25vdGlmaWNhdGlvbn1cbiAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb249e3NldE5ld05vdGlmaWNhdGlvbn1cbiAgICAgICAgICBtb2RhbERldGFpbHM9e21vZGFsRGV0YWlsc31cbiAgICAgICAgICBzZXRNb2RhbERldGFpbHM9e3NldE1vZGFsRGV0YWlsc31cbiAgICAgICAgICBoYXNUZWxlZ3JhbT17aGFzVGVsZWdyYW19XG4gICAgICAgICAgaGFzUGhvbmU9e2hhc1Bob25lfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtzaG93QWR2YW5jZWRDb25maWdMb2dpYygpICYmXG4gICAgICAgICAgbm90aWZpY2F0aW9uLnR5cGUgPT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycgJiZcbiAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgICAgPEZvcm0uR3JvdXA+XG4gICAgICAgICAgICAgIDxGb3JtLkNoZWNrXG4gICAgICAgICAgICAgICAgaW5saW5lXG4gICAgICAgICAgICAgICAgbGFiZWw9e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2FtcGxlcl9hY3RpdmUnKX1cbiAgICAgICAgICAgICAgICBuYW1lPVwicHVtcF9vbmx5XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIGlkPVwicHVtcF9vbmx5XCJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+XG4gICAgICAgICAgICAgICAgICBoYW5kbGVOb3RpZmljYXRpb25TYW1wbGUoZSwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24ucHVtcF9vbmx5ID09PSAnMSd9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICAgICAgKX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgY29uc3QgYWR2YW5jZWRDb25maWd1cmF0aW9uID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycgJiZcbiAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNldmVyaXR5XCI+XG4gICAgICAgICAgICAgIDxGb3JtLkxhYmVsPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NldmVyaXR5Jyl9XG4gICAgICAgICAgICAgIDwvRm9ybS5MYWJlbD5cbiAgICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMTBcIj5cbiAgICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Hcm91cFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17c2V2ZXJpdGllc1JhZGlvQnV0dG9uc31cbiAgICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZXZlcml0aWVzKGV2ZW50LCBzZXROZXdOb3RpZmljYXRpb24pXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5zZXZlcml0eX1cbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5zZXZlcml0eX1cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgICAgICl9XG5cbiAgICAgICAge25vdGlmaWNhdGlvbi50eXBlICE9PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgICAgbm90aWZpY2F0aW9uLnR5cGUgIT09ICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnICYmXG4gICAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICAgIDxOb3RpZmljYXRpb25Tb3VyY2VzXG4gICAgICAgICAgICAgIG5vdGlmaWNhdGlvbj17bm90aWZpY2F0aW9ufVxuICAgICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb249e3NldE5ld05vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG5cbiAgICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgICAgbm90aWZpY2F0aW9uLnRhZ3MgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIGFsbG93ZWROb3RpZmljYXRpb25zLmluY2x1ZGVzKG5vdGlmaWNhdGlvbi50eXBlKSAmJiAoXG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uVGFnc1xuICAgICAgICAgICAgICBub3RpZmljYXRpb249e25vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uPXtzZXROZXdOb3RpZmljYXRpb259XG4gICAgICAgICAgICAgIGFsbG93ZWROb3RpZmljYXRpb25zPXthbGxvd2VkTm90aWZpY2F0aW9uc31cbiAgICAgICAgICAgICAgdGFncz17dGFnc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdEYXRhbG9nZ2VyVGhyZXNob2xkQWxlcnRDb25maWcnICYmXG4gICAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmXG4gICAgICAgICAgbm90aWZpY2F0aW9uLnNlbnNvcnMgIT09IHVuZGVmaW5lZCAmJiAoXG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uU2Vuc29yc1xuICAgICAgICAgICAgICBub3RpZmljYXRpb249e25vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uPXtzZXROZXdOb3RpZmljYXRpb259XG4gICAgICAgICAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPE5vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlPlxuICAgICAge2Jhc2ljQ29uZmlndXJhdGlvbihhZHZhbmNlZENvbmZpZ3VyYXRpb24pfVxuICAgIDwvTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGU+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQ7XG5cbmNvbnN0IE5vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlID0gc3R5bGVkLmRpdmBcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgbWF4LWhlaWdodDogNjB2aCAhaW1wb3J0YW50O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDcydmg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggM3B4IDFweCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjMwfTtcbiAgcGFkZGluZzogMTBweCAzMHB4O1xuICBvdmVyZmxvdzogYXV0bztcblxuICBsYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRTaXplLm1kfTtcbiAgICBmb250LXdlaWdodDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250V2VpZ2h0Lnc2MDB9O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAuYWxsLFxuICAuaW5jbHVkZSxcbiAgLmV4Y2x1ZGUsXG4gIC50ZWxlZ3JhbSxcbiAgLmVtYWlsLFxuICAuc21zIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjgwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm44MH07XG4gIH1cbiAgLmV4dHJlbWUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUucHJpbWFyeS5wMX07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUucHJpbWFyeS5wMX07XG4gIH1cbiAgLmhpZ2gge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5PMTAwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLk8xMDB9O1xuICB9XG4gIC5tZWRpdW0ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5XMTAwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLlcxMDB9O1xuICB9XG5cbiAgLmZvcm0tY2hlY2staW5saW5lIHtcbiAgICBhbGlnbi1pdGVtczogc2VsZi1zdGFydCAhaW1wb3J0YW50O1xuXG4gICAgaW5wdXQge1xuICAgICAgbWFyZ2luLXRvcDogN3B4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSA9IHN0eWxlZC5kaXY8eyBnYXA6IHN0cmluZyB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiAkeyh7IGdhcCB9KSA9PiBnYXAgKyAncHgnfTtcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xuYDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGtCQUFBLEdBQUFKLE9BQUE7QUFLQSxJQUFBSyxpQkFBQSxHQUFBRixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQU0sbUJBQUEsR0FBQU4sT0FBQTtBQVFBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLG9CQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyx3QkFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsb0JBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLGlCQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxvQkFBQSxHQUFBWixPQUFBO0FBQTRELFNBQUFhLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBZix3QkFBQW1CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEs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
321
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RCb290c3RyYXAiLCJfaTE4biIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbm90aWZpY2F0aW9uVXRpbHMiLCJfQ2hlY2tib3giLCJfUmFkaW9CdXR0b25Hcm91cCIsIl9yZWFjdFNlbGVjdCIsIl9Ob3RpZmljYXRpb25zVXRpbHMiLCJfQWxlcnQiLCJfdGhlbWUiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50IiwiX3JlZiIsIm5vdGlmaWNhdGlvbiIsInBvaW50cyIsInRhZ3MiLCJzZW5zb3JzIiwid2F0ZXJBdXRob3JpdGllcyIsImFsbG93ZWROb3RpZmljYXRpb25zIiwic2V0TmV3Tm90aWZpY2F0aW9uIiwiaGFzUGhvbmUiLCJoYXNUZWxlZ3JhbSIsIm1vZGFsRGV0YWlscyIsInNldE1vZGFsRGV0YWlscyIsInVzZVN0YXRlIiwib3BlbiIsImluc3RhbmNlIiwiZGVmYXVsdFdhdGVyQXV0aG9yaXR5SWZTaW5nbGUiLCJsZW5ndGgiLCJoYW5kbGVOb3RpZmljYXRpb25UeXBlIiwidmFsdWUiLCJsYWJlbCIsImkxOG4iLCJ0IiwiaGFuZGxlV2F0ZXJBdXRob3JpdGllcyIsInVuZGVmaW5lZCIsInNlbGVjdGlvbl90eXBlIiwid2F0ZXJfYXV0aG9yaXR5IiwiaWQiLCJ1c2VFZmZlY3QiLCJ0eXBlIiwiY3JlYXRlRWxlbWVudCIsIk5vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlIiwiRm9ybSIsIkdyb3VwIiwiY29udHJvbElkIiwiTGFiZWwiLCJvbkNoYW5nZSIsIm9wdGlvbiIsIm5hbWUiLCJvcHRpb25zIiwibWFwIiwiZGVmYXVsdFZhbHVlIiwiaXNEaXNhYmxlZCIsImlzU2VhcmNoYWJsZSIsImluY2x1ZGVzIiwiTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSIsImdhcCIsInNldmVyaXRpZXNSYWRpb0J1dHRvbnMiLCJoYW5kbGVDaGFuZ2UiLCJldmVudCIsImhhbmRsZVNldmVyaXRpZXMiLCJjbGFzc05hbWUiLCJzZXZlcml0eSIsImNoZWNrZWQiLCJ3YXRlckF1dGhvcml0aWVzUmFkaW9CdXR0b25zIiwid2F0ZXJfYXV0aG9yaXRpZXMiLCJpc011bHRpIiwiY2xhc3NOYW1lUHJlZml4Iiwid2EiLCJ0ZXh0Iiwic291cmNlc1JhZGlvQnV0dG9ucyIsImhhbmRsZVNvdXJjZXMiLCJwIiwicG9pbnQiLCJoYW5kbGVUYWdzIiwidGFnIiwiaGFuZGxlU2Vuc29ycyIsInNlbnNvciIsInNlbmRWaWFDaGVja0JveGVzIiwiaGFuZGxlU2VuZFZpYSIsImFjdGlvbnMiLCJ0ZWxlZ3JhbSIsImNoaWxkcmVuIiwiQWxlcnRDb250ZW50IiwiTW9kYWxBY3Rpb25zQnV0dG9uIiwiY29sb3IiLCJ0aGVtZSIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm42MCIsInNtcyIsIkNoZWNrIiwiaW5saW5lIiwiZSIsImhhbmRsZU5vdGlmaWNhdGlvblNhbXBsZSIsInB1bXBfb25seSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwiX3JlZjIiLCJfcmVmMyIsIm4zMCIsIl9yZWY0IiwiZm9udFNpemUiLCJtZCIsIl9yZWY1IiwiZm9udFdlaWdodCIsInc2MDAiLCJfcmVmNiIsIm44MCIsIl9yZWY3IiwiX3JlZjgiLCJwcmltYXJ5IiwicDEiLCJfcmVmOSIsIl9yZWYxMCIsImRhdGEiLCJPMTAwIiwiX3JlZjExIiwiX3JlZjEyIiwiVzEwMCIsIl9yZWYxMyIsIl9yZWYxNCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc0Zvcm0vTm90aWZpY2F0aW9uc0Zvcm1Db250ZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgRm9ybSB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHtcbiAgTm90aWZpY2F0aW9uLFxuICBzZXZlcml0aWVzUmFkaW9CdXR0b25zLFxuICB3YXRlckF1dGhvcml0aWVzUmFkaW9CdXR0b25zLFxuICBzb3VyY2VzUmFkaW9CdXR0b25zLFxuICBzZW5kVmlhQ2hlY2tCb3hlcyxcbiAgQWR2YW5jZWRTZWxlY3Rpb24sXG59IGZyb20gJ3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL25vdGlmaWNhdGlvblV0aWxzJztcbmltcG9ydCBDaGVja2JveCBmcm9tICdzcmMvdWkta2l0L0NoZWNrYm94L0NoZWNrYm94JztcbmltcG9ydCBSYWRpb0J1dHRvbkdyb3VwIGZyb20gJ3NyYy91aS1raXQvUmFkaW9CdXR0b25zL1JhZGlvQnV0dG9uR3JvdXAnO1xuaW1wb3J0IFNlbGVjdCBmcm9tICdyZWFjdC1zZWxlY3QnO1xuaW1wb3J0IHtcbiAgaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlLFxuICBoYW5kbGVOb3RpZmljYXRpb25UeXBlLFxuICBoYW5kbGVTZW5kVmlhLFxuICBoYW5kbGVTZW5zb3JzLFxuICBoYW5kbGVTZXZlcml0aWVzLFxuICBoYW5kbGVTb3VyY2VzLFxuICBoYW5kbGVUYWdzLFxuICBoYW5kbGVXYXRlckF1dGhvcml0aWVzLFxufSBmcm9tICcuLi9Ob3RpZmljYXRpb25zVXRpbHMnO1xuaW1wb3J0IEFsZXJ0IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9BbGVydCc7XG5pbXBvcnQgeyBBbGVydERldGFpbHMgfSBmcm9tICcuLi8uLi8uLi9TYW1wbGluZ3NQYWdlL1NhbXBsaW5nUHJvcGVydGllcy9zYW1wbGluZ1Byb3BlcnRpZXNVdGlscyc7XG5pbXBvcnQgeyB0aGVtZSB9IGZyb20gJy4uLy4uLy4uLy4uL3N0eWxlcy90aGVtZS90aGVtZSc7XG5cbmludGVyZmFjZSBub3RpZmljYXRpb25Gb3JtQ29udGVudFByb3BzIHtcbiAgbm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb247XG4gIHBvaW50czogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgdGFnczogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgc2Vuc29yczogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgd2F0ZXJBdXRob3JpdGllczogQWR2YW5jZWRTZWxlY3Rpb25bXTtcbiAgYWxsb3dlZE5vdGlmaWNhdGlvbnM6IHN0cmluZ1tdO1xuICBzZXROZXdOb3RpZmljYXRpb246IGFueTtcbiAgaGFzUGhvbmU6IGJvb2xlYW47XG4gIGhhc1RlbGVncmFtOiBib29sZWFuO1xufVxuXG5jb25zdCBOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQ6IFJlYWN0LkZDPG5vdGlmaWNhdGlvbkZvcm1Db250ZW50UHJvcHM+ID0gKHtcbiAgbm90aWZpY2F0aW9uLFxuICBwb2ludHMsXG4gIHRhZ3MsXG4gIHNlbnNvcnMsXG4gIHdhdGVyQXV0aG9yaXRpZXMsXG4gIGFsbG93ZWROb3RpZmljYXRpb25zLFxuICBzZXROZXdOb3RpZmljYXRpb24sXG4gIGhhc1Bob25lLFxuICBoYXNUZWxlZ3JhbSxcbn0pID0+IHtcbiAgY29uc3QgW21vZGFsRGV0YWlscywgc2V0TW9kYWxEZXRhaWxzXSA9IHVzZVN0YXRlPEFsZXJ0RGV0YWlscz4oe1xuICAgIG9wZW46IGZhbHNlLFxuICAgIGluc3RhbmNlOiAnJyxcbiAgfSk7XG5cbiAgY29uc3QgZGVmYXVsdFdhdGVyQXV0aG9yaXR5SWZTaW5nbGUgPSAoKSA9PiB7XG4gICAgaWYgKHdhdGVyQXV0aG9yaXRpZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICBoYW5kbGVOb3RpZmljYXRpb25UeXBlKFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycsXG4gICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLlJvbGxpbmdFdmVudEFsZXJ0Q29uZmlnYCksXG4gICAgICAgIH0sXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICAgIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMoXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAge1xuICAgICAgICAgIHNlbGVjdGlvbl90eXBlOiAnaW5jbHVkZScsXG4gICAgICAgICAgc2V0OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHZhbHVlOiB3YXRlckF1dGhvcml0aWVzWzBdLndhdGVyX2F1dGhvcml0eS5pZCxcbiAgICAgICAgICAgICAgbGFiZWw6IHdhdGVyQXV0aG9yaXRpZXNbMF0ud2F0ZXJfYXV0aG9yaXR5LmxhYmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGVmYXVsdFdhdGVyQXV0aG9yaXR5SWZTaW5nbGUoKTtcbiAgICBpZiAobm90aWZpY2F0aW9uLnR5cGUgPT09ICcnKSB7XG4gICAgICBoYW5kbGVOb3RpZmljYXRpb25UeXBlKFxuICAgICAgICB7XG4gICAgICAgICAgdmFsdWU6ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycsXG4gICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLlJvbGxpbmdFdmVudEFsZXJ0Q29uZmlnYCksXG4gICAgICAgIH0sXG4gICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICByZXR1cm4gKFxuICAgIDxOb3RpZmljYXRpb25TaWRlYmFyRm9ybUFyZWFTdHlsZT5cbiAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi10eXBlXCI+XG4gICAgICAgIDxGb3JtLkxhYmVsPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3R5cGUnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxTZWxlY3RcbiAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbikgPT5cbiAgICAgICAgICAgIGhhbmRsZU5vdGlmaWNhdGlvblR5cGUob3B0aW9uLCBub3RpZmljYXRpb24sIHNldE5ld05vdGlmaWNhdGlvbilcbiAgICAgICAgICB9XG4gICAgICAgICAgbmFtZT17J3R5cGUnfVxuICAgICAgICAgIG9wdGlvbnM9e2FsbG93ZWROb3RpZmljYXRpb25zIS5tYXAoKHR5cGU6IGFueSkgPT4gKHtcbiAgICAgICAgICAgIHZhbHVlOiB0eXBlLFxuICAgICAgICAgICAgbGFiZWw6IGkxOG4udChgbm90aWZpY2F0aW9uc19wYWdlLiR7dHlwZX1gKSxcbiAgICAgICAgICB9KSl9XG4gICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnJ1xuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBub3RpZmljYXRpb24udHlwZSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS4ke25vdGlmaWNhdGlvbi50eXBlfWApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogJ1JvbGxpbmdFdmVudEFsZXJ0Q29uZmlnJyxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG5vdGlmaWNhdGlvbnNfcGFnZS5Sb2xsaW5nRXZlbnRBbGVydENvbmZpZ2ApLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaXNEaXNhYmxlZD17bm90aWZpY2F0aW9uLmlkID8gdHJ1ZSA6IGZhbHNlfVxuICAgICAgICAgIGlzU2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgIC8+XG4gICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICB7bm90aWZpY2F0aW9uLnR5cGUgPT09ICdSb2xsaW5nRXZlbnRBbGVydENvbmZpZycgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tc2V2ZXJpdHlcIj5cbiAgICAgICAgICAgIDxGb3JtLkxhYmVsPlxuICAgICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZXZlcml0eScpfVxuICAgICAgICAgICAgPC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMTBcIj5cbiAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzZXZlcml0aWVzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU2V2ZXJpdGllcyhldmVudCwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5zZXZlcml0eX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24uc2V2ZXJpdHl9XG4gICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICAgICl9XG4gICAgICB7d2F0ZXJBdXRob3JpdGllcy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXdhdGVyLWF1dGhvcml0aWVzXCI+XG4gICAgICAgICAgPEZvcm0uTGFiZWw+XG4gICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uud2F0ZXJfYXV0aG9yaXRpZXMnKX1cbiAgICAgICAgICA8L0Zvcm0uTGFiZWw+XG4gICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgb3B0aW9ucz17d2F0ZXJBdXRob3JpdGllc1JhZGlvQnV0dG9uc31cbiAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgaGFuZGxlV2F0ZXJBdXRob3JpdGllcyhcbiAgICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17bm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNlbGVjdGlvbl90eXBlfVxuICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24ud2F0ZXJfYXV0aG9yaXRpZXMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICB7bm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNlbGVjdGlvbl90eXBlICE9PSAnYWxsJyAmJlxuICAgICAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIG5hbWU9eyd3YXRlcl9hdXRob3JpdHknfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGhhbmRsZVdhdGVyQXV0aG9yaXRpZXMoXG4gICAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl90eXBlOlxuICAgICAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNlbGVjdGlvbl90eXBlLFxuICAgICAgICAgICAgICAgICAgICAgIHNldDogb3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpc1NlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9eyd3YXRlcl9hdXRob3JpdHknfVxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3dhdGVyQXV0aG9yaXRpZXM/Lm1hcCgod2E6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB3YS53YXRlcl9hdXRob3JpdHkuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogd2Eud2F0ZXJfYXV0aG9yaXR5LmxhYmVsLFxuICAgICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e1xuICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uLndhdGVyX2F1dGhvcml0aWVzLnNldCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICA/IG5vdGlmaWNhdGlvbi53YXRlcl9hdXRob3JpdGllcy5zZXQubWFwKCh3YTogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHdhLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHdhLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICA8L0Zvcm0uR3JvdXA+XG4gICAgICApfVxuICAgICAge25vdGlmaWNhdGlvbi50eXBlICE9PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgIG5vdGlmaWNhdGlvbi50eXBlICE9PSAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwIGNvbnRyb2xJZD1cIm5vdGlmaWNhdGlvbi1zb3VyY2VzXCI+XG4gICAgICAgICAgICA8Rm9ybS5MYWJlbD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uuc291cmNlcycpfTwvRm9ybS5MYWJlbD5cbiAgICAgICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjBcIj5cbiAgICAgICAgICAgICAgPFJhZGlvQnV0dG9uR3JvdXBcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtzb3VyY2VzUmFkaW9CdXR0b25zfVxuICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZT17KGV2ZW50KSA9PlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU291cmNlcyhldmVudCwgJycsIG5vdGlmaWNhdGlvbiwgc2V0TmV3Tm90aWZpY2F0aW9uKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnBvaW50cy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAge25vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGUgIT09ICdhbGwnICYmIChcbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIG5hbWU9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhvcHRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaGFuZGxlU291cmNlcyhcbiAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uX3R5cGU6IG5vdGlmaWNhdGlvbi5wb2ludHMuc2VsZWN0aW9uX3R5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgc2V0OiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2V0TmV3Tm90aWZpY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGlzU2VhcmNoYWJsZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBpc011bHRpPXt0cnVlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD17J3BvaW50J31cbiAgICAgICAgICAgICAgICBvcHRpb25zPXtwb2ludHM/Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgdmFsdWU6IHAucG9pbnQuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogcC5wb2ludC5sYWJlbCxcbiAgICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtcbiAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5wb2ludHMuc2V0ICE9PSBudWxsXG4gICAgICAgICAgICAgICAgICAgID8gbm90aWZpY2F0aW9uLnBvaW50cy5zZXQubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnV2JlV2Vla2x5RGlnZXN0QWxlcnRDb25maWcnICYmXG4gICAgICAgIG5vdGlmaWNhdGlvbi50YWdzICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgYWxsb3dlZE5vdGlmaWNhdGlvbnMuaW5jbHVkZXMobm90aWZpY2F0aW9uLnR5cGUpICYmIChcbiAgICAgICAgICA8Rm9ybS5Hcm91cCBjb250cm9sSWQ9XCJub3RpZmljYXRpb24tdGFnc1wiPlxuICAgICAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLnRhZ3MnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZSBnYXA9XCIwXCI+XG4gICAgICAgICAgICAgIDxSYWRpb0J1dHRvbkdyb3VwXG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c291cmNlc1JhZGlvQnV0dG9uc31cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eyhldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVRhZ3MoZXZlbnQsICcnLCBub3RpZmljYXRpb24sIHNldE5ld05vdGlmaWNhdGlvbilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICBjaGVja2VkPXtub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Ob3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlPlxuICAgICAgICAgICAge25vdGlmaWNhdGlvbi50YWdzLnNlbGVjdGlvbl90eXBlICE9PSAnYWxsJyAmJlxuICAgICAgICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgIG5hbWU9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZVRhZ3MoXG4gICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbl90eXBlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24udGFncyAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24udGFncy5zZWxlY3Rpb25fdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IG9wdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBzZXROZXdOb3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgaXNTZWFyY2hhYmxlPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZVByZWZpeD17J3BvaW50J31cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM9e3RhZ3M/Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC50YWcuaWQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRhZy5sYWJlbCxcbiAgICAgICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17XG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi50YWdzLnNldCAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgID8gbm90aWZpY2F0aW9uLnRhZ3Muc2V0Lm1hcCgocDogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHAudGV4dCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAge25vdGlmaWNhdGlvbi50eXBlID09PSAnRGF0YWxvZ2dlclRocmVzaG9sZEFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiZcbiAgICAgICAgbm90aWZpY2F0aW9uLnNlbnNvcnMgIT09IHVuZGVmaW5lZCAmJiAoXG4gICAgICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNlbnNvcnNcIj5cbiAgICAgICAgICAgIDxGb3JtLkxhYmVsPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zZW5zb3JzJyl9PC9Gb3JtLkxhYmVsPlxuICAgICAgICAgICAgPE5vdGlmaWNhdGlvbnNDaGVja2JveGVzU3R5bGUgZ2FwPVwiMFwiPlxuICAgICAgICAgICAgICA8UmFkaW9CdXR0b25Hcm91cFxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3NvdXJjZXNSYWRpb0J1dHRvbnN9XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXsoZXZlbnQpID0+XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5zb3JzKGV2ZW50LCAnJywgbm90aWZpY2F0aW9uLCBzZXROZXdOb3RpZmljYXRpb24pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17bm90aWZpY2F0aW9uLnNlbnNvcnMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgY2hlY2tlZD17bm90aWZpY2F0aW9uLnNlbnNvcnMuc2VsZWN0aW9uX3R5cGV9XG4gICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgICAgICAgIHtub3RpZmljYXRpb24uc2Vuc29ycy5zZWxlY3Rpb25fdHlwZSAhPT0gJ2FsbCcgJiYgKFxuICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgbmFtZT17J3BvaW50J31cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICBoYW5kbGVTZW5zb3JzKFxuICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25fdHlwZTpcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5zZW5zb3JzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24uc2Vuc29ycy5zZWxlY3Rpb25fdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IFtdLFxuICAgICAgICAgICAgICAgICAgICAgIHNldDogb3B0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpc1NlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgaXNNdWx0aT17dHJ1ZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWVQcmVmaXg9eydwb2ludCd9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17c2Vuc29ycz8ubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcC5zZW5zb3IuaWQsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogcC5zZW5zb3IubGFiZWwsXG4gICAgICAgICAgICAgICAgfSkpfVxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17XG4gICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uc2Vuc29ycy5zZXQgIT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgPyBub3RpZmljYXRpb24uc2Vuc29ycy5zZXQubWFwKChwOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcC5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBwLnRleHQsXG4gICAgICAgICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgICAgIDogW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgICAgKX1cblxuICAgICAgPEZvcm0uR3JvdXAgY29udHJvbElkPVwibm90aWZpY2F0aW9uLXNlbmRcIj5cbiAgICAgICAgPEZvcm0uTGFiZWw+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2VuZF92aWEnKX08L0Zvcm0uTGFiZWw+XG4gICAgICAgIDxOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlIGdhcD1cIjEwXCI+XG4gICAgICAgICAge3NlbmRWaWFDaGVja0JveGVzLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxDaGVja2JveFxuICAgICAgICAgICAgICAgIGtleT17dmFsdWUubGFiZWx9XG4gICAgICAgICAgICAgICAgb3B0aW9uPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2U9eyhldmVudCkgPT5cbiAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbmRWaWEoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHNldE5ld05vdGlmaWNhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgc2V0TW9kYWxEZXRhaWxzLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e25vdGlmaWNhdGlvbi5hY3Rpb25zfVxuICAgICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5hY3Rpb25zfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICAgIHtub3RpZmljYXRpb24uYWN0aW9ucy50ZWxlZ3JhbSAmJlxuICAgICAgICAgICAgIWhhc1RlbGVncmFtICYmXG4gICAgICAgICAgICBtb2RhbERldGFpbHMub3BlbiAmJlxuICAgICAgICAgICAgbW9kYWxEZXRhaWxzLmluc3RhbmNlID09PSAndGVsZWdyYW0nICYmIChcbiAgICAgICAgICAgICAgPEFsZXJ0XG4gICAgICAgICAgICAgICAgc2V0TW9kYWxEZXRhaWxzPXtzZXRNb2RhbERldGFpbHN9XG4gICAgICAgICAgICAgICAgY2hpbGRyZW49e1xuICAgICAgICAgICAgICAgICAgPEFsZXJ0Q29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmVkaXRfc2VuZF92aWFfbm9fdGVsZWdyYW0nKX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8TW9kYWxBY3Rpb25zQnV0dG9uIGNvbG9yPXt0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm42MH0+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLm9rJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvTW9kYWxBY3Rpb25zQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9BbGVydENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cblxuICAgICAgICAgIHtub3RpZmljYXRpb24uYWN0aW9ucy5zbXMgJiZcbiAgICAgICAgICAgICFoYXNQaG9uZSAmJlxuICAgICAgICAgICAgbW9kYWxEZXRhaWxzLm9wZW4gJiZcbiAgICAgICAgICAgIG1vZGFsRGV0YWlscy5pbnN0YW5jZSA9PT0gJ3NtcycgJiYgKFxuICAgICAgICAgICAgICA8QWxlcnRcbiAgICAgICAgICAgICAgICBzZXRNb2RhbERldGFpbHM9e3NldE1vZGFsRGV0YWlsc31cbiAgICAgICAgICAgICAgICBjaGlsZHJlbj17XG4gICAgICAgICAgICAgICAgICA8QWxlcnRDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8cD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuZWRpdF9zZW5kX3ZpYV9ub19waG9uZScpfTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPE1vZGFsQWN0aW9uc0J1dHRvbiBjb2xvcj17dGhlbWUuY29sb3JTY2hlbWUubmF0dXJhbC5uNjB9PlxuICAgICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5vaycpfVxuICAgICAgICAgICAgICAgICAgICA8L01vZGFsQWN0aW9uc0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvQWxlcnRDb250ZW50PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvTm90aWZpY2F0aW9uc0NoZWNrYm94ZXNTdHlsZT5cbiAgICAgIDwvRm9ybS5Hcm91cD5cbiAgICAgIHtub3RpZmljYXRpb24udHlwZSA9PT0gJ1JvbGxpbmdFdmVudEFsZXJ0Q29uZmlnJyAmJlxuICAgICAgICBhbGxvd2VkTm90aWZpY2F0aW9ucy5pbmNsdWRlcyhub3RpZmljYXRpb24udHlwZSkgJiYgKFxuICAgICAgICAgIDxGb3JtLkdyb3VwPlxuICAgICAgICAgICAgPEZvcm0uQ2hlY2tcbiAgICAgICAgICAgICAgaW5saW5lXG4gICAgICAgICAgICAgIGxhYmVsPXtpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5lZGl0X3NhbXBsZXJfYWN0aXZlJyl9XG4gICAgICAgICAgICAgIG5hbWU9XCJwdW1wX29ubHlcIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBpZD1cInB1bXBfb25seVwiXG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlTm90aWZpY2F0aW9uU2FtcGxlKGUsIHNldE5ld05vdGlmaWNhdGlvbil9XG4gICAgICAgICAgICAgIGNoZWNrZWQ9e25vdGlmaWNhdGlvbi5wdW1wX29ubHkgPT09ICcxJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Gb3JtLkdyb3VwPlxuICAgICAgICApfVxuICAgIDwvTm90aWZpY2F0aW9uU2lkZWJhckZvcm1BcmVhU3R5bGU+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBOb3RpZmljYXRpb25zRm9ybUNvbnRlbnQ7XG5cbmNvbnN0IEFsZXJ0Q29udGVudCA9IHN0eWxlZC5kaXZgXG4gIHAge1xuICAgIHBhZGRpbmc6IDMwcHggMzBweCAwIDMwcHg7XG4gIH1cblxuICBkaXNwbGF5OiBmbGV4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG5gO1xuXG5jb25zdCBNb2RhbEFjdGlvbnNCdXR0b24gPSBzdHlsZWQuZGl2YFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2E4YThhYTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoZWlnaHQ6IDQ1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAkeyh7IGNvbG9yIH0pID0+IGNvbG9yfTtcbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvblNpZGViYXJGb3JtQXJlYVN0eWxlID0gc3R5bGVkLmRpdmBcbiAgQG1lZGlhIChtYXgtd2lkdGg6IDUwMHB4KSB7XG4gICAgbWF4LWhlaWdodDogNjB2aCAhaW1wb3J0YW50O1xuICB9XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1heC1oZWlnaHQ6IDcydmg7XG4gIGJveC1zaGFkb3c6IDBweCAwcHggM3B4IDFweCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjMwfTtcbiAgcGFkZGluZzogMTBweCAzMHB4O1xuICBvdmVyZmxvdzogYXV0bztcblxuICBsYWJlbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRTaXplLm1kfTtcbiAgICBmb250LXdlaWdodDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250V2VpZ2h0Lnc2MDB9O1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC5mb3JtLWdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gIH1cblxuICAuYWxsLFxuICAuaW5jbHVkZSxcbiAgLmV4Y2x1ZGUsXG4gIC50ZWxlZ3JhbSxcbiAgLmVtYWlsLFxuICAuc21zIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjgwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm44MH07XG4gIH1cbiAgLmV4dHJlbWUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUucHJpbWFyeS5wMX07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUucHJpbWFyeS5wMX07XG4gIH1cbiAgLmhpZ2gge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5PMTAwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLk8xMDB9O1xuICB9XG4gIC5tZWRpdW0ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JTY2hlbWUuZGF0YS5XMTAwfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5kYXRhLlcxMDB9O1xuICB9XG5cbiAgLmZvcm0tY2hlY2staW5saW5lIHtcbiAgICBhbGlnbi1pdGVtczogc2VsZi1zdGFydCAhaW1wb3J0YW50O1xuXG4gICAgaW5wdXQge1xuICAgICAgbWFyZ2luLXRvcDogN3B4ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBOb3RpZmljYXRpb25zQ2hlY2tib3hlc1N0eWxlID0gc3R5bGVkLmRpdjx7IGdhcDogc3RyaW5nIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6ICR7KHsgZ2FwIH0pID0+IGdhcCArICdweCd9O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG5gO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGtCQUFBLEdBQUFKLE9BQUE7QUFRQSxJQUFBSyxTQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxpQkFBQSxHQUFBSCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQU8sWUFBQSxHQUFBSixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVEsbUJBQUEsR0FBQVIsT0FBQTtBQVVBLElBQUFTLE1BQUEsR0FBQU4sc0JBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFVLE1BQUEsR0FBQVYsT0FBQTtBQUF1RCxTQUFBVyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBYix3QkFBQWlCLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTCxHQUFBLFNBQUFNLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWCxHQUFBLFFBQUFXLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWQsR0FBQSxFQUFBVyxHQUFBLFNBQUFJLElBQUEsR0FBQVIscUJBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixHQUFBLEVBQUFXLEdBQUEsY0FBQUksSUFBQSxLQUFBQSxJQUFBLENBQUFWLEdBQUEsSUFBQVUsSUFBQSxDQUFBQyxHQUFBLEtBQUFSLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSCxNQUFBLEVBQUFLLEdBQUEsRUFBQUksSUFBQSxZQUFBVCxNQUFBLENBQUFLLEdBQUEsSUFBQVgsR0FBQSxDQUFBVyxHQUFBLFNBQUFMLE1BQUEsQ0FBQUosT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBYSxHQUFBLENBQUFoQixHQUFBLEVBQUFNLE1BQUEsWUFBQUEsTUFBQTtBQWN2RCxNQUFNVyx3QkFBZ0UsR0FBR0MsSUFBQSxJQVVuRTtFQUFBLElBVm9FO0lBQ3hFQyxZQUFZO0lBQ1pDLE1BQU07SUFDTkMsSUFBSTtJQUNKQyxPQUFPO0lBQ1BDLGdCQUFnQjtJQUNoQkMsb0JBQW9CO0lBQ3BCQyxrQkFBa0I7SUFDbEJDLFFBQVE7SUFDUkM7RUFDRixDQUFDLEdBQUFULElBQUE7RUFDQyxNQUFNLENBQUNVLFlBQVksRUFBRUMsZUFBZSxDQUFDLEdBQUcsSUFBQUMsZUFBUSxFQUFlO0lBQzdEQyxJQUFJLEVBQUUsS0FBSztJQUNYQyxRQUFRLEVBQUU7RUFDWixDQUFDLENBQUM7RUFFRixNQUFNQyw2QkFBNkIsR0FBR0EsQ0FBQSxLQUFNO0lBQzFDLElBQUlWLGdCQUFnQixDQUFDVyxNQUFNLEtBQUssQ0FBQyxFQUFFO01BQ2pDLElBQUFDLDBDQUFzQixFQUNwQjtRQUNFQyxLQUFLLEVBQUUseUJBQXlCO1FBQ2hDQyxLQUFLLEVBQUVDLGFBQUksQ0FBQ0MsQ0FBQyxDQUFFLDRDQUEyQztNQUM1RCxDQUFDLEVBQ0RwQixZQUFZLEVBQ1pNLGtCQUNGLENBQUM7TUFDRCxJQUFBZSwwQ0FBc0IsRUFDcEJDLFNBQVMsRUFDVDtRQUNFQyxjQUFjLEVBQUUsU0FBUztRQUN6QjFCLEdBQUcsRUFBRSxDQUNIO1VBQ0VvQixLQUFLLEVBQUViLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDb0IsZUFBZSxDQUFDQyxFQUFFO1VBQzdDUCxLQUFLLEVBQUVkLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDb0IsZUFBZSxDQUFDTjtRQUM3QyxDQUFDO01BRUwsQ0FBQyxFQUNEbEIsWUFBWSxFQUNaTSxrQkFDRixDQUFDO0lBQ0g7RUFDRixDQUFDO0VBRUQsSUFBQW9CLGdCQUFTLEVBQUMsTUFBTTtJQUNkWiw2QkFBNkIsQ0FBQyxDQUFDO0lBQy9CLElBQUlkLFlBQVksQ0FBQzJCLElBQUksS0FBSyxFQUFFLEVBQUU7TUFDNUIsSUFBQVgsMENBQXNCLEVBQ3BCO1FBQ0VDLEtBQUssRUFBRSx5QkFBeUI7UUFDaENDLEtBQUssRUFBRUMsYUFBSSxDQUFDQyxDQUFDLENBQUUsNENBQTJDO01BQzVELENBQUMsRUFDRHBCLFlBQVksRUFDWk0sa0JBQ0YsQ0FBQztJQUNIO0VBQ0YsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLG9CQUNFM0MsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDQyxnQ0FBZ0MscUJBQy9CbEUsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDOUQsZUFBQSxDQUFBZ0UsSUFBSSxDQUFDQyxLQUFLO0lBQUNDLFNBQVMsRUFBQztFQUFtQixnQkFDdkNyRSxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUM5RCxlQUFBLENBQUFnRSxJQUFJLENBQUNHLEtBQUssUUFBRWQsYUFBSSxDQUFDQyxDQUFDLENBQUMsOEJBQThCLENBQWMsQ0FBQyxlQUNqRXpELE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQ3hELFlBQUEsQ0FBQVcsT0FBTTtJQUNMbUQsUUFBUSxFQUFHQyxNQUFNLElBQ2YsSUFBQW5CLDBDQUFzQixFQUFDbUIsTUFBTSxFQUFFbkMsWUFBWSxFQUFFTSxrQkFBa0IsQ0FDaEU7SUFDRDhCLElBQUksRUFBRSxNQUFPO0lBQ2JDLE9BQU8sRUFBRWhDLG9CQUFvQixDQUFFaUMsR0FBRyxDQUFFWCxJQUFTLEtBQU07TUFDakRWLEtBQUssRUFBRVUsSUFBSTtNQUNYVCxLQUFLLEVBQUVDLGFBQUksQ0FBQ0MsQ0FBQyxDQUFFLHNCQUFxQk8sSUFBSyxFQUFDO0lBQzVDLENBQUMsQ0FBQyxDQUFFO0lBQ0pZLFlBQVksRUFDVnZDLFlBQVksQ0FBQzJCLElBQUksS0FBSyxFQUFFLEdBQ3BCO01BQ0VWLEtBQUssRUFBRWpCLFlBQVksQ0FBQzJCLElBQUk7TUFDeEJULEtBQUssRUFBRUMsYUFBSSxDQUFDQyxDQUFDLENBQUUsc0JBQXFCcEIsWUFBWSxDQUFDMkIsSUFBSyxFQUFDO0lBQ3pELENBQUMsR0FDRDtNQUNFVixLQUFLLEVBQUUseUJBQXlCO01BQ2hDQyxLQUFLLEVBQUVDLGFBQUksQ0FBQ0MsQ0FBQyxDQUFFLDRDQUEyQztJQUM1RCxDQUNMO0lBQ0RvQixVQUFVLEVBQUV4QyxZQUFZLENBQUN5QixFQUFFLEdBQUcsSUFBSSxHQUFHLEtBQU07SUFDM0NnQixZQUFZLEVBQUU7RUFBTSxDQUNyQixDQUNTLENBQUMsRUFDWnpDLFlBQVksQ0FBQzJCLElBQUksS0FBSyx5QkFBeUIsSUFDOUN0QixvQkFBb0IsQ0FBQ3FDLFFBQVEsQ0FBQzFDLFlBQVksQ0FBQzJCLElBQUksQ0FBQyxpQkFDOUNoRSxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUM5RCxlQUFBLENBQUFnRSxJQUFJLENBQUNDLEtBQUs7SUFBQ0MsU0FBUyxFQUFDO0VBQXVCLGdCQUMzQ3JFLE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQzlELGVBQUEsQ0FBQWdFLElBQUksQ0FBQ0csS0FBSyxRQUNSZCxhQUFJLENBQUNDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FDaEMsQ0FBQyxlQUNiekQsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDZSw0QkFBNEI7SUFBQ0MsR0FBRyxFQUFDO0VBQUksZ0JBQ3BDakYsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDekQsaUJBQUEsQ0FBQVksT0FBZ0I7SUFDZnNELE9BQU8sRUFBRVEseUNBQXVCO0lBQ2hDQyxZQUFZLEVBQUdDLEtBQUssSUFDbEIsSUFBQUMsb0NBQWdCLEVBQUNELEtBQUssRUFBRXpDLGtCQUFrQixDQUMzQztJQUNEMkMsU0FBUyxFQUFFakQsWUFBWSxDQUFDa0QsUUFBUztJQUNqQ0MsT0FBTyxFQUFFbkQsWUFBWSxDQUFDa0QsUUFBUztJQUMvQnZCLElBQUksRUFBQztFQUFPLENBQ2IsQ0FDMkIsQ0FDcEIsQ0FDYixFQUNGdkIsZ0JBQWdCLENBQUNXLE1BQU0sR0FBRyxDQUFDLGlCQUMxQnBELE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQzlELGVBQUEsQ0FBQWdFLElBQUksQ0FBQ0MsS0FBSztJQUFDQyxTQUFTLEVBQUM7RUFBZ0MsZ0JBQ3BEckUsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDOUQsZUFBQSxDQUFBZ0UsSUFBSSxDQUFDRyxLQUFLLFFBQ1JkLGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLHNDQUFzQyxDQUNwQyxDQUFDLGVBQ2J6RCxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUNlLDRCQUE0QjtJQUFDQyxHQUFHLEVBQUM7RUFBRyxnQkFDbkNqRixNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUN6RCxpQkFBQSxDQUFBWSxPQUFnQjtJQUNmc0QsT0FBTyxFQUFFZSwrQ0FBNkI7SUFDdENOLFlBQVksRUFBR0MsS0FBSyxJQUNsQixJQUFBMUIsMENBQXNCLEVBQ3BCMEIsS0FBSyxFQUNMLEVBQUUsRUFDRi9DLFlBQVksRUFDWk0sa0JBQ0YsQ0FDRDtJQUNEMkMsU0FBUyxFQUFFakQsWUFBWSxDQUFDcUQsaUJBQWlCLENBQUM5QixjQUFlO0lBQ3pENEIsT0FBTyxFQUFFbkQsWUFBWSxDQUFDcUQsaUJBQWlCLENBQUM5QixjQUFlO0lBQ3ZESSxJQUFJLEVBQUM7RUFBTyxDQUNiLENBQzJCLENBQUMsRUFDOUIzQixZQUFZLENBQUNxRCxpQkFBaUIsQ0FBQzlCLGNBQWMsS0FBSyxLQUFLLElBQ3REbEIsb0JBQW9CLENBQUNxQyxRQUFRLENBQUMxQyxZQUFZLENBQUMyQixJQUFJLENBQUMsaUJBQzlDaEUsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDeEQsWUFBQSxDQUFBVyxPQUFNO0lBQ0xxRCxJQUFJLEVBQUUsaUJBQWtCO0lBQ3hCRixRQUFRLEVBQUdDLE1BQVcsSUFBSztNQUN6QixJQUFBZCwwQ0FBc0IsRUFDcEJDLFNBQVMsRUFDVDtRQUNFQyxjQUFjLEVBQ1p2QixZQUFZLENBQUNxRCxpQkFBaUIsQ0FBQzlCLGNBQWM7UUFDL0MxQixHQUFHLEVBQUVzQztNQUNQLENBQUMsRUFDRG5DLFlBQVksRUFDWk0sa0JBQ0YsQ0FBQztJQUNILENBQUU7SUFDRm1DLFlBQVksRUFBRSxJQUFLO0lBQ25CYSxPQUFPLEVBQUUsSUFBSztJQUNkQyxlQUFlLEVBQUUsaUJBQWtCO0lBQ25DbEIsT0FBTyxFQUFFakMsZ0JBQWdCLGFBQWhCQSxnQkFBZ0IsdUJBQWhCQSxnQkFBZ0IsQ0FBRWtDLEdBQUcsQ0FBRWtCLEVBQU8sS0FBTTtNQUMzQ3ZDLEtBQUssRUFBRXVDLEVBQUUsQ0FBQ2hDLGVBQWUsQ0FBQ0MsRUFBRTtNQUM1QlAsS0FBSyxFQUFFc0MsRUFBRSxDQUFDaEMsZUFBZSxDQUFDTjtJQUM1QixDQUFDLENBQUMsQ0FBRTtJQUNKcUIsWUFBWSxFQUNWdkMsWUFBWSxDQUFDcUQsaUJBQWlCLENBQUN4RCxHQUFHLEtBQUssSUFBSSxHQUN2Q0csWUFBWSxDQUFDcUQsaUJBQWlCLENBQUN4RCxHQUFHLENBQUN5QyxHQUFHLENBQUVrQixFQUFPLEtBQU07TUFDbkR2QyxLQUFLLEVBQUV1QyxFQUFFLENBQUMvQixFQUFFO01BQ1pQLEtBQUssRUFBRXNDLEVBQUUsQ0FBQ0M7SUFDWixDQUFDLENBQUMsQ0FBQyxHQUNIO0VBQ0wsQ0FDRixDQUVLLENBQ2IsRUFDQXpELFlBQVksQ0FBQzJCLElBQUksS0FBSyw0QkFBNEIsSUFDakQzQixZQUFZLENBQUMyQixJQUFJLEtBQUssZ0NBQWdDLElBQ3REdEIsb0JBQW9CLENBQUNxQyxRQUFRLENBQUMxQyxZQUFZLENBQUMyQixJQUFJLENBQUMsaUJBQzlDaEUsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDOUQsZUFBQSxDQUFBZ0UsSUFBSSxDQUFDQyxLQUFLO0lBQUNDLFNBQVMsRUFBQztFQUFzQixnQkFDMUNyRSxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUM5RCxlQUFBLENBQUFnRSxJQUFJLENBQUNHLEtBQUssUUFBRWQsYUFBSSxDQUFDQyxDQUFDLENBQUMsNEJBQTRCLENBQWMsQ0FBQyxlQUMvRHpELE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQ2UsNEJBQTRCO0lBQUNDLEdBQUcsRUFBQztFQUFHLGdCQUNuQ2pGLE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQ3pELGlCQUFBLENBQUFZLE9BQWdCO0lBQ2ZzRCxPQUFPLEVBQUVxQixzQ0FBb0I7SUFDN0JaLFlBQVksRUFBR0MsS0FBSyxJQUNsQixJQUFBWSxpQ0FBYSxFQUFDWixLQUFLLEVBQUUsRUFBRSxFQUFFL0MsWUFBWSxFQUFFTSxrQkFBa0IsQ0FDMUQ7SUFDRDJDLFNBQVMsRUFBRWpELFlBQVksQ0FBQ0MsTUFBTSxDQUFDc0IsY0FBZTtJQUM5QzRCLE9BQU8sRUFBRW5ELFlBQVksQ0FBQ0MsTUFBTSxDQUFDc0IsY0FBZTtJQUM1Q0ksSUFBSSxFQUFDO0VBQU8sQ0FDYixDQUMyQixDQUFDLEVBQzlCM0IsWUFBWSxDQUFDQyxNQUFNLENBQUNzQixjQUFjLEtBQUssS0FBSyxpQkFDM0M1RCxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUN4RCxZQUFBLENBQUFXLE9BQU07SUFDTHFELElBQUksRUFBRSxPQUFRO0lBQ2RGLFFBQVEsRUFBR0MsTUFBVyxJQUFLO01BQ3pCLElBQUF3QixpQ0FBYSxFQUNYckMsU0FBUyxFQUNUO1FBQ0VDLGNBQWMsRUFBRXZCLFlBQVksQ0FBQ0MsTUFBTSxDQUFDc0IsY0FBYztRQUNsRDFCLEdBQUcsRUFBRXNDO01BQ1AsQ0FBQyxFQUNEbkMsWUFBWSxFQUNaTSxrQkFDRixDQUFDO0lBQ0gsQ0FBRTtJQUNGbUMsWUFBWSxFQUFFLElBQUs7SUFDbkJhLE9BQU8sRUFBRSxJQUFLO0lBQ2RDLGVBQWUsRUFBRSxPQUFRO0lBQ3pCbEIsT0FBTyxFQUFFcEMsTUFBTSxhQUFOQSxNQUFNLHVCQUFOQSxNQUFNLENBQUVxQyxHQUFHLENBQUVzQixDQUFNLEtBQU07TUFDaEMzQyxLQUFLLEVBQUUyQyxDQUFDLENBQUNDLEtBQUssQ0FBQ3BDLEVBQUU7TUFDakJQLEtBQUssRUFBRTBDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDM0M7SUFDakIsQ0FBQyxDQUFDLENBQUU7SUFDSnFCLFlBQVksRUFDVnZDLFlBQVksQ0FBQ0MsTUFBTSxDQUFDSixHQUFHLEtBQUssSUFBSSxHQUM1QkcsWUFBWSxDQUFDQyxNQUFNLENBQUNKLEdBQUcsQ0FBQ3lDLEdBQUcsQ0FBRXNCLENBQU0sS0FBTTtNQUN2QzNDLEtBQUssRUFBRTJDLENBQUMsQ0FBQ25DLEVBQUU7TUFDWFAsS0FBSyxFQUFFMEMsQ0FBQyxDQUFDSDtJQUNYLENBQUMsQ0FBQyxDQUFDLEdBQ0g7RUFDTCxDQUNGLENBRU8sQ0FDYixFQUVGekQsWUFBWSxDQUFDMkIsSUFBSSxLQUFLLDRCQUE0QixJQUNqRDNCLFlBQVksQ0FBQ0UsSUFBSSxLQUFLb0IsU0FBUyxJQUMvQmpCLG9CQUFvQixDQUFDcUMsUUFBUSxDQUFDMUMsWUFBWSxDQUFDMkIsSUFBSSxDQUFDLGlCQUM5Q2hFLE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQzlELGVBQUEsQ0FBQWdFLElBQUksQ0FBQ0MsS0FBSztJQUFDQyxTQUFTLEVBQUM7RUFBbUIsZ0JBQ3ZDckUsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDOUQsZUFBQSxDQUFBZ0UsSUFBSSxDQUFDRyxLQUFLLFFBQUVkLGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLHlCQUF5QixDQUFjLENBQUMsZUFDNUR6RCxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUNlLDRCQUE0QjtJQUFDQyxHQUFHLEVBQUM7RUFBRyxnQkFDbkNqRixNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUN6RCxpQkFBQSxDQUFBWSxPQUFnQjtJQUNmc0QsT0FBTyxFQUFFcUIsc0NBQW9CO0lBQzdCWixZQUFZLEVBQUdDLEtBQUssSUFDbEIsSUFBQWUsOEJBQVUsRUFBQ2YsS0FBSyxFQUFFLEVBQUUsRUFBRS9DLFlBQVksRUFBRU0sa0JBQWtCLENBQ3ZEO0lBQ0QyQyxTQUFTLEVBQUVqRCxZQUFZLENBQUNFLElBQUksQ0FBQ3FCLGNBQWU7SUFDNUM0QixPQUFPLEVBQUVuRCxZQUFZLENBQUNFLElBQUksQ0FBQ3FCLGNBQWU7SUFDMUNJLElBQUksRUFBQztFQUFPLENBQ2IsQ0FDMkIsQ0FBQyxFQUM5QjNCLFlBQVksQ0FBQ0UsSUFBSSxDQUFDcUIsY0FBYyxLQUFLLEtBQUssSUFDekNsQixvQkFBb0IsQ0FBQ3FDLFFBQVEsQ0FBQzFDLFlBQVksQ0FBQzJCLElBQUksQ0FBQyxpQkFDOUNoRSxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUN4RCxZQUFBLENBQUFXLE9BQU07SUFDTHFELElBQUksRUFBRSxPQUFRO0lBQ2RGLFFBQVEsRUFBR0MsTUFBVyxJQUFLO01BQ3pCLElBQUEyQiw4QkFBVSxFQUNSeEMsU0FBUyxFQUNUO1FBQ0VDLGNBQWMsRUFDWnZCLFlBQVksQ0FBQ0UsSUFBSSxLQUFLb0IsU0FBUyxHQUMzQnRCLFlBQVksQ0FBQ0UsSUFBSSxDQUFDcUIsY0FBYyxHQUNoQyxFQUFFO1FBQ1IxQixHQUFHLEVBQUVzQztNQUNQLENBQUMsRUFDRG5DLFlBQVksRUFDWk0sa0JBQ0YsQ0FBQztJQUNILENBQUU7SUFDRm1DLFlBQVksRUFBRSxJQUFLO0lBQ25CYSxPQUFPLEVBQUUsSUFBSztJQUNkQyxlQUFlLEVBQUUsT0FBUTtJQUN6QmxCLE9BQU8sRUFBRW5DLElBQUksYUFBSkEsSUFBSSx1QkFBSkEsSUFBSSxDQUFFb0MsR0FBRyxDQUFFc0IsQ0FBTSxLQUFNO01BQzlCM0MsS0FBSyxFQUFFMkMsQ0FBQyxDQUFDRyxHQUFHLENBQUN0QyxFQUFFO01BQ2ZQLEtBQUssRUFBRTBDLENBQUMsQ0FBQ0csR0FBRyxDQUFDN0M7SUFDZixDQUFDLENBQUMsQ0FBRTtJQUNKcUIsWUFBWSxFQUNWdkMsWUFBWSxDQUFDRSxJQUFJLENBQUNMLEdBQUcsS0FBSyxJQUFJLEdBQzFCRyxZQUFZLENBQUNFLElBQUksQ0FBQ0wsR0FBRyxDQUFDeUMsR0FBRyxDQUFFc0IsQ0FBTSxLQUFNO01BQ3JDM0MsS0FBSyxFQUFFMkMsQ0FBQyxDQUFDbkMsRUFBRTtNQUNYUCxLQUFLLEVBQUUwQyxDQUFDLENBQUNIO0lBQ1gsQ0FBQyxDQUFDLENBQUMsR0FDSDtFQUNMLENBQ0YsQ0FFSyxDQUNiLEVBRUZ6RCxZQUFZLENBQUMyQixJQUFJLEtBQUssZ0NBQWdDLElBQ3JEdEIsb0JBQW9CLENBQUNxQyxRQUFRLENBQUMxQyxZQUFZLENBQUMyQixJQUFJLENBQUMsSUFDaEQzQixZQUFZLENBQUNHLE9BQU8sS0FBS21CLFNBQVMsaUJBQ2hDM0QsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDOUQsZUFBQSxDQUFBZ0UsSUFBSSxDQUFDQyxLQUFLO0lBQUNDLFNBQVMsRUFBQztFQUFzQixnQkFDMUNyRSxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUM5RCxlQUFBLENBQUFnRSxJQUFJLENBQUNHLEtBQUssUUFBRWQsYUFBSSxDQUFDQyxDQUFDLENBQUMsNEJBQTRCLENBQWMsQ0FBQyxlQUMvRHpELE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQ2UsNEJBQTRCO0lBQUNDLEdBQUcsRUFBQztFQUFHLGdCQUNuQ2pGLE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQ3pELGlCQUFBLENBQUFZLE9BQWdCO0lBQ2ZzRCxPQUFPLEVBQUVxQixzQ0FBb0I7SUFDN0JaLFlBQVksRUFBR0MsS0FBSyxJQUNsQixJQUFBaUIsaUNBQWEsRUFBQ2pCLEtBQUssRUFBRSxFQUFFLEVBQUUvQyxZQUFZLEVBQUVNLGtCQUFrQixDQUMxRDtJQUNEMkMsU0FBUyxFQUFFakQsWUFBWSxDQUFDRyxPQUFPLENBQUNvQixjQUFlO0lBQy9DNEIsT0FBTyxFQUFFbkQsWUFBWSxDQUFDRyxPQUFPLENBQUNvQixjQUFlO0lBQzdDSSxJQUFJLEVBQUM7RUFBTyxDQUNiLENBQzJCLENBQUMsRUFDOUIzQixZQUFZLENBQUNHLE9BQU8sQ0FBQ29CLGNBQWMsS0FBSyxLQUFLLGlCQUM1QzVELE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQ3hELFlBQUEsQ0FBQVcsT0FBTTtJQUNMcUQsSUFBSSxFQUFFLE9BQVE7SUFDZEYsUUFBUSxFQUFHQyxNQUFXLElBQUs7TUFDekIsSUFBQTZCLGlDQUFhLEVBQ1gxQyxTQUFTLEVBQ1Q7UUFDRUMsY0FBYyxFQUNadkIsWUFBWSxDQUFDRyxPQUFPLEtBQUttQixTQUFTLEdBQzlCdEIsWUFBWSxDQUFDRyxPQUFPLENBQUNvQixjQUFjLEdBQ25DLEVBQUU7UUFDUjFCLEdBQUcsRUFBRXNDO01BQ1AsQ0FBQyxFQUNEbkMsWUFBWSxFQUNaTSxrQkFDRixDQUFDO0lBQ0gsQ0FBRTtJQUNGbUMsWUFBWSxFQUFFLElBQUs7SUFDbkJhLE9BQU8sRUFBRSxJQUFLO0lBQ2RDLGVBQWUsRUFBRSxPQUFRO0lBQ3pCbEIsT0FBTyxFQUFFbEMsT0FBTyxhQUFQQSxPQUFPLHVCQUFQQSxPQUFPLENBQUVtQyxHQUFHLENBQUVzQixDQUFNLEtBQU07TUFDakMzQyxLQUFLLEVBQUUyQyxDQUFDLENBQUNLLE1BQU0sQ0FBQ3hDLEVBQUU7TUFDbEJQLEtBQUssRUFBRTBDLENBQUMsQ0FBQ0ssTUFBTSxDQUFDL0M7SUFDbEIsQ0FBQyxDQUFDLENBQUU7SUFDSnFCLFlBQVksRUFDVnZDLFlBQVksQ0FBQ0csT0FBTyxDQUFDTixHQUFHLEtBQUssSUFBSSxHQUM3QkcsWUFBWSxDQUFDRyxPQUFPLENBQUNOLEdBQUcsQ0FBQ3lDLEdBQUcsQ0FBRXNCLENBQU0sS0FBTTtNQUN4QzNDLEtBQUssRUFBRTJDLENBQUMsQ0FBQ25DLEVBQUU7TUFDWFAsS0FBSyxFQUFFMEMsQ0FBQyxDQUFDSDtJQUNYLENBQUMsQ0FBQyxDQUFDLEdBQ0g7RUFDTCxDQUNGLENBRU8sQ0FDYixlQUVIOUYsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDOUQsZUFBQSxDQUFBZ0UsSUFBSSxDQUFDQyxLQUFLO0lBQUNDLFNBQVMsRUFBQztFQUFtQixnQkFDdkNyRSxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUM5RCxlQUFBLENBQUFnRSxJQUFJLENBQUNHLEtBQUssUUFBRWQsYUFBSSxDQUFDQyxDQUFDLENBQUMsa0NBQWtDLENBQWMsQ0FBQyxlQUNyRXpELE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQ2UsNEJBQTRCO0lBQUNDLEdBQUcsRUFBQztFQUFJLEdBQ25Dc0Isb0NBQWlCLENBQUM1QixHQUFHLENBQUVyQixLQUFLLElBQUs7SUFDaEMsb0JBQ0V0RCxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUMxRCxTQUFBLENBQUFhLE9BQVE7TUFDUFMsR0FBRyxFQUFFeUIsS0FBSyxDQUFDQyxLQUFNO01BQ2pCaUIsTUFBTSxFQUFFbEIsS0FBTTtNQUNkNkIsWUFBWSxFQUFHQyxLQUFLLElBQ2xCLElBQUFvQixpQ0FBYSxFQUNYcEIsS0FBSyxFQUNML0MsWUFBWSxFQUNaTSxrQkFBa0IsRUFDbEJJLGVBQ0YsQ0FDRDtNQUNEdUMsU0FBUyxFQUFFakQsWUFBWSxDQUFDb0UsT0FBUTtNQUNoQ2pCLE9BQU8sRUFBRW5ELFlBQVksQ0FBQ29FLE9BQVE7TUFDOUJ6QyxJQUFJLEVBQUM7SUFBVSxDQUNoQixDQUFDO0VBRU4sQ0FBQyxDQUFDLEVBQ0QzQixZQUFZLENBQUNvRSxPQUFPLENBQUNDLFFBQVEsSUFDNUIsQ0FBQzdELFdBQVcsSUFDWkMsWUFBWSxDQUFDRyxJQUFJLElBQ2pCSCxZQUFZLENBQUNJLFFBQVEsS0FBSyxVQUFVLGlCQUNsQ2xELE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQ3RELE1BQUEsQ0FBQVMsT0FBSztJQUNKMkIsZUFBZSxFQUFFQSxlQUFnQjtJQUNqQzRELFFBQVEsZUFDTjNHLE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQTZDLGFBQUEsQ0FBQzJDLFlBQVkscUJBQ1g1RyxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLFlBQ0dULGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLDhDQUE4QyxDQUNyRCxDQUFDLGVBQ0p6RCxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUM0QyxrQkFBa0I7TUFBQ0MsS0FBSyxFQUFFQyxZQUFLLENBQUNDLFdBQVcsQ0FBQ0MsT0FBTyxDQUFDQztJQUFJLEdBQ3REMUQsYUFBSSxDQUFDQyxDQUFDLENBQUMsdUJBQXVCLENBQ2IsQ0FDUjtFQUNmLENBQ0YsQ0FDRixFQUVGcEIsWUFBWSxDQUFDb0UsT0FBTyxDQUFDVSxHQUFHLElBQ3ZCLENBQUN2RSxRQUFRLElBQ1RFLFlBQVksQ0FBQ0csSUFBSSxJQUNqQkgsWUFBWSxDQUFDSSxRQUFRLEtBQUssS0FBSyxpQkFDN0JsRCxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUN0RCxNQUFBLENBQUFTLE9BQUs7SUFDSjJCLGVBQWUsRUFBRUEsZUFBZ0I7SUFDakM0RCxRQUFRLGVBQ04zRyxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUMyQyxZQUFZLHFCQUNYNUcsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxZQUFJVCxhQUFJLENBQUNDLENBQUMsQ0FBQywyQ0FBMkMsQ0FBSyxDQUFDLGVBQzVEekQsTUFBQSxDQUFBb0IsT0FBQSxDQUFBNkMsYUFBQSxDQUFDNEMsa0JBQWtCO01BQUNDLEtBQUssRUFBRUMsWUFBSyxDQUFDQyxXQUFXLENBQUNDLE9BQU8sQ0FBQ0M7SUFBSSxHQUN0RDFELGFBQUksQ0FBQ0MsQ0FBQyxDQUFDLHVCQUF1QixDQUNiLENBQ1I7RUFDZixDQUNGLENBRXVCLENBQ3BCLENBQUMsRUFDWnBCLFlBQVksQ0FBQzJCLElBQUksS0FBSyx5QkFBeUIsSUFDOUN0QixvQkFBb0IsQ0FBQ3FDLFFBQVEsQ0FBQzFDLFlBQVksQ0FBQzJCLElBQUksQ0FBQyxpQkFDOUNoRSxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUM5RCxlQUFBLENBQUFnRSxJQUFJLENBQUNDLEtBQUsscUJBQ1RwRSxNQUFBLENBQUFvQixPQUFBLENBQUE2QyxhQUFBLENBQUM5RCxlQUFBLENBQUFnRSxJQUFJLENBQUNpRCxLQUFLO0lBQ1RDLE1BQU07SUFDTjlELEtBQUssRUFBRUMsYUFBSSxDQUFDQyxDQUFDLENBQUMsd0NBQXdDLENBQUU7SUFDeERnQixJQUFJLEVBQUMsV0FBVztJQUNoQlQsSUFBSSxFQUFDLFVBQVU7SUFDZkYsRUFBRSxFQUFDLFdBQVc7SUFDZFMsUUFBUSxFQUFHK0MsQ0FBQyxJQUFLLElBQUFDLDRDQUF3QixFQUFDRCxDQUFDLEVBQUUzRSxrQkFBa0IsQ0FBRTtJQUNqRTZDLE9BQU8sRUFBRW5ELFlBQVksQ0FBQ21GLFNBQVMsS0FBSztFQUFJLENBQ3pDLENBQ1MsQ0FFZ0IsQ0FBQztBQUV2QyxDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUVhdEYsd0JBQXdCO0FBQUF1RixPQUFBLENBQUF0RyxPQUFBLEdBQUFxRyxRQUFBO0FBRXZDLE1BQU1iLFlBQVksR0FBR2UseUJBQU0sQ0FBQ0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHdKQVc5QjtBQUVELE1BQU1sQixrQkFBa0IsR0FBR2MseUJBQU0sQ0FBQ0MsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHFKQVExQkMsS0FBQTtFQUFBLElBQUM7SUFBRWxCO0VBQU0sQ0FBQyxHQUFBa0IsS0FBQTtFQUFBLE9BQUtsQixLQUFLO0FBQUEsRUFDOUI7QUFFRCxNQUFNNUMsZ0NBQWdDLEdBQUd5RCx5QkFBTSxDQUFDQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsa2pCQU9uQkUsS0FBQTtFQUFBLElBQUM7SUFBRWxCO0VBQU0sQ0FBQyxHQUFBa0IsS0FBQTtFQUFBLE9BQUtsQixLQUFLLENBQUNDLFdBQVcsQ0FBQ0MsT0FBTyxDQUFDaUIsR0FBRztBQUFBLEdBTTNEQyxLQUFBO0VBQUEsSUFBQztJQUFFcEI7RUFBTSxDQUFDLEdBQUFvQixLQUFBO0VBQUEsT0FBS3BCLEtBQUssQ0FBQ3FCLFFBQVEsQ0FBQ0MsRUFBRTtBQUFBLEdBQzlCQyxLQUFBO0VBQUEsSUFBQztJQUFFdkI7RUFBTSxDQUFDLEdBQUF1QixLQUFBO0VBQUEsT0FBS3ZCLEtBQUssQ0FBQ3dCLFVBQVUsQ0FBQ0MsSUFBSTtBQUFBLEdBZ0IvQkMsS0FBQTtFQUFBLElBQUM7SUFBRTFCO0VBQU0sQ0FBQyxHQUFBMEIsS0FBQTtFQUFBLE9BQUsxQixLQUFLLENBQUNDLFdBQVcsQ0FBQ0MsT0FBTyxDQUFDeUIsR0FBRztBQUFBLEdBQ3ZEQyxLQUFBO0VBQUEsSUFBQztJQUFFNUI7RUFBTSxDQUFDLEdBQUE0QixLQUFBO0VBQUEsT0FBSzVCLEtBQUssQ0FBQ0MsV0FBVyxDQUFDQyxPQUFPLENBQUN5QixHQUFHO0FBQUEsR0FHakNFLEtBQUE7RUFBQSxJQUFDO0lBQUU3QjtFQUFNLENBQUMsR0FBQTZCLEtBQUE7RUFBQSxPQUFLN0IsS0FBSyxDQUFDQyxXQUFXLENBQUM2QixPQUFPLENBQUNDLEVBQUU7QUFBQSxHQUN0REMsS0FBQTtFQUFBLElBQUM7SUFBRWhDO0VBQU0sQ0FBQyxHQUFBZ0MsS0FBQTtFQUFBLE9BQUtoQyxLQUFLLENBQUNDLFdBQVcsQ0FBQzZCLE9BQU8sQ0FBQ0MsRUFBRTtBQUFBLEdBR2hDRSxNQUFBO0VBQUEsSUFBQztJQUFFakM7RUFBTSxDQUFDLEdBQUFpQyxNQUFBO0VBQUEsT0FBS2pDLEtBQUssQ0FBQ0MsV0FBVyxDQUFDaUMsSUFBSSxDQUFDQyxJQUFJO0FBQUEsR0FDckRDLE1BQUE7RUFBQSxJQUFDO0lBQUVwQztFQUFNLENBQUMsR0FBQW9DLE1BQUE7RUFBQSxPQUFLcEMsS0FBSyxDQUFDQyxXQUFXLENBQUNpQyxJQUFJLENBQUNDLElBQUk7QUFBQSxHQUcvQkUsTUFBQTtFQUFBLElBQUM7SUFBRXJDO0VBQU0sQ0FBQyxHQUFBcUMsTUFBQTtFQUFBLE9BQUtyQyxLQUFLLENBQUNDLFdBQVcsQ0FBQ2lDLElBQUksQ0FBQ0ksSUFBSTtBQUFBLEdBQ3JEQyxNQUFBO0VBQUEsSUFBQztJQUFFdkM7RUFBTSxDQUFDLEdBQUF1QyxNQUFBO0VBQUEsT0FBS3ZDLEtBQUssQ0FBQ0MsV0FBVyxDQUFDaUMsSUFBSSxDQUFDSSxJQUFJO0FBQUEsRUFVdEQ7QUFFRCxNQUFNckUsNEJBQTRCLEdBQUcyQyx5QkFBTSxDQUFDQyxHQUFHLENBQUFDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsaURBRXRDd0IsTUFBQTtFQUFBLElBQUM7SUFBRXRFO0VBQUksQ0FBQyxHQUFBc0UsTUFBQTtFQUFBLE9BQUt0RSxHQUFHLEdBQUcsSUFBSTtBQUFBLEVBRS9CIn0=