@kando-env/kando-ui 1.2.349 → 1.2.350
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Router.js +73 -36
- package/lib/Widgets/EventsCarousel/EventsCarousel.js +33 -23
- package/lib/Widgets/EventsRow/EventsRow.js +37 -25
- package/lib/Widgets/Map/GraphUtils.js +3 -3
- package/lib/Widgets/Map/Map.js +83 -66
- package/lib/Widgets/Map/MapUtils.js +39 -40
- package/lib/Widgets/Map/areas/AreaPolygon.js +76 -52
- package/lib/Widgets/Map/areas/AreaPolygons.js +24 -23
- package/lib/Widgets/Map/areas/AreaUtils.js +46 -46
- package/lib/Widgets/Map/areas/Patterns.js +4 -4
- package/lib/Widgets/Map/edges/Edge.js +31 -24
- package/lib/Widgets/Map/edges/Edges.js +23 -19
- package/lib/Widgets/Map/edges/arrows/Arrows.js +44 -23
- package/lib/Widgets/Map/events/Event.js +17 -17
- package/lib/Widgets/Map/events/EventIndicator.js +52 -57
- package/lib/Widgets/Map/events/EventPath.js +22 -24
- package/lib/Widgets/Map/events/EventUtils.js +78 -55
- package/lib/Widgets/Map/events/NetworkForSpecificEvent.js +18 -17
- package/lib/Widgets/Map/events/PointOfEvent.js +34 -29
- package/lib/Widgets/Map/events/PointsForSpecificEvent.js +37 -30
- package/lib/Widgets/Map/events/Snail.js +20 -19
- package/lib/Widgets/Map/graphDNDArea/GraphDNDArea.js +86 -93
- package/lib/Widgets/Map/map/FloatingGraph.js +18 -22
- package/lib/Widgets/Map/map/GraphDateButton.js +17 -25
- package/lib/Widgets/Map/matchGraph/MatchGraph.js +12 -13
- package/lib/Widgets/Map/matchGraph/createFloatingGraph.js +15 -16
- package/lib/Widgets/Map/points/PointIcon.js +13 -15
- package/lib/Widgets/Map/points/PointMarker.js +87 -71
- package/lib/Widgets/Map/points/PointMarkers.js +66 -45
- package/lib/Widgets/Map/points/PointUtils.js +75 -69
- package/lib/Widgets/MostPolluting/Areas/AreaBox/AreaBox.js +45 -28
- package/lib/Widgets/MostPolluting/Areas/AreaBox/Map/Map.js +10 -11
- package/lib/Widgets/MostPolluting/Areas/AreaBox/PieChart/PieChart.js +11 -10
- package/lib/Widgets/MostPolluting/Areas/AreaBox/styles.js +3 -3
- package/lib/Widgets/MostPolluting/Areas/Areas.js +57 -28
- package/lib/Widgets/MostPolluting/Areas/areas.mock.js +3 -3
- package/lib/Widgets/MostPolluting/Areas/styles.js +3 -3
- package/lib/Widgets/MostPolluting/EmptyState/EmptyState.js +8 -11
- package/lib/Widgets/MostPolluting/Factories/Factories.js +64 -33
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/FactoryBox.js +17 -14
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PieChart/PieChart.js +7 -7
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/PollutionScore.js +10 -12
- package/lib/Widgets/MostPolluting/Factories/FactoryBox/styles.js +3 -3
- package/lib/Widgets/MostPolluting/Factories/factories.mock.js +2 -2
- package/lib/Widgets/MostPolluting/Factories/styles.js +3 -3
- package/lib/Widgets/MostPolluting/MostPolluting.js +27 -21
- package/lib/Widgets/MostPolluting/MostPolluting.stories.js +22 -18
- package/lib/Widgets/MostPolluting/ShowMore/ShowMore.js +4 -6
- package/lib/Widgets/MostPolluting/ShowMore/styles.js +4 -6
- package/lib/Widgets/MostPolluting/assets/index.js +10 -10
- package/lib/Widgets/MostPolluting/components/ChangePercent.js +13 -19
- package/lib/Widgets/MostPolluting/components/ChangePercent.test.js +30 -35
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.js +31 -34
- package/lib/Widgets/MostPolluting/components/PollutionScorePercent.test.js +35 -39
- package/lib/Widgets/MostPolluting/components/PotentialImpact.js +26 -27
- package/lib/Widgets/MostPolluting/components/PotentialImpact.test.js +47 -51
- package/lib/Widgets/MostPolluting/styles.js +3 -3
- package/lib/Widgets/PotentialImpactSummary/Back/Back.js +5 -7
- package/lib/Widgets/PotentialImpactSummary/Icon.js +6 -8
- package/lib/Widgets/PotentialImpactSummary/index.js +27 -19
- package/lib/Widgets/PotentialImpactSummary/index.test.js +52 -47
- package/lib/Widgets/PotentialImpactSummary/styles.js +7 -7
- package/lib/Widgets/QualitySummary/PieChart/LegendMenu/LegendMenu.js +7 -9
- package/lib/Widgets/QualitySummary/PieChart/PieChart.js +17 -22
- package/lib/Widgets/QualitySummary/PieChart/PieChart.test.js +32 -35
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.js +24 -26
- package/lib/Widgets/QualitySummary/PollutedLine/PollutedLine.test.js +37 -35
- package/lib/Widgets/QualitySummary/QualitySummary.js +13 -9
- package/lib/Widgets/QualitySummary/qualitySummary.mock.js +4 -4
- package/lib/Widgets/QualitySummary/styles.js +15 -23
- package/lib/Widgets/UtilityInformation/MapModal/MapModal.js +13 -12
- package/lib/Widgets/UtilityInformation/PopupWithMap/Map/Map.js +24 -25
- package/lib/Widgets/UtilityInformation/PopupWithMap/PopupWithMap.js +24 -29
- package/lib/Widgets/UtilityInformation/UtilityInformation.js +40 -23
- package/lib/Widgets/UtilityInformation/styles.js +22 -31
- package/lib/Widgets/UtilityInformation/utilityInformation.mock.js +3 -3
- package/lib/assets/icons/TopNavbar/index.js +6 -6
- package/lib/assets/icons/TrendSvg.js +6 -6
- package/lib/assets/icons/index.js +15 -15
- package/lib/assets/icons/kandoStepper/index.js +5 -5
- package/lib/assets/icons/siteTypes/index.js +1 -1
- package/lib/components/ApplyButton/ApplyButton.js +8 -8
- package/lib/components/Backdrop/Backdrop.js +4 -6
- package/lib/components/ContentLoader/ContentLoader.js +9 -11
- package/lib/components/ContentLoader/index.js +1 -1
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.js +9 -10
- package/lib/components/CustomInputs/DoubleTabs/DoubleTabs.stories.js +5 -3
- package/lib/components/CustomInputs/DoubleTabs/styles.js +12 -20
- package/lib/components/CustomInputs/PasswordInput/PasswordInput.js +19 -12
- package/lib/components/CustomInputs/PrimaryButton/PrimaryButton.js +4 -6
- package/lib/components/CustomInputs/Search/Search.js +60 -39
- package/lib/components/CustomInputs/Select/Select.js +55 -42
- package/lib/components/CustomInputs/Select/Select.stories.js +6 -4
- package/lib/components/DamageType/DamageType.js +56 -34
- package/lib/components/DataLoaderError/DataLoaderError.js +6 -8
- package/lib/components/DischargeHeatmap/DischargeHeatmap.js +10 -9
- package/lib/components/DischargeHeatmap/DischargeHeatmap.test.js +71 -70
- package/lib/components/DischargeHeatmap/DischargeHeatmapContainer.js +37 -27
- package/lib/components/DischargeHeatmap/HighchartsOptions.js +12 -10
- package/lib/components/DischargeHeatmap/mocks/handlers.js +3 -3
- package/lib/components/DischargeHeatmap/popupText.js +9 -9
- package/lib/components/DischargeHeatmap/titles.js +3 -3
- package/lib/components/ErrorBoundary.js +41 -27
- package/lib/components/Events/Events.js +45 -28
- package/lib/components/Graph/Graph.js +86 -67
- package/lib/components/Header/Breadcrumbs/Breadcrumbs.js +21 -17
- package/lib/components/Header/DoubleTabs/DoubleTabs.js +26 -18
- package/lib/components/Header/DoubleTabs/DoubleTabs.stories.js +5 -3
- package/lib/components/Header/DoubleTabs/styles.js +4 -4
- package/lib/components/Header/Header.js +2 -2
- package/lib/components/Header/Header.stories.js +5 -3
- package/lib/components/Header/InfoBar/Breadcrumbs/Breadcrumbs.js +197 -82
- package/lib/components/Header/InfoBar/InfoBar.js +95 -66
- package/lib/components/Header/InfoBar/Search/Control.js +9 -9
- package/lib/components/Header/InfoBar/Search/GroupLabel.js +4 -6
- package/lib/components/Header/InfoBar/Search/Search.js +19 -14
- package/lib/components/Header/InfoBar/Search/SearchContainer.js +27 -15
- package/lib/components/Header/InfoBar/Search/searchStyle.js +49 -41
- package/lib/components/Header/InfoBar/TimeFilter.js +14 -11
- package/lib/components/Header/KandoNavbar/KandoNavbar.js +87 -62
- package/lib/components/Header/Slideshow/Slideshow.js +89 -67
- package/lib/components/Header/Toolbar/ClientImg/ClientImg.js +4 -6
- package/lib/components/Header/Toolbar/CustomerMenu/CustomerMenu.js +23 -21
- package/lib/components/Header/Toolbar/MenuCreator/MenuCreator.js +13 -13
- package/lib/components/Header/Toolbar/SearchDropdown/SearchDropdown.js +42 -30
- package/lib/components/Header/Toolbar/Toolbar.js +74 -55
- package/lib/components/InfoBar/InfoBar.js +23 -10
- package/lib/components/InfoBar/InfoBar.stories.js +5 -3
- package/lib/components/KandoModal/KandoModal.js +37 -23
- package/lib/components/Link.js +7 -8
- package/lib/components/Links/CustomRedirect/CustomRedirect.js +8 -9
- package/lib/components/Links/StyledLink/StyledLink.js +12 -12
- package/lib/components/Links/StyledNavLink/StyledNavLink.js +10 -11
- package/lib/components/LiveEvents/CarouselSlide.js +7 -9
- package/lib/components/LiveEvents/LiveEvents.js +3 -5
- package/lib/components/LoaderByPercent/LoaderByPercent.js +28 -36
- package/lib/components/Map/Map.js +22 -19
- package/lib/components/Modal/Modal.js +9 -9
- package/lib/components/NarrowHeader.js +31 -17
- package/lib/components/PointInfo/PointInfo.js +16 -18
- package/lib/components/PopupModal/PopupModal.js +16 -12
- package/lib/components/PopupModal/PopupModal.stories.js +19 -15
- package/lib/components/Sector/Sector.js +6 -8
- package/lib/components/Sector/Sector.test.js +20 -19
- package/lib/components/Sector/sectorIcons.js +2 -2
- package/lib/components/SevereEvent/Eta/Eta.js +51 -48
- package/lib/components/SevereEvent/Eta/styles.js +6 -10
- package/lib/components/SevereEvent/SevereEvent.js +34 -27
- package/lib/components/Spinner/Spinner.js +7 -7
- package/lib/components/Spinner/Spinner.stories.js +6 -4
- package/lib/components/Spinner/styles.js +12 -20
- package/lib/components/Tabs/Tabs.js +27 -18
- package/lib/components/Tabs/Tabs.stories.js +6 -4
- package/lib/components/Tabs/assets/index.js +5 -5
- package/lib/components/TimeRangeSelector/KandoRangePicker/ComparisonSelect.js +15 -12
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePicker.js +45 -34
- package/lib/components/TimeRangeSelector/KandoRangePicker/KandoRangePickerContainer.js +31 -19
- package/lib/components/TimeRangeSelector/TimeRangeHelper.js +21 -16
- package/lib/components/TimeRangeSelector/TimeRangeItem/TimeRangeItem.js +11 -11
- package/lib/components/TimeRangeSelector/TimeRangeList.js +24 -23
- package/lib/components/TimeRangeSelector/TimeRangeOptions.js +24 -16
- package/lib/components/TimeRangeSelector/TimeRangeSelector.js +29 -28
- package/lib/components/TimeRangeSelector/TimeRangeSelector.stories.js +6 -4
- package/lib/components/TimeRangeSelector/constants.js +3 -3
- package/lib/components/Toggle/Toggle.js +15 -10
- package/lib/components/TrendGraph/TrendGraph.js +38 -22
- package/lib/components/TrendGraphNVL/TrendGraphNVL.js +30 -24
- package/lib/development-environment/index.js +12 -8
- package/lib/development-environment/mock/browser.js +4 -2
- package/lib/development-environment/mock/get.js +10 -8
- package/lib/development-environment/mock/handlers.js +2 -2
- package/lib/development-environment/mock/mockBus.js +4 -4
- package/lib/development-environment/mock/mockObjects/area-trends-graph.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaInformation.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaQualitySummary.js +2 -2
- package/lib/development-environment/mock/mockObjects/areaSitesData.js +2 -2
- package/lib/development-environment/mock/mockObjects/areasJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/controlRoomNetworkEdges.js +2 -2
- package/lib/development-environment/mock/mockObjects/covidView-areasData-24.js +2 -2
- package/lib/development-environment/mock/mockObjects/data-menuData.js +2 -2
- package/lib/development-environment/mock/mockObjects/data-search.js +2 -2
- package/lib/development-environment/mock/mockObjects/discharge_effluent_quality.js +2 -2
- package/lib/development-environment/mock/mockObjects/discharge_pattern_overtime.js +2 -2
- package/lib/development-environment/mock/mockObjects/eventFiltersJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/eventsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/metascore.js +2 -2
- package/lib/development-environment/mock/mockObjects/permissionsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/pointsJson.js +2 -2
- package/lib/development-environment/mock/mockObjects/site-info.js +2 -2
- package/lib/development-environment/mock/mockObjects/trend-graph-component-data-907.js +2 -2
- package/lib/development-environment/togly/ToglyDashboard.js +22 -13
- package/lib/development-environment/togly/ToglyItem.js +28 -25
- package/lib/development-environment/togly/init.js +2 -2
- package/lib/development-environment/togly/macro.js +9 -13
- package/lib/development-environment/togly/useDoubleKeyDown.js +9 -7
- package/lib/development-environment/togly/useLocalStorage.js +18 -13
- package/lib/hooks/useApi.js +55 -19
- package/lib/hooks/useApiWithDashboardQuery.js +49 -30
- package/lib/hooks/useClickOutside.js +3 -3
- package/lib/hooks/useInitializeHeaders.js +5 -5
- package/lib/hooks/useKandoFetch.js +28 -15
- package/lib/hooks/useMap.js +34 -22
- package/lib/hooks/useNavContext.js +26 -22
- package/lib/hooks/useRemoveExistingLayers.js +6 -6
- package/lib/hooks/useUpdateEventBodyTail.js +17 -13
- package/lib/hooks/useUserTimeZone.js +30 -33
- package/lib/hooks/useUserTimeZone.test.js +22 -19
- package/lib/hooks/useWindowSize.js +14 -7
- package/lib/index.js +12 -11
- package/lib/macros/getVersion.js +2 -2
- package/lib/pages/AreaPage/AreaPage.js +67 -34
- package/lib/pages/AreaPage/Dashboard/AreaMapContainer/AreaMapContainer.js +16 -15
- package/lib/pages/AreaPage/Dashboard/Dashboard.js +24 -23
- package/lib/pages/AreaPage/Dashboard/LineChart/LineChart.js +25 -17
- package/lib/pages/AreaPage/Dashboard/LineChart/options/options.js +4 -4
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/PieChart/PieChart.js +7 -7
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/SiteBox.js +9 -9
- package/lib/pages/AreaPage/Dashboard/Sites/SitesBox/styles.js +3 -3
- package/lib/pages/AreaPage/Dashboard/Sites/factories.mock.js +2 -2
- package/lib/pages/AreaPage/Dashboard/Sites/styles.js +4 -4
- package/lib/pages/AssessmentPage/AssessmentPage.js +43 -37
- package/lib/pages/CannyWidget/Feedback.js +13 -13
- package/lib/pages/CovidPage/CovidPage.js +13 -8
- package/lib/pages/CovidPage/components/Body.js +27 -25
- package/lib/pages/CovidPage/components/Map.js +37 -27
- package/lib/pages/CovidPage/components/Sidebar.js +13 -14
- package/lib/pages/CovidPage/components/Summary.js +26 -19
- package/lib/pages/CovidPage/components/TrendGraphNVL/TrendGraphNVL.js +30 -24
- package/lib/pages/CovidPage/components/TrendPopupContent/TrendPopupContent.js +73 -51
- package/lib/pages/CovidPage/components/areas/Area.js +35 -24
- package/lib/pages/CovidPage/components/areas/AreaPolygonWBE.js +43 -44
- package/lib/pages/CovidPage/components/areas/AreaPolygonsWBE.js +35 -32
- package/lib/pages/CovidPage/components/areas/AreasList.js +41 -29
- package/lib/pages/CovidPage/components/areas/Sort.js +14 -11
- package/lib/pages/CovidPage/components/nvlStatusHelper.js +11 -11
- package/lib/pages/DashboardMap/AreaCard.js +26 -26
- package/lib/pages/DashboardMap/AssessmentIcon.js +6 -7
- package/lib/pages/DashboardMap/Capacity.js +85 -34
- package/lib/pages/DashboardMap/FactoryCard.js +24 -28
- package/lib/pages/DashboardMap/HighchartsOptions.js +4 -5
- package/lib/pages/DashboardMap/List.js +93 -65
- package/lib/pages/DashboardMap/ListContext.js +19 -15
- package/lib/pages/DashboardMap/Loader.js +2 -2
- package/lib/pages/DashboardMap/SeverityBadge.js +18 -10
- package/lib/pages/DashboardMap/WWTPMap.js +59 -49
- package/lib/pages/DashboardMap/WaterDischarge.js +8 -8
- package/lib/pages/DashboardMap/Widget.js +70 -53
- package/lib/pages/DashboardMap/utils.js +50 -41
- package/lib/pages/EventsPage/Body/Body.js +15 -20
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropContainer.js +19 -17
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropUtils.js +35 -27
- package/lib/pages/EventsPage/DragAndDropArea/DragAndDropWrapper.js +6 -8
- package/lib/pages/EventsPage/DragAndDropArea/DraggableItem.js +7 -11
- package/lib/pages/EventsPage/DragAndDropArea/DraggableList.js +30 -21
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainer.js +63 -52
- package/lib/pages/EventsPage/EventsMapContainer/EventsMapContainerHelpers.js +23 -17
- package/lib/pages/EventsPage/EventsPage.js +10 -7
- package/lib/pages/EventsPage/FloatingGraph/FloatingGraph.js +37 -25
- package/lib/pages/EventsPage/events/MoreInfo.js +16 -17
- package/lib/pages/EventsPage/events/Sidebar.js +16 -21
- package/lib/pages/EventsPage/events/event_info/Contaminants/Contaminants.js +7 -7
- package/lib/pages/EventsPage/events/event_info/Contaminants/ContaminantsList.js +20 -17
- package/lib/pages/EventsPage/events/event_info/EarlyWarnings.js +35 -30
- package/lib/pages/EventsPage/events/event_info/EventDetails.js +29 -32
- package/lib/pages/EventsPage/events/event_info/EventInfo.js +40 -41
- package/lib/pages/EventsPage/events/event_info/EventPath/EventPath.js +4 -4
- package/lib/pages/EventsPage/events/event_info/EventSection.js +18 -16
- package/lib/pages/EventsPage/events/event_info/EventSection.test.js +38 -43
- package/lib/pages/EventsPage/events/event_info/EventTimeRange.js +46 -38
- package/lib/pages/EventsPage/events/event_info/Header/Header.js +4 -6
- package/lib/pages/EventsPage/events/event_info/Header/HeaderContainer.js +31 -28
- package/lib/pages/EventsPage/events/event_info/HistoricalInformation.js +4 -4
- package/lib/pages/EventsPage/events/event_info/MiniEventTree.js +36 -29
- package/lib/pages/EventsPage/events/event_info/MobileEventPath.js +6 -4
- package/lib/pages/EventsPage/events/event_info/PollutionDischarge.js +21 -22
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResult.js +19 -12
- package/lib/pages/EventsPage/events/event_info/SamplingList/LabResult/LabResultButton.js +3 -5
- package/lib/pages/EventsPage/events/event_info/SamplingList/SamplingDetails.js +9 -11
- package/lib/pages/EventsPage/events/event_info/SamplingList/Samplings.js +25 -21
- package/lib/pages/EventsPage/events/event_info/SeverityScore/ScoreExplanation.js +7 -11
- package/lib/pages/EventsPage/events/event_info/SeverityScore/SeverityScore.js +6 -6
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Confidence.js +3 -5
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.js +2 -2
- package/lib/pages/EventsPage/events/event_info/SourceDetails/Discharging.test.js +10 -12
- package/lib/pages/EventsPage/events/event_info/SourceDetails/IconAndTitles.js +4 -6
- package/lib/pages/EventsPage/events/event_info/SourceDetails/MoreInfoButton.js +12 -10
- package/lib/pages/EventsPage/events/event_info/SourceDetails/OtherSources.js +3 -5
- package/lib/pages/EventsPage/events/event_info/SourceDetails/PotentialSources.js +5 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SingleSource.js +5 -7
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceCardBody.js +4 -6
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.js +9 -11
- package/lib/pages/EventsPage/events/event_info/SourceDetails/SourceDetails.test.js +15 -15
- package/lib/pages/EventsPage/events/event_info/SourceDetails/WaterDischarge.js +6 -6
- package/lib/pages/EventsPage/events/event_info/Timelines/DischargeBox.js +5 -7
- package/lib/pages/EventsPage/events/event_info/Timelines/EarlyWarning.js +15 -17
- package/lib/pages/EventsPage/events/event_info/Timelines/LiveStatusBadge.js +4 -4
- package/lib/pages/EventsPage/events/event_info/Timelines/SeenBox.js +8 -10
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.js +11 -16
- package/lib/pages/EventsPage/events/event_info/Timelines/Timelines.test.js +8 -9
- package/lib/pages/EventsPage/events/event_info/Timelines/Titles.js +2 -2
- package/lib/pages/EventsPage/events/event_info/Timelines/style.js +3 -3
- package/lib/pages/EventsPage/events/event_info/charts/EventDetailsPieChart.js +37 -24
- package/lib/pages/EventsPage/events/event_info/damage_type/DamageType.js +36 -29
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Sampling.js +9 -11
- package/lib/pages/EventsPage/events/event_info/samplingsOld/Samplings.js +17 -15
- package/lib/pages/EventsPage/events/event_info/sources/Source.js +28 -25
- package/lib/pages/EventsPage/events/event_info/sources/Sources.js +24 -21
- package/lib/pages/EventsPage/events/event_info/styles.js +12 -20
- package/lib/pages/EventsPage/events/events_list/EventItem.js +18 -17
- package/lib/pages/EventsPage/events/events_list/EventUtils.js +10 -10
- package/lib/pages/EventsPage/events/events_list/EventsList.js +134 -113
- package/lib/pages/EventsPage/events/events_list/Filter/Filter.js +53 -38
- package/lib/pages/EventsPage/events/events_list/Filter/FilterContainer.js +108 -72
- package/lib/pages/EventsPage/events/events_list/Filter/FilterItem.js +69 -52
- package/lib/pages/EventsPage/events/events_list/Filter/FiltersDropDown.js +41 -38
- package/lib/pages/EventsPage/events/events_list/Filter/OptionsDropDown.js +36 -29
- package/lib/pages/EventsPage/events/events_list/Sort.js +16 -13
- package/lib/pages/ImportFileWizard/FileUploadRespones.js +19 -12
- package/lib/pages/ImportFileWizard/ImportButtomButtons.js +4 -6
- package/lib/pages/ImportFileWizard/ImportFile.js +22 -20
- package/lib/pages/ImportFileWizard/ResponseBody.js +33 -24
- package/lib/pages/ImportFileWizard/ValidationForm.js +20 -21
- package/lib/pages/ImportFileWizard/ValidationResponse.js +21 -21
- package/lib/pages/ImportFileWizard/importFileUtils.js +1 -1
- package/lib/pages/ImportGisPage/ImportGisContainer.js +24 -21
- package/lib/pages/ImportGisPage/ImportedGisFilesPage.js +23 -21
- package/lib/pages/ImportGisPage/importGisUtils.js +20 -12
- package/lib/pages/ImportGisProcess/index.js +15 -12
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/MultiChoiceTabs.js +12 -7
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/RadioTabs.js +19 -17
- package/lib/pages/NotificationsPage/EditNotificationModal/Buttons/SeverityButtons.js +3 -3
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.js +57 -28
- package/lib/pages/NotificationsPage/EditNotificationModal/EditNotificationModal.stories.js +8 -6
- package/lib/pages/NotificationsPage/Notification/Notification.js +12 -16
- package/lib/pages/NotificationsPage/Notifications.mock.js +2 -2
- package/lib/pages/NotificationsPage/Notifications.stories.js +6 -4
- package/lib/pages/NotificationsPage/NotificationsPage.js +36 -18
- package/lib/pages/NotificationsPage/assets/index.js +9 -9
- package/lib/pages/NotificationsPageV2/NotificationsPage.js +93 -70
- package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +62 -93
- package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +137 -126
- package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +71 -71
- package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +87 -90
- package/lib/pages/NotificationsPageV2/notificationUtils.js +33 -39
- package/lib/pages/OldSitePage/OldSitePage.js +131 -56
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.js +5 -5
- package/lib/pages/OldSitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -3
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +6 -8
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +20 -18
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +7 -9
- package/lib/pages/OldSitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +18 -12
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +12 -16
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -3
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +11 -17
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +63 -51
- package/lib/pages/OldSitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +7 -9
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.js +53 -29
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.mock.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
- package/lib/pages/OldSitePage/SamplingParameters/charts/ParametersChart.js +10 -11
- package/lib/pages/OldSitePage/SamplingParameters/charts/SamplingChart.js +11 -10
- package/lib/pages/OldSitePage/SamplingParameters/charts/options/options.js +22 -26
- package/lib/pages/OldSitePage/SamplingParameters/dataParser.js +28 -26
- package/lib/pages/OldSitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/OldSitePage/SamplingParameters/styles/styles.js +9 -15
- package/lib/pages/ProfilePage/Container.js +2 -2
- package/lib/pages/ProfilePage/PasswordModal/PasswordModal.js +39 -23
- package/lib/pages/ProfilePage/ProfilePage.js +199 -111
- package/lib/pages/ProfilePage/TelegramModal/TelegramModal.js +33 -25
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.js +15 -18
- package/lib/pages/SamplingsPage/ActionsDropDown/LabResultValue.test.js +25 -23
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionContainer.js +116 -56
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActionDropdown.js +20 -17
- package/lib/pages/SamplingsPage/ActionsDropDown/SamplingActions.js +10 -12
- package/lib/pages/SamplingsPage/ActionsDropDown/ViewLabResult.js +40 -38
- package/lib/pages/SamplingsPage/DesktopActions/DesktopActions.js +26 -25
- package/lib/pages/SamplingsPage/DesktopActions/DownloadCSV.js +16 -16
- package/lib/pages/SamplingsPage/DesktopActions/UploadLabResult.js +15 -13
- package/lib/pages/SamplingsPage/NavigationDropdown.js +29 -42
- package/lib/pages/SamplingsPage/NewSamplingAction.js +97 -73
- package/lib/pages/SamplingsPage/SamplingMobileModal.js +97 -123
- package/lib/pages/SamplingsPage/SamplingProperties/ImageDeleteModal.js +22 -21
- package/lib/pages/SamplingsPage/SamplingProperties/ImagePreviewModal.js +22 -34
- package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +56 -33
- package/lib/pages/SamplingsPage/SamplingProperties/ManholeImageMobile.js +18 -15
- package/lib/pages/SamplingsPage/SamplingProperties/SamplerInProcess.js +6 -8
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +191 -107
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +53 -47
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +38 -42
- package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +38 -42
- package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +20 -19
- package/lib/pages/SamplingsPage/SamplingProperties/styles.js +3 -3
- package/lib/pages/SamplingsPage/SamplingSiteTableCell.js +6 -10
- package/lib/pages/SamplingsPage/SamplingsMobileItem.js +52 -51
- package/lib/pages/SamplingsPage/SamplingsMobileList.js +28 -21
- package/lib/pages/SamplingsPage/SamplingsPage.js +31 -25
- package/lib/pages/SamplingsPage/SamplingsPageContainer.js +57 -49
- package/lib/pages/SamplingsPage/samplingsPageUtils.js +75 -67
- package/lib/pages/SitePage/DischargePattern/DischargePattern.js +4 -6
- package/lib/pages/SitePage/PollutionContributor/PollutionContributor.js +13 -14
- package/lib/pages/SitePage/PollutionContributor/PollutionContributorContainer.js +13 -10
- package/lib/pages/SitePage/PollutionContributor/contributorUtils.js +16 -16
- package/lib/pages/SitePage/SamplingParameters/NoResults/NoResults.stories.js +5 -3
- package/lib/pages/SitePage/SamplingParameters/NoResults/index.js +10 -14
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.js +8 -9
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParameterButton/ParameterButton.test.js +23 -26
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.js +17 -14
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/ParametersButtons.test.js +32 -36
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersButtons/styles.js +7 -9
- package/lib/pages/SitePage/SamplingParameters/ParametersContainer/ParametersContainer.js +24 -15
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.js +12 -16
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/ExceptionBar.stories.js +5 -3
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExceptionBar/styles.js +11 -17
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/ExpandableSamplingTable/ExpandableSamplingTable.js +70 -58
- package/lib/pages/SitePage/SamplingParameters/SamplingContainer/SamplingContainer.js +7 -9
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.js +26 -15
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.mock.js +5 -5
- package/lib/pages/SitePage/SamplingParameters/SamplingParameters.stories.js +12 -10
- package/lib/pages/SitePage/SamplingParameters/body/Body.js +8 -8
- package/lib/pages/SitePage/SamplingParameters/body/BodyContainer.js +37 -29
- package/lib/pages/SitePage/SamplingParameters/charts/ParametersChart.js +11 -11
- package/lib/pages/SitePage/SamplingParameters/charts/SamplingChart.js +11 -10
- package/lib/pages/SitePage/SamplingParameters/charts/options/options.js +53 -53
- package/lib/pages/SitePage/SamplingParameters/dataParser.js +38 -29
- package/lib/pages/SitePage/SamplingParameters/dataParser.test.js +9 -11
- package/lib/pages/SitePage/SamplingParameters/styles/samplingParameters.js +4 -4
- package/lib/pages/SitePage/SamplingParameters/styles/styles.js +9 -15
- package/lib/pages/SitePage/SiteInformation/EmptyState.js +7 -11
- package/lib/pages/SitePage/SiteInformation/SiteInformation.js +31 -31
- package/lib/pages/SitePage/SitePage.js +73 -34
- package/lib/pages/UploadLabResult/index.js +13 -13
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.js +35 -26
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/MostSevereEvents.stories.js +8 -6
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.js +8 -9
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/NoEvents/NoEvents.stories.js +5 -3
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/Eta.js +47 -46
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/Eta/styles.js +6 -10
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/LinkedSevereEvent.js +2 -2
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/OptionalLinkedSevereEvent.js +6 -4
- package/lib/pages/UtilityDashboardPage/MostSevereEvents/SevereEvent/SevereEvent.js +9 -10
- package/lib/pages/UtilityDashboardPage/TopBar/TopBar.js +12 -15
- package/lib/pages/UtilityDashboardPage/TopBar/constants.js +7 -7
- package/lib/pages/UtilityDashboardPage/TopBar/styles.js +2 -2
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.js +24 -16
- package/lib/pages/UtilityDashboardPage/UtilityDashboard.stories.js +30 -26
- package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +16 -15
- package/lib/pages/UtilityDashboardPage/UtilityDashboardPage.js +13 -7
- package/lib/pages/UtilityDashboardPage/VirtualAreaDashboardPage.js +30 -26
- package/lib/pages/WbeDashboard/ExpandableComponent.js +8 -9
- package/lib/pages/WbeDashboard/GraphWrapper.js +34 -28
- package/lib/pages/WbeDashboard/IndividualTinyGraph.js +19 -17
- package/lib/pages/WbeDashboard/SearchInput.js +20 -15
- package/lib/pages/WbeDashboard/SummaryGraph.js +76 -50
- package/lib/pages/WbeDashboard/SummaryGraphModal.js +17 -19
- package/lib/pages/WbeDashboard/Tabs.js +10 -10
- package/lib/pages/WbeDashboard/WbeDashboardPage.js +206 -144
- package/lib/pages/WbeDashboard/WbeSummaryBar.js +47 -39
- package/lib/pages/WwtpPage/DashboardCard.js +20 -23
- package/lib/pages/WwtpPage/DischargePatternCard.js +23 -14
- package/lib/pages/WwtpPage/InletsCard/InletsBar.js +21 -25
- package/lib/pages/WwtpPage/InletsCard/InletsCard.js +18 -19
- package/lib/pages/WwtpPage/Map.js +3 -5
- package/lib/pages/WwtpPage/OrganicCard.js +2 -2
- package/lib/pages/WwtpPage/PotentialSaving/ImpactCard.js +2 -2
- package/lib/pages/WwtpPage/PotentialSaving/PotentialItem.js +4 -6
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSaving.js +8 -9
- package/lib/pages/WwtpPage/PotentialSaving/PotentialSavingContainer.js +14 -18
- package/lib/pages/WwtpPage/PredictionCard.js +2 -2
- package/lib/pages/WwtpPage/TrendCard.js +19 -18
- package/lib/pages/WwtpPage/UpgradeBox.js +2 -2
- package/lib/pages/WwtpPage/WwtpPage.js +7 -7
- package/lib/pages/WwtpPage/WwtpPageContainer.js +16 -21
- package/lib/providers/Slideshow/SlideshowContext.js +9 -11
- package/lib/providers/Slideshow/SlideshowProvider.js +38 -22
- package/lib/providers/Slideshow/SlideshowRunner.js +19 -17
- package/lib/providers/UrlHistory/UrlHistoryContext.js +4 -6
- package/lib/providers/UrlHistory/UrlHistoryProvider.js +11 -12
- package/lib/providers/UrlHistory/index.js +2 -2
- package/lib/providers/UrlHistory/useLastVisited.js +4 -4
- package/lib/store/ImportGis/actionTypes.js +1 -1
- package/lib/store/ImportGis/actionsCreator.js +5 -7
- package/lib/store/ImportGis/reducer.js +29 -40
- package/lib/store/WBE/actionTypes.js +2 -2
- package/lib/store/WBE/reducer.js +9 -13
- package/lib/store/WWTPDashboard/WWTPDashboardSlice.js +14 -24
- package/lib/store/areas/actionTypes.js +4 -4
- package/lib/store/areas/actions.js +13 -7
- package/lib/store/areas/reducer.js +6 -8
- package/lib/store/context/actionTypes.js +3 -3
- package/lib/store/context/actions.js +3 -3
- package/lib/store/context/contextMiddlewares.js +16 -14
- package/lib/store/context/reducer.js +9 -13
- package/lib/store/dashboard/dashboardSlice.js +10 -18
- package/lib/store/edges/actionTypes.js +5 -5
- package/lib/store/edges/actions.js +8 -4
- package/lib/store/edges/reducer.js +17 -13
- package/lib/store/events/actionTypes.js +17 -17
- package/lib/store/events/actions.js +7 -3
- package/lib/store/events/reducer.js +49 -42
- package/lib/store/global/actionTypes.js +11 -11
- package/lib/store/global/actions.js +6 -8
- package/lib/store/global/reducer.js +10 -11
- package/lib/store/permissions/permissionsSlice.js +8 -12
- package/lib/store/points/actionTypes.js +3 -3
- package/lib/store/points/actions.js +7 -3
- package/lib/store/points/reducer.js +5 -7
- package/lib/store/rootActionTypes.js +2 -2
- package/lib/store/rootReducer.js +12 -17
- package/lib/store/rootStore.js +5 -5
- package/lib/store/samplings/actionTypes.js +1 -1
- package/lib/store/samplings/reducer.js +14 -16
- package/lib/styles/StylesLayout.js +3 -5
- package/lib/styles/theme/theme.js +27 -26
- package/lib/test/mocks/browser.js +4 -2
- package/lib/test/test-utils.js +15 -17
- package/lib/ui-kit/Button/Button.js +79 -127
- package/lib/ui-kit/Button/Button.test.js +29 -24
- package/lib/ui-kit/Checkbox/Checkbox.js +20 -30
- package/lib/ui-kit/ContentCard/ContentCard.js +17 -14
- package/lib/ui-kit/Dashboard/Dashboard.js +19 -22
- package/lib/ui-kit/DropDown/DropDown.js +23 -22
- package/lib/ui-kit/DropDown/DropDown.test.js +12 -12
- package/lib/ui-kit/DropDown/DropDownItem.js +21 -24
- package/lib/ui-kit/DropDown/DropdownToggle.js +8 -12
- package/lib/ui-kit/EmptyState/EmptyState.js +3 -5
- package/lib/ui-kit/IconAction/IconAction.js +5 -7
- package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +62 -46
- package/lib/ui-kit/InfoTooltip/InfoTooltip.js +48 -57
- package/lib/ui-kit/InletsPie/InletsPie.js +13 -15
- package/lib/ui-kit/InletsPie/options.js +6 -6
- package/lib/ui-kit/KandoList/KandoList.js +12 -14
- package/lib/ui-kit/KandoTable/KandoTable.js +40 -48
- package/lib/ui-kit/KandoTable/KandoTable.test.js +22 -16
- package/lib/ui-kit/Layout/Layout.js +4 -6
- package/lib/ui-kit/MobileInput/MobileInput.js +49 -55
- package/lib/ui-kit/ModalConfirmation/ModalConfirmation.js +16 -13
- package/lib/ui-kit/OrganicEvents/GaugeChart.js +5 -7
- package/lib/ui-kit/OrganicEvents/OrganicEvents.js +6 -6
- package/lib/ui-kit/OrganicEvents/OrganicEventsContainer.js +20 -27
- package/lib/ui-kit/OrganicEvents/TextInfo.js +10 -15
- package/lib/ui-kit/RadioButtons/RadioButtonGroup.js +8 -10
- package/lib/ui-kit/SamplingStatus/SamplingStatus.js +17 -14
- package/lib/ui-kit/SamplingStatus/SamplingStatusHelper.js +3 -3
- package/lib/ui-kit/ScoreGauge/ScoreGauge.js +19 -19
- package/lib/ui-kit/ScoreGauge/constant.js +3 -3
- package/lib/ui-kit/TimeLineChart/TrendChart.js +42 -54
- package/lib/ui-kit/TitleAndCloseHeader/TitleAndCloseHeader.js +7 -8
- package/lib/ui-kit/Tooltip/Tooltip.js +8 -14
- package/lib/ui-kit/index.js +8 -8
- package/lib/ui-kit/kandoStepper/KandoStepper.js +11 -11
- package/lib/ui-kit/siteName/SiteName.js +8 -11
- package/lib/utilities/ActionUtility.js +7 -7
- package/lib/utilities/Alert.js +17 -21
- package/lib/utilities/Analytics.js +11 -11
- package/lib/utilities/Array.js +5 -4
- package/lib/utilities/Enum.js +51 -15
- package/lib/utilities/ErrorBoundary.js +41 -27
- package/lib/utilities/File.js +69 -40
- package/lib/utilities/GetDir.js +7 -8
- package/lib/utilities/KandoDate.js +15 -7
- package/lib/utilities/KandoModal.js +26 -16
- package/lib/utilities/LocalStorage.js +7 -5
- package/lib/utilities/ThousandsToK.js +2 -2
- package/lib/utilities/TimeFormat.js +20 -21
- package/lib/utilities/Truncate.js +24 -16
- package/lib/utilities/edgesMath.js +15 -14
- package/lib/utilities/i18n.js +3 -3
- package/lib/utilities/kql.js +12 -10
- package/lib/utilities/map/icons.js +3 -3
- package/lib/utilities/polylinedecorator.js +112 -87
- package/lib/utilities/scoreToData.js +10 -10
- package/lib/utilities/scoreToData.test.js +5 -5
- package/lib/utilities/time.js +8 -8
- package/lib/utilities/uploadToS3.js +11 -11
- package/lib/utilities/urls.js +14 -16
- package/package.json +1 -1
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.ProfilePage = void 0;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
10
|
+
var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
|
|
11
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
8
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
13
|
var _Select = require("components/CustomInputs/Select/Select");
|
|
10
14
|
var _i18n = _interopRequireDefault(require("utilities/i18n"));
|
|
@@ -21,11 +25,11 @@ var _Analytics = require("../../utilities/Analytics");
|
|
|
21
25
|
var _reactRedux = require("react-redux");
|
|
22
26
|
var _reactToastify = require("react-toastify");
|
|
23
27
|
var _permissionsSlice = require("store/permissions/permissionsSlice");
|
|
24
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null ||
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
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); }
|
|
29
|
+
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; }
|
|
30
|
+
var ProfilePage = function ProfilePage() {
|
|
31
|
+
var timezonesArray = _momentTimezone.default.tz.names();
|
|
32
|
+
var dateTimeFormatOptions = [{
|
|
29
33
|
value: 'us',
|
|
30
34
|
label: 'United States',
|
|
31
35
|
format: {
|
|
@@ -47,13 +51,13 @@ const ProfilePage = () => {
|
|
|
47
51
|
hour12: false
|
|
48
52
|
}
|
|
49
53
|
}];
|
|
50
|
-
|
|
54
|
+
var timezones = timezonesArray.map(function (t) {
|
|
51
55
|
return {
|
|
52
56
|
value: t,
|
|
53
57
|
label: t
|
|
54
58
|
};
|
|
55
59
|
});
|
|
56
|
-
|
|
60
|
+
var localeOptions = [{
|
|
57
61
|
value: 'en',
|
|
58
62
|
label: 'English'
|
|
59
63
|
}, {
|
|
@@ -69,7 +73,7 @@ const ProfilePage = () => {
|
|
|
69
73
|
value: 'it',
|
|
70
74
|
label: 'Italiano'
|
|
71
75
|
}];
|
|
72
|
-
|
|
76
|
+
var flowRateUnitOptions = [{
|
|
73
77
|
value: 'gd_us',
|
|
74
78
|
label: _i18n.default.t('dashboard_v2.profile.flow_rate_unit_options.gd_us')
|
|
75
79
|
}, {
|
|
@@ -79,21 +83,45 @@ const ProfilePage = () => {
|
|
|
79
83
|
value: 'm3d',
|
|
80
84
|
label: _i18n.default.t('dashboard_v2.profile.flow_rate_unit_options.m3d')
|
|
81
85
|
}];
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
86
|
+
var _useState = (0, _react.useState)(localeOptions[0]),
|
|
87
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
88
|
+
locale = _useState2[0],
|
|
89
|
+
setLocale = _useState2[1];
|
|
90
|
+
var _useState3 = (0, _react.useState)(flowRateUnitOptions[0]),
|
|
91
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
92
|
+
flowRateUnit = _useState4[0],
|
|
93
|
+
setFlowRateUnit = _useState4[1];
|
|
94
|
+
var _useState5 = (0, _react.useState)(dateTimeFormatOptions[0]),
|
|
95
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
96
|
+
dateTimeFormat = _useState6[0],
|
|
97
|
+
setDateTimeFormat = _useState6[1];
|
|
98
|
+
var _useState7 = (0, _react.useState)(timezones[20]),
|
|
99
|
+
_useState8 = (0, _slicedToArray2.default)(_useState7, 2),
|
|
100
|
+
timezone = _useState8[0],
|
|
101
|
+
setTimezone = _useState8[1];
|
|
102
|
+
var _useState9 = (0, _react.useState)([{
|
|
103
|
+
value: '',
|
|
104
|
+
label: ''
|
|
105
|
+
}]),
|
|
106
|
+
_useState10 = (0, _slicedToArray2.default)(_useState9, 2),
|
|
107
|
+
departments = _useState10[0],
|
|
108
|
+
setDepartments = _useState10[1];
|
|
109
|
+
var _useState11 = (0, _react.useState)([{
|
|
110
|
+
value: '',
|
|
111
|
+
label: ''
|
|
112
|
+
}]),
|
|
113
|
+
_useState12 = (0, _slicedToArray2.default)(_useState11, 2),
|
|
114
|
+
businessRoles = _useState12[0],
|
|
115
|
+
setBusinessRoles = _useState12[1];
|
|
116
|
+
var _useState13 = (0, _react.useState)(departments[0]),
|
|
117
|
+
_useState14 = (0, _slicedToArray2.default)(_useState13, 2),
|
|
118
|
+
department = _useState14[0],
|
|
119
|
+
setDepartment = _useState14[1];
|
|
120
|
+
var _useState15 = (0, _react.useState)(businessRoles[0]),
|
|
121
|
+
_useState16 = (0, _slicedToArray2.default)(_useState15, 2),
|
|
122
|
+
businessRole = _useState16[0],
|
|
123
|
+
setBusinessRole = _useState16[1];
|
|
124
|
+
var initialParamsState = {
|
|
97
125
|
first_name: '',
|
|
98
126
|
last_name: '',
|
|
99
127
|
phone: '',
|
|
@@ -108,73 +136,92 @@ const ProfilePage = () => {
|
|
|
108
136
|
department: '',
|
|
109
137
|
flow_rate_unit: ''
|
|
110
138
|
};
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
139
|
+
var _useState17 = (0, _react.useState)(false),
|
|
140
|
+
_useState18 = (0, _slicedToArray2.default)(_useState17, 2),
|
|
141
|
+
isTelegramOpen = _useState18[0],
|
|
142
|
+
setIsTelegramOpen = _useState18[1];
|
|
143
|
+
var _useState19 = (0, _react.useState)(false),
|
|
144
|
+
_useState20 = (0, _slicedToArray2.default)(_useState19, 2),
|
|
145
|
+
showPasswordModal = _useState20[0],
|
|
146
|
+
setShowPasswordModal = _useState20[1];
|
|
147
|
+
var _useState21 = (0, _react.useState)(false),
|
|
148
|
+
_useState22 = (0, _slicedToArray2.default)(_useState21, 2),
|
|
149
|
+
submitting = _useState22[0],
|
|
150
|
+
setSubmitting = _useState22[1];
|
|
151
|
+
var _useState23 = (0, _react.useState)(false),
|
|
152
|
+
_useState24 = (0, _slicedToArray2.default)(_useState23, 2),
|
|
153
|
+
showSuccessMessage = _useState24[0],
|
|
154
|
+
setShowSuccessMessage = _useState24[1];
|
|
155
|
+
var _useState25 = (0, _react.useState)(false),
|
|
156
|
+
_useState26 = (0, _slicedToArray2.default)(_useState25, 2),
|
|
157
|
+
showErrorMessage = _useState26[0],
|
|
158
|
+
setShowErrorMessage = _useState26[1];
|
|
159
|
+
var _useState27 = (0, _react.useState)({
|
|
160
|
+
show: false,
|
|
161
|
+
status: '',
|
|
162
|
+
message: ''
|
|
163
|
+
}),
|
|
164
|
+
_useState28 = (0, _slicedToArray2.default)(_useState27, 2),
|
|
165
|
+
showTelegramResponseMessage = _useState28[0],
|
|
166
|
+
setShowTelegramResponseMessage = _useState28[1];
|
|
167
|
+
var _useState29 = (0, _react.useState)(initialParamsState),
|
|
168
|
+
_useState30 = (0, _slicedToArray2.default)(_useState29, 2),
|
|
169
|
+
params = _useState30[0],
|
|
170
|
+
setParams = _useState30[1];
|
|
171
|
+
var handleOnChange = function handleOnChange(e) {
|
|
123
172
|
if (typeof e === 'string') {
|
|
124
173
|
if (e.startsWith('9720')) {
|
|
125
174
|
e = e.replace(/(9720)/g, '972');
|
|
126
175
|
}
|
|
127
|
-
setParams(prevState
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
176
|
+
setParams(function (prevState) {
|
|
177
|
+
return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, {
|
|
178
|
+
phone: e
|
|
179
|
+
});
|
|
180
|
+
});
|
|
131
181
|
} else {
|
|
132
|
-
|
|
133
|
-
value,
|
|
134
|
-
name
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
[name]: value
|
|
139
|
-
}));
|
|
182
|
+
var _e$target = e.target,
|
|
183
|
+
value = _e$target.value,
|
|
184
|
+
name = _e$target.name;
|
|
185
|
+
setParams(function (prevState) {
|
|
186
|
+
return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, (0, _defineProperty2.default)({}, name, value));
|
|
187
|
+
});
|
|
140
188
|
}
|
|
141
189
|
};
|
|
142
|
-
|
|
190
|
+
var handleBusinessRoleChange = function handleBusinessRoleChange(e) {
|
|
143
191
|
if (e.target !== null) {
|
|
144
|
-
setParams({
|
|
145
|
-
...params,
|
|
192
|
+
setParams((0, _objectSpread3.default)((0, _objectSpread3.default)({}, params), {}, {
|
|
146
193
|
business_role: e.value,
|
|
147
194
|
other_business_role_name: e.target.value
|
|
148
|
-
});
|
|
195
|
+
}));
|
|
149
196
|
}
|
|
150
197
|
};
|
|
151
|
-
|
|
198
|
+
var handleDepartmentChange = function handleDepartmentChange(e) {
|
|
152
199
|
if (e.target !== null) {
|
|
153
|
-
setParams({
|
|
154
|
-
...params,
|
|
200
|
+
setParams((0, _objectSpread3.default)((0, _objectSpread3.default)({}, params), {}, {
|
|
155
201
|
department: e.value,
|
|
156
202
|
other_department_name: e.target.value
|
|
157
|
-
});
|
|
203
|
+
}));
|
|
158
204
|
}
|
|
159
205
|
};
|
|
160
|
-
|
|
161
|
-
return {
|
|
162
|
-
...params,
|
|
206
|
+
var getParamsWithAggregatedValues = function getParamsWithAggregatedValues() {
|
|
207
|
+
return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, params), {}, {
|
|
163
208
|
date_time_format: dateTimeFormat.value,
|
|
164
209
|
locale: locale.value,
|
|
165
210
|
time_zone: timezone.value,
|
|
166
211
|
department_id: department === undefined ? null : department.value,
|
|
167
212
|
business_role_id: businessRole === undefined ? null : businessRole.value,
|
|
168
213
|
flow_rate_unit: flowRateUnit.value
|
|
169
|
-
};
|
|
214
|
+
});
|
|
170
215
|
};
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
216
|
+
var waterAuthorityName = (0, _reactRedux.useSelector)(function (state) {
|
|
217
|
+
return state.global_data.waterAuthorityName;
|
|
218
|
+
});
|
|
219
|
+
var showToast = function showToast(data) {
|
|
220
|
+
var username = data.username;
|
|
221
|
+
var error = data.error;
|
|
175
222
|
if (data.status === 'success') {
|
|
176
223
|
_reactToastify.toast.success(_i18n.default.t("my_profile_tab.telegram_messages.".concat(data.message), {
|
|
177
|
-
username
|
|
224
|
+
username: username
|
|
178
225
|
}), {
|
|
179
226
|
position: 'top-center'
|
|
180
227
|
});
|
|
@@ -187,65 +234,81 @@ const ProfilePage = () => {
|
|
|
187
234
|
});
|
|
188
235
|
}
|
|
189
236
|
};
|
|
190
|
-
|
|
191
|
-
|
|
237
|
+
var dispatch = (0, _reactRedux.useDispatch)();
|
|
238
|
+
var handleSubmit = function handleSubmit(e) {
|
|
192
239
|
e.preventDefault();
|
|
193
240
|
setSubmitting(true);
|
|
194
241
|
_axios.default.put('/profiles', {
|
|
195
242
|
user: getParamsWithAggregatedValues()
|
|
196
|
-
}).then(resp
|
|
243
|
+
}).then(function (resp) {
|
|
197
244
|
if (resp.data.errors === null) {
|
|
198
245
|
dispatch(_permissionsSlice.PermissionsSlice.actions.setUserInfo(JSON.parse(resp.data.user)));
|
|
199
|
-
document.querySelectorAll('.error-message').forEach(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
246
|
+
document.querySelectorAll('.error-message').forEach(function (p) {
|
|
247
|
+
return p.innerHTML = '';
|
|
248
|
+
});
|
|
249
|
+
document.querySelectorAll('.invalid-field').forEach(function (p) {
|
|
250
|
+
return p.classList.remove('invalid-field');
|
|
251
|
+
});
|
|
252
|
+
var user = JSON.parse(resp.data.user);
|
|
253
|
+
var findLocale = localeOptions.find(function (e) {
|
|
254
|
+
return e.value === user.locale;
|
|
255
|
+
});
|
|
256
|
+
var findFlowRateUnit = flowRateUnitOptions.find(function (e) {
|
|
257
|
+
return e.value === user.flow_rate_unit;
|
|
258
|
+
});
|
|
259
|
+
var findDateTimeFormat = dateTimeFormatOptions.find(function (e) {
|
|
260
|
+
return e.value === user.date_time_format;
|
|
261
|
+
});
|
|
262
|
+
var findTimezone = timezones.find(function (e) {
|
|
263
|
+
return e.value === user.time_zone;
|
|
264
|
+
});
|
|
206
265
|
setParams(user);
|
|
207
266
|
setLocale(findLocale);
|
|
208
267
|
setFlowRateUnit(findFlowRateUnit);
|
|
209
268
|
setDateTimeFormat(findDateTimeFormat);
|
|
210
269
|
setTimezone(findTimezone);
|
|
211
270
|
setShowSuccessMessage(true);
|
|
212
|
-
setTimeout(()
|
|
271
|
+
setTimeout(function () {
|
|
213
272
|
setShowSuccessMessage(false);
|
|
214
273
|
}, 6000);
|
|
215
274
|
} else {
|
|
216
|
-
document.querySelectorAll('.error-message').forEach(
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
275
|
+
document.querySelectorAll('.error-message').forEach(function (p) {
|
|
276
|
+
return p.innerHTML = '';
|
|
277
|
+
});
|
|
278
|
+
var errors = resp.data.user.errors;
|
|
279
|
+
for (var error in errors) {
|
|
280
|
+
var findElement = document.querySelector("input[name='".concat(error, "']"));
|
|
281
|
+
var parent = findElement.closest('.field');
|
|
282
|
+
var findInput = parent.querySelector('input');
|
|
222
283
|
findInput.classList.add('invalid-field');
|
|
223
284
|
parent.querySelector('.error-message').innerHTML = _i18n.default.t("dashboard_v2.profile.errors.".concat(error));
|
|
224
285
|
}
|
|
225
286
|
setShowSuccessMessage(false);
|
|
226
287
|
}
|
|
227
288
|
setSubmitting(false);
|
|
228
|
-
}).catch(error
|
|
289
|
+
}).catch(function (error) {
|
|
229
290
|
setShowErrorMessage(true);
|
|
230
291
|
setShowSuccessMessage(false);
|
|
231
292
|
setSubmitting(false);
|
|
232
|
-
setTimeout(()
|
|
293
|
+
setTimeout(function () {
|
|
233
294
|
setShowErrorMessage(false);
|
|
234
295
|
}, 6000);
|
|
235
296
|
});
|
|
236
297
|
};
|
|
237
|
-
(0, _react.useEffect)(()
|
|
298
|
+
(0, _react.useEffect)(function () {
|
|
238
299
|
(0, _Analytics.analyticsTrack)('Viewed Profile Page', {
|
|
239
300
|
utility_name: waterAuthorityName
|
|
240
301
|
});
|
|
241
302
|
// @ts-ignore
|
|
242
|
-
|
|
303
|
+
var token = document.querySelector('[name=csrf-token]').content;
|
|
243
304
|
_axios.default.defaults.headers.common['X-CSRF-TOKEN'] = token;
|
|
244
305
|
_axios.default.defaults.headers.common['Content-Type'] = 'application/js';
|
|
245
|
-
_axios.default.get("/profiles/resource").then(resp
|
|
306
|
+
_axios.default.get("/profiles/resource").then(function (resp) {
|
|
246
307
|
setParams(resp.data.user);
|
|
247
|
-
|
|
248
|
-
return object.find(
|
|
308
|
+
var findProperty = function findProperty(object, property) {
|
|
309
|
+
return object.find(function (e) {
|
|
310
|
+
return e.value === property;
|
|
311
|
+
});
|
|
249
312
|
};
|
|
250
313
|
setLocale(findProperty(localeOptions, resp.data.user.locale));
|
|
251
314
|
setFlowRateUnit(findProperty(flowRateUnitOptions, resp.data.user.flow_rate_unit));
|
|
@@ -255,13 +318,17 @@ const ProfilePage = () => {
|
|
|
255
318
|
setDepartment(findProperty(resp.data.departments, resp.data.user.department_id));
|
|
256
319
|
setDepartments(resp.data.departments);
|
|
257
320
|
setBusinessRoles(resp.data.business_roles);
|
|
258
|
-
}).catch(
|
|
321
|
+
}).catch(function (error) {
|
|
322
|
+
return alert(error);
|
|
323
|
+
});
|
|
259
324
|
}, []);
|
|
260
325
|
return /*#__PURE__*/_react.default.createElement(_Container.Container, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
261
326
|
className: "header-title"
|
|
262
327
|
}, _i18n.default.t('dashboard_v2.profile.title')), /*#__PURE__*/_react.default.createElement("form", {
|
|
263
328
|
action: "",
|
|
264
|
-
onSubmit:
|
|
329
|
+
onSubmit: function onSubmit(e) {
|
|
330
|
+
return handleSubmit(e);
|
|
331
|
+
}
|
|
265
332
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
266
333
|
className: "content"
|
|
267
334
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -277,7 +344,9 @@ const ProfilePage = () => {
|
|
|
277
344
|
className: "my-input",
|
|
278
345
|
name: 'first_name',
|
|
279
346
|
value: params.first_name,
|
|
280
|
-
onChange:
|
|
347
|
+
onChange: function onChange(e) {
|
|
348
|
+
return handleOnChange(e);
|
|
349
|
+
}
|
|
281
350
|
}), /*#__PURE__*/_react.default.createElement("p", {
|
|
282
351
|
className: 'error-message'
|
|
283
352
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -289,7 +358,9 @@ const ProfilePage = () => {
|
|
|
289
358
|
className: "my-input",
|
|
290
359
|
name: 'last_name',
|
|
291
360
|
value: params.last_name,
|
|
292
|
-
onChange:
|
|
361
|
+
onChange: function onChange(e) {
|
|
362
|
+
return handleOnChange(e);
|
|
363
|
+
}
|
|
293
364
|
}), /*#__PURE__*/_react.default.createElement("p", {
|
|
294
365
|
className: 'error-message'
|
|
295
366
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -319,7 +390,7 @@ const ProfilePage = () => {
|
|
|
319
390
|
enableSearch: true,
|
|
320
391
|
searchPlaceholder: _i18n.default.t('search'),
|
|
321
392
|
countryCodeEditable: false,
|
|
322
|
-
onChange: value
|
|
393
|
+
onChange: function onChange(value) {
|
|
323
394
|
handleOnChange(value);
|
|
324
395
|
},
|
|
325
396
|
inputProps: {
|
|
@@ -373,7 +444,9 @@ const ProfilePage = () => {
|
|
|
373
444
|
className: "my-input",
|
|
374
445
|
name: 'other_department_name',
|
|
375
446
|
value: params.other_department_name,
|
|
376
|
-
onChange:
|
|
447
|
+
onChange: function onChange(e) {
|
|
448
|
+
return handleDepartmentChange(e);
|
|
449
|
+
}
|
|
377
450
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
378
451
|
className: "field ".concat(businessRole && (businessRole === null || businessRole === void 0 ? void 0 : businessRole.value) === businessRoles[businessRoles.length - 1].value ? '' : 'field--hidden', " ")
|
|
379
452
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -384,12 +457,16 @@ const ProfilePage = () => {
|
|
|
384
457
|
className: "my-input",
|
|
385
458
|
name: 'other_business_role_name',
|
|
386
459
|
value: params.other_business_role_name,
|
|
387
|
-
onChange:
|
|
460
|
+
onChange: function onChange(e) {
|
|
461
|
+
return handleBusinessRoleChange(e);
|
|
462
|
+
}
|
|
388
463
|
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
389
464
|
className: "field"
|
|
390
465
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
391
466
|
className: "change-password",
|
|
392
|
-
onClick: ()
|
|
467
|
+
onClick: function onClick() {
|
|
468
|
+
return setShowPasswordModal(true);
|
|
469
|
+
}
|
|
393
470
|
}, /*#__PURE__*/_react.default.createElement(_pen.ReactComponent, {
|
|
394
471
|
width: "12px",
|
|
395
472
|
height: "12px",
|
|
@@ -437,14 +514,18 @@ const ProfilePage = () => {
|
|
|
437
514
|
className: "field field--buttons"
|
|
438
515
|
}, params.telegram_name === '' && /*#__PURE__*/_react.default.createElement("a", {
|
|
439
516
|
className: "telegram",
|
|
440
|
-
onClick: ()
|
|
517
|
+
onClick: function onClick() {
|
|
518
|
+
return setIsTelegramOpen(true);
|
|
519
|
+
}
|
|
441
520
|
}, _i18n.default.t('dashboard_v2.profile.connect-to-telegram')), params.telegram_name !== '' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
442
521
|
className: "field"
|
|
443
522
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
444
523
|
className: "label"
|
|
445
524
|
}, _i18n.default.t('dashboard_v2.profile.telegram_name'), /*#__PURE__*/_react.default.createElement("div", {
|
|
446
525
|
className: "right",
|
|
447
|
-
onClick: ()
|
|
526
|
+
onClick: function onClick() {
|
|
527
|
+
return setIsTelegramOpen(true);
|
|
528
|
+
}
|
|
448
529
|
}, /*#__PURE__*/_react.default.createElement(_pen.ReactComponent, {
|
|
449
530
|
width: "12px",
|
|
450
531
|
height: "12px",
|
|
@@ -459,24 +540,25 @@ const ProfilePage = () => {
|
|
|
459
540
|
value: params.telegram_name
|
|
460
541
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
461
542
|
className: 'telegram-existing-input__cancel-button',
|
|
462
|
-
onClick: e
|
|
463
|
-
setParams(prevState
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
543
|
+
onClick: function onClick(e) {
|
|
544
|
+
setParams(function (prevState) {
|
|
545
|
+
return (0, _objectSpread3.default)((0, _objectSpread3.default)({}, prevState), {}, {
|
|
546
|
+
telegram_name: ''
|
|
547
|
+
});
|
|
548
|
+
});
|
|
467
549
|
}
|
|
468
550
|
}, /*#__PURE__*/_react.default.createElement(_cancel.ReactComponent, null))), /*#__PURE__*/_react.default.createElement("p", {
|
|
469
551
|
className: 'error-message'
|
|
470
552
|
})), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("a", {
|
|
471
553
|
className: 'telegram open',
|
|
472
|
-
onClick: ()
|
|
473
|
-
_axios.default.get("/telegram/send_test_message.json").then(resp
|
|
554
|
+
onClick: function onClick() {
|
|
555
|
+
_axios.default.get("/telegram/send_test_message.json").then(function (resp) {
|
|
474
556
|
setShowTelegramResponseMessage({
|
|
475
557
|
status: resp.data.user.status[0].toUpperCase() + resp.data.user.status.substring(1),
|
|
476
558
|
message: resp.data.user.message,
|
|
477
559
|
show: true
|
|
478
560
|
});
|
|
479
|
-
setTimeout(()
|
|
561
|
+
setTimeout(function () {
|
|
480
562
|
setShowTelegramResponseMessage({
|
|
481
563
|
status: '',
|
|
482
564
|
message: '',
|
|
@@ -484,7 +566,9 @@ const ProfilePage = () => {
|
|
|
484
566
|
});
|
|
485
567
|
}, 6000);
|
|
486
568
|
showToast(resp.data.user);
|
|
487
|
-
}).catch(
|
|
569
|
+
}).catch(function (error) {
|
|
570
|
+
return alert(error);
|
|
571
|
+
});
|
|
488
572
|
}
|
|
489
573
|
}, !showTelegramResponseMessage.show && _i18n.default.t('dashboard_v2.profile.send_telegram_message'), showTelegramResponseMessage.show && showTelegramResponseMessage.status)))), /*#__PURE__*/_react.default.createElement("div", {
|
|
490
574
|
className: "field"
|
|
@@ -502,13 +586,17 @@ const ProfilePage = () => {
|
|
|
502
586
|
className: 'save',
|
|
503
587
|
disabled: submitting
|
|
504
588
|
}, !submitting && !showSuccessMessage && !showErrorMessage && _i18n.default.t('dashboard_v2.profile.submit'), submitting && !showSuccessMessage && !showErrorMessage && _i18n.default.t('dashboard_v2.profile.submitting'), showSuccessMessage && _i18n.default.t('dashboard_v2.profile.success'), showErrorMessage && _i18n.default.t('dashboard_v2.profile.error')))), showPasswordModal && /*#__PURE__*/_react.default.createElement(_PasswordModal.PasswordModal, {
|
|
505
|
-
close: ()
|
|
506
|
-
|
|
589
|
+
close: function close() {
|
|
590
|
+
return setShowPasswordModal(false);
|
|
591
|
+
},
|
|
592
|
+
save: function save() {}
|
|
507
593
|
}), isTelegramOpen && /*#__PURE__*/_react.default.createElement(_TelegramModal.TelegramModal, {
|
|
508
|
-
close: ()
|
|
594
|
+
close: function close() {
|
|
595
|
+
return setIsTelegramOpen(false);
|
|
596
|
+
},
|
|
509
597
|
handleOnChange: handleOnChange,
|
|
510
598
|
handleSubmit: handleSubmit
|
|
511
599
|
}));
|
|
512
600
|
};
|
|
513
601
|
exports.ProfilePage = ProfilePage;
|
|
514
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfU2VsZWN0IiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1Bhc3N3b3JkTW9kYWwiLCJfcGVuIiwiX2NhbmNlbCIsIl9yZWFjdFBob25lSW5wdXQiLCJfVGVsZWdyYW1Nb2RhbCIsIl9heGlvcyIsIl9Db250YWluZXIiLCJfbW9tZW50VGltZXpvbmUiLCJfQW5hbHl0aWNzIiwiX3JlYWN0UmVkdXgiLCJfcmVhY3RUb2FzdGlmeSIsIl9wZXJtaXNzaW9uc1NsaWNlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIlByb2ZpbGVQYWdlIiwidGltZXpvbmVzQXJyYXkiLCJtb21lbnQiLCJ0eiIsIm5hbWVzIiwiZGF0ZVRpbWVGb3JtYXRPcHRpb25zIiwidmFsdWUiLCJsYWJlbCIsImZvcm1hdCIsIm1vbnRoIiwiZGF5IiwieWVhciIsImhvdXIiLCJtaW51dGUiLCJob3VyMTIiLCJ0aW1lem9uZXMiLCJtYXAiLCJ0IiwibG9jYWxlT3B0aW9ucyIsImZsb3dSYXRlVW5pdE9wdGlvbnMiLCJpMThuIiwibG9jYWxlIiwic2V0TG9jYWxlIiwidXNlU3RhdGUiLCJmbG93UmF0ZVVuaXQiLCJzZXRGbG93UmF0ZVVuaXQiLCJkYXRlVGltZUZvcm1hdCIsInNldERhdGVUaW1lRm9ybWF0IiwidGltZXpvbmUiLCJzZXRUaW1lem9uZSIsImRlcGFydG1lbnRzIiwic2V0RGVwYXJ0bWVudHMiLCJidXNpbmVzc1JvbGVzIiwic2V0QnVzaW5lc3NSb2xlcyIsImRlcGFydG1lbnQiLCJzZXREZXBhcnRtZW50IiwiYnVzaW5lc3NSb2xlIiwic2V0QnVzaW5lc3NSb2xlIiwiaW5pdGlhbFBhcmFtc1N0YXRlIiwiZmlyc3RfbmFtZSIsImxhc3RfbmFtZSIsInBob25lIiwiZW1haWwiLCJ0aW1lX3pvbmUiLCJkYXRlX3RpbWVfZm9ybWF0IiwidGVsZWdyYW1fbmFtZSIsIm90aGVyX2J1c2luZXNzX3JvbGVfbmFtZSIsIm90aGVyX2RlcGFydG1lbnRfbmFtZSIsImJ1c2luZXNzX3JvbGUiLCJmbG93X3JhdGVfdW5pdCIsImlzVGVsZWdyYW1PcGVuIiwic2V0SXNUZWxlZ3JhbU9wZW4iLCJzaG93UGFzc3dvcmRNb2RhbCIsInNldFNob3dQYXNzd29yZE1vZGFsIiwic3VibWl0dGluZyIsInNldFN1Ym1pdHRpbmciLCJzaG93U3VjY2Vzc01lc3NhZ2UiLCJzZXRTaG93U3VjY2Vzc01lc3NhZ2UiLCJzaG93RXJyb3JNZXNzYWdlIiwic2V0U2hvd0Vycm9yTWVzc2FnZSIsInNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSIsInNldFNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSIsInNob3ciLCJzdGF0dXMiLCJtZXNzYWdlIiwicGFyYW1zIiwic2V0UGFyYW1zIiwiaGFuZGxlT25DaGFuZ2UiLCJlIiwic3RhcnRzV2l0aCIsInJlcGxhY2UiLCJwcmV2U3RhdGUiLCJuYW1lIiwidGFyZ2V0IiwiaGFuZGxlQnVzaW5lc3NSb2xlQ2hhbmdlIiwiaGFuZGxlRGVwYXJ0bWVudENoYW5nZSIsImdldFBhcmFtc1dpdGhBZ2dyZWdhdGVkVmFsdWVzIiwiZGVwYXJ0bWVudF9pZCIsInVuZGVmaW5lZCIsImJ1c2luZXNzX3JvbGVfaWQiLCJ3YXRlckF1dGhvcml0eU5hbWUiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZ2xvYmFsX2RhdGEiLCJzaG93VG9hc3QiLCJkYXRhIiwidXNlcm5hbWUiLCJlcnJvciIsInRvYXN0Iiwic3VjY2VzcyIsImNvbmNhdCIsInBvc2l0aW9uIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsImhhbmRsZVN1Ym1pdCIsInByZXZlbnREZWZhdWx0IiwiYXhpb3MiLCJwdXQiLCJ1c2VyIiwidGhlbiIsInJlc3AiLCJlcnJvcnMiLCJQZXJtaXNzaW9uc1NsaWNlIiwiYWN0aW9ucyIsInNldFVzZXJJbmZvIiwiSlNPTiIsInBhcnNlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsInAiLCJpbm5lckhUTUwiLCJjbGFzc0xpc3QiLCJyZW1vdmUiLCJmaW5kTG9jYWxlIiwiZmluZCIsImZpbmRGbG93UmF0ZVVuaXQiLCJmaW5kRGF0ZVRpbWVGb3JtYXQiLCJmaW5kVGltZXpvbmUiLCJzZXRUaW1lb3V0IiwiZmluZEVsZW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwicGFyZW50IiwiY2xvc2VzdCIsImZpbmRJbnB1dCIsImFkZCIsImNhdGNoIiwidXNlRWZmZWN0IiwiYW5hbHl0aWNzVHJhY2siLCJ1dGlsaXR5X25hbWUiLCJ0b2tlbiIsImNvbnRlbnQiLCJkZWZhdWx0cyIsImhlYWRlcnMiLCJjb21tb24iLCJmaW5kUHJvcGVydHkiLCJvYmplY3QiLCJwcm9wZXJ0eSIsImJ1c2luZXNzX3JvbGVzIiwiYWxlcnQiLCJjcmVhdGVFbGVtZW50IiwiQ29udGFpbmVyIiwiY2xhc3NOYW1lIiwiYWN0aW9uIiwib25TdWJtaXQiLCJ0eXBlIiwib25DaGFuZ2UiLCJyZWFkT25seSIsImNvdW50cnkiLCJsb2NhbGl6YXRpb24iLCJpbnB1dENsYXNzIiwiY29udGFpbmVyQ2xhc3MiLCJidXR0b25DbGFzcyIsImRyb3Bkb3duQ2xhc3MiLCJlbmFibGVTZWFyY2giLCJzZWFyY2hQbGFjZWhvbGRlciIsImNvdW50cnlDb2RlRWRpdGFibGUiLCJpbnB1dFByb3BzIiwiRnJhZ21lbnQiLCJTZWxlY3QiLCJzZXRWYWx1ZSIsIm9wdGlvbnMiLCJjYW5jZWxUZXh0V2lkdGgiLCJ0cmFuc2xhdGUiLCJ0cmFuc2xhdGlvbl9rZXkiLCJsZW5ndGgiLCJvbkNsaWNrIiwiUmVhY3RDb21wb25lbnQiLCJ3aWR0aCIsImhlaWdodCIsImZpbGwiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwidG9VcHBlckNhc2UiLCJzdWJzdHJpbmciLCJkaXNhYmxlZCIsIlBhc3N3b3JkTW9kYWwiLCJjbG9zZSIsInNhdmUiLCJUZWxlZ3JhbU1vZGFsIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9Qcm9maWxlUGFnZS9Qcm9maWxlUGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICdzcmMvY29tcG9uZW50cy9DdXN0b21JbnB1dHMvU2VsZWN0L1NlbGVjdCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgUGFzc3dvcmRNb2RhbCB9IGZyb20gJy4vUGFzc3dvcmRNb2RhbC9QYXNzd29yZE1vZGFsJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIFBlblN2ZyB9IGZyb20gJy4vcGVuLnN2Zyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBDYW5jZWwgfSBmcm9tICcuL2NhbmNlbC5zdmcnO1xuaW1wb3J0IFBob25lSW5wdXQgZnJvbSAncmVhY3QtcGhvbmUtaW5wdXQtMic7XG5pbXBvcnQgJ3JlYWN0LXBob25lLWlucHV0LTIvbGliL3N0eWxlLmNzcyc7XG5pbXBvcnQgeyBUZWxlZ3JhbU1vZGFsIH0gZnJvbSAnLi9UZWxlZ3JhbU1vZGFsL1RlbGVncmFtTW9kYWwnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gJy4vQ29udGFpbmVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0FuYWx5dGljcyc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB0b2FzdCB9IGZyb20gJ3JlYWN0LXRvYXN0aWZ5JztcbmltcG9ydCB7IFBlcm1pc3Npb25zU2xpY2UgfSBmcm9tICdzcmMvc3RvcmUvcGVybWlzc2lvbnMvcGVybWlzc2lvbnNTbGljZSc7XG5cbmV4cG9ydCBjb25zdCBQcm9maWxlUGFnZSA9ICgpID0+IHtcbiAgY29uc3QgdGltZXpvbmVzQXJyYXkgPSBtb21lbnQudHoubmFtZXMoKTtcbiAgY29uc3QgZGF0ZVRpbWVGb3JtYXRPcHRpb25zID0gW1xuICAgIHtcbiAgICAgIHZhbHVlOiAndXMnLFxuICAgICAgbGFiZWw6ICdVbml0ZWQgU3RhdGVzJyxcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgICBtaW51dGU6ICdudW1lcmljJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YWx1ZTogJ2V1JyxcbiAgICAgIGxhYmVsOiAnRXVyb3BlJyxcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgICAgbW9udGg6ICdudW1lcmljJyxcbiAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICBob3VyOiAnbnVtZXJpYycsXG4gICAgICAgIG1pbnV0ZTogJ251bWVyaWMnLFxuICAgICAgICBob3VyMTI6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IHRpbWV6b25lcyA9IHRpbWV6b25lc0FycmF5Lm1hcCgodCkgPT4ge1xuICAgIHJldHVybiB7IHZhbHVlOiB0LCBsYWJlbDogdCB9O1xuICB9KTtcblxuICBjb25zdCBsb2NhbGVPcHRpb25zID0gW1xuICAgIHsgdmFsdWU6ICdlbicsIGxhYmVsOiAnRW5nbGlzaCcgfSxcbiAgICB7IHZhbHVlOiAnZW5fdWsnLCBsYWJlbDogJ0VuZ2xpc2ggKFVLKScgfSxcbiAgICB7IHZhbHVlOiAnaGUnLCBsYWJlbDogJ9ei15HXqNeZ16onIH0sXG4gICAgeyB2YWx1ZTogJ2ZyJywgbGFiZWw6ICdGcmFuw6dhaXMnIH0sXG4gICAgeyB2YWx1ZTogJ2l0JywgbGFiZWw6ICdJdGFsaWFubycgfSxcbiAgXTtcblxuICBjb25zdCBmbG93UmF0ZVVuaXRPcHRpb25zID0gW1xuICAgIHtcbiAgICAgIHZhbHVlOiAnZ2RfdXMnLFxuICAgICAgbGFiZWw6IGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZmxvd19yYXRlX3VuaXRfb3B0aW9ucy5nZF91cycpLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFsdWU6ICdnZF91aycsXG4gICAgICBsYWJlbDogaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5mbG93X3JhdGVfdW5pdF9vcHRpb25zLmdkX3VrJyksXG4gICAgfSxcbiAgICB7XG4gICAgICB2YWx1ZTogJ20zZCcsXG4gICAgICBsYWJlbDogaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5mbG93X3JhdGVfdW5pdF9vcHRpb25zLm0zZCcpLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgW2xvY2FsZSwgc2V0TG9jYWxlXSA9IHVzZVN0YXRlPHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH0+KGxvY2FsZU9wdGlvbnNbMF0pO1xuXG4gIGNvbnN0IFtmbG93UmF0ZVVuaXQsIHNldEZsb3dSYXRlVW5pdF0gPSB1c2VTdGF0ZTx7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICB9PihmbG93UmF0ZVVuaXRPcHRpb25zWzBdKTtcblxuICBjb25zdCBbZGF0ZVRpbWVGb3JtYXQsIHNldERhdGVUaW1lRm9ybWF0XSA9IHVzZVN0YXRlPHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgZm9ybWF0OiBvYmplY3Q7XG4gIH0+KGRhdGVUaW1lRm9ybWF0T3B0aW9uc1swXSk7XG5cbiAgY29uc3QgW3RpbWV6b25lLCBzZXRUaW1lem9uZV0gPSB1c2VTdGF0ZTx7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICB9Pih0aW1lem9uZXNbMjBdKTtcblxuICBjb25zdCBbZGVwYXJ0bWVudHMsIHNldERlcGFydG1lbnRzXSA9IHVzZVN0YXRlPFxuICAgIHtcbiAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgICBsYWJlbDogc3RyaW5nO1xuICAgIH1bXVxuICA+KFt7IHZhbHVlOiAnJywgbGFiZWw6ICcnIH1dKTtcblxuICBjb25zdCBbYnVzaW5lc3NSb2xlcywgc2V0QnVzaW5lc3NSb2xlc10gPSB1c2VTdGF0ZTxcbiAgICB7XG4gICAgICB2YWx1ZTogc3RyaW5nO1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICB9W11cbiAgPihbeyB2YWx1ZTogJycsIGxhYmVsOiAnJyB9XSk7XG5cbiAgY29uc3QgW2RlcGFydG1lbnQsIHNldERlcGFydG1lbnRdID0gdXNlU3RhdGU8YW55PihkZXBhcnRtZW50c1swXSk7XG5cbiAgY29uc3QgW2J1c2luZXNzUm9sZSwgc2V0QnVzaW5lc3NSb2xlXSA9IHVzZVN0YXRlPGFueT4oYnVzaW5lc3NSb2xlc1swXSk7XG5cbiAgY29uc3QgaW5pdGlhbFBhcmFtc1N0YXRlID0ge1xuICAgIGZpcnN0X25hbWU6ICcnLFxuICAgIGxhc3RfbmFtZTogJycsXG4gICAgcGhvbmU6ICcnLFxuICAgIGVtYWlsOiAnJyxcbiAgICB0aW1lX3pvbmU6ICcnLFxuICAgIGRhdGVfdGltZV9mb3JtYXQ6ICcnLFxuICAgIGxvY2FsZTogJycsXG4gICAgdGVsZWdyYW1fbmFtZTogJycsXG4gICAgb3RoZXJfYnVzaW5lc3Nfcm9sZV9uYW1lOiAnJyxcbiAgICBvdGhlcl9kZXBhcnRtZW50X25hbWU6ICcnLFxuICAgIGJ1c2luZXNzX3JvbGU6ICcnLFxuICAgIGRlcGFydG1lbnQ6ICcnLFxuICAgIGZsb3dfcmF0ZV91bml0OiAnJyxcbiAgfTtcblxuICBjb25zdCBbaXNUZWxlZ3JhbU9wZW4sIHNldElzVGVsZWdyYW1PcGVuXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3Nob3dQYXNzd29yZE1vZGFsLCBzZXRTaG93UGFzc3dvcmRNb2RhbF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzdWJtaXR0aW5nLCBzZXRTdWJtaXR0aW5nXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3Nob3dTdWNjZXNzTWVzc2FnZSwgc2V0U2hvd1N1Y2Nlc3NNZXNzYWdlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3Nob3dFcnJvck1lc3NhZ2UsIHNldFNob3dFcnJvck1lc3NhZ2VdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbc2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlLCBzZXRTaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2VdID1cbiAgICB1c2VTdGF0ZTx7XG4gICAgICBzaG93OiBib29sZWFuO1xuICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgfT4oe1xuICAgICAgc2hvdzogZmFsc2UsXG4gICAgICBzdGF0dXM6ICcnLFxuICAgICAgbWVzc2FnZTogJycsXG4gICAgfSk7XG4gIGNvbnN0IFtwYXJhbXMsIHNldFBhcmFtc10gPSB1c2VTdGF0ZTx7XG4gICAgZmlyc3RfbmFtZTogc3RyaW5nO1xuICAgIGxhc3RfbmFtZTogc3RyaW5nO1xuICAgIHBob25lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICB0aW1lX3pvbmU6IHN0cmluZztcbiAgICBkYXRlX3RpbWVfZm9ybWF0OiBzdHJpbmc7XG4gICAgbG9jYWxlOiBzdHJpbmc7XG4gICAgdGVsZWdyYW1fbmFtZTogc3RyaW5nO1xuICAgIG90aGVyX2J1c2luZXNzX3JvbGVfbmFtZTogc3RyaW5nO1xuICAgIG90aGVyX2RlcGFydG1lbnRfbmFtZTogc3RyaW5nO1xuICAgIGZsb3dfcmF0ZV91bml0OiBzdHJpbmc7XG4gIH0+KGluaXRpYWxQYXJhbXNTdGF0ZSk7XG5cbiAgY29uc3QgaGFuZGxlT25DaGFuZ2UgPSAoZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChlLnN0YXJ0c1dpdGgoJzk3MjAnKSkge1xuICAgICAgICBlID0gZS5yZXBsYWNlKC8oOTcyMCkvZywgJzk3MicpO1xuICAgICAgfVxuICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgcGhvbmU6IGUsXG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIG5hbWUgfSA9IGUudGFyZ2V0O1xuICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgW25hbWVdOiB2YWx1ZSxcbiAgICAgIH0pKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQnVzaW5lc3NSb2xlQ2hhbmdlID0gKGUpID0+IHtcbiAgICBpZiAoZS50YXJnZXQgIT09IG51bGwpIHtcbiAgICAgIHNldFBhcmFtcyh7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgYnVzaW5lc3Nfcm9sZTogZS52YWx1ZSxcbiAgICAgICAgb3RoZXJfYnVzaW5lc3Nfcm9sZV9uYW1lOiBlLnRhcmdldC52YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZXBhcnRtZW50Q2hhbmdlID0gKGUpID0+IHtcbiAgICBpZiAoZS50YXJnZXQgIT09IG51bGwpIHtcbiAgICAgIHNldFBhcmFtcyh7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgZGVwYXJ0bWVudDogZS52YWx1ZSxcbiAgICAgICAgb3RoZXJfZGVwYXJ0bWVudF9uYW1lOiBlLnRhcmdldC52YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRQYXJhbXNXaXRoQWdncmVnYXRlZFZhbHVlcyA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgZGF0ZV90aW1lX2Zvcm1hdDogZGF0ZVRpbWVGb3JtYXQudmFsdWUsXG4gICAgICBsb2NhbGU6IGxvY2FsZS52YWx1ZSxcbiAgICAgIHRpbWVfem9uZTogdGltZXpvbmUudmFsdWUsXG4gICAgICBkZXBhcnRtZW50X2lkOiBkZXBhcnRtZW50ID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwYXJ0bWVudC52YWx1ZSxcbiAgICAgIGJ1c2luZXNzX3JvbGVfaWQ6IGJ1c2luZXNzUm9sZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGJ1c2luZXNzUm9sZS52YWx1ZSxcbiAgICAgIGZsb3dfcmF0ZV91bml0OiBmbG93UmF0ZVVuaXQudmFsdWUsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCB3YXRlckF1dGhvcml0eU5hbWUgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5TmFtZSxcbiAgKTtcblxuICBjb25zdCBzaG93VG9hc3QgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IHVzZXJuYW1lID0gZGF0YS51c2VybmFtZTtcbiAgICBjb25zdCBlcnJvciA9IGRhdGEuZXJyb3I7XG4gICAgaWYgKGRhdGEuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgIGkxOG4udChgbXlfcHJvZmlsZV90YWIudGVsZWdyYW1fbWVzc2FnZXMuJHtkYXRhLm1lc3NhZ2V9YCwge1xuICAgICAgICAgIHVzZXJuYW1lLFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHBvc2l0aW9uOiAndG9wLWNlbnRlcicsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b2FzdC5lcnJvcihcbiAgICAgICAgaTE4bi50KGBteV9wcm9maWxlX3RhYi50ZWxlZ3JhbV9tZXNzYWdlcy4ke2RhdGEubWVzc2FnZX1gLCB7XG4gICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogJ3RvcC1jZW50ZXInLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgYXhpb3NcbiAgICAgIC5wdXQoJy9wcm9maWxlcycsIHsgdXNlcjogZ2V0UGFyYW1zV2l0aEFnZ3JlZ2F0ZWRWYWx1ZXMoKSB9KVxuICAgICAgLnRoZW4oKHJlc3ApID0+IHtcbiAgICAgICAgaWYgKHJlc3AuZGF0YS5lcnJvcnMgPT09IG51bGwpIHtcbiAgICAgICAgICBkaXNwYXRjaChcbiAgICAgICAgICAgIFBlcm1pc3Npb25zU2xpY2UuYWN0aW9ucy5zZXRVc2VySW5mbyhKU09OLnBhcnNlKHJlc3AuZGF0YS51c2VyKSksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmVycm9yLW1lc3NhZ2UnKVxuICAgICAgICAgICAgLmZvckVhY2goKHApID0+IChwLmlubmVySFRNTCA9ICcnKSk7XG5cbiAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbnZhbGlkLWZpZWxkJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChwKSA9PiBwLmNsYXNzTGlzdC5yZW1vdmUoJ2ludmFsaWQtZmllbGQnKSk7XG4gICAgICAgICAgbGV0IHVzZXIgPSBKU09OLnBhcnNlKHJlc3AuZGF0YS51c2VyKTtcbiAgICAgICAgICBjb25zdCBmaW5kTG9jYWxlID0gbG9jYWxlT3B0aW9ucy5maW5kKChlKSA9PiBlLnZhbHVlID09PSB1c2VyLmxvY2FsZSk7XG4gICAgICAgICAgY29uc3QgZmluZEZsb3dSYXRlVW5pdCA9IGZsb3dSYXRlVW5pdE9wdGlvbnMuZmluZChcbiAgICAgICAgICAgIChlKSA9PiBlLnZhbHVlID09PSB1c2VyLmZsb3dfcmF0ZV91bml0LFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgZmluZERhdGVUaW1lRm9ybWF0ID0gZGF0ZVRpbWVGb3JtYXRPcHRpb25zLmZpbmQoXG4gICAgICAgICAgICAoZSkgPT4gZS52YWx1ZSA9PT0gdXNlci5kYXRlX3RpbWVfZm9ybWF0LFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgZmluZFRpbWV6b25lID0gdGltZXpvbmVzLmZpbmQoXG4gICAgICAgICAgICAoZSkgPT4gZS52YWx1ZSA9PT0gdXNlci50aW1lX3pvbmUsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHNldFBhcmFtcyh1c2VyKTtcbiAgICAgICAgICBzZXRMb2NhbGUoZmluZExvY2FsZSEpO1xuICAgICAgICAgIHNldEZsb3dSYXRlVW5pdChmaW5kRmxvd1JhdGVVbml0ISk7XG4gICAgICAgICAgc2V0RGF0ZVRpbWVGb3JtYXQoZmluZERhdGVUaW1lRm9ybWF0ISk7XG4gICAgICAgICAgc2V0VGltZXpvbmUoZmluZFRpbWV6b25lISk7XG4gICAgICAgICAgc2V0U2hvd1N1Y2Nlc3NNZXNzYWdlKHRydWUpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2V0U2hvd1N1Y2Nlc3NNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICB9LCA2MDAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5lcnJvci1tZXNzYWdlJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChwKSA9PiAocC5pbm5lckhUTUwgPSAnJykpO1xuICAgICAgICAgIGxldCBlcnJvcnMgPSByZXNwLmRhdGEudXNlci5lcnJvcnM7XG4gICAgICAgICAgZm9yIChjb25zdCBlcnJvciBpbiBlcnJvcnMpIHtcbiAgICAgICAgICAgIGxldCBmaW5kRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGlucHV0W25hbWU9JyR7ZXJyb3J9J11gKTtcbiAgICAgICAgICAgIGxldCBwYXJlbnQgPSBmaW5kRWxlbWVudCEuY2xvc2VzdCgnLmZpZWxkJyk7XG4gICAgICAgICAgICBsZXQgZmluZElucHV0ID0gcGFyZW50IS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICAgICAgZmluZElucHV0IS5jbGFzc0xpc3QuYWRkKCdpbnZhbGlkLWZpZWxkJyk7XG4gICAgICAgICAgICBwYXJlbnQhLnF1ZXJ5U2VsZWN0b3IoJy5lcnJvci1tZXNzYWdlJykhLmlubmVySFRNTCA9IGkxOG4udChcbiAgICAgICAgICAgICAgYGRhc2hib2FyZF92Mi5wcm9maWxlLmVycm9ycy4ke2Vycm9yfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXRTaG93U3VjY2Vzc01lc3NhZ2UoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBzZXRTaG93RXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgICBzZXRTaG93U3VjY2Vzc01lc3NhZ2UoZmFsc2UpO1xuICAgICAgICBzZXRTdWJtaXR0aW5nKGZhbHNlKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgc2V0U2hvd0Vycm9yTWVzc2FnZShmYWxzZSk7XG4gICAgICAgIH0sIDYwMDApO1xuICAgICAgfSk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBhbmFseXRpY3NUcmFjaygnVmlld2VkIFByb2ZpbGUgUGFnZScsIHtcbiAgICAgIHV0aWxpdHlfbmFtZTogd2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgIH0pO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB0b2tlbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPWNzcmYtdG9rZW5dJykhLmNvbnRlbnQ7XG4gICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ1gtQ1NSRi1UT0tFTiddID0gdG9rZW47XG4gICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzJztcbiAgICBheGlvc1xuICAgICAgLmdldChgL3Byb2ZpbGVzL3Jlc291cmNlYClcbiAgICAgIC50aGVuKChyZXNwKSA9PiB7XG4gICAgICAgIHNldFBhcmFtcyhyZXNwLmRhdGEudXNlcik7XG4gICAgICAgIGNvbnN0IGZpbmRQcm9wZXJ0eSA9IChvYmplY3QsIHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdC5maW5kKChlKSA9PiBlLnZhbHVlID09PSBwcm9wZXJ0eSk7XG4gICAgICAgIH07XG4gICAgICAgIHNldExvY2FsZShmaW5kUHJvcGVydHkobG9jYWxlT3B0aW9ucywgcmVzcC5kYXRhLnVzZXIubG9jYWxlKSk7XG4gICAgICAgIHNldEZsb3dSYXRlVW5pdChcbiAgICAgICAgICBmaW5kUHJvcGVydHkoZmxvd1JhdGVVbml0T3B0aW9ucywgcmVzcC5kYXRhLnVzZXIuZmxvd19yYXRlX3VuaXQpLFxuICAgICAgICApO1xuICAgICAgICBzZXREYXRlVGltZUZvcm1hdChcbiAgICAgICAgICBmaW5kUHJvcGVydHkoZGF0ZVRpbWVGb3JtYXRPcHRpb25zLCByZXNwLmRhdGEudXNlci5kYXRlX3RpbWVfZm9ybWF0KSxcbiAgICAgICAgKTtcbiAgICAgICAgc2V0VGltZXpvbmUoZmluZFByb3BlcnR5KHRpbWV6b25lcywgcmVzcC5kYXRhLnVzZXIudGltZV96b25lKSk7XG4gICAgICAgIHNldEJ1c2luZXNzUm9sZShcbiAgICAgICAgICBmaW5kUHJvcGVydHkoXG4gICAgICAgICAgICByZXNwLmRhdGEuYnVzaW5lc3Nfcm9sZXMsXG4gICAgICAgICAgICByZXNwLmRhdGEudXNlci5idXNpbmVzc19yb2xlX2lkLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIHNldERlcGFydG1lbnQoXG4gICAgICAgICAgZmluZFByb3BlcnR5KHJlc3AuZGF0YS5kZXBhcnRtZW50cywgcmVzcC5kYXRhLnVzZXIuZGVwYXJ0bWVudF9pZCksXG4gICAgICAgICk7XG4gICAgICAgIHNldERlcGFydG1lbnRzKHJlc3AuZGF0YS5kZXBhcnRtZW50cyk7XG4gICAgICAgIHNldEJ1c2luZXNzUm9sZXMocmVzcC5kYXRhLmJ1c2luZXNzX3JvbGVzKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiBhbGVydChlcnJvcikpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXItdGl0bGVcIj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS50aXRsZScpfTwvZGl2PlxuICAgICAgPGZvcm0gYWN0aW9uPVwiXCIgb25TdWJtaXQ9eyhlKSA9PiBoYW5kbGVTdWJtaXQoZSl9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5wZXJzb25hbC1kZXRhaWxzJyl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicGVyc29uYWxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmZpcnN0X25hbWUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbmFtZT17J2ZpcnN0X25hbWUnfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMuZmlyc3RfbmFtZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZU9uQ2hhbmdlKGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydlcnJvci1tZXNzYWdlJ30+PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5sYXN0X25hbWUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbmFtZT17J2xhc3RfbmFtZSd9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5sYXN0X25hbWV9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVPbkNoYW5nZShlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXsnZXJyb3ItbWVzc2FnZSd9PjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZCBmaWVsZC0tcmVhZG9ubHlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmVtYWlsJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICByZWFkT25seT17dHJ1ZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgIG5hbWU9eydlbWFpbCd9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5lbWFpbH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXsnZXJyb3ItbWVzc2FnZSd9PjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUucGhvbmUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxQaG9uZUlucHV0XG4gICAgICAgICAgICAgICAgY291bnRyeT17J2lsJ31cbiAgICAgICAgICAgICAgICBsb2NhbGl6YXRpb249e2kxOG4udCgnY291bnRyaWVzJyl9XG4gICAgICAgICAgICAgICAgaW5wdXRDbGFzcz1cInBob25lLWlucHV0XCJcbiAgICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz1cIm15LXBob25lXCJcbiAgICAgICAgICAgICAgICBidXR0b25DbGFzcz1cImRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBkcm9wZG93bkNsYXNzPVwicGhvbmUtZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMucGhvbmV9XG4gICAgICAgICAgICAgICAgZW5hYmxlU2VhcmNoXG4gICAgICAgICAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI9e2kxOG4udCgnc2VhcmNoJyl9XG4gICAgICAgICAgICAgICAgY291bnRyeUNvZGVFZGl0YWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaGFuZGxlT25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaW5wdXRQcm9wcz17eyBuYW1lOiAncGhvbmUnIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtkZXBhcnRtZW50c1swXS52YWx1ZSAhPT0gJycgJiYgKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZGVwYXJ0bWVudCcpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZT17c2V0RGVwYXJ0bWVudH1cbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGkxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYGRhc2hib2FyZF92Mi5wcm9maWxlLmRlcGFydG1lbnRzLiR7ZGVwYXJ0bWVudD8ubGFiZWx9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZGVwYXJ0bWVudD8udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPXtkZXBhcnRtZW50c31cbiAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxUZXh0V2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGRlcGFydG1lbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fa2V5OiAnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZGVwYXJ0bWVudHMnLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmJ1c2luZXNzX3JvbGUnKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteS1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldEJ1c2luZXNzUm9sZX1cbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGkxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYGRhc2hib2FyZF92Mi5wcm9maWxlLmJ1c2luZXNzX3JvbGVzLiR7YnVzaW5lc3NSb2xlPy5sYWJlbH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBidXNpbmVzc1JvbGU/LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17YnVzaW5lc3NSb2xlc31cbiAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxUZXh0V2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGJ1c2luZXNzUm9sZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl9rZXk6ICdkYXNoYm9hcmRfdjIucHJvZmlsZS5idXNpbmVzc19yb2xlcycsXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7ZGVwYXJ0bWVudHNbMF0udmFsdWUgIT09ICcnICYmIChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BmaWVsZCAke1xuICAgICAgICAgICAgICAgICAgICBkZXBhcnRtZW50ICYmXG4gICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQ/LnZhbHVlID09PVxuICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnRzW2RlcGFydG1lbnRzLmxlbmd0aCAtIDFdLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2ZpZWxkLS1oaWRkZW4nXG4gICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmRlcGFydG1lbnRfYWx0Jyl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICByZWFkT25seT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPXsnb3RoZXJfZGVwYXJ0bWVudF9uYW1lJ31cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5vdGhlcl9kZXBhcnRtZW50X25hbWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlRGVwYXJ0bWVudENoYW5nZShlKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZmllbGQgJHtcbiAgICAgICAgICAgICAgICAgICAgYnVzaW5lc3NSb2xlICYmXG4gICAgICAgICAgICAgICAgICAgIGJ1c2luZXNzUm9sZT8udmFsdWUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgYnVzaW5lc3NSb2xlc1tidXNpbmVzc1JvbGVzLmxlbmd0aCAtIDFdLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2ZpZWxkLS1oaWRkZW4nXG4gICAgICAgICAgICAgICAgICB9IGB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5idXNpbmVzc19yb2xlX2FsdCcpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm15LWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT17J290aGVyX2J1c2luZXNzX3JvbGVfbmFtZSd9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMub3RoZXJfYnVzaW5lc3Nfcm9sZV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUJ1c2luZXNzUm9sZUNoYW5nZShlKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNoYW5nZS1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd1Bhc3N3b3JkTW9kYWwodHJ1ZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGVuU3ZnIHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBmaWxsPVwiI2YwMTM0Y1wiIC8+XG4gICAgICAgICAgICAgICAgeycgICd9XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY2hhbmdlLXBhc3N3b3JkJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zZXR0aW5ncycpfTwvZGl2PlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNldHRpbmdzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS50aW1lLXpvbmUnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldFRpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3RpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17dGltZXpvbmVzfVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmRhdGUtdGltZS1mb3JtYXQnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17ZGF0ZVRpbWVGb3JtYXRPcHRpb25zfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGVUaW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldERhdGVUaW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZGF0ZS10aW1lLWZvcm1hdCd9PlxuICAgICAgICAgICAgICAgIHtkYXRlVGltZUZvcm1hdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCBkYXRlVGltZUZvcm1hdC5mb3JtYXQpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUubGFuZ3VhZ2UnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J215LWlucHV0J30+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17bG9jYWxlT3B0aW9uc31cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtsb2NhbGV9XG4gICAgICAgICAgICAgICAgICBzZXRWYWx1ZT17c2V0TG9jYWxlfVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGQgZmllbGQtLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAge3BhcmFtcy50ZWxlZ3JhbV9uYW1lID09PSAnJyAmJiAoXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwidGVsZWdyYW1cIiBvbkNsaWNrPXsoKSA9PiBzZXRJc1RlbGVncmFtT3Blbih0cnVlKX0+XG4gICAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5jb25uZWN0LXRvLXRlbGVncmFtJyl9XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7cGFyYW1zLnRlbGVncmFtX25hbWUgIT09ICcnICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUudGVsZWdyYW1fbmFtZScpfVxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldElzVGVsZWdyYW1PcGVuKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQZW5Tdmcgd2lkdGg9XCIxMnB4XCIgaGVpZ2h0PVwiMTJweFwiIGZpbGw9XCIjZjAxMzRjXCIgLz57JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY2hhbmdlLW5hbWUnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsndGVsZWdyYW0tZXhpc3RpbmctaW5wdXQnfT5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17J3RlbGVncmFtX25hbWUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy50ZWxlZ3JhbV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsndGVsZWdyYW0tZXhpc3RpbmctaW5wdXRfX2NhbmNlbC1idXR0b24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbGVncmFtX25hbWU6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDYW5jZWwgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsndGVsZWdyYW0gb3Blbid9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXhpb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChgL3RlbGVncmFtL3NlbmRfdGVzdF9tZXNzYWdlLmpzb25gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzcCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YS51c2VyLnN0YXR1c1swXS50b1VwcGVyQ2FzZSgpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcC5kYXRhLnVzZXIuc3RhdHVzLnN1YnN0cmluZygxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3AuZGF0YS51c2VyLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgNjAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1RvYXN0KHJlc3AuZGF0YS51c2VyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4gYWxlcnQoZXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgeyFzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2Uuc2hvdyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zZW5kX3RlbGVncmFtX21lc3NhZ2UnKX1cbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlLnNob3cgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZS5zdGF0dXN9XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5mbG93X3JhdGVfdW5pdHMnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnbXktaW5wdXQnfT5cbiAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICBvcHRpb25zPXtmbG93UmF0ZVVuaXRPcHRpb25zfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zsb3dSYXRlVW5pdH1cbiAgICAgICAgICAgICAgICAgIHNldFZhbHVlPXtzZXRGbG93UmF0ZVVuaXR9XG4gICAgICAgICAgICAgICAgICBjYW5jZWxUZXh0V2lkdGhcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9eydzdWJtaXQnfSBjbGFzc05hbWU9eydzYXZlJ30gZGlzYWJsZWQ9e3N1Ym1pdHRpbmd9PlxuICAgICAgICAgICAgeyFzdWJtaXR0aW5nICYmXG4gICAgICAgICAgICAgICFzaG93U3VjY2Vzc01lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgIXNob3dFcnJvck1lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zdWJtaXQnKX1cbiAgICAgICAgICAgIHtzdWJtaXR0aW5nICYmXG4gICAgICAgICAgICAgICFzaG93U3VjY2Vzc01lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgIXNob3dFcnJvck1lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zdWJtaXR0aW5nJyl9XG4gICAgICAgICAgICB7c2hvd1N1Y2Nlc3NNZXNzYWdlICYmIGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuc3VjY2VzcycpfVxuICAgICAgICAgICAge3Nob3dFcnJvck1lc3NhZ2UgJiYgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5lcnJvcicpfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cblxuICAgICAge3Nob3dQYXNzd29yZE1vZGFsICYmIChcbiAgICAgICAgPFBhc3N3b3JkTW9kYWxcbiAgICAgICAgICBjbG9zZT17KCkgPT4gc2V0U2hvd1Bhc3N3b3JkTW9kYWwoZmFsc2UpfVxuICAgICAgICAgIHNhdmU9eygpID0+IHt9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtpc1RlbGVncmFtT3BlbiAmJiAoXG4gICAgICAgIDxUZWxlZ3JhbU1vZGFsXG4gICAgICAgICAgY2xvc2U9eygpID0+IHNldElzVGVsZWdyYW1PcGVuKGZhbHNlKX1cbiAgICAgICAgICBoYW5kbGVPbkNoYW5nZT17aGFuZGxlT25DaGFuZ2V9XG4gICAgICAgICAgaGFuZGxlU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvQ29udGFpbmVyPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGNBQUEsR0FBQUosT0FBQTtBQUE4RCxJQUFBSyxJQUFBLEdBQUFMLE9BQUE7QUFBQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFHOUQsSUFBQU8sZ0JBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQVEsY0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsTUFBQSxHQUFBTixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsZUFBQSxHQUFBUixzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVksVUFBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsV0FBQSxHQUFBYixPQUFBO0FBQ0EsSUFBQWMsY0FBQSxHQUFBZCxP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
|
|
602
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfU2VsZWN0IiwiX2kxOG4iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1Bhc3N3b3JkTW9kYWwiLCJfcGVuIiwiX2NhbmNlbCIsIl9yZWFjdFBob25lSW5wdXQiLCJfVGVsZWdyYW1Nb2RhbCIsIl9heGlvcyIsIl9Db250YWluZXIiLCJfbW9tZW50VGltZXpvbmUiLCJfQW5hbHl0aWNzIiwiX3JlYWN0UmVkdXgiLCJfcmVhY3RUb2FzdGlmeSIsIl9wZXJtaXNzaW9uc1NsaWNlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJQcm9maWxlUGFnZSIsInRpbWV6b25lc0FycmF5IiwibW9tZW50IiwidHoiLCJuYW1lcyIsImRhdGVUaW1lRm9ybWF0T3B0aW9ucyIsInZhbHVlIiwibGFiZWwiLCJmb3JtYXQiLCJtb250aCIsImRheSIsInllYXIiLCJob3VyIiwibWludXRlIiwiaG91cjEyIiwidGltZXpvbmVzIiwibWFwIiwidCIsImxvY2FsZU9wdGlvbnMiLCJmbG93UmF0ZVVuaXRPcHRpb25zIiwiaTE4biIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImxvY2FsZSIsInNldExvY2FsZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZmxvd1JhdGVVbml0Iiwic2V0Rmxvd1JhdGVVbml0IiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJkYXRlVGltZUZvcm1hdCIsInNldERhdGVUaW1lRm9ybWF0IiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJ0aW1lem9uZSIsInNldFRpbWV6b25lIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwiZGVwYXJ0bWVudHMiLCJzZXREZXBhcnRtZW50cyIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJidXNpbmVzc1JvbGVzIiwic2V0QnVzaW5lc3NSb2xlcyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJkZXBhcnRtZW50Iiwic2V0RGVwYXJ0bWVudCIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJidXNpbmVzc1JvbGUiLCJzZXRCdXNpbmVzc1JvbGUiLCJpbml0aWFsUGFyYW1zU3RhdGUiLCJmaXJzdF9uYW1lIiwibGFzdF9uYW1lIiwicGhvbmUiLCJlbWFpbCIsInRpbWVfem9uZSIsImRhdGVfdGltZV9mb3JtYXQiLCJ0ZWxlZ3JhbV9uYW1lIiwib3RoZXJfYnVzaW5lc3Nfcm9sZV9uYW1lIiwib3RoZXJfZGVwYXJ0bWVudF9uYW1lIiwiYnVzaW5lc3Nfcm9sZSIsImZsb3dfcmF0ZV91bml0IiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsImlzVGVsZWdyYW1PcGVuIiwic2V0SXNUZWxlZ3JhbU9wZW4iLCJfdXNlU3RhdGUxOSIsIl91c2VTdGF0ZTIwIiwic2hvd1Bhc3N3b3JkTW9kYWwiLCJzZXRTaG93UGFzc3dvcmRNb2RhbCIsIl91c2VTdGF0ZTIxIiwiX3VzZVN0YXRlMjIiLCJzdWJtaXR0aW5nIiwic2V0U3VibWl0dGluZyIsIl91c2VTdGF0ZTIzIiwiX3VzZVN0YXRlMjQiLCJzaG93U3VjY2Vzc01lc3NhZ2UiLCJzZXRTaG93U3VjY2Vzc01lc3NhZ2UiLCJfdXNlU3RhdGUyNSIsIl91c2VTdGF0ZTI2Iiwic2hvd0Vycm9yTWVzc2FnZSIsInNldFNob3dFcnJvck1lc3NhZ2UiLCJfdXNlU3RhdGUyNyIsInNob3ciLCJzdGF0dXMiLCJtZXNzYWdlIiwiX3VzZVN0YXRlMjgiLCJzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UiLCJzZXRTaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2UiLCJfdXNlU3RhdGUyOSIsIl91c2VTdGF0ZTMwIiwicGFyYW1zIiwic2V0UGFyYW1zIiwiaGFuZGxlT25DaGFuZ2UiLCJlIiwic3RhcnRzV2l0aCIsInJlcGxhY2UiLCJwcmV2U3RhdGUiLCJfb2JqZWN0U3ByZWFkMyIsIl9lJHRhcmdldCIsInRhcmdldCIsIm5hbWUiLCJfZGVmaW5lUHJvcGVydHkyIiwiaGFuZGxlQnVzaW5lc3NSb2xlQ2hhbmdlIiwiaGFuZGxlRGVwYXJ0bWVudENoYW5nZSIsImdldFBhcmFtc1dpdGhBZ2dyZWdhdGVkVmFsdWVzIiwiZGVwYXJ0bWVudF9pZCIsInVuZGVmaW5lZCIsImJ1c2luZXNzX3JvbGVfaWQiLCJ3YXRlckF1dGhvcml0eU5hbWUiLCJ1c2VTZWxlY3RvciIsInN0YXRlIiwiZ2xvYmFsX2RhdGEiLCJzaG93VG9hc3QiLCJkYXRhIiwidXNlcm5hbWUiLCJlcnJvciIsInRvYXN0Iiwic3VjY2VzcyIsImNvbmNhdCIsInBvc2l0aW9uIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsImhhbmRsZVN1Ym1pdCIsInByZXZlbnREZWZhdWx0IiwiYXhpb3MiLCJwdXQiLCJ1c2VyIiwidGhlbiIsInJlc3AiLCJlcnJvcnMiLCJQZXJtaXNzaW9uc1NsaWNlIiwiYWN0aW9ucyIsInNldFVzZXJJbmZvIiwiSlNPTiIsInBhcnNlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsInAiLCJpbm5lckhUTUwiLCJjbGFzc0xpc3QiLCJyZW1vdmUiLCJmaW5kTG9jYWxlIiwiZmluZCIsImZpbmRGbG93UmF0ZVVuaXQiLCJmaW5kRGF0ZVRpbWVGb3JtYXQiLCJmaW5kVGltZXpvbmUiLCJzZXRUaW1lb3V0IiwiZmluZEVsZW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwicGFyZW50IiwiY2xvc2VzdCIsImZpbmRJbnB1dCIsImFkZCIsImNhdGNoIiwidXNlRWZmZWN0IiwiYW5hbHl0aWNzVHJhY2siLCJ1dGlsaXR5X25hbWUiLCJ0b2tlbiIsImNvbnRlbnQiLCJkZWZhdWx0cyIsImhlYWRlcnMiLCJjb21tb24iLCJmaW5kUHJvcGVydHkiLCJvYmplY3QiLCJwcm9wZXJ0eSIsImJ1c2luZXNzX3JvbGVzIiwiYWxlcnQiLCJjcmVhdGVFbGVtZW50IiwiQ29udGFpbmVyIiwiY2xhc3NOYW1lIiwiYWN0aW9uIiwib25TdWJtaXQiLCJ0eXBlIiwib25DaGFuZ2UiLCJyZWFkT25seSIsImNvdW50cnkiLCJsb2NhbGl6YXRpb24iLCJpbnB1dENsYXNzIiwiY29udGFpbmVyQ2xhc3MiLCJidXR0b25DbGFzcyIsImRyb3Bkb3duQ2xhc3MiLCJlbmFibGVTZWFyY2giLCJzZWFyY2hQbGFjZWhvbGRlciIsImNvdW50cnlDb2RlRWRpdGFibGUiLCJpbnB1dFByb3BzIiwiRnJhZ21lbnQiLCJTZWxlY3QiLCJzZXRWYWx1ZSIsIm9wdGlvbnMiLCJjYW5jZWxUZXh0V2lkdGgiLCJ0cmFuc2xhdGUiLCJ0cmFuc2xhdGlvbl9rZXkiLCJsZW5ndGgiLCJvbkNsaWNrIiwiUmVhY3RDb21wb25lbnQiLCJ3aWR0aCIsImhlaWdodCIsImZpbGwiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwidG9VcHBlckNhc2UiLCJzdWJzdHJpbmciLCJkaXNhYmxlZCIsIlBhc3N3b3JkTW9kYWwiLCJjbG9zZSIsInNhdmUiLCJUZWxlZ3JhbU1vZGFsIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9Qcm9maWxlUGFnZS9Qcm9maWxlUGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICdzcmMvY29tcG9uZW50cy9DdXN0b21JbnB1dHMvU2VsZWN0L1NlbGVjdCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgUGFzc3dvcmRNb2RhbCB9IGZyb20gJy4vUGFzc3dvcmRNb2RhbC9QYXNzd29yZE1vZGFsJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIFBlblN2ZyB9IGZyb20gJy4vcGVuLnN2Zyc7XG5pbXBvcnQgeyBSZWFjdENvbXBvbmVudCBhcyBDYW5jZWwgfSBmcm9tICcuL2NhbmNlbC5zdmcnO1xuaW1wb3J0IFBob25lSW5wdXQgZnJvbSAncmVhY3QtcGhvbmUtaW5wdXQtMic7XG5pbXBvcnQgJ3JlYWN0LXBob25lLWlucHV0LTIvbGliL3N0eWxlLmNzcyc7XG5pbXBvcnQgeyBUZWxlZ3JhbU1vZGFsIH0gZnJvbSAnLi9UZWxlZ3JhbU1vZGFsL1RlbGVncmFtTW9kYWwnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gJy4vQ29udGFpbmVyJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJztcbmltcG9ydCB7IGFuYWx5dGljc1RyYWNrIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0FuYWx5dGljcyc7XG5pbXBvcnQgeyB1c2VEaXNwYXRjaCwgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB0b2FzdCB9IGZyb20gJ3JlYWN0LXRvYXN0aWZ5JztcbmltcG9ydCB7IFBlcm1pc3Npb25zU2xpY2UgfSBmcm9tICdzcmMvc3RvcmUvcGVybWlzc2lvbnMvcGVybWlzc2lvbnNTbGljZSc7XG5cbmV4cG9ydCBjb25zdCBQcm9maWxlUGFnZSA9ICgpID0+IHtcbiAgY29uc3QgdGltZXpvbmVzQXJyYXkgPSBtb21lbnQudHoubmFtZXMoKTtcbiAgY29uc3QgZGF0ZVRpbWVGb3JtYXRPcHRpb25zID0gW1xuICAgIHtcbiAgICAgIHZhbHVlOiAndXMnLFxuICAgICAgbGFiZWw6ICdVbml0ZWQgU3RhdGVzJyxcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBtb250aDogJ3Nob3J0JyxcbiAgICAgICAgZGF5OiAnbnVtZXJpYycsXG4gICAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgICBtaW51dGU6ICdudW1lcmljJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICB2YWx1ZTogJ2V1JyxcbiAgICAgIGxhYmVsOiAnRXVyb3BlJyxcbiAgICAgIGZvcm1hdDoge1xuICAgICAgICBkYXk6ICdudW1lcmljJyxcbiAgICAgICAgbW9udGg6ICdudW1lcmljJyxcbiAgICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgICBob3VyOiAnbnVtZXJpYycsXG4gICAgICAgIG1pbnV0ZTogJ251bWVyaWMnLFxuICAgICAgICBob3VyMTI6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0IHRpbWV6b25lcyA9IHRpbWV6b25lc0FycmF5Lm1hcCgodCkgPT4ge1xuICAgIHJldHVybiB7IHZhbHVlOiB0LCBsYWJlbDogdCB9O1xuICB9KTtcblxuICBjb25zdCBsb2NhbGVPcHRpb25zID0gW1xuICAgIHsgdmFsdWU6ICdlbicsIGxhYmVsOiAnRW5nbGlzaCcgfSxcbiAgICB7IHZhbHVlOiAnZW5fdWsnLCBsYWJlbDogJ0VuZ2xpc2ggKFVLKScgfSxcbiAgICB7IHZhbHVlOiAnaGUnLCBsYWJlbDogJ9ei15HXqNeZ16onIH0sXG4gICAgeyB2YWx1ZTogJ2ZyJywgbGFiZWw6ICdGcmFuw6dhaXMnIH0sXG4gICAgeyB2YWx1ZTogJ2l0JywgbGFiZWw6ICdJdGFsaWFubycgfSxcbiAgXTtcblxuICBjb25zdCBmbG93UmF0ZVVuaXRPcHRpb25zID0gW1xuICAgIHtcbiAgICAgIHZhbHVlOiAnZ2RfdXMnLFxuICAgICAgbGFiZWw6IGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZmxvd19yYXRlX3VuaXRfb3B0aW9ucy5nZF91cycpLFxuICAgIH0sXG4gICAge1xuICAgICAgdmFsdWU6ICdnZF91aycsXG4gICAgICBsYWJlbDogaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5mbG93X3JhdGVfdW5pdF9vcHRpb25zLmdkX3VrJyksXG4gICAgfSxcbiAgICB7XG4gICAgICB2YWx1ZTogJ20zZCcsXG4gICAgICBsYWJlbDogaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5mbG93X3JhdGVfdW5pdF9vcHRpb25zLm0zZCcpLFxuICAgIH0sXG4gIF07XG5cbiAgY29uc3QgW2xvY2FsZSwgc2V0TG9jYWxlXSA9IHVzZVN0YXRlPHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gIH0+KGxvY2FsZU9wdGlvbnNbMF0pO1xuXG4gIGNvbnN0IFtmbG93UmF0ZVVuaXQsIHNldEZsb3dSYXRlVW5pdF0gPSB1c2VTdGF0ZTx7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICB9PihmbG93UmF0ZVVuaXRPcHRpb25zWzBdKTtcblxuICBjb25zdCBbZGF0ZVRpbWVGb3JtYXQsIHNldERhdGVUaW1lRm9ybWF0XSA9IHVzZVN0YXRlPHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgZm9ybWF0OiBvYmplY3Q7XG4gIH0+KGRhdGVUaW1lRm9ybWF0T3B0aW9uc1swXSk7XG5cbiAgY29uc3QgW3RpbWV6b25lLCBzZXRUaW1lem9uZV0gPSB1c2VTdGF0ZTx7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICB9Pih0aW1lem9uZXNbMjBdKTtcblxuICBjb25zdCBbZGVwYXJ0bWVudHMsIHNldERlcGFydG1lbnRzXSA9IHVzZVN0YXRlPFxuICAgIHtcbiAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgICBsYWJlbDogc3RyaW5nO1xuICAgIH1bXVxuICA+KFt7IHZhbHVlOiAnJywgbGFiZWw6ICcnIH1dKTtcblxuICBjb25zdCBbYnVzaW5lc3NSb2xlcywgc2V0QnVzaW5lc3NSb2xlc10gPSB1c2VTdGF0ZTxcbiAgICB7XG4gICAgICB2YWx1ZTogc3RyaW5nO1xuICAgICAgbGFiZWw6IHN0cmluZztcbiAgICB9W11cbiAgPihbeyB2YWx1ZTogJycsIGxhYmVsOiAnJyB9XSk7XG5cbiAgY29uc3QgW2RlcGFydG1lbnQsIHNldERlcGFydG1lbnRdID0gdXNlU3RhdGU8YW55PihkZXBhcnRtZW50c1swXSk7XG5cbiAgY29uc3QgW2J1c2luZXNzUm9sZSwgc2V0QnVzaW5lc3NSb2xlXSA9IHVzZVN0YXRlPGFueT4oYnVzaW5lc3NSb2xlc1swXSk7XG5cbiAgY29uc3QgaW5pdGlhbFBhcmFtc1N0YXRlID0ge1xuICAgIGZpcnN0X25hbWU6ICcnLFxuICAgIGxhc3RfbmFtZTogJycsXG4gICAgcGhvbmU6ICcnLFxuICAgIGVtYWlsOiAnJyxcbiAgICB0aW1lX3pvbmU6ICcnLFxuICAgIGRhdGVfdGltZV9mb3JtYXQ6ICcnLFxuICAgIGxvY2FsZTogJycsXG4gICAgdGVsZWdyYW1fbmFtZTogJycsXG4gICAgb3RoZXJfYnVzaW5lc3Nfcm9sZV9uYW1lOiAnJyxcbiAgICBvdGhlcl9kZXBhcnRtZW50X25hbWU6ICcnLFxuICAgIGJ1c2luZXNzX3JvbGU6ICcnLFxuICAgIGRlcGFydG1lbnQ6ICcnLFxuICAgIGZsb3dfcmF0ZV91bml0OiAnJyxcbiAgfTtcblxuICBjb25zdCBbaXNUZWxlZ3JhbU9wZW4sIHNldElzVGVsZWdyYW1PcGVuXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3Nob3dQYXNzd29yZE1vZGFsLCBzZXRTaG93UGFzc3dvcmRNb2RhbF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtzdWJtaXR0aW5nLCBzZXRTdWJtaXR0aW5nXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3Nob3dTdWNjZXNzTWVzc2FnZSwgc2V0U2hvd1N1Y2Nlc3NNZXNzYWdlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW3Nob3dFcnJvck1lc3NhZ2UsIHNldFNob3dFcnJvck1lc3NhZ2VdID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpO1xuICBjb25zdCBbc2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlLCBzZXRTaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2VdID1cbiAgICB1c2VTdGF0ZTx7XG4gICAgICBzaG93OiBib29sZWFuO1xuICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgfT4oe1xuICAgICAgc2hvdzogZmFsc2UsXG4gICAgICBzdGF0dXM6ICcnLFxuICAgICAgbWVzc2FnZTogJycsXG4gICAgfSk7XG4gIGNvbnN0IFtwYXJhbXMsIHNldFBhcmFtc10gPSB1c2VTdGF0ZTx7XG4gICAgZmlyc3RfbmFtZTogc3RyaW5nO1xuICAgIGxhc3RfbmFtZTogc3RyaW5nO1xuICAgIHBob25lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICB0aW1lX3pvbmU6IHN0cmluZztcbiAgICBkYXRlX3RpbWVfZm9ybWF0OiBzdHJpbmc7XG4gICAgbG9jYWxlOiBzdHJpbmc7XG4gICAgdGVsZWdyYW1fbmFtZTogc3RyaW5nO1xuICAgIG90aGVyX2J1c2luZXNzX3JvbGVfbmFtZTogc3RyaW5nO1xuICAgIG90aGVyX2RlcGFydG1lbnRfbmFtZTogc3RyaW5nO1xuICAgIGZsb3dfcmF0ZV91bml0OiBzdHJpbmc7XG4gIH0+KGluaXRpYWxQYXJhbXNTdGF0ZSk7XG5cbiAgY29uc3QgaGFuZGxlT25DaGFuZ2UgPSAoZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChlLnN0YXJ0c1dpdGgoJzk3MjAnKSkge1xuICAgICAgICBlID0gZS5yZXBsYWNlKC8oOTcyMCkvZywgJzk3MicpO1xuICAgICAgfVxuICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgcGhvbmU6IGUsXG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgdmFsdWUsIG5hbWUgfSA9IGUudGFyZ2V0O1xuICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgW25hbWVdOiB2YWx1ZSxcbiAgICAgIH0pKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlQnVzaW5lc3NSb2xlQ2hhbmdlID0gKGUpID0+IHtcbiAgICBpZiAoZS50YXJnZXQgIT09IG51bGwpIHtcbiAgICAgIHNldFBhcmFtcyh7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgYnVzaW5lc3Nfcm9sZTogZS52YWx1ZSxcbiAgICAgICAgb3RoZXJfYnVzaW5lc3Nfcm9sZV9uYW1lOiBlLnRhcmdldC52YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBoYW5kbGVEZXBhcnRtZW50Q2hhbmdlID0gKGUpID0+IHtcbiAgICBpZiAoZS50YXJnZXQgIT09IG51bGwpIHtcbiAgICAgIHNldFBhcmFtcyh7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgZGVwYXJ0bWVudDogZS52YWx1ZSxcbiAgICAgICAgb3RoZXJfZGVwYXJ0bWVudF9uYW1lOiBlLnRhcmdldC52YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRQYXJhbXNXaXRoQWdncmVnYXRlZFZhbHVlcyA9ICgpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgZGF0ZV90aW1lX2Zvcm1hdDogZGF0ZVRpbWVGb3JtYXQudmFsdWUsXG4gICAgICBsb2NhbGU6IGxvY2FsZS52YWx1ZSxcbiAgICAgIHRpbWVfem9uZTogdGltZXpvbmUudmFsdWUsXG4gICAgICBkZXBhcnRtZW50X2lkOiBkZXBhcnRtZW50ID09PSB1bmRlZmluZWQgPyBudWxsIDogZGVwYXJ0bWVudC52YWx1ZSxcbiAgICAgIGJ1c2luZXNzX3JvbGVfaWQ6IGJ1c2luZXNzUm9sZSA9PT0gdW5kZWZpbmVkID8gbnVsbCA6IGJ1c2luZXNzUm9sZS52YWx1ZSxcbiAgICAgIGZsb3dfcmF0ZV91bml0OiBmbG93UmF0ZVVuaXQudmFsdWUsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCB3YXRlckF1dGhvcml0eU5hbWUgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5TmFtZSxcbiAgKTtcblxuICBjb25zdCBzaG93VG9hc3QgPSAoZGF0YSkgPT4ge1xuICAgIGNvbnN0IHVzZXJuYW1lID0gZGF0YS51c2VybmFtZTtcbiAgICBjb25zdCBlcnJvciA9IGRhdGEuZXJyb3I7XG4gICAgaWYgKGRhdGEuc3RhdHVzID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgIGkxOG4udChgbXlfcHJvZmlsZV90YWIudGVsZWdyYW1fbWVzc2FnZXMuJHtkYXRhLm1lc3NhZ2V9YCwge1xuICAgICAgICAgIHVzZXJuYW1lLFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIHBvc2l0aW9uOiAndG9wLWNlbnRlcicsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b2FzdC5lcnJvcihcbiAgICAgICAgaTE4bi50KGBteV9wcm9maWxlX3RhYi50ZWxlZ3JhbV9tZXNzYWdlcy4ke2RhdGEubWVzc2FnZX1gLCB7XG4gICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogJ3RvcC1jZW50ZXInLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHNldFN1Ym1pdHRpbmcodHJ1ZSk7XG4gICAgYXhpb3NcbiAgICAgIC5wdXQoJy9wcm9maWxlcycsIHsgdXNlcjogZ2V0UGFyYW1zV2l0aEFnZ3JlZ2F0ZWRWYWx1ZXMoKSB9KVxuICAgICAgLnRoZW4oKHJlc3ApID0+IHtcbiAgICAgICAgaWYgKHJlc3AuZGF0YS5lcnJvcnMgPT09IG51bGwpIHtcbiAgICAgICAgICBkaXNwYXRjaChcbiAgICAgICAgICAgIFBlcm1pc3Npb25zU2xpY2UuYWN0aW9ucy5zZXRVc2VySW5mbyhKU09OLnBhcnNlKHJlc3AuZGF0YS51c2VyKSksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGRvY3VtZW50XG4gICAgICAgICAgICAucXVlcnlTZWxlY3RvckFsbCgnLmVycm9yLW1lc3NhZ2UnKVxuICAgICAgICAgICAgLmZvckVhY2goKHApID0+IChwLmlubmVySFRNTCA9ICcnKSk7XG5cbiAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5pbnZhbGlkLWZpZWxkJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChwKSA9PiBwLmNsYXNzTGlzdC5yZW1vdmUoJ2ludmFsaWQtZmllbGQnKSk7XG4gICAgICAgICAgbGV0IHVzZXIgPSBKU09OLnBhcnNlKHJlc3AuZGF0YS51c2VyKTtcbiAgICAgICAgICBjb25zdCBmaW5kTG9jYWxlID0gbG9jYWxlT3B0aW9ucy5maW5kKChlKSA9PiBlLnZhbHVlID09PSB1c2VyLmxvY2FsZSk7XG4gICAgICAgICAgY29uc3QgZmluZEZsb3dSYXRlVW5pdCA9IGZsb3dSYXRlVW5pdE9wdGlvbnMuZmluZChcbiAgICAgICAgICAgIChlKSA9PiBlLnZhbHVlID09PSB1c2VyLmZsb3dfcmF0ZV91bml0LFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgZmluZERhdGVUaW1lRm9ybWF0ID0gZGF0ZVRpbWVGb3JtYXRPcHRpb25zLmZpbmQoXG4gICAgICAgICAgICAoZSkgPT4gZS52YWx1ZSA9PT0gdXNlci5kYXRlX3RpbWVfZm9ybWF0LFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgZmluZFRpbWV6b25lID0gdGltZXpvbmVzLmZpbmQoXG4gICAgICAgICAgICAoZSkgPT4gZS52YWx1ZSA9PT0gdXNlci50aW1lX3pvbmUsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHNldFBhcmFtcyh1c2VyKTtcbiAgICAgICAgICBzZXRMb2NhbGUoZmluZExvY2FsZSEpO1xuICAgICAgICAgIHNldEZsb3dSYXRlVW5pdChmaW5kRmxvd1JhdGVVbml0ISk7XG4gICAgICAgICAgc2V0RGF0ZVRpbWVGb3JtYXQoZmluZERhdGVUaW1lRm9ybWF0ISk7XG4gICAgICAgICAgc2V0VGltZXpvbmUoZmluZFRpbWV6b25lISk7XG4gICAgICAgICAgc2V0U2hvd1N1Y2Nlc3NNZXNzYWdlKHRydWUpO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2V0U2hvd1N1Y2Nlc3NNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICB9LCA2MDAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLnF1ZXJ5U2VsZWN0b3JBbGwoJy5lcnJvci1tZXNzYWdlJylcbiAgICAgICAgICAgIC5mb3JFYWNoKChwKSA9PiAocC5pbm5lckhUTUwgPSAnJykpO1xuICAgICAgICAgIGxldCBlcnJvcnMgPSByZXNwLmRhdGEudXNlci5lcnJvcnM7XG4gICAgICAgICAgZm9yIChjb25zdCBlcnJvciBpbiBlcnJvcnMpIHtcbiAgICAgICAgICAgIGxldCBmaW5kRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGlucHV0W25hbWU9JyR7ZXJyb3J9J11gKTtcbiAgICAgICAgICAgIGxldCBwYXJlbnQgPSBmaW5kRWxlbWVudCEuY2xvc2VzdCgnLmZpZWxkJyk7XG4gICAgICAgICAgICBsZXQgZmluZElucHV0ID0gcGFyZW50IS5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuICAgICAgICAgICAgZmluZElucHV0IS5jbGFzc0xpc3QuYWRkKCdpbnZhbGlkLWZpZWxkJyk7XG4gICAgICAgICAgICBwYXJlbnQhLnF1ZXJ5U2VsZWN0b3IoJy5lcnJvci1tZXNzYWdlJykhLmlubmVySFRNTCA9IGkxOG4udChcbiAgICAgICAgICAgICAgYGRhc2hib2FyZF92Mi5wcm9maWxlLmVycm9ycy4ke2Vycm9yfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzZXRTaG93U3VjY2Vzc01lc3NhZ2UoZmFsc2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0U3VibWl0dGluZyhmYWxzZSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBzZXRTaG93RXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgICBzZXRTaG93U3VjY2Vzc01lc3NhZ2UoZmFsc2UpO1xuICAgICAgICBzZXRTdWJtaXR0aW5nKGZhbHNlKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgc2V0U2hvd0Vycm9yTWVzc2FnZShmYWxzZSk7XG4gICAgICAgIH0sIDYwMDApO1xuICAgICAgfSk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBhbmFseXRpY3NUcmFjaygnVmlld2VkIFByb2ZpbGUgUGFnZScsIHtcbiAgICAgIHV0aWxpdHlfbmFtZTogd2F0ZXJBdXRob3JpdHlOYW1lLFxuICAgIH0pO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB0b2tlbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPWNzcmYtdG9rZW5dJykhLmNvbnRlbnQ7XG4gICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ1gtQ1NSRi1UT0tFTiddID0gdG9rZW47XG4gICAgYXhpb3MuZGVmYXVsdHMuaGVhZGVycy5jb21tb25bJ0NvbnRlbnQtVHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzJztcbiAgICBheGlvc1xuICAgICAgLmdldChgL3Byb2ZpbGVzL3Jlc291cmNlYClcbiAgICAgIC50aGVuKChyZXNwKSA9PiB7XG4gICAgICAgIHNldFBhcmFtcyhyZXNwLmRhdGEudXNlcik7XG4gICAgICAgIGNvbnN0IGZpbmRQcm9wZXJ0eSA9IChvYmplY3QsIHByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9iamVjdC5maW5kKChlKSA9PiBlLnZhbHVlID09PSBwcm9wZXJ0eSk7XG4gICAgICAgIH07XG4gICAgICAgIHNldExvY2FsZShmaW5kUHJvcGVydHkobG9jYWxlT3B0aW9ucywgcmVzcC5kYXRhLnVzZXIubG9jYWxlKSk7XG4gICAgICAgIHNldEZsb3dSYXRlVW5pdChcbiAgICAgICAgICBmaW5kUHJvcGVydHkoZmxvd1JhdGVVbml0T3B0aW9ucywgcmVzcC5kYXRhLnVzZXIuZmxvd19yYXRlX3VuaXQpLFxuICAgICAgICApO1xuICAgICAgICBzZXREYXRlVGltZUZvcm1hdChcbiAgICAgICAgICBmaW5kUHJvcGVydHkoZGF0ZVRpbWVGb3JtYXRPcHRpb25zLCByZXNwLmRhdGEudXNlci5kYXRlX3RpbWVfZm9ybWF0KSxcbiAgICAgICAgKTtcbiAgICAgICAgc2V0VGltZXpvbmUoZmluZFByb3BlcnR5KHRpbWV6b25lcywgcmVzcC5kYXRhLnVzZXIudGltZV96b25lKSk7XG4gICAgICAgIHNldEJ1c2luZXNzUm9sZShcbiAgICAgICAgICBmaW5kUHJvcGVydHkoXG4gICAgICAgICAgICByZXNwLmRhdGEuYnVzaW5lc3Nfcm9sZXMsXG4gICAgICAgICAgICByZXNwLmRhdGEudXNlci5idXNpbmVzc19yb2xlX2lkLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG4gICAgICAgIHNldERlcGFydG1lbnQoXG4gICAgICAgICAgZmluZFByb3BlcnR5KHJlc3AuZGF0YS5kZXBhcnRtZW50cywgcmVzcC5kYXRhLnVzZXIuZGVwYXJ0bWVudF9pZCksXG4gICAgICAgICk7XG4gICAgICAgIHNldERlcGFydG1lbnRzKHJlc3AuZGF0YS5kZXBhcnRtZW50cyk7XG4gICAgICAgIHNldEJ1c2luZXNzUm9sZXMocmVzcC5kYXRhLmJ1c2luZXNzX3JvbGVzKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiBhbGVydChlcnJvcikpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q29udGFpbmVyPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoZWFkZXItdGl0bGVcIj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS50aXRsZScpfTwvZGl2PlxuICAgICAgPGZvcm0gYWN0aW9uPVwiXCIgb25TdWJtaXQ9eyhlKSA9PiBoYW5kbGVTdWJtaXQoZSl9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5wZXJzb25hbC1kZXRhaWxzJyl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicGVyc29uYWxcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmZpcnN0X25hbWUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbmFtZT17J2ZpcnN0X25hbWUnfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMuZmlyc3RfbmFtZX1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZU9uQ2hhbmdlKGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydlcnJvci1tZXNzYWdlJ30+PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5sYXN0X25hbWUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbmFtZT17J2xhc3RfbmFtZSd9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5sYXN0X25hbWV9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBoYW5kbGVPbkNoYW5nZShlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXsnZXJyb3ItbWVzc2FnZSd9PjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZCBmaWVsZC0tcmVhZG9ubHlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmVtYWlsJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICByZWFkT25seT17dHJ1ZX1cbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgIG5hbWU9eydlbWFpbCd9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5lbWFpbH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXsnZXJyb3ItbWVzc2FnZSd9PjwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUucGhvbmUnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxQaG9uZUlucHV0XG4gICAgICAgICAgICAgICAgY291bnRyeT17J2lsJ31cbiAgICAgICAgICAgICAgICBsb2NhbGl6YXRpb249e2kxOG4udCgnY291bnRyaWVzJyl9XG4gICAgICAgICAgICAgICAgaW5wdXRDbGFzcz1cInBob25lLWlucHV0XCJcbiAgICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz1cIm15LXBob25lXCJcbiAgICAgICAgICAgICAgICBidXR0b25DbGFzcz1cImRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICBkcm9wZG93bkNsYXNzPVwicGhvbmUtZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMucGhvbmV9XG4gICAgICAgICAgICAgICAgZW5hYmxlU2VhcmNoXG4gICAgICAgICAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI9e2kxOG4udCgnc2VhcmNoJyl9XG4gICAgICAgICAgICAgICAgY291bnRyeUNvZGVFZGl0YWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaGFuZGxlT25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaW5wdXRQcm9wcz17eyBuYW1lOiAncGhvbmUnIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtkZXBhcnRtZW50c1swXS52YWx1ZSAhPT0gJycgJiYgKFxuICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZGVwYXJ0bWVudCcpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZT17c2V0RGVwYXJ0bWVudH1cbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGkxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYGRhc2hib2FyZF92Mi5wcm9maWxlLmRlcGFydG1lbnRzLiR7ZGVwYXJ0bWVudD8ubGFiZWx9YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZGVwYXJ0bWVudD8udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPXtkZXBhcnRtZW50c31cbiAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxUZXh0V2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGRlcGFydG1lbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fa2V5OiAnZGFzaGJvYXJkX3YyLnByb2ZpbGUuZGVwYXJ0bWVudHMnLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmJ1c2luZXNzX3JvbGUnKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteS1pbnB1dFwiPlxuICAgICAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldEJ1c2luZXNzUm9sZX1cbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGkxOG4udChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYGRhc2hib2FyZF92Mi5wcm9maWxlLmJ1c2luZXNzX3JvbGVzLiR7YnVzaW5lc3NSb2xlPy5sYWJlbH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBidXNpbmVzc1JvbGU/LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17YnVzaW5lc3NSb2xlc31cbiAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxUZXh0V2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGJ1c2luZXNzUm9sZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl9rZXk6ICdkYXNoYm9hcmRfdjIucHJvZmlsZS5idXNpbmVzc19yb2xlcycsXG4gICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7ZGVwYXJ0bWVudHNbMF0udmFsdWUgIT09ICcnICYmIChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BmaWVsZCAke1xuICAgICAgICAgICAgICAgICAgICBkZXBhcnRtZW50ICYmXG4gICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnQ/LnZhbHVlID09PVxuICAgICAgICAgICAgICAgICAgICAgIGRlcGFydG1lbnRzW2RlcGFydG1lbnRzLmxlbmd0aCAtIDFdLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2ZpZWxkLS1oaWRkZW4nXG4gICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmRlcGFydG1lbnRfYWx0Jyl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICByZWFkT25seT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPXsnb3RoZXJfZGVwYXJ0bWVudF9uYW1lJ31cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy5vdGhlcl9kZXBhcnRtZW50X25hbWV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gaGFuZGxlRGVwYXJ0bWVudENoYW5nZShlKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgZmllbGQgJHtcbiAgICAgICAgICAgICAgICAgICAgYnVzaW5lc3NSb2xlICYmXG4gICAgICAgICAgICAgICAgICAgIGJ1c2luZXNzUm9sZT8udmFsdWUgPT09XG4gICAgICAgICAgICAgICAgICAgICAgYnVzaW5lc3NSb2xlc1tidXNpbmVzc1JvbGVzLmxlbmd0aCAtIDFdLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgICAgIDogJ2ZpZWxkLS1oaWRkZW4nXG4gICAgICAgICAgICAgICAgICB9IGB9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5idXNpbmVzc19yb2xlX2FsdCcpfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHk9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm15LWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT17J290aGVyX2J1c2luZXNzX3JvbGVfbmFtZSd9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwYXJhbXMub3RoZXJfYnVzaW5lc3Nfcm9sZV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IGhhbmRsZUJ1c2luZXNzUm9sZUNoYW5nZShlKX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNoYW5nZS1wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd1Bhc3N3b3JkTW9kYWwodHJ1ZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGVuU3ZnIHdpZHRoPVwiMTJweFwiIGhlaWdodD1cIjEycHhcIiBmaWxsPVwiI2YwMTM0Y1wiIC8+XG4gICAgICAgICAgICAgICAgeycgICd9XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY2hhbmdlLXBhc3N3b3JkJyl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj57aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zZXR0aW5ncycpfTwvZGl2PlxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInNldHRpbmdzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS50aW1lLXpvbmUnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldFRpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3RpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17dGltZXpvbmVzfVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ2Rhc2hib2FyZF92Mi5wcm9maWxlLmRhdGUtdGltZS1mb3JtYXQnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17ZGF0ZVRpbWVGb3JtYXRPcHRpb25zfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2RhdGVUaW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgc2V0VmFsdWU9e3NldERhdGVUaW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZGF0ZS10aW1lLWZvcm1hdCd9PlxuICAgICAgICAgICAgICAgIHtkYXRlVGltZUZvcm1hdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCBkYXRlVGltZUZvcm1hdC5mb3JtYXQpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUubGFuZ3VhZ2UnKX0qXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J215LWlucHV0J30+XG4gICAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17bG9jYWxlT3B0aW9uc31cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtsb2NhbGV9XG4gICAgICAgICAgICAgICAgICBzZXRWYWx1ZT17c2V0TG9jYWxlfVxuICAgICAgICAgICAgICAgICAgY2FuY2VsVGV4dFdpZHRoXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmllbGQgZmllbGQtLWJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAge3BhcmFtcy50ZWxlZ3JhbV9uYW1lID09PSAnJyAmJiAoXG4gICAgICAgICAgICAgICAgPGEgY2xhc3NOYW1lPVwidGVsZWdyYW1cIiBvbkNsaWNrPXsoKSA9PiBzZXRJc1RlbGVncmFtT3Blbih0cnVlKX0+XG4gICAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5jb25uZWN0LXRvLXRlbGVncmFtJyl9XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7cGFyYW1zLnRlbGVncmFtX25hbWUgIT09ICcnICYmIChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWVsZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUudGVsZWdyYW1fbmFtZScpfVxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldElzVGVsZWdyYW1PcGVuKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQZW5Tdmcgd2lkdGg9XCIxMnB4XCIgaGVpZ2h0PVwiMTJweFwiIGZpbGw9XCIjZjAxMzRjXCIgLz57JyAnfVxuICAgICAgICAgICAgICAgICAgICAgICAge2kxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuY2hhbmdlLW5hbWUnKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsndGVsZWdyYW0tZXhpc3RpbmctaW5wdXQnfT5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRPbmx5PXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXktaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17J3RlbGVncmFtX25hbWUnfVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3BhcmFtcy50ZWxlZ3JhbV9uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsndGVsZWdyYW0tZXhpc3RpbmctaW5wdXRfX2NhbmNlbC1idXR0b24nfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGFyYW1zKChwcmV2U3RhdGUpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbGVncmFtX25hbWU6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDYW5jZWwgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT17J2Vycm9yLW1lc3NhZ2UnfT48L3A+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsndGVsZWdyYW0gb3Blbid9XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXhpb3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldChgL3RlbGVncmFtL3NlbmRfdGVzdF9tZXNzYWdlLmpzb25gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigocmVzcCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YS51c2VyLnN0YXR1c1swXS50b1VwcGVyQ2FzZSgpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcC5kYXRhLnVzZXIuc3RhdHVzLnN1YnN0cmluZygxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlc3AuZGF0YS51c2VyLm1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3c6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgNjAwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1RvYXN0KHJlc3AuZGF0YS51c2VyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4gYWxlcnQoZXJyb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgeyFzaG93VGVsZWdyYW1SZXNwb25zZU1lc3NhZ2Uuc2hvdyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zZW5kX3RlbGVncmFtX21lc3NhZ2UnKX1cbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1RlbGVncmFtUmVzcG9uc2VNZXNzYWdlLnNob3cgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dUZWxlZ3JhbVJlc3BvbnNlTWVzc2FnZS5zdGF0dXN9XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpZWxkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5mbG93X3JhdGVfdW5pdHMnKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnbXktaW5wdXQnfT5cbiAgICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgICBvcHRpb25zPXtmbG93UmF0ZVVuaXRPcHRpb25zfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2Zsb3dSYXRlVW5pdH1cbiAgICAgICAgICAgICAgICAgIHNldFZhbHVlPXtzZXRGbG93UmF0ZVVuaXR9XG4gICAgICAgICAgICAgICAgICBjYW5jZWxUZXh0V2lkdGhcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9eydzdWJtaXQnfSBjbGFzc05hbWU9eydzYXZlJ30gZGlzYWJsZWQ9e3N1Ym1pdHRpbmd9PlxuICAgICAgICAgICAgeyFzdWJtaXR0aW5nICYmXG4gICAgICAgICAgICAgICFzaG93U3VjY2Vzc01lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgIXNob3dFcnJvck1lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zdWJtaXQnKX1cbiAgICAgICAgICAgIHtzdWJtaXR0aW5nICYmXG4gICAgICAgICAgICAgICFzaG93U3VjY2Vzc01lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgIXNob3dFcnJvck1lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5zdWJtaXR0aW5nJyl9XG4gICAgICAgICAgICB7c2hvd1N1Y2Nlc3NNZXNzYWdlICYmIGkxOG4udCgnZGFzaGJvYXJkX3YyLnByb2ZpbGUuc3VjY2VzcycpfVxuICAgICAgICAgICAge3Nob3dFcnJvck1lc3NhZ2UgJiYgaTE4bi50KCdkYXNoYm9hcmRfdjIucHJvZmlsZS5lcnJvcicpfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cblxuICAgICAge3Nob3dQYXNzd29yZE1vZGFsICYmIChcbiAgICAgICAgPFBhc3N3b3JkTW9kYWxcbiAgICAgICAgICBjbG9zZT17KCkgPT4gc2V0U2hvd1Bhc3N3b3JkTW9kYWwoZmFsc2UpfVxuICAgICAgICAgIHNhdmU9eygpID0+IHt9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtpc1RlbGVncmFtT3BlbiAmJiAoXG4gICAgICAgIDxUZWxlZ3JhbU1vZGFsXG4gICAgICAgICAgY2xvc2U9eygpID0+IHNldElzVGVsZWdyYW1PcGVuKGZhbHNlKX1cbiAgICAgICAgICBoYW5kbGVPbkNoYW5nZT17aGFuZGxlT25DaGFuZ2V9XG4gICAgICAgICAgaGFuZGxlU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvQ29udGFp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
|