@kando-env/kando-ui 1.2.300-alpha.18 → 1.2.300-alpha.2

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