@igo2/geo 1.10.0 → 1.12.0
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/assets/icons/cross_black_18px.svg +88 -88
- package/assets/icons/place_blue_36px.svg +55 -55
- package/assets/icons/place_green_36px.svg +55 -55
- package/assets/icons/place_red_36px.svg +55 -55
- package/assets/icons/place_yellow_36px.svg +55 -55
- package/bundles/igo2-geo.umd.js +4971 -1353
- package/bundles/igo2-geo.umd.js.map +1 -1
- package/esm2015/lib/catalog/catalog-browser/catalog-browser-group.component.js +1 -1
- package/esm2015/lib/catalog/catalog-browser/catalog-browser-layer.component.js +1 -1
- package/esm2015/lib/catalog/catalog-browser/catalog-browser.component.js +2 -2
- package/esm2015/lib/catalog/catalog-browser/catalog-browser.module.js +1 -1
- package/esm2015/lib/catalog/catalog-library/add-catalog-dialog.component.js +1 -1
- package/esm2015/lib/catalog/catalog-library/catalog-library-item.component.js +1 -1
- package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +6 -6
- package/esm2015/lib/catalog/catalog-library/catalog-library.module.js +1 -1
- package/esm2015/lib/catalog/catalog.module.js +1 -1
- package/esm2015/lib/catalog/index.js +1 -1
- package/esm2015/lib/catalog/shared/catalog.abstract.js +1 -1
- package/esm2015/lib/catalog/shared/catalog.enum.js +1 -1
- package/esm2015/lib/catalog/shared/catalog.interface.js +1 -1
- package/esm2015/lib/catalog/shared/catalog.service.js +117 -43
- package/esm2015/lib/catalog/shared/index.js +1 -1
- package/esm2015/lib/datasource/datasource.module.js +1 -1
- package/esm2015/lib/datasource/index.js +1 -1
- package/esm2015/lib/datasource/shared/capabilities.service.js +25 -11
- package/esm2015/lib/datasource/shared/datasource.service.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/any-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/any-datasource.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/arcgisrest-datasource.js +84 -14
- package/esm2015/lib/datasource/shared/datasources/carto-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/carto-datasource.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/cluster-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/cluster-datasource.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/data.service.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/datasource.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/feature-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/feature-datasource.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/imagearcgisrest-datasource.js +7 -10
- package/esm2015/lib/datasource/shared/datasources/index.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/mvt-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/osm-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/osm-datasource.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/tilearcgisrest-datasource.js +7 -9
- package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/tiledebug-datasource.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/websocket-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/websocket-datasource.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/wfs-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/wfs-datasource.js +6 -1
- package/esm2015/lib/datasource/shared/datasources/wfs.service.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/wms-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/wms-datasource.js +11 -2
- package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +5 -2
- package/esm2015/lib/datasource/shared/datasources/wmts-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/wmts-datasource.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/xyz-datasource.interface.js +1 -1
- package/esm2015/lib/datasource/shared/datasources/xyz-datasource.js +1 -1
- package/esm2015/lib/datasource/shared/index.js +1 -1
- package/esm2015/lib/datasource/shared/options/index.js +1 -1
- package/esm2015/lib/datasource/shared/options/options-api.interface.js +1 -1
- package/esm2015/lib/datasource/shared/options/options-api.providers.js +1 -1
- package/esm2015/lib/datasource/shared/options/options-api.service.js +1 -1
- package/esm2015/lib/datasource/shared/options/options.service.js +1 -1
- package/esm2015/lib/datasource/utils/esri-style-generator.js +1 -1
- package/esm2015/lib/datasource/utils/index.js +1 -1
- package/esm2015/lib/datasource/utils/tilegrid.js +1 -1
- package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +10 -4
- package/esm2015/lib/directions/directions-buttons/index.js +1 -1
- package/esm2015/lib/directions/directions-inputs/directions-inputs.component.js +1 -1
- package/esm2015/lib/directions/directions-inputs/index.js +1 -1
- package/esm2015/lib/directions/directions-results/directions-results.component.js +1 -1
- package/esm2015/lib/directions/directions-results/index.js +1 -1
- package/esm2015/lib/directions/directions-sources/directions-source.interface.js +1 -1
- package/esm2015/lib/directions/directions-sources/directions-source.js +1 -1
- package/esm2015/lib/directions/directions-sources/directions-source.provider.js +1 -1
- package/esm2015/lib/directions/directions-sources/index.js +1 -1
- package/esm2015/lib/directions/directions-sources/osrm-directions-source.js +1 -1
- package/esm2015/lib/directions/directions.component.js +6 -4
- package/esm2015/lib/directions/directions.module.js +1 -1
- package/esm2015/lib/directions/index.js +1 -1
- package/esm2015/lib/directions/shared/directions-source.service.js +1 -1
- package/esm2015/lib/directions/shared/directions.enum.js +1 -1
- package/esm2015/lib/directions/shared/directions.interface.js +1 -1
- package/esm2015/lib/directions/shared/directions.service.js +1 -1
- package/esm2015/lib/directions/shared/directions.utils.js +4 -1
- package/esm2015/lib/directions/shared/index.js +1 -1
- package/esm2015/lib/directions/shared/store.js +1 -1
- package/esm2015/lib/download/download-button/download-button.component.js +1 -1
- package/esm2015/lib/download/download-button/index.js +1 -1
- package/esm2015/lib/download/download.module.js +1 -1
- package/esm2015/lib/download/index.js +1 -1
- package/esm2015/lib/download/shared/download.interface.js +1 -1
- package/esm2015/lib/download/shared/download.service.js +1 -1
- package/esm2015/lib/download/shared/index.js +1 -1
- package/esm2015/lib/draw/draw/draw-popup.component.js +21 -15
- package/esm2015/lib/draw/draw/draw-shorcuts.component.js +1 -1
- package/esm2015/lib/draw/draw/draw.component.js +186 -77
- package/esm2015/lib/draw/draw/draw.module.js +1 -1
- package/esm2015/lib/draw/drawingTool.module.js +1 -1
- package/esm2015/lib/draw/index.js +1 -1
- package/esm2015/lib/draw/shared/draw-icon.service.js +1 -1
- package/esm2015/lib/draw/shared/draw-style.service.js +24 -5
- package/esm2015/lib/draw/shared/draw.enum.js +17 -1
- package/esm2015/lib/draw/shared/draw.interface.js +1 -1
- package/esm2015/lib/draw/shared/draw.utils.js +1 -1
- package/esm2015/lib/draw/shared/index.js +1 -1
- package/esm2015/lib/feature/feature-details/feature-details.component.js +119 -43
- package/esm2015/lib/feature/feature-details/feature-details.directive.js +2 -57
- package/esm2015/lib/feature/feature-details/feature-details.module.js +1 -1
- package/esm2015/lib/feature/feature-form/feature-form.component.js +1 -1
- package/esm2015/lib/feature/feature-form/feature-form.module.js +1 -1
- package/esm2015/lib/feature/feature.module.js +1 -1
- package/esm2015/lib/feature/index.js +1 -1
- package/esm2015/lib/feature/shared/feature.enums.js +1 -1
- package/esm2015/lib/feature/shared/feature.interfaces.js +1 -1
- package/esm2015/lib/feature/shared/feature.utils.js +2 -1
- package/esm2015/lib/feature/shared/index.js +1 -1
- package/esm2015/lib/feature/shared/store.js +1 -1
- package/esm2015/lib/feature/shared/strategies/in-map-extent.js +17 -4
- package/esm2015/lib/feature/shared/strategies/in-map-resolution.js +1 -1
- package/esm2015/lib/feature/shared/strategies/index.js +1 -1
- package/esm2015/lib/feature/shared/strategies/loading-layer.js +1 -1
- package/esm2015/lib/feature/shared/strategies/loading.js +1 -1
- package/esm2015/lib/feature/shared/strategies/selection.js +1 -1
- package/esm2015/lib/feature/shared/strategies.utils.js +1 -1
- package/esm2015/lib/filter/filter.module.js +7 -4
- package/esm2015/lib/filter/index.js +1 -1
- package/esm2015/lib/filter/ogc-filter-button/index.js +1 -1
- package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +46 -7
- package/esm2015/lib/filter/ogc-filter-form/index.js +1 -1
- package/esm2015/lib/filter/ogc-filter-form/ogc-filter-form.component.js +1 -1
- package/esm2015/lib/filter/ogc-filter-selection/index.js +1 -1
- package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +676 -296
- package/esm2015/lib/filter/ogc-filter-time/index.js +1 -1
- package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.js +1 -1
- package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +296 -161
- package/esm2015/lib/filter/ogc-filterable-form/index.js +1 -1
- package/esm2015/lib/filter/ogc-filterable-form/ogc-filterable-form.component.js +1 -1
- package/esm2015/lib/filter/ogc-filterable-item/index.js +1 -1
- package/esm2015/lib/filter/ogc-filterable-item/ogc-filterable-item.component.js +3 -2
- package/esm2015/lib/filter/ogc-filterable-list/index.js +1 -1
- package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.js +1 -1
- package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list.component.js +1 -1
- package/esm2015/lib/filter/shared/filterable-datasource.pipe.js +3 -2
- package/esm2015/lib/filter/shared/index.js +1 -1
- package/esm2015/lib/filter/shared/ogc-filter-time.service.js +1 -1
- package/esm2015/lib/filter/shared/ogc-filter.enum.js +1 -1
- package/esm2015/lib/filter/shared/ogc-filter.interface.js +1 -1
- package/esm2015/lib/filter/shared/ogc-filter.js +24 -6
- package/esm2015/lib/filter/shared/ogc-filter.service.js +1 -1
- package/esm2015/lib/filter/shared/spatial-filter.enum.js +1 -1
- package/esm2015/lib/filter/shared/spatial-filter.interface.js +1 -1
- package/esm2015/lib/filter/shared/spatial-filter.service.js +1 -1
- package/esm2015/lib/filter/shared/time-filter.enum.js +1 -1
- package/esm2015/lib/filter/shared/time-filter.interface.js +1 -1
- package/esm2015/lib/filter/shared/time-filter.service.js +1 -1
- package/esm2015/lib/filter/spatial-filter/spatial-filter-item/index.js +1 -1
- package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +1 -1
- package/esm2015/lib/filter/spatial-filter/spatial-filter-list/index.js +1 -1
- package/esm2015/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.js +1 -1
- package/esm2015/lib/filter/spatial-filter/spatial-filter-type/index.js +1 -1
- package/esm2015/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.js +1 -1
- package/esm2015/lib/filter/time-filter-button/index.js +1 -1
- package/esm2015/lib/filter/time-filter-button/time-filter-button.component.js +1 -1
- package/esm2015/lib/filter/time-filter-form/index.js +1 -1
- package/esm2015/lib/filter/time-filter-form/time-filter-form.component.js +1 -1
- package/esm2015/lib/filter/time-filter-item/index.js +1 -1
- package/esm2015/lib/filter/time-filter-item/time-filter-item.component.js +1 -1
- package/esm2015/lib/filter/time-filter-list/index.js +1 -1
- package/esm2015/lib/filter/time-filter-list/time-filter-list-binding.directive.js +1 -1
- package/esm2015/lib/filter/time-filter-list/time-filter-list.component.js +1 -1
- package/esm2015/lib/geo.module.js +1 -1
- package/esm2015/lib/geometry/geometry-form-field/geometry-form-field-input.component.js +1 -1
- package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.component.js +1 -1
- package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.module.js +1 -1
- package/esm2015/lib/geometry/geometry.module.js +1 -1
- package/esm2015/lib/geometry/index.js +1 -1
- package/esm2015/lib/geometry/shared/controls/draw.js +7 -2
- package/esm2015/lib/geometry/shared/controls/index.js +1 -1
- package/esm2015/lib/geometry/shared/controls/modify.js +1 -1
- package/esm2015/lib/geometry/shared/controls/slice.js +1 -1
- package/esm2015/lib/geometry/shared/geometry.errors.js +1 -1
- package/esm2015/lib/geometry/shared/geometry.interfaces.js +1 -1
- package/esm2015/lib/geometry/shared/geometry.utils.js +1 -1
- package/esm2015/lib/geometry/shared/index.js +1 -1
- package/esm2015/lib/import-export/export-button/export-button.component.js +1 -1
- package/esm2015/lib/import-export/export-button/index.js +1 -1
- package/esm2015/lib/import-export/import-export/import-export.component.js +60 -11
- package/esm2015/lib/import-export/import-export/index.js +1 -1
- package/esm2015/lib/import-export/import-export.module.js +1 -1
- package/esm2015/lib/import-export/index.js +1 -1
- package/esm2015/lib/import-export/shared/drop-geo-file.directive.js +1 -1
- package/esm2015/lib/import-export/shared/export.errors.js +1 -1
- package/esm2015/lib/import-export/shared/export.interface.js +1 -1
- package/esm2015/lib/import-export/shared/export.service.js +10 -2
- package/esm2015/lib/import-export/shared/export.type.js +1 -1
- package/esm2015/lib/import-export/shared/export.utils.js +1 -1
- package/esm2015/lib/import-export/shared/import.errors.js +1 -1
- package/esm2015/lib/import-export/shared/import.interface.js +1 -1
- package/esm2015/lib/import-export/shared/import.service.js +1 -1
- package/esm2015/lib/import-export/shared/import.utils.js +65 -38
- package/esm2015/lib/import-export/shared/index.js +1 -1
- package/esm2015/lib/import-export/style-list/index.js +1 -1
- package/esm2015/lib/import-export/style-list/style-list.interface.js +1 -1
- package/esm2015/lib/import-export/style-list/style-list.module.js +1 -1
- package/esm2015/lib/import-export/style-list/style-list.provider.js +1 -1
- package/esm2015/lib/import-export/style-list/style-list.service.js +1 -1
- package/esm2015/lib/layer/index.js +1 -1
- package/esm2015/lib/layer/layer-item/index.js +1 -1
- package/esm2015/lib/layer/layer-item/layer-item.component.js +15 -8
- package/esm2015/lib/layer/layer-legend/index.js +1 -1
- package/esm2015/lib/layer/layer-legend/layer-legend.component.js +24 -24
- package/esm2015/lib/layer/layer-legend-item/index.js +1 -1
- package/esm2015/lib/layer/layer-legend-item/layer-legend-item.component.js +1 -1
- package/esm2015/lib/layer/layer-legend-list/index.js +1 -1
- package/esm2015/lib/layer/layer-legend-list/layer-legend-list-binding.directive.js +1 -1
- package/esm2015/lib/layer/layer-legend-list/layer-legend-list.component.js +1 -1
- package/esm2015/lib/layer/layer-list/index.js +1 -1
- package/esm2015/lib/layer/layer-list/layer-list-binding.directive.js +1 -1
- package/esm2015/lib/layer/layer-list/layer-list.component.js +2 -2
- package/esm2015/lib/layer/layer-list/layer-list.enum.js +1 -1
- package/esm2015/lib/layer/layer-list-tool/index.js +1 -1
- package/esm2015/lib/layer/layer-list-tool/layer-list-tool.component.js +1 -1
- package/esm2015/lib/layer/layer-list-tool/layer-list-tool.enum.js +1 -1
- package/esm2015/lib/layer/layer-list-tool/layer-list-tool.interface.js +1 -1
- package/esm2015/lib/layer/layer-list-tool/layer-list-tool.service.js +1 -1
- package/esm2015/lib/layer/layer.module.js +1 -1
- package/esm2015/lib/layer/shared/clusterParam.js +1 -1
- package/esm2015/lib/layer/shared/index.js +1 -1
- package/esm2015/lib/layer/shared/layer.enums.js +1 -1
- package/esm2015/lib/layer/shared/layer.service.js +44 -20
- package/esm2015/lib/layer/shared/layers/any-layer.interface.js +1 -1
- package/esm2015/lib/layer/shared/layers/any-layer.js +1 -1
- package/esm2015/lib/layer/shared/layers/image-layer.interface.js +1 -1
- package/esm2015/lib/layer/shared/layers/image-layer.js +1 -1
- package/esm2015/lib/layer/shared/layers/index.js +1 -1
- package/esm2015/lib/layer/shared/layers/layer.interface.js +1 -1
- package/esm2015/lib/layer/shared/layers/layer.js +9 -1
- package/esm2015/lib/layer/shared/layers/tile-layer.interface.js +1 -1
- package/esm2015/lib/layer/shared/layers/tile-layer.js +1 -1
- package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +1 -1
- package/esm2015/lib/layer/shared/layers/vector-layer.js +106 -47
- package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +1 -1
- package/esm2015/lib/layer/shared/layers/vectortile-layer.js +1 -1
- package/esm2015/lib/layer/shared/style.service.js +80 -11
- package/esm2015/lib/layer/shared/vector-style.interface.js +1 -1
- package/esm2015/lib/layer/track-feature-button/index.js +1 -1
- package/esm2015/lib/layer/track-feature-button/track-feature-button.component.js +1 -1
- package/esm2015/lib/layer/utils/image-watcher.js +1 -1
- package/esm2015/lib/layer/utils/index.js +1 -1
- package/esm2015/lib/layer/utils/layer.utils.js +1 -1
- package/esm2015/lib/layer/utils/layerSync-watcher.js +3 -3
- package/esm2015/lib/layer/utils/outputLegend.js +5 -3
- package/esm2015/lib/layer/utils/tile-watcher.js +1 -1
- package/esm2015/lib/layer/utils/vector-watcher.js +1 -1
- package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.animation.js +1 -1
- package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.component.js +1 -1
- package/esm2015/lib/map/baselayers-switcher/index.js +1 -1
- package/esm2015/lib/map/baselayers-switcher/mini-basemap.component.js +1 -1
- package/esm2015/lib/map/geolocate-button/geolocate-button.component.js +52 -17
- package/esm2015/lib/map/geolocate-button/index.js +1 -1
- package/esm2015/lib/map/home-extent-button/home-extent-button.component.js +69 -0
- package/esm2015/lib/map/home-extent-button/index.js +2 -0
- package/esm2015/lib/map/index.js +4 -1
- package/esm2015/lib/map/info-section/index.js +2 -0
- package/esm2015/lib/map/info-section/info-section.component.js +36 -0
- package/esm2015/lib/map/map-browser/index.js +1 -1
- package/esm2015/lib/map/map-browser/map-browser.component.js +2 -2
- package/esm2015/lib/map/map-center/index.js +1 -1
- package/esm2015/lib/map/map-center/map-center.component.js +2 -2
- package/esm2015/lib/map/map.module.js +16 -1
- package/esm2015/lib/map/menu-button/index.js +1 -1
- package/esm2015/lib/map/menu-button/menu-button.component.js +1 -1
- package/esm2015/lib/map/offline-button/index.js +1 -1
- package/esm2015/lib/map/offline-button/offline-button.component.js +1 -1
- package/esm2015/lib/map/rotation-button/index.js +1 -1
- package/esm2015/lib/map/rotation-button/rotation-button.component.js +1 -1
- package/esm2015/lib/map/shared/controllers/controller.js +1 -1
- package/esm2015/lib/map/shared/controllers/geolocation.js +295 -0
- package/esm2015/lib/map/shared/controllers/index.js +2 -1
- package/esm2015/lib/map/shared/controllers/view.js +17 -1
- package/esm2015/lib/map/shared/hover-feature.directive.js +9 -7
- package/esm2015/lib/map/shared/index.js +1 -1
- package/esm2015/lib/map/shared/map-pointer-position.directive.js +1 -1
- package/esm2015/lib/map/shared/map.enums.js +1 -1
- package/esm2015/lib/map/shared/map.interface.js +1 -1
- package/esm2015/lib/map/shared/map.js +14 -135
- package/esm2015/lib/map/shared/map.service.js +1 -1
- package/esm2015/lib/map/shared/map.utils.js +1 -1
- package/esm2015/lib/map/shared/mapOffline.directive.js +17 -6
- package/esm2015/lib/map/shared/projection.interfaces.js +1 -1
- package/esm2015/lib/map/shared/projection.service.js +1 -1
- package/esm2015/lib/map/shared/projection.utils.js +1 -1
- package/esm2015/lib/map/swipe-control/index.js +1 -1
- package/esm2015/lib/map/swipe-control/swipe-control.component.js +1 -1
- package/esm2015/lib/map/utils/layer-watcher.js +1 -1
- package/esm2015/lib/map/wake-lock-button/index.js +2 -0
- package/esm2015/lib/map/wake-lock-button/wake-lock-button.component.js +122 -0
- package/esm2015/lib/map/zoom-button/index.js +1 -1
- package/esm2015/lib/map/zoom-button/zoom-button.component.js +1 -1
- package/esm2015/lib/measure/index.js +1 -1
- package/esm2015/lib/measure/measure.module.js +1 -1
- package/esm2015/lib/measure/measurer/measure-format.pipe.js +1 -1
- package/esm2015/lib/measure/measurer/measurer-dialog.component.js +1 -1
- package/esm2015/lib/measure/measurer/measurer-item.component.js +1 -1
- package/esm2015/lib/measure/measurer/measurer.component.js +7 -1
- package/esm2015/lib/measure/measurer/measurer.module.js +1 -1
- package/esm2015/lib/measure/shared/index.js +1 -1
- package/esm2015/lib/measure/shared/measure.enum.js +1 -1
- package/esm2015/lib/measure/shared/measure.interfaces.js +1 -1
- package/esm2015/lib/measure/shared/measure.utils.js +1 -1
- package/esm2015/lib/metadata/index.js +1 -1
- package/esm2015/lib/metadata/metadata-button/index.js +1 -1
- package/esm2015/lib/metadata/metadata-button/metadata-button.component.js +1 -1
- package/esm2015/lib/metadata/metadata.module.js +1 -1
- package/esm2015/lib/metadata/shared/index.js +1 -1
- package/esm2015/lib/metadata/shared/metadata.interface.js +1 -1
- package/esm2015/lib/metadata/shared/metadata.service.js +1 -1
- package/esm2015/lib/offline/geoDB/geoDB.enums.js +6 -0
- package/esm2015/lib/offline/geoDB/geoDB.interface.js +2 -0
- package/esm2015/lib/offline/geoDB/geoDB.service.js +161 -0
- package/esm2015/lib/offline/geoDB/index.js +4 -0
- package/esm2015/lib/offline/index.js +3 -0
- package/esm2015/lib/offline/shared/geo-network.service.js +66 -0
- package/esm2015/lib/offline/shared/index.js +2 -0
- package/esm2015/lib/overlay/index.js +1 -1
- package/esm2015/lib/overlay/overlay.module.js +1 -1
- package/esm2015/lib/overlay/shared/index.js +1 -1
- package/esm2015/lib/overlay/shared/overlay-marker-style.utils.js +1 -1
- package/esm2015/lib/overlay/shared/overlay.directive.js +1 -1
- package/esm2015/lib/overlay/shared/overlay.enum.js +1 -1
- package/esm2015/lib/overlay/shared/overlay.js +1 -1
- package/esm2015/lib/overlay/shared/overlay.service.js +1 -1
- package/esm2015/lib/overlay/shared/overlay.utils.js +3 -3
- package/esm2015/lib/print/index.js +1 -1
- package/esm2015/lib/print/print/print.component.js +1 -1
- package/esm2015/lib/print/print-form/index.js +1 -1
- package/esm2015/lib/print/print-form/print-form.component.js +1 -1
- package/esm2015/lib/print/print.module.js +1 -1
- package/esm2015/lib/print/shared/index.js +1 -1
- package/esm2015/lib/print/shared/print.interface.js +1 -1
- package/esm2015/lib/print/shared/print.service.js +22 -16
- package/esm2015/lib/print/shared/print.type.js +1 -1
- package/esm2015/lib/query/index.js +1 -1
- package/esm2015/lib/query/query.module.js +5 -4
- package/esm2015/lib/query/shared/index.js +1 -1
- package/esm2015/lib/query/shared/query-search-source.js +1 -1
- package/esm2015/lib/query/shared/query-search-source.providers.js +1 -1
- package/esm2015/lib/query/shared/query.directive.js +4 -1
- package/esm2015/lib/query/shared/query.enums.js +1 -1
- package/esm2015/lib/query/shared/query.interfaces.js +1 -1
- package/esm2015/lib/query/shared/query.service.js +67 -18
- package/esm2015/lib/query/shared/query.utils.js +1 -1
- package/esm2015/lib/search/index.js +1 -1
- package/esm2015/lib/search/search-bar/search-bar.component.js +4 -2
- package/esm2015/lib/search/search-bar/search-bar.module.js +1 -1
- package/esm2015/lib/search/search-bar/search-url-param.directive.js +1 -1
- package/esm2015/lib/search/search-results/search-results-add-button.component.js +7 -7
- package/esm2015/lib/search/search-results/search-results-item.component.js +1 -1
- package/esm2015/lib/search/search-results/search-results.component.js +1 -1
- package/esm2015/lib/search/search-results/search-results.module.js +1 -1
- package/esm2015/lib/search/search-selector/search-selector.component.js +1 -1
- package/esm2015/lib/search/search-selector/search-selector.module.js +1 -1
- package/esm2015/lib/search/search-settings/search-settings.component.js +1 -1
- package/esm2015/lib/search/search-settings/search-settings.module.js +1 -1
- package/esm2015/lib/search/search.module.js +1 -1
- package/esm2015/lib/search/shared/index.js +1 -1
- package/esm2015/lib/search/shared/search-pointer-summary.directive.js +2 -1
- package/esm2015/lib/search/shared/search-source-service.providers.js +1 -1
- package/esm2015/lib/search/shared/search-source.service.js +1 -1
- package/esm2015/lib/search/shared/search.enums.js +1 -1
- package/esm2015/lib/search/shared/search.interfaces.js +1 -1
- package/esm2015/lib/search/shared/search.service.js +1 -1
- package/esm2015/lib/search/shared/search.utils.js +1 -1
- package/esm2015/lib/search/shared/sources/cadastre.js +1 -1
- package/esm2015/lib/search/shared/sources/cadastre.providers.js +1 -1
- package/esm2015/lib/search/shared/sources/coordinates.interfaces.js +1 -1
- package/esm2015/lib/search/shared/sources/coordinates.js +1 -1
- package/esm2015/lib/search/shared/sources/coordinates.providers.js +1 -1
- package/esm2015/lib/search/shared/sources/icherche.interfaces.js +1 -1
- package/esm2015/lib/search/shared/sources/icherche.js +1 -1
- package/esm2015/lib/search/shared/sources/icherche.providers.js +1 -1
- package/esm2015/lib/search/shared/sources/ilayer.interfaces.js +1 -1
- package/esm2015/lib/search/shared/sources/ilayer.js +1 -1
- package/esm2015/lib/search/shared/sources/ilayer.providers.js +1 -1
- package/esm2015/lib/search/shared/sources/index.js +1 -1
- package/esm2015/lib/search/shared/sources/nominatim.interfaces.js +1 -1
- package/esm2015/lib/search/shared/sources/nominatim.js +2 -2
- package/esm2015/lib/search/shared/sources/nominatim.providers.js +1 -1
- package/esm2015/lib/search/shared/sources/source.interfaces.js +1 -1
- package/esm2015/lib/search/shared/sources/source.js +3 -3
- package/esm2015/lib/search/shared/sources/storedqueries.interfaces.js +1 -1
- package/esm2015/lib/search/shared/sources/storedqueries.js +2 -2
- package/esm2015/lib/search/shared/sources/storedqueries.providers.js +1 -1
- package/esm2015/lib/toast/index.js +1 -1
- package/esm2015/lib/toast/toast.component.js +1 -1
- package/esm2015/lib/toast/toast.module.js +1 -1
- package/esm2015/lib/utils/commonVectorStyle.interface.js +1 -1
- package/esm2015/lib/utils/commonVectorStyle.js +1 -1
- package/esm2015/lib/utils/googleLinks.js +1 -1
- package/esm2015/lib/utils/id-generator.js +1 -1
- package/esm2015/lib/utils/index.js +1 -1
- package/esm2015/lib/utils/osmLinks.js +1 -1
- package/esm2015/lib/wkt/index.js +1 -1
- package/esm2015/lib/wkt/shared/index.js +1 -1
- package/esm2015/lib/wkt/shared/wkt.service.js +15 -15
- package/esm2015/lib/wkt/wkt.module.js +1 -1
- package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.component.js +56 -0
- package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.module.js +38 -0
- package/esm2015/lib/workspace/confirmation-popup/index.js +3 -0
- package/esm2015/lib/workspace/index.js +2 -1
- package/esm2015/lib/workspace/shared/edition-workspace.js +279 -0
- package/esm2015/lib/workspace/shared/edition-workspace.service.js +646 -0
- package/esm2015/lib/workspace/shared/feature-workspace.js +18 -1
- package/esm2015/lib/workspace/shared/feature-workspace.service.js +36 -10
- package/esm2015/lib/workspace/shared/index.js +3 -1
- package/esm2015/lib/workspace/shared/wfs-workspace.js +18 -1
- package/esm2015/lib/workspace/shared/wfs-workspace.service.js +36 -9
- package/esm2015/lib/workspace/shared/wms-workspace.service.js +87 -19
- package/esm2015/lib/workspace/shared/workspace.utils.js +1 -1
- package/esm2015/lib/workspace/widgets/index.js +1 -1
- package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.component.js +1 -1
- package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.module.js +1 -1
- package/esm2015/lib/workspace/widgets/widgets.js +1 -1
- package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +40 -10
- package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +1 -1
- package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +22 -8
- package/esm2015/lib/workspace/workspace-updator/workspace-updator.module.js +1 -1
- package/esm2015/lib/workspace/workspace.module.js +19 -7
- package/esm2015/public_api.js +2 -1
- package/fesm2015/igo2-geo.js +4487 -1380
- package/fesm2015/igo2-geo.js.map +1 -1
- package/lib/catalog/shared/catalog.interface.d.ts +9 -1
- package/lib/catalog/shared/catalog.service.d.ts +1 -0
- package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +2 -0
- package/lib/datasource/shared/datasources/datasource.interface.d.ts +50 -0
- package/lib/datasource/shared/datasources/wfs-datasource.d.ts +1 -0
- package/lib/datasource/shared/datasources/wms-wfs.utils.d.ts +1 -1
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +2 -1
- package/lib/directions/directions.component.d.ts +2 -1
- package/lib/draw/draw/draw-popup.component.d.ts +4 -2
- package/lib/draw/draw/draw.component.d.ts +19 -2
- package/lib/draw/shared/draw-style.service.d.ts +6 -0
- package/lib/draw/shared/draw.enum.d.ts +15 -0
- package/lib/feature/feature-details/feature-details.component.d.ts +12 -2
- package/lib/feature/feature-details/feature-details.directive.d.ts +2 -13
- package/lib/filter/filter.module.d.ts +1 -1
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +31 -13
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +6 -0
- package/lib/filter/shared/ogc-filter.interface.d.ts +20 -2
- package/lib/geometry/shared/controls/draw.d.ts +8 -4
- package/lib/geometry/shared/controls/modify.d.ts +3 -4
- package/lib/geometry/shared/controls/slice.d.ts +3 -4
- package/lib/import-export/shared/import.utils.d.ts +1 -1
- package/lib/layer/layer-item/layer-item.component.d.ts +1 -0
- package/lib/layer/layer-legend/layer-legend.component.d.ts +3 -2
- package/lib/layer/shared/layer.service.d.ts +6 -3
- package/lib/layer/shared/layers/layer.d.ts +6 -0
- package/lib/layer/shared/layers/layer.interface.d.ts +9 -0
- package/lib/layer/shared/layers/vector-layer.d.ts +7 -2
- package/lib/layer/shared/style.service.d.ts +38 -3
- package/lib/layer/shared/vector-style.interface.d.ts +11 -0
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +8 -1
- package/lib/map/home-extent-button/home-extent-button.component.d.ts +20 -0
- package/lib/map/home-extent-button/index.d.ts +1 -0
- package/lib/map/index.d.ts +3 -0
- package/lib/map/info-section/index.d.ts +1 -0
- package/lib/map/info-section/info-section.component.d.ts +7 -0
- package/lib/map/map.module.d.ts +20 -17
- package/lib/map/shared/controllers/geolocation.d.ts +111 -0
- package/lib/map/shared/controllers/index.d.ts +1 -0
- package/lib/map/shared/controllers/view.d.ts +7 -0
- package/lib/map/shared/hover-feature.directive.d.ts +1 -1
- package/lib/map/shared/map.d.ts +6 -19
- package/lib/map/shared/map.interface.d.ts +0 -1
- package/lib/map/shared/mapOffline.directive.d.ts +1 -0
- package/lib/map/wake-lock-button/index.d.ts +1 -0
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +30 -0
- package/lib/offline/geoDB/geoDB.enums.d.ts +4 -0
- package/lib/offline/geoDB/geoDB.interface.d.ts +9 -0
- package/lib/offline/geoDB/geoDB.service.d.ts +35 -0
- package/lib/offline/geoDB/index.d.ts +3 -0
- package/lib/offline/index.d.ts +2 -0
- package/lib/offline/shared/geo-network.service.d.ts +28 -0
- package/lib/offline/shared/index.d.ts +1 -0
- package/lib/print/shared/print.service.d.ts +3 -2
- package/lib/query/query.module.d.ts +2 -1
- package/lib/query/shared/query.interfaces.d.ts +1 -0
- package/lib/query/shared/query.service.d.ts +7 -1
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +23 -0
- package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +14 -0
- package/lib/workspace/confirmation-popup/index.d.ts +2 -0
- package/lib/workspace/index.d.ts +1 -0
- package/lib/workspace/shared/edition-workspace.d.ts +82 -0
- package/lib/workspace/shared/edition-workspace.service.d.ts +48 -0
- package/lib/workspace/shared/feature-workspace.d.ts +3 -0
- package/lib/workspace/shared/feature-workspace.service.d.ts +5 -2
- package/lib/workspace/shared/index.d.ts +2 -0
- package/lib/workspace/shared/wfs-workspace.d.ts +3 -0
- package/lib/workspace/shared/wfs-workspace.service.d.ts +5 -2
- package/lib/workspace/shared/wms-workspace.service.d.ts +7 -2
- package/lib/workspace/shared/workspace.utils.d.ts +3 -2
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +10 -3
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +3 -1
- package/lib/workspace/workspace.module.d.ts +8 -5
- package/ngcc.config.js +3 -3
- package/package.json +7 -5
- package/public_api.d.ts +1 -0
- package/style/geo.theming.scss +12 -11
|
@@ -2,16 +2,74 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import * as olstyle from 'ol/style';
|
|
3
3
|
import OlFeature from 'ol/Feature';
|
|
4
4
|
import { createOverlayMarkerStyle } from '../../overlay/shared/overlay-marker-style.utils';
|
|
5
|
+
import { getResolutionFromScale } from '../../map/shared/map.utils';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
export class StyleService {
|
|
7
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Create a style based on a object as
|
|
10
|
+
* style: {
|
|
11
|
+
* "stroke": {
|
|
12
|
+
* "color": "blue",
|
|
13
|
+
* "lineDash": [10, 5]
|
|
14
|
+
* },
|
|
15
|
+
* "text": {
|
|
16
|
+
* "minScaleDenom": 50000,
|
|
17
|
+
* "maxScaleDenom": 200000,
|
|
18
|
+
* "minResolution": 100,
|
|
19
|
+
* "maxResolution": 400,
|
|
20
|
+
* "attribute": "THE COLUMN NAME TO RETRIEVE THE LABEL VALUE",
|
|
21
|
+
* "text": "MY HARCODED TEXT",
|
|
22
|
+
* "stroke": {
|
|
23
|
+
* "color": "blue",
|
|
24
|
+
* "width": 0.75
|
|
25
|
+
* },
|
|
26
|
+
* "fill": {
|
|
27
|
+
* "color": "black"
|
|
28
|
+
* },
|
|
29
|
+
* "font": "20px sans-serif",
|
|
30
|
+
* "overflow": true,
|
|
31
|
+
* "offsetX": 10,
|
|
32
|
+
* "offsetY": 20,
|
|
33
|
+
* "padding": [2.5, 2.5, 2.5, 2.5]
|
|
34
|
+
* },
|
|
35
|
+
* "width": 5
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* @param options
|
|
39
|
+
* @param feature feature to apply style on
|
|
40
|
+
* @param resolution current map resolution, to control label resolution range
|
|
41
|
+
* @returns
|
|
42
|
+
*/
|
|
43
|
+
createStyle(options, feature, resolution) {
|
|
44
|
+
var _a, _b, _c, _d;
|
|
8
45
|
if (!options) {
|
|
9
46
|
return createOverlayMarkerStyle();
|
|
10
47
|
}
|
|
11
48
|
if (typeof options === 'function' || options instanceof olstyle.Style) {
|
|
12
49
|
return options;
|
|
13
50
|
}
|
|
14
|
-
|
|
51
|
+
const parsedStyle = this.parseStyle('style', options);
|
|
52
|
+
if (parsedStyle.getText()) {
|
|
53
|
+
let labelMinResolution = 0;
|
|
54
|
+
let labelMaxResolution = Infinity;
|
|
55
|
+
if (options.text) {
|
|
56
|
+
const labelMinResolutionFromScale = ((_a = options.text) === null || _a === void 0 ? void 0 : _a.minScaleDenom) ? getResolutionFromScale(Number(options.text.minScaleDenom)) : undefined;
|
|
57
|
+
const labelMaxResolutionFromScale = ((_b = options.text) === null || _b === void 0 ? void 0 : _b.maxScaleDenom) ? getResolutionFromScale(Number(options.text.maxScaleDenom)) : undefined;
|
|
58
|
+
const minResolution = ((_c = options.text) === null || _c === void 0 ? void 0 : _c.minResolution) ? options.text.minResolution : 0;
|
|
59
|
+
const maxResolution = ((_d = options.text) === null || _d === void 0 ? void 0 : _d.maxResolution) ? options.text.maxResolution : Infinity;
|
|
60
|
+
labelMinResolution = labelMinResolutionFromScale || minResolution;
|
|
61
|
+
labelMaxResolution = labelMaxResolutionFromScale || maxResolution;
|
|
62
|
+
}
|
|
63
|
+
if (feature && resolution >= labelMinResolution && resolution <= labelMaxResolution) {
|
|
64
|
+
if (feature && options.text.attribute) {
|
|
65
|
+
parsedStyle.getText().setText(this.getLabel(feature, options.text.attribute));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
parsedStyle.setText();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return parsedStyle;
|
|
15
73
|
}
|
|
16
74
|
parseStyle(key, value) {
|
|
17
75
|
const styleOptions = {};
|
|
@@ -53,8 +111,8 @@ export class StyleService {
|
|
|
53
111
|
}
|
|
54
112
|
return olCls;
|
|
55
113
|
}
|
|
56
|
-
createStyleByAttribute(feature, styleByAttribute) {
|
|
57
|
-
var _a;
|
|
114
|
+
createStyleByAttribute(feature, styleByAttribute, resolution) {
|
|
115
|
+
var _a, _b, _c, _d, _e;
|
|
58
116
|
let style;
|
|
59
117
|
const type = styleByAttribute.type ? styleByAttribute.type : this.guessTypeFeature(feature);
|
|
60
118
|
const attribute = styleByAttribute.attribute;
|
|
@@ -68,13 +126,24 @@ export class StyleService {
|
|
|
68
126
|
const scale = styleByAttribute.scale;
|
|
69
127
|
const size = data ? data.length : 0;
|
|
70
128
|
const label = styleByAttribute.label ? styleByAttribute.label.attribute : undefined;
|
|
71
|
-
|
|
129
|
+
const labelMinResolutionFromScale = ((_a = styleByAttribute.label) === null || _a === void 0 ? void 0 : _a.minScaleDenom) ? getResolutionFromScale(Number(styleByAttribute.label.minScaleDenom)) : undefined;
|
|
130
|
+
const labelMaxResolutionFromScale = ((_b = styleByAttribute.label) === null || _b === void 0 ? void 0 : _b.maxScaleDenom) ? getResolutionFromScale(Number(styleByAttribute.label.maxScaleDenom)) : undefined;
|
|
131
|
+
const minResolution = ((_c = styleByAttribute.label) === null || _c === void 0 ? void 0 : _c.minResolution) ? styleByAttribute.label.minResolution : 0;
|
|
132
|
+
const maxResolution = ((_d = styleByAttribute.label) === null || _d === void 0 ? void 0 : _d.maxResolution) ? styleByAttribute.label.maxResolution : Infinity;
|
|
133
|
+
const labelMinResolution = labelMinResolutionFromScale || minResolution;
|
|
134
|
+
const labelMaxResolution = labelMaxResolutionFromScale || maxResolution;
|
|
135
|
+
let labelStyle = ((_e = styleByAttribute.label) === null || _e === void 0 ? void 0 : _e.style) ? this.parseStyle('text', styleByAttribute.label.style) : undefined;
|
|
72
136
|
if (!labelStyle && label) {
|
|
73
137
|
labelStyle = new olstyle.Text();
|
|
74
138
|
}
|
|
75
139
|
const baseStyle = styleByAttribute.baseStyle;
|
|
76
140
|
if (labelStyle) {
|
|
77
|
-
|
|
141
|
+
if (resolution >= labelMinResolution && resolution <= labelMaxResolution) {
|
|
142
|
+
labelStyle.setText(this.getLabel(feature, label));
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
labelStyle.setText('');
|
|
146
|
+
}
|
|
78
147
|
}
|
|
79
148
|
if (type === 'circle') {
|
|
80
149
|
for (let i = 0; i < size; i++) {
|
|
@@ -116,7 +185,7 @@ export class StyleService {
|
|
|
116
185
|
}
|
|
117
186
|
if (!feature.getStyle()) {
|
|
118
187
|
if (baseStyle) {
|
|
119
|
-
style = this.createStyle(baseStyle);
|
|
188
|
+
style = this.createStyle(baseStyle, feature, resolution);
|
|
120
189
|
if (labelStyle) {
|
|
121
190
|
style.setText(labelStyle);
|
|
122
191
|
}
|
|
@@ -162,7 +231,7 @@ export class StyleService {
|
|
|
162
231
|
if (feature instanceof OlFeature) {
|
|
163
232
|
if (!feature.getStyle()) {
|
|
164
233
|
if (baseStyle) {
|
|
165
|
-
style = this.createStyle(baseStyle);
|
|
234
|
+
style = this.createStyle(baseStyle, feature, resolution);
|
|
166
235
|
if (labelStyle) {
|
|
167
236
|
style.setText(labelStyle);
|
|
168
237
|
}
|
|
@@ -183,7 +252,7 @@ export class StyleService {
|
|
|
183
252
|
}
|
|
184
253
|
}
|
|
185
254
|
}
|
|
186
|
-
createClusterStyle(feature, clusterParam = {}, layerStyle) {
|
|
255
|
+
createClusterStyle(feature, resolution, clusterParam = {}, layerStyle) {
|
|
187
256
|
let style;
|
|
188
257
|
const size = feature.get('features').length;
|
|
189
258
|
if (size !== 1) {
|
|
@@ -248,7 +317,7 @@ export class StyleService {
|
|
|
248
317
|
}
|
|
249
318
|
}
|
|
250
319
|
else {
|
|
251
|
-
style = this.createStyle(layerStyle);
|
|
320
|
+
style = this.createStyle(layerStyle, feature, resolution);
|
|
252
321
|
}
|
|
253
322
|
return style;
|
|
254
323
|
}
|
|
@@ -286,4 +355,4 @@ StyleService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: StyleServic
|
|
|
286
355
|
providedIn: 'root'
|
|
287
356
|
}]
|
|
288
357
|
}], null, null); })();
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9zdHlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBSW5DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOztBQU0zRixNQUFNLE9BQU8sWUFBWTtJQUd2QixXQUFXLENBQUMsT0FBK0I7UUFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sd0JBQXdCLEVBQUUsQ0FBQztTQUNuQztRQUNELElBQUksT0FBTyxPQUFPLEtBQUssVUFBVSxJQUFJLE9BQU8sWUFBWSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ3JFLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sVUFBVSxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQ3hDLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLElBQUksS0FBSyxJQUFJLEtBQUssWUFBWSxNQUFNLEVBQUU7WUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEM7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLEdBQVE7UUFDdkIsSUFBSSxLQUFLLENBQUM7UUFDVixRQUFRLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN6QixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssY0FBYyxDQUFDO1lBQ3BCLEtBQUssTUFBTTtnQkFDVCxLQUFLLEdBQUcsT0FBTyxDQUFDO2dCQUNoQixNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtTQUNUO1FBRUQsT0FBTyxLQUFLLElBQUksR0FBRyxDQUFDO0lBQ3RCLENBQUM7SUFFTyxRQUFRLENBQUMsR0FBUTtRQUN2QixJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBSSxHQUFHLEtBQUssY0FBYyxFQUFFO1lBQzFCLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDO1NBQzlCO1FBQ0QsSUFBSSxHQUFHLEtBQUssZ0JBQWdCLEVBQUU7WUFDNUIsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7U0FDdEI7UUFDRCxJQUFJLEdBQUcsS0FBSyxrQkFBa0IsRUFBRTtZQUM5QixLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztTQUN4QjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQThDLEVBQUUsZ0JBQWtDOztRQUV2RyxJQUFJLEtBQUssQ0FBQztRQUNWLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUYsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO1FBQzdDLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDdkMsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUNuQyxNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDcEYsSUFBSSxVQUFVLEdBQUcsQ0FBQSxNQUFBLGdCQUFnQixDQUFDLEtBQUssMENBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNuSCxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRTtZQUN0QixVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkM7UUFDRCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7UUFFN0MsSUFBSSxVQUFVLEVBQUU7WUFDZCxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDbkQ7UUFFRCxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDN0IsTUFBTSxHQUFHLEdBQ1AsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFdBQVcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUk7b0JBQzlFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztvQkFDeEIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDVCxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDdkUsSUFBSSxJQUFJLEVBQUU7d0JBQ1IsS0FBSyxHQUFHOzRCQUNOLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQztnQ0FDaEIsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztvQ0FDdEIsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO29DQUNqQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztvQ0FDWixLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0NBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO2lDQUN4QyxDQUFDO2dDQUNGLElBQUksRUFBRSxVQUFVLFlBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTOzZCQUNsRSxDQUFDO3lCQUNILENBQUM7d0JBQ0YsT0FBTyxLQUFLLENBQUM7cUJBQ2Q7b0JBQ0QsS0FBSyxHQUFHO3dCQUNOLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQzs0QkFDaEIsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQztnQ0FDeEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUM5QixNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO29DQUN6QixLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87b0NBQ25DLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQ0FDNUIsQ0FBQztnQ0FDRixJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO29DQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87aUNBQ2hDLENBQUM7NkJBQ0gsQ0FBQzs0QkFDRixJQUFJLEVBQUUsVUFBVSxZQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUzt5QkFDbEUsQ0FBQztxQkFDSCxDQUFDO29CQUNGLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7WUFDRCxJQUFJLENBQUUsT0FBaUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3BDLElBQUksVUFBVSxFQUFFO3dCQUNkLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQzNCO29CQUNELE9BQU8sS0FBSyxDQUFDO2lCQUNkO2dCQUNELEtBQUssR0FBRztvQkFDTixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7d0JBQ2hCLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQ3hCLE1BQU0sRUFBRSxDQUFDOzRCQUNULE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0NBQ3pCLEtBQUssRUFBRSxPQUFPOzZCQUNmLENBQUM7NEJBQ0YsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztnQ0FDckIsS0FBSyxFQUFFLFNBQVM7NkJBQ2pCLENBQUM7eUJBQ0gsQ0FBQztxQkFDSCxDQUFDO2lCQUNILENBQUM7Z0JBQ0YsT0FBTyxLQUFLLENBQUM7YUFDZDtTQUNGO2FBQU0sSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzdCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdCLE1BQU0sR0FBRyxHQUNULE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxXQUFXLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJO29CQUM1RSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUM7b0JBQ3hCLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ3ZFLEtBQUssR0FBRzt3QkFDTixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7NEJBQ2hCLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0NBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTztnQ0FDbkMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzZCQUM1QixDQUFDOzRCQUNGLElBQUksRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0NBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCOzZCQUNoRCxDQUFDOzRCQUNGLElBQUksRUFBRSxVQUFVLFlBQVksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTO3lCQUNsRSxDQUFDO3FCQUNILENBQUM7b0JBQ0YsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjtZQUNELElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDdkIsSUFBSSxTQUFTLEVBQUU7d0JBQ2IsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBQ3BDLElBQUksVUFBVSxFQUFFOzRCQUNkLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7eUJBQzNCO3dCQUNELE9BQU8sS0FBSyxDQUFDO3FCQUNkO29CQUNELEtBQUssR0FBRzt3QkFDTixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7NEJBQ2hCLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0NBQ3pCLEtBQUssRUFBRSxPQUFPOzZCQUNmLENBQUM7NEJBQ0YsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztnQ0FDckIsS0FBSyxFQUFFLFNBQVM7NkJBQ2pCLENBQUM7eUJBQ0gsQ0FBQztxQkFDSCxDQUFDO29CQUNGLE9BQU8sS0FBSyxDQUFDO2lCQUNkO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsZUFBNkIsRUFBRSxFQUFFLFVBQVU7UUFDckUsSUFBSSxLQUFLLENBQUM7UUFDVixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1QyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDZCxJQUFJLFlBQVksQ0FBQyxhQUFhLEVBQUU7Z0JBQzlCLEtBQUssTUFBTSxDQUFDLElBQUksWUFBWSxDQUFDLGFBQWEsRUFBRTtvQkFDMUMsSUFDRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQzt3QkFDckMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsRUFDckM7d0JBQ0EsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBbUIsQ0FBQzt3QkFFcEQsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFOzRCQUNmLE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztnQ0FDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0NBQ3JCLElBQUksRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0NBQ3JCLEtBQUssRUFBRSxNQUFNO2lDQUNkLENBQUM7NkJBQ0gsQ0FBQyxDQUFDOzRCQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3JCO3dCQUVELElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRTs0QkFDbkIsSUFBSSxhQUFxQixDQUFDOzRCQUMxQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7NEJBQ3BDLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDbkMsSUFBSSxhQUFhLEdBQUcsU0FBUyxFQUFFO2dDQUM3QixhQUFhLEdBQUcsU0FBUyxDQUFDOzZCQUMzQjs0QkFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQzt5QkFDdkM7d0JBQ0QsTUFBTTtxQkFDUDtpQkFDRjthQUNGO1lBRUQsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixJQUFJLGFBQXFCLENBQUM7Z0JBQzFCLElBQUksWUFBWSxDQUFDLFVBQVUsRUFBRTtvQkFDM0IsYUFBYSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQy9DO3FCQUFNO29CQUNMLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztvQkFDcEIsYUFBYSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNuQyxJQUFJLGFBQWEsR0FBRyxTQUFTLEVBQUU7d0JBQzdCLGFBQWEsR0FBRyxTQUFTLENBQUM7cUJBQzNCO2lCQUNGO2dCQUVELEtBQUssR0FBRztvQkFDTixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7d0JBQ2hCLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQ3hCLE1BQU0sRUFBRSxhQUFhOzRCQUNyQixNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO2dDQUN6QixLQUFLLEVBQUUsT0FBTzs2QkFDZixDQUFDOzRCQUNGLElBQUksRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0NBQ3JCLEtBQUssRUFBRSx3QkFBd0I7NkJBQ2hDLENBQUM7eUJBQ0gsQ0FBQzt3QkFDRixJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDOzRCQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTs0QkFDckIsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztnQ0FDckIsS0FBSyxFQUFFLE1BQU07NkJBQ2QsQ0FBQzt5QkFDSCxDQUFDO3FCQUNILENBQUM7aUJBQ0gsQ0FBQzthQUNIO1NBQ0Y7YUFBTTtZQUNMLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQU8sRUFBRSxVQUFVO1FBQzFCLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztTQUNSO1FBQ0QsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztRQUV4RSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JCLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFFSCwwQ0FBMEM7UUFDMUMsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQ25ELEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQztTQUMvQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE9BQU87UUFDOUIsUUFBUSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdkMsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLFlBQVksQ0FBQztZQUNsQixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxRQUFRLENBQUM7WUFDbEI7Z0JBQ0UsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDSCxDQUFDOzt3RUF0U1UsWUFBWTtrRUFBWixZQUFZLFdBQVosWUFBWSxtQkFGWCxNQUFNO3VGQUVQLFlBQVk7Y0FIeEIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuaW1wb3J0ICogYXMgb2xzdHlsZSBmcm9tICdvbC9zdHlsZSc7XG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IHsgU3R5bGVCeUF0dHJpYnV0ZSB9IGZyb20gJy4vdmVjdG9yLXN0eWxlLmludGVyZmFjZSc7XG5cbmltcG9ydCB7IENsdXN0ZXJQYXJhbSB9IGZyb20gJy4vY2x1c3RlclBhcmFtJztcbmltcG9ydCB7IGNyZWF0ZU92ZXJsYXlNYXJrZXJTdHlsZSB9IGZyb20gJy4uLy4uL292ZXJsYXkvc2hhcmVkL292ZXJsYXktbWFya2VyLXN0eWxlLnV0aWxzJztcbmltcG9ydCBSZW5kZXJGZWF0dXJlIGZyb20gJ29sL3JlbmRlci9GZWF0dXJlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3R5bGVTZXJ2aWNlIHtcbiAgcHVibGljIHN0eWxlOiBvbHN0eWxlLlN0eWxlO1xuXG4gIGNyZWF0ZVN0eWxlKG9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIHJldHVybiBjcmVhdGVPdmVybGF5TWFya2VyU3R5bGUoKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nIHx8IG9wdGlvbnMgaW5zdGFuY2VvZiBvbHN0eWxlLlN0eWxlKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGFyc2VTdHlsZSgnc3R5bGUnLCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VTdHlsZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHN0eWxlT3B0aW9ucyA9IHt9O1xuICAgIGNvbnN0IG9sQ2xzID0gdGhpcy5nZXRPbENscyhrZXkpO1xuXG4gICAgaWYgKG9sQ2xzICYmIHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICBPYmplY3Qua2V5cyh2YWx1ZSkuZm9yRWFjaChfa2V5ID0+IHtcbiAgICAgICAgY29uc3Qgb2xLZXkgPSB0aGlzLmdldE9sS2V5KF9rZXkpO1xuICAgICAgICBzdHlsZU9wdGlvbnNbb2xLZXldID0gdGhpcy5wYXJzZVN0eWxlKF9rZXksIHZhbHVlW19rZXldKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBvbENscyhzdHlsZU9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPbEtleShrZXk6IGFueSkge1xuICAgIGxldCBvbEtleTtcbiAgICBzd2l0Y2ggKGtleS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdjaXJjbGUnOlxuICAgICAgY2FzZSAncmVndWxhcnNoYXBlJzpcbiAgICAgIGNhc2UgJ2ljb24nOlxuICAgICAgICBvbEtleSA9ICdpbWFnZSc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9sS2V5IHx8IGtleTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T2xDbHMoa2V5OiBhbnkpIHtcbiAgICBsZXQgb2xDbHMgPSBvbHN0eWxlW2tleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGtleS5zbGljZSgxKV07XG4gICAgaWYgKGtleSA9PT0gJ3JlZ3VsYXJzaGFwZScpIHtcbiAgICAgIG9sQ2xzID0gb2xzdHlsZS5SZWd1bGFyU2hhcGU7XG4gICAgfVxuICAgIGlmIChrZXkgPT09ICdiYWNrZ3JvdW5kRmlsbCcpIHtcbiAgICAgIG9sQ2xzID0gb2xzdHlsZS5GaWxsO1xuICAgIH1cbiAgICBpZiAoa2V5ID09PSAnYmFja2dyb3VuZFN0cm9rZScpIHtcbiAgICAgIG9sQ2xzID0gb2xzdHlsZS5TdHJva2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9sQ2xzO1xuICB9XG5cbiAgY3JlYXRlU3R5bGVCeUF0dHJpYnV0ZShmZWF0dXJlOiBSZW5kZXJGZWF0dXJlIHwgT2xGZWF0dXJlPE9sR2VvbWV0cnk+LCBzdHlsZUJ5QXR0cmlidXRlOiBTdHlsZUJ5QXR0cmlidXRlKSB7XG5cbiAgICBsZXQgc3R5bGU7XG4gICAgY29uc3QgdHlwZSA9IHN0eWxlQnlBdHRyaWJ1dGUudHlwZSA/IHN0eWxlQnlBdHRyaWJ1dGUudHlwZSA6IHRoaXMuZ3Vlc3NUeXBlRmVhdHVyZShmZWF0dXJlKTtcbiAgICBjb25zdCBhdHRyaWJ1dGUgPSBzdHlsZUJ5QXR0cmlidXRlLmF0dHJpYnV0ZTtcbiAgICBjb25zdCBkYXRhID0gc3R5bGVCeUF0dHJpYnV0ZS5kYXRhO1xuICAgIGNvbnN0IHN0cm9rZSA9IHN0eWxlQnlBdHRyaWJ1dGUuc3Ryb2tlO1xuICAgIGNvbnN0IHdpZHRoID0gc3R5bGVCeUF0dHJpYnV0ZS53aWR0aDtcbiAgICBjb25zdCBmaWxsID0gc3R5bGVCeUF0dHJpYnV0ZS5maWxsO1xuICAgIGNvbnN0IGFuY2hvciA9IHN0eWxlQnlBdHRyaWJ1dGUuYW5jaG9yO1xuICAgIGNvbnN0IHJhZGl1cyA9IHN0eWxlQnlBdHRyaWJ1dGUucmFkaXVzO1xuICAgIGNvbnN0IGljb24gPSBzdHlsZUJ5QXR0cmlidXRlLmljb247XG4gICAgY29uc3Qgc2NhbGUgPSBzdHlsZUJ5QXR0cmlidXRlLnNjYWxlO1xuICAgIGNvbnN0IHNpemUgPSBkYXRhID8gZGF0YS5sZW5ndGggOiAwO1xuICAgIGNvbnN0IGxhYmVsID0gc3R5bGVCeUF0dHJpYnV0ZS5sYWJlbCA/IHN0eWxlQnlBdHRyaWJ1dGUubGFiZWwuYXR0cmlidXRlIDogdW5kZWZpbmVkO1xuICAgIGxldCBsYWJlbFN0eWxlID0gc3R5bGVCeUF0dHJpYnV0ZS5sYWJlbD8uc3R5bGUgPyB0aGlzLnBhcnNlU3R5bGUoJ3RleHQnLCBzdHlsZUJ5QXR0cmlidXRlLmxhYmVsLnN0eWxlKSA6IHVuZGVmaW5lZDtcbiAgICBpZiAoIWxhYmVsU3R5bGUgJiYgbGFiZWwpIHtcbiAgICAgICAgbGFiZWxTdHlsZSA9IG5ldyBvbHN0eWxlLlRleHQoKTtcbiAgICB9XG4gICAgY29uc3QgYmFzZVN0eWxlID0gc3R5bGVCeUF0dHJpYnV0ZS5iYXNlU3R5bGU7XG5cbiAgICBpZiAobGFiZWxTdHlsZSkge1xuICAgICAgbGFiZWxTdHlsZS5zZXRUZXh0KHRoaXMuZ2V0TGFiZWwoZmVhdHVyZSwgbGFiZWwpKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ2NpcmNsZScpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHZhbCA9XG4gICAgICAgICAgdHlwZW9mIGZlYXR1cmUuZ2V0KGF0dHJpYnV0ZSkgIT09ICd1bmRlZmluZWQnICYmIGZlYXR1cmUuZ2V0KGF0dHJpYnV0ZSkgIT09IG51bGxcbiAgICAgICAgICAgID8gZmVhdHVyZS5nZXQoYXR0cmlidXRlKVxuICAgICAgICAgICAgOiAnJztcbiAgICAgICAgaWYgKHZhbCA9PT0gZGF0YVtpXSB8fCB2YWwudG9TdHJpbmcoKS5tYXRjaChuZXcgUmVnRXhwKGRhdGFbaV0sICdnbWknKSkpIHtcbiAgICAgICAgICBpZiAoaWNvbikge1xuICAgICAgICAgICAgc3R5bGUgPSBbXG4gICAgICAgICAgICAgIG5ldyBvbHN0eWxlLlN0eWxlKHtcbiAgICAgICAgICAgICAgICBpbWFnZTogbmV3IG9sc3R5bGUuSWNvbih7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogZmlsbCA/IGZpbGxbaV0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICBzcmM6IGljb25baV0sXG4gICAgICAgICAgICAgICAgICBzY2FsZTogc2NhbGUgPyBzY2FsZVtpXSA6IDEsXG4gICAgICAgICAgICAgICAgICBhbmNob3I6IGFuY2hvciA/IGFuY2hvcltpXSA6IFswLjUsIDAuNV1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0ZXh0OiBsYWJlbFN0eWxlIGluc3RhbmNlb2Ygb2xzdHlsZS5UZXh0ID8gbGFiZWxTdHlsZSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3R5bGUgPSBbXG4gICAgICAgICAgICBuZXcgb2xzdHlsZS5TdHlsZSh7XG4gICAgICAgICAgICAgIGltYWdlOiBuZXcgb2xzdHlsZS5DaXJjbGUoe1xuICAgICAgICAgICAgICAgIHJhZGl1czogcmFkaXVzID8gcmFkaXVzW2ldIDogNCxcbiAgICAgICAgICAgICAgICBzdHJva2U6IG5ldyBvbHN0eWxlLlN0cm9rZSh7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogc3Ryb2tlID8gc3Ryb2tlW2ldIDogJ2JsYWNrJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA/IHdpZHRoW2ldIDogMVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbGw6IG5ldyBvbHN0eWxlLkZpbGwoe1xuICAgICAgICAgICAgICAgICAgY29sb3I6IGZpbGwgPyBmaWxsW2ldIDogJ2JsYWNrJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB0ZXh0OiBsYWJlbFN0eWxlIGluc3RhbmNlb2Ygb2xzdHlsZS5UZXh0ID8gbGFiZWxTdHlsZSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdO1xuICAgICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCEoZmVhdHVyZSBhcyBPbEZlYXR1cmU8T2xHZW9tZXRyeT4pLmdldFN0eWxlKCkpIHtcbiAgICAgICAgaWYgKGJhc2VTdHlsZSkge1xuICAgICAgICAgIHN0eWxlID0gdGhpcy5jcmVhdGVTdHlsZShiYXNlU3R5bGUpO1xuICAgICAgICAgIGlmIChsYWJlbFN0eWxlKSB7XG4gICAgICAgICAgICBzdHlsZS5zZXRUZXh0KGxhYmVsU3R5bGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3R5bGU7XG4gICAgICAgIH1cbiAgICAgICAgc3R5bGUgPSBbXG4gICAgICAgICAgbmV3IG9sc3R5bGUuU3R5bGUoe1xuICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLkNpcmNsZSh7XG4gICAgICAgICAgICAgIHJhZGl1czogNCxcbiAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2Uoe1xuICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJyNiYmJiZjInXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0pXG4gICAgICAgIF07XG4gICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyZWd1bGFyJykge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcbiAgICAgICAgY29uc3QgdmFsID1cbiAgICAgICAgdHlwZW9mIGZlYXR1cmUuZ2V0KGF0dHJpYnV0ZSkgIT09ICd1bmRlZmluZWQnICYmIGZlYXR1cmUuZ2V0KGF0dHJpYnV0ZSkgIT09IG51bGxcbiAgICAgICAgICAgID8gZmVhdHVyZS5nZXQoYXR0cmlidXRlKVxuICAgICAgICAgICAgOiAnJztcbiAgICAgICAgaWYgKHZhbCA9PT0gZGF0YVtpXSB8fCB2YWwudG9TdHJpbmcoKS5tYXRjaChuZXcgUmVnRXhwKGRhdGFbaV0sICdnbWknKSkpIHtcbiAgICAgICAgICBzdHlsZSA9IFtcbiAgICAgICAgICAgIG5ldyBvbHN0eWxlLlN0eWxlKHtcbiAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2Uoe1xuICAgICAgICAgICAgICAgIGNvbG9yOiBzdHJva2UgPyBzdHJva2VbaV0gOiAnYmxhY2snLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA/IHdpZHRoW2ldIDogMVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7XG4gICAgICAgICAgICAgICAgY29sb3I6IGZpbGwgPyBmaWxsW2ldIDogJ3JnYmEoMjU1LDI1NSwyNTUsMC40KSdcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIHRleHQ6IGxhYmVsU3R5bGUgaW5zdGFuY2VvZiBvbHN0eWxlLlRleHQgPyBsYWJlbFN0eWxlIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIF07XG4gICAgICAgICAgcmV0dXJuIHN0eWxlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZmVhdHVyZSBpbnN0YW5jZW9mIE9sRmVhdHVyZSkge1xuICAgICAgICBpZiAoIWZlYXR1cmUuZ2V0U3R5bGUoKSkge1xuICAgICAgICAgIGlmIChiYXNlU3R5bGUpIHtcbiAgICAgICAgICAgIHN0eWxlID0gdGhpcy5jcmVhdGVTdHlsZShiYXNlU3R5bGUpO1xuICAgICAgICAgICAgaWYgKGxhYmVsU3R5bGUpIHtcbiAgICAgICAgICAgICAgc3R5bGUuc2V0VGV4dChsYWJlbFN0eWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3R5bGUgPSBbXG4gICAgICAgICAgICBuZXcgb2xzdHlsZS5TdHlsZSh7XG4gICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sc3R5bGUuU3Ryb2tlKHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJ1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7XG4gICAgICAgICAgICAgICAgY29sb3I6ICcjYmJiYmYyJ1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdO1xuICAgICAgICAgIHJldHVybiBzdHlsZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUNsdXN0ZXJTdHlsZShmZWF0dXJlLCBjbHVzdGVyUGFyYW06IENsdXN0ZXJQYXJhbSA9IHt9LCBsYXllclN0eWxlKSB7XG4gICAgbGV0IHN0eWxlO1xuICAgIGNvbnN0IHNpemUgPSBmZWF0dXJlLmdldCgnZmVhdHVyZXMnKS5sZW5ndGg7XG4gICAgaWYgKHNpemUgIT09IDEpIHtcbiAgICAgIGlmIChjbHVzdGVyUGFyYW0uY2x1c3RlclJhbmdlcykge1xuICAgICAgICBmb3IgKGNvbnN0IHIgb2YgY2x1c3RlclBhcmFtLmNsdXN0ZXJSYW5nZXMpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAoIXIubWluUmFkaXVzIHx8IHIubWluUmFkaXVzIDw9IHNpemUpICYmXG4gICAgICAgICAgICAoIXIubWF4UmFkaXVzIHx8IHIubWF4UmFkaXVzID49IHNpemUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzdHlsZSA9IHRoaXMuY3JlYXRlU3R5bGUoci5zdHlsZSkgYXMgb2xzdHlsZS5DaXJjbGU7XG5cbiAgICAgICAgICAgIGlmIChyLnNob3dSYW5nZSkge1xuICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gbmV3IG9sc3R5bGUuVGV4dCh7XG4gICAgICAgICAgICAgICAgdGV4dDogc2l6ZS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIGZpbGw6IG5ldyBvbHN0eWxlLkZpbGwoe1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICcjZmZmJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBzdHlsZS5zZXRUZXh0KHRleHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoci5keW5hbWljUmFkaXVzKSB7XG4gICAgICAgICAgICAgIGxldCBjbHVzdGVyUmFkaXVzOiBudW1iZXI7XG4gICAgICAgICAgICAgIGNvbnN0IHJhZGl1c01pbiA9IHN0eWxlLmdldFJhZGl1cygpO1xuICAgICAgICAgICAgICBjbHVzdGVyUmFkaXVzID0gNSAqIE1hdGgubG9nKHNpemUpO1xuICAgICAgICAgICAgICBpZiAoY2x1c3RlclJhZGl1cyA8IHJhZGl1c01pbikge1xuICAgICAgICAgICAgICAgIGNsdXN0ZXJSYWRpdXMgPSByYWRpdXNNaW47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgc3R5bGUuaW1hZ2VfLnNldFJhZGl1cyhjbHVzdGVyUmFkaXVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXN0eWxlKSB7XG4gICAgICAgIGxldCBjbHVzdGVyUmFkaXVzOiBudW1iZXI7XG4gICAgICAgIGlmIChjbHVzdGVyUGFyYW0ucmFkaXVzQ2FsYykge1xuICAgICAgICAgIGNsdXN0ZXJSYWRpdXMgPSBjbHVzdGVyUGFyYW0ucmFkaXVzQ2FsYyhzaXplKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCByYWRpdXNNaW4gPSA2O1xuICAgICAgICAgIGNsdXN0ZXJSYWRpdXMgPSA1ICogTWF0aC5sb2coc2l6ZSk7XG4gICAgICAgICAgaWYgKGNsdXN0ZXJSYWRpdXMgPCByYWRpdXNNaW4pIHtcbiAgICAgICAgICAgIGNsdXN0ZXJSYWRpdXMgPSByYWRpdXNNaW47XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3R5bGUgPSBbXG4gICAgICAgICAgbmV3IG9sc3R5bGUuU3R5bGUoe1xuICAgICAgICAgICAgaW1hZ2U6IG5ldyBvbHN0eWxlLkNpcmNsZSh7XG4gICAgICAgICAgICAgIHJhZGl1czogY2x1c3RlclJhZGl1cyxcbiAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2Uoe1xuICAgICAgICAgICAgICAgIGNvbG9yOiAnYmxhY2snXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjQsIDEzNCwgNDUsIDAuNSknXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHRleHQ6IG5ldyBvbHN0eWxlLlRleHQoe1xuICAgICAgICAgICAgICB0ZXh0OiBzaXplLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGZpbGw6IG5ldyBvbHN0eWxlLkZpbGwoe1xuICAgICAgICAgICAgICAgIGNvbG9yOiAnI2ZmZidcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSlcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGUgPSB0aGlzLmNyZWF0ZVN0eWxlKGxheWVyU3R5bGUpO1xuICAgIH1cbiAgICByZXR1cm4gc3R5bGU7XG4gIH1cblxuICBnZXRMYWJlbChmZWF0dXJlLCBsYWJlbE1hdGNoKTogc3RyaW5nIHtcbiAgICBsZXQgbGFiZWwgPSBsYWJlbE1hdGNoO1xuICAgIGlmICghbGFiZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbGFiZWxUb0dldCA9IEFycmF5LmZyb20obGFiZWxNYXRjaC5tYXRjaEFsbCgvXFwkXFx7KFteXFx7XFx9XSspXFx9L2cpKTtcblxuICAgIGxhYmVsVG9HZXQuZm9yRWFjaCh2ID0+IHtcbiAgICAgIGxhYmVsID0gbGFiZWwucmVwbGFjZSh2WzBdLCBmZWF0dXJlLmdldCh2WzFdKSk7XG4gICAgfSk7XG5cbiAgICAvLyBOb3RoaW5nIGRvbmU/IGNoZWNrIGZlYXR1cmUncyBhdHRyaWJ1dGVcbiAgICBpZiAobGFiZWxUb0dldC5sZW5ndGggPT09IDAgJiYgbGFiZWwgPT09IGxhYmVsTWF0Y2gpIHtcbiAgICAgIGxhYmVsID0gZmVhdHVyZS5nZXQobGFiZWxNYXRjaCkgfHwgbGFiZWxNYXRjaDtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cblxuICBwcml2YXRlIGd1ZXNzVHlwZUZlYXR1cmUoZmVhdHVyZSkge1xuICAgIHN3aXRjaCAoZmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSkge1xuICAgICAgY2FzZSAnUG9pbnQnOlxuICAgICAgY2FzZSAnTXVsdGlQb2ludCc6XG4gICAgICBjYXNlICdDaXJjbGUnOlxuICAgICAgICByZXR1cm4gJ2NpcmNsZSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ3JlZ3VsYXInO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
358
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9zdHlsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBSW5DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUtwRSxNQUFNLE9BQU8sWUFBWTtJQUd2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWtDRztJQUNILFdBQVcsQ0FBQyxPQUErQixFQUFFLE9BQStDLEVBQUUsVUFBbUI7O1FBRS9HLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLHdCQUF3QixFQUFFLENBQUM7U0FDbkM7UUFDRCxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsSUFBSSxPQUFPLFlBQVksT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNyRSxPQUFPLE9BQU8sQ0FBQztTQUNoQjtRQUNELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3pCLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1lBQzNCLElBQUksa0JBQWtCLEdBQUcsUUFBUSxDQUFDO1lBQ2xDLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtnQkFDaEIsTUFBTSwyQkFBMkIsR0FDL0IsQ0FBQSxNQUFBLE9BQU8sQ0FBQyxJQUFJLDBDQUFFLGFBQWEsRUFBQyxDQUFDLENBQUMsc0JBQXNC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S0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUNuRCxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUM7U0FDL0M7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFPO1FBQzlCLFFBQVEsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3ZDLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxZQUFZLENBQUM7WUFDbEIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1lBQ2xCO2dCQUNFLE9BQU8sU0FBUyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQzs7d0VBL1dVLFlBQVk7a0VBQVosWUFBWSxXQUFaLFlBQVksbUJBRlgsTUFBTTt1RkFFUCxZQUFZO2NBSHhCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCAqIGFzIG9sc3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xyXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgeyBTdHlsZUJ5QXR0cmlidXRlIH0gZnJvbSAnLi92ZWN0b3Itc3R5bGUuaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7IENsdXN0ZXJQYXJhbSB9IGZyb20gJy4vY2x1c3RlclBhcmFtJztcclxuaW1wb3J0IHsgY3JlYXRlT3ZlcmxheU1hcmtlclN0eWxlIH0gZnJvbSAnLi4vLi4vb3ZlcmxheS9zaGFyZWQvb3ZlcmxheS1tYXJrZXItc3R5bGUudXRpbHMnO1xyXG5pbXBvcnQgUmVuZGVyRmVhdHVyZSBmcm9tICdvbC9yZW5kZXIvRmVhdHVyZSc7XHJcbmltcG9ydCB7IGdldFJlc29sdXRpb25Gcm9tU2NhbGUgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdHlsZVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBzdHlsZTogb2xzdHlsZS5TdHlsZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgc3R5bGUgYmFzZWQgb24gYSBvYmplY3QgYXNcclxuICAgKiBzdHlsZToge1xyXG4gICAqICAgICAgIFwic3Ryb2tlXCI6IHtcclxuICAgKiAgICAgICAgIFwiY29sb3JcIjogXCJibHVlXCIsXHJcbiAgICogICAgICAgICBcImxpbmVEYXNoXCI6IFsxMCwgNV1cclxuICAgKiAgICAgICB9LFxyXG4gICAqICAgICAgIFwidGV4dFwiOiB7XHJcbiAgICogICAgICAgICBcIm1pblNjYWxlRGVub21cIjogNTAwMDAsXHJcbiAgICogICAgICAgICBcIm1heFNjYWxlRGVub21cIjogMjAwMDAwLFxyXG4gICAqICAgICAgICAgXCJtaW5SZXNvbHV0aW9uXCI6IDEwMCxcclxuICAgKiAgICAgICAgIFwibWF4UmVzb2x1dGlvblwiOiA0MDAsXHJcbiAgICogICAgICAgICBcImF0dHJpYnV0ZVwiOiBcIlRIRSBDT0xVTU4gTkFNRSBUTyBSRVRSSUVWRSBUSEUgTEFCRUwgVkFMVUVcIixcclxuICAgKiAgICAgICAgIFwidGV4dFwiOiBcIk1ZIEhBUkNPREVEIFRFWFRcIixcclxuICAgKiAgICAgICAgIFwic3Ryb2tlXCI6IHtcclxuICAgKiAgICAgICAgICAgXCJjb2xvclwiOiBcImJsdWVcIixcclxuICAgKiAgICAgICAgICAgXCJ3aWR0aFwiOiAwLjc1XHJcbiAgICogICAgICAgICB9LFxyXG4gICAqICAgICAgICAgXCJmaWxsXCI6IHtcclxuICAgKiAgICAgICAgICAgXCJjb2xvclwiOiBcImJsYWNrXCJcclxuICAgKiAgICAgICAgIH0sXHJcbiAgICogICAgICAgICBcImZvbnRcIjogXCIyMHB4IHNhbnMtc2VyaWZcIixcclxuICAgKiAgICAgICAgIFwib3ZlcmZsb3dcIjogdHJ1ZSxcclxuICAgKiAgICAgICAgIFwib2Zmc2V0WFwiOiAxMCxcclxuICAgKiAgICAgICAgIFwib2Zmc2V0WVwiOiAyMCxcclxuICAgKiAgICAgICAgIFwicGFkZGluZ1wiOiBbMi41LCAyLjUsIDIuNSwgMi41XVxyXG4gICAqICAgICAgIH0sXHJcbiAgICogICAgICAgXCJ3aWR0aFwiOiA1XHJcbiAgICogICAgIH1cclxuICAgKlxyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICogQHBhcmFtIGZlYXR1cmUgZmVhdHVyZSB0byBhcHBseSBzdHlsZSBvblxyXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIGN1cnJlbnQgbWFwIHJlc29sdXRpb24sIHRvIGNvbnRyb2wgbGFiZWwgcmVzb2x1dGlvbiByYW5nZVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgY3JlYXRlU3R5bGUob3B0aW9uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgZmVhdHVyZT86IFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT4sIHJlc29sdXRpb24/OiBudW1iZXIpIHtcclxuXHJcbiAgICBpZiAoIW9wdGlvbnMpIHtcclxuICAgICAgcmV0dXJuIGNyZWF0ZU92ZXJsYXlNYXJrZXJTdHlsZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nIHx8IG9wdGlvbnMgaW5zdGFuY2VvZiBvbHN0eWxlLlN0eWxlKSB7XHJcbiAgICAgIHJldHVybiBvcHRpb25zO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFyc2VkU3R5bGUgPSB0aGlzLnBhcnNlU3R5bGUoJ3N0eWxlJywgb3B0aW9ucyk7XHJcbiAgICBpZiAocGFyc2VkU3R5bGUuZ2V0VGV4dCgpKSB7XHJcbiAgICAgIGxldCBsYWJlbE1pblJlc29sdXRpb24gPSAwO1xyXG4gICAgICBsZXQgbGFiZWxNYXhSZXNvbHV0aW9uID0gSW5maW5pdHk7XHJcbiAgICAgIGlmIChvcHRpb25zLnRleHQpIHtcclxuICAgICAgICBjb25zdCBsYWJlbE1pblJlc29sdXRpb25Gcm9tU2NhbGUgPVxyXG4gICAgICAgICAgb3B0aW9ucy50ZXh0Py5taW5TY2FsZURlbm9tID8gZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShOdW1iZXIob3B0aW9ucy50ZXh0Lm1pblNjYWxlRGVub20pKSA6IHVuZGVmaW5lZDtcclxuICAgICAgICBjb25zdCBsYWJlbE1heFJlc29sdXRpb25Gcm9tU2NhbGUgPVxyXG4gICAgICAgICAgb3B0aW9ucy50ZXh0Py5tYXhTY2FsZURlbm9tID8gZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShOdW1iZXIob3B0aW9ucy50ZXh0Lm1heFNjYWxlRGVub20pKSA6IHVuZGVmaW5lZDtcclxuICAgICAgICBjb25zdCBtaW5SZXNvbHV0aW9uID0gb3B0aW9ucy50ZXh0Py5taW5SZXNvbHV0aW9uID8gb3B0aW9ucy50ZXh0Lm1pblJlc29sdXRpb24gOiAwO1xyXG4gICAgICAgIGNvbnN0IG1heFJlc29sdXRpb24gPSBvcHRpb25zLnRleHQ/Lm1heFJlc29sdXRpb24gPyBvcHRpb25zLnRleHQubWF4UmVzb2x1dGlvbiA6IEluZmluaXR5O1xyXG5cclxuICAgICAgICBsYWJlbE1pblJlc29sdXRpb24gPSBsYWJlbE1pblJlc29sdXRpb25Gcm9tU2NhbGUgfHwgbWluUmVzb2x1dGlvbjtcclxuICAgICAgICBsYWJlbE1heFJlc29sdXRpb24gPSBsYWJlbE1heFJlc29sdXRpb25Gcm9tU2NhbGUgfHwgbWF4UmVzb2x1dGlvbjtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZmVhdHVyZSAmJiByZXNvbHV0aW9uID49IGxhYmVsTWluUmVzb2x1dGlvbiAmJiByZXNvbHV0aW9uIDw9IGxhYmVsTWF4UmVzb2x1dGlvbikge1xyXG4gICAgICAgIGlmIChmZWF0dXJlICYmIG9wdGlvbnMudGV4dC5hdHRyaWJ1dGUpIHtcclxuICAgICAgICAgIHBhcnNlZFN0eWxlLmdldFRleHQoKS5zZXRUZXh0KHRoaXMuZ2V0TGFiZWwoZmVhdHVyZSwgb3B0aW9ucy50ZXh0LmF0dHJpYnV0ZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJzZWRTdHlsZS5zZXRUZXh0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwYXJzZWRTdHlsZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VTdHlsZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgY29uc3Qgc3R5bGVPcHRpb25zID0ge307XHJcbiAgICBjb25zdCBvbENscyA9IHRoaXMuZ2V0T2xDbHMoa2V5KTtcclxuXHJcbiAgICBpZiAob2xDbHMgJiYgdmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpIHtcclxuICAgICAgT2JqZWN0LmtleXModmFsdWUpLmZvckVhY2goX2tleSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2xLZXkgPSB0aGlzLmdldE9sS2V5KF9rZXkpO1xyXG4gICAgICAgIHN0eWxlT3B0aW9uc1tvbEtleV0gPSB0aGlzLnBhcnNlU3R5bGUoX2tleSwgdmFsdWVbX2tleV0pO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG5ldyBvbENscyhzdHlsZU9wdGlvbnMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRPbEtleShrZXk6IGFueSkge1xyXG4gICAgbGV0IG9sS2V5O1xyXG4gICAgc3dpdGNoIChrZXkudG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICBjYXNlICdjaXJjbGUnOlxyXG4gICAgICBjYXNlICdyZWd1bGFyc2hhcGUnOlxyXG4gICAgICBjYXNlICdpY29uJzpcclxuICAgICAgICBvbEtleSA9ICdpbWFnZSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9sS2V5IHx8IGtleTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0T2xDbHMoa2V5OiBhbnkpIHtcclxuICAgIGxldCBvbENscyA9IG9sc3R5bGVba2V5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsga2V5LnNsaWNlKDEpXTtcclxuICAgIGlmIChrZXkgPT09ICdyZWd1bGFyc2hhcGUnKSB7XHJcbiAgICAgIG9sQ2xzID0gb2xzdHlsZS5SZWd1bGFyU2hhcGU7XHJcbiAgICB9XHJcbiAgICBpZiAoa2V5ID09PSAnYmFja2dyb3VuZEZpbGwnKSB7XHJcbiAgICAgIG9sQ2xzID0gb2xzdHlsZS5GaWxsO1xyXG4gICAgfVxyXG4gICAgaWYgKGtleSA9PT0gJ2JhY2tncm91bmRTdHJva2UnKSB7XHJcbiAgICAgIG9sQ2xzID0gb2xzdHlsZS5TdHJva2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9sQ2xzO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlU3R5bGVCeUF0dHJpYnV0ZShmZWF0dXJlOiBSZW5kZXJGZWF0dXJlIHwgT2xGZWF0dXJlPE9sR2VvbWV0cnk+LCBzdHlsZUJ5QXR0cmlidXRlOiBTdHlsZUJ5QXR0cmlidXRlLCByZXNvbHV0aW9uOiBudW1iZXIpIHtcclxuXHJcbiAgICBsZXQgc3R5bGU7XHJcbiAgICBjb25zdCB0eXBlID0gc3R5bGVCeUF0dHJpYnV0ZS50eXBlID8gc3R5bGVCeUF0dHJpYnV0ZS50eXBlIDogdGhpcy5ndWVzc1R5cGVGZWF0dXJlKGZlYXR1cmUpO1xyXG4gICAgY29uc3QgYXR0cmlidXRlID0gc3R5bGVCeUF0dHJpYnV0ZS5hdHRyaWJ1dGU7XHJcbiAgICBjb25zdCBkYXRhID0gc3R5bGVCeUF0dHJpYnV0ZS5kYXRhO1xyXG4gICAgY29uc3Qgc3Ryb2tlID0gc3R5bGVCeUF0dHJpYnV0ZS5zdHJva2U7XHJcbiAgICBjb25zdCB3aWR0aCA9IHN0eWxlQnlBdHRyaWJ1dGUud2lkdGg7XHJcbiAgICBjb25zdCBmaWxsID0gc3R5bGVCeUF0dHJpYnV0ZS5maWxsO1xyXG4gICAgY29uc3QgYW5jaG9yID0gc3R5bGVCeUF0dHJpYnV0ZS5hbmNob3I7XHJcbiAgICBjb25zdCByYWRpdXMgPSBzdHlsZUJ5QXR0cmlidXRlLnJhZGl1cztcclxuICAgIGNvbnN0IGljb24gPSBzdHlsZUJ5QXR0cmlidXRlLmljb247XHJcbiAgICBjb25zdCBzY2FsZSA9IHN0eWxlQnlBdHRyaWJ1dGUuc2NhbGU7XHJcbiAgICBjb25zdCBzaXplID0gZGF0YSA/IGRhdGEubGVuZ3RoIDogMDtcclxuICAgIGNvbnN0IGxhYmVsID0gc3R5bGVCeUF0dHJpYnV0ZS5sYWJlbCA/IHN0eWxlQnlBdHRyaWJ1dGUubGFiZWwuYXR0cmlidXRlIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgbGFiZWxNaW5SZXNvbHV0aW9uRnJvbVNjYWxlID1cclxuICAgICAgc3R5bGVCeUF0dHJpYnV0ZS5sYWJlbD8ubWluU2NhbGVEZW5vbSA/IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoTnVtYmVyKHN0eWxlQnlBdHRyaWJ1dGUubGFiZWwubWluU2NhbGVEZW5vbSkpIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgbGFiZWxNYXhSZXNvbHV0aW9uRnJvbVNjYWxlID1cclxuICAgICAgc3R5bGVCeUF0dHJpYnV0ZS5sYWJlbD8ubWF4U2NhbGVEZW5vbSA/IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoTnVtYmVyKHN0eWxlQnlBdHRyaWJ1dGUubGFiZWwubWF4U2NhbGVEZW5vbSkpIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgbWluUmVzb2x1dGlvbiA9IHN0eWxlQnlBdHRyaWJ1dGUubGFiZWw/Lm1pblJlc29sdXRpb24gPyBzdHlsZUJ5QXR0cmlidXRlLmxhYmVsLm1pblJlc29sdXRpb24gOiAwO1xyXG4gICAgY29uc3QgbWF4UmVzb2x1dGlvbiA9IHN0eWxlQnlBdHRyaWJ1dGUubGFiZWw/Lm1heFJlc29sdXRpb24gPyBzdHlsZUJ5QXR0cmlidXRlLmxhYmVsLm1heFJlc29sdXRpb24gOiBJbmZpbml0eTtcclxuXHJcbiAgICBjb25zdCBsYWJlbE1pblJlc29sdXRpb24gPSBsYWJlbE1pblJlc29sdXRpb25Gcm9tU2NhbGUgfHwgbWluUmVzb2x1dGlvbjtcclxuICAgIGNvbnN0IGxhYmVsTWF4UmVzb2x1dGlvbiA9IGxhYmVsTWF4UmVzb2x1dGlvbkZyb21TY2FsZSB8fCBtYXhSZXNvbHV0aW9uO1xyXG5cclxuICAgIGxldCBsYWJlbFN0eWxlID0gc3R5bGVCeUF0dHJpYnV0ZS5sYWJlbD8uc3R5bGUgPyB0aGlzLnBhcnNlU3R5bGUoJ3RleHQnLCBzdHlsZUJ5QXR0cmlidXRlLmxhYmVsLnN0eWxlKSA6IHVuZGVmaW5lZDtcclxuICAgIGlmICghbGFiZWxTdHlsZSAmJiBsYWJlbCkge1xyXG4gICAgICAgIGxhYmVsU3R5bGUgPSBuZXcgb2xzdHlsZS5UZXh0KCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBiYXNlU3R5bGUgPSBzdHlsZUJ5QXR0cmlidXRlLmJhc2VTdHlsZTtcclxuXHJcbiAgICBpZiAobGFiZWxTdHlsZSkge1xyXG4gICAgICBpZiAocmVzb2x1dGlvbiA+PSBsYWJlbE1pblJlc29sdXRpb24gJiYgcmVzb2x1dGlvbiA8PSBsYWJlbE1heFJlc29sdXRpb24pIHtcclxuICAgICAgICBsYWJlbFN0eWxlLnNldFRleHQodGhpcy5nZXRMYWJlbChmZWF0dXJlLCBsYWJlbCkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxhYmVsU3R5bGUuc2V0VGV4dCgnJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZSA9PT0gJ2NpcmNsZScpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcclxuICAgICAgICBjb25zdCB2YWwgPVxyXG4gICAgICAgICAgdHlwZW9mIGZlYXR1cmUuZ2V0KGF0dHJpYnV0ZSkgIT09ICd1bmRlZmluZWQnICYmIGZlYXR1cmUuZ2V0KGF0dHJpYnV0ZSkgIT09IG51bGxcclxuICAgICAgICAgICAgPyBmZWF0dXJlLmdldChhdHRyaWJ1dGUpXHJcbiAgICAgICAgICAgIDogJyc7XHJcbiAgICAgICAgaWYgKHZhbCA9PT0gZGF0YVtpXSB8fCB2YWwudG9TdHJpbmcoKS5tYXRjaChuZXcgUmVnRXhwKGRhdGFbaV0sICdnbWknKSkpIHtcclxuICAgICAgICAgIGlmIChpY29uKSB7XHJcbiAgICAgICAgICAgIHN0eWxlID0gW1xyXG4gICAgICAgICAgICAgIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgICAgICAgICAgIGltYWdlOiBuZXcgb2xzdHlsZS5JY29uKHtcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IGZpbGwgPyBmaWxsW2ldIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICBzcmM6IGljb25baV0sXHJcbiAgICAgICAgICAgICAgICAgIHNjYWxlOiBzY2FsZSA/IHNjYWxlW2ldIDogMSxcclxuICAgICAgICAgICAgICAgICAgYW5jaG9yOiBhbmNob3IgPyBhbmNob3JbaV0gOiBbMC41LCAwLjVdXHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIHRleHQ6IGxhYmVsU3R5bGUgaW5zdGFuY2VvZiBvbHN0eWxlLlRleHQgPyBsYWJlbFN0eWxlIDogdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgcmV0dXJuIHN0eWxlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc3R5bGUgPSBbXHJcbiAgICAgICAgICAgIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgICAgICAgICBpbWFnZTogbmV3IG9sc3R5bGUuQ2lyY2xlKHtcclxuICAgICAgICAgICAgICAgIHJhZGl1czogcmFkaXVzID8gcmFkaXVzW2ldIDogNCxcclxuICAgICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sc3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IHN0cm9rZSA/IHN0cm9rZVtpXSA6ICdibGFjaycsXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCA/IHdpZHRoW2ldIDogMVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcclxuICAgICAgICAgICAgICAgICAgY29sb3I6IGZpbGwgPyBmaWxsW2ldIDogJ2JsYWNrJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICB0ZXh0OiBsYWJlbFN0eWxlIGluc3RhbmNlb2Ygb2xzdHlsZS5UZXh0ID8gbGFiZWxTdHlsZSA6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgXTtcclxuICAgICAgICAgIHJldHVybiBzdHlsZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCEoZmVhdHVyZSBhcyBPbEZlYXR1cmU8T2xHZW9tZXRyeT4pLmdldFN0eWxlKCkpIHtcclxuICAgICAgICBpZiAoYmFzZVN0eWxlKSB7XHJcbiAgICAgICAgICBzdHlsZSA9IHRoaXMuY3JlYXRlU3R5bGUoYmFzZVN0eWxlLCBmZWF0dXJlLCByZXNvbHV0aW9uKTtcclxuICAgICAgICAgIGlmIChsYWJlbFN0eWxlKSB7XHJcbiAgICAgICAgICAgIHN0eWxlLnNldFRleHQobGFiZWxTdHlsZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gc3R5bGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0eWxlID0gW1xyXG4gICAgICAgICAgbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICBpbWFnZTogbmV3IG9sc3R5bGUuQ2lyY2xlKHtcclxuICAgICAgICAgICAgICByYWRpdXM6IDQsXHJcbiAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaydcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAnI2JiYmJmMidcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBzdHlsZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAncmVndWxhcicpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHtcclxuICAgICAgICBjb25zdCB2YWwgPVxyXG4gICAgICAgIHR5cGVvZiBmZWF0dXJlLmdldChhdHRyaWJ1dGUpICE9PSAndW5kZWZpbmVkJyAmJiBmZWF0dXJlLmdldChhdHRyaWJ1dGUpICE9PSBudWxsXHJcbiAgICAgICAgICAgID8gZmVhdHVyZS5nZXQoYXR0cmlidXRlKVxyXG4gICAgICAgICAgICA6ICcnO1xyXG4gICAgICAgIGlmICh2YWwgPT09IGRhdGFbaV0gfHwgdmFsLnRvU3RyaW5nKCkubWF0Y2gobmV3IFJlZ0V4cChkYXRhW2ldLCAnZ21pJykpKSB7XHJcbiAgICAgICAgICBzdHlsZSA9IFtcclxuICAgICAgICAgICAgbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICAgIHN0cm9rZTogbmV3IG9sc3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBzdHJva2UgPyBzdHJva2VbaV0gOiAnYmxhY2snLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoID8gd2lkdGhbaV0gOiAxXHJcbiAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgZmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogZmlsbCA/IGZpbGxbaV0gOiAncmdiYSgyNTUsMjU1LDI1NSwwLjQpJ1xyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIHRleHQ6IGxhYmVsU3R5bGUgaW5zdGFuY2VvZiBvbHN0eWxlLlRleHQgPyBsYWJlbFN0eWxlIDogdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICBdO1xyXG4gICAgICAgICAgcmV0dXJuIHN0eWxlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoZmVhdHVyZSBpbnN0YW5jZW9mIE9sRmVhdHVyZSkge1xyXG4gICAgICAgIGlmICghZmVhdHVyZS5nZXRTdHlsZSgpKSB7XHJcbiAgICAgICAgICBpZiAoYmFzZVN0eWxlKSB7XHJcbiAgICAgICAgICAgIHN0eWxlID0gdGhpcy5jcmVhdGVTdHlsZShiYXNlU3R5bGUsIGZlYXR1cmUsIHJlc29sdXRpb24pO1xyXG4gICAgICAgICAgICBpZiAobGFiZWxTdHlsZSkge1xyXG4gICAgICAgICAgICAgIHN0eWxlLnNldFRleHQobGFiZWxTdHlsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHN0eWxlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc3R5bGUgPSBbXHJcbiAgICAgICAgICAgIG5ldyBvbHN0eWxlLlN0eWxlKHtcclxuICAgICAgICAgICAgICBzdHJva2U6IG5ldyBvbHN0eWxlLlN0cm9rZSh7XHJcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2JsYWNrJ1xyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIGZpbGw6IG5ldyBvbHN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICcjYmJiYmYyJ1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICBdO1xyXG4gICAgICAgICAgcmV0dXJuIHN0eWxlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ2x1c3RlclN0eWxlKGZlYXR1cmU6IFJlbmRlckZlYXR1cmUgfCBPbEZlYXR1cmU8T2xHZW9tZXRyeT4sIHJlc29sdXRpb246IG51bWJlciwgY2x1c3RlclBhcmFtOiBDbHVzdGVyUGFyYW0gPSB7fSwgbGF5ZXJTdHlsZSkge1xyXG4gICAgbGV0IHN0eWxlO1xyXG4gICAgY29uc3Qgc2l6ZSA9IGZlYXR1cmUuZ2V0KCdmZWF0dXJlcycpLmxlbmd0aDtcclxuICAgIGlmIChzaXplICE9PSAxKSB7XHJcbiAgICAgIGlmIChjbHVzdGVyUGFyYW0uY2x1c3RlclJhbmdlcykge1xyXG4gICAgICAgIGZvciAoY29uc3QgciBvZiBjbHVzdGVyUGFyYW0uY2x1c3RlclJhbmdlcykge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAoIXIubWluUmFkaXVzIHx8IHIubWluUmFkaXVzIDw9IHNpemUpICYmXHJcbiAgICAgICAgICAgICghci5tYXhSYWRpdXMgfHwgci5tYXhSYWRpdXMgPj0gc2l6ZSlcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBzdHlsZSA9IHRoaXMuY3JlYXRlU3R5bGUoci5zdHlsZSkgYXMgb2xzdHlsZS5DaXJjbGU7XHJcblxyXG4gICAgICAgICAgICBpZiAoci5zaG93UmFuZ2UpIHtcclxuICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gbmV3IG9sc3R5bGUuVGV4dCh7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBzaXplLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcclxuICAgICAgICAgICAgICAgICAgY29sb3I6ICcjZmZmJ1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBzdHlsZS5zZXRUZXh0KHRleHQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoci5keW5hbWljUmFkaXVzKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGNsdXN0ZXJSYWRpdXM6IG51bWJlcjtcclxuICAgICAgICAgICAgICBjb25zdCByYWRpdXNNaW4gPSBzdHlsZS5nZXRSYWRpdXMoKTtcclxuICAgICAgICAgICAgICBjbHVzdGVyUmFkaXVzID0gNSAqIE1hdGgubG9nKHNpemUpO1xyXG4gICAgICAgICAgICAgIGlmIChjbHVzdGVyUmFkaXVzIDwgcmFkaXVzTWluKSB7XHJcbiAgICAgICAgICAgICAgICBjbHVzdGVyUmFkaXVzID0gcmFkaXVzTWluO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBzdHlsZS5pbWFnZV8uc2V0UmFkaXVzKGNsdXN0ZXJSYWRpdXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCFzdHlsZSkge1xyXG4gICAgICAgIGxldCBjbHVzdGVyUmFkaXVzOiBudW1iZXI7XHJcbiAgICAgICAgaWYgKGNsdXN0ZXJQYXJhbS5yYWRpdXNDYWxjKSB7XHJcbiAgICAgICAgICBjbHVzdGVyUmFkaXVzID0gY2x1c3RlclBhcmFtLnJhZGl1c0NhbGMoc2l6ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHJhZGl1c01pbiA9IDY7XHJcbiAgICAgICAgICBjbHVzdGVyUmFkaXVzID0gNSAqIE1hdGgubG9nKHNpemUpO1xyXG4gICAgICAgICAgaWYgKGNsdXN0ZXJSYWRpdXMgPCByYWRpdXNNaW4pIHtcclxuICAgICAgICAgICAgY2x1c3RlclJhZGl1cyA9IHJhZGl1c01pbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN0eWxlID0gW1xyXG4gICAgICAgICAgbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgICAgICAgICBpbWFnZTogbmV3IG9sc3R5bGUuQ2lyY2xlKHtcclxuICAgICAgICAgICAgICByYWRpdXM6IGNsdXN0ZXJSYWRpdXMsXHJcbiAgICAgICAgICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICdibGFjaydcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICBmaWxsOiBuZXcgb2xzdHlsZS5GaWxsKHtcclxuICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNCwgMTM0LCA0NSwgMC41KSdcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGV4dDogbmV3IG9sc3R5bGUuVGV4dCh7XHJcbiAgICAgICAgICAgICAgdGV4dDogc2l6ZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgIGZpbGw6IG5ldyBvbHN0eWxlLkZpbGwoe1xyXG4gICAgICAgICAgICAgICAgY29sb3I6ICcjZmZmJ1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN0eWxlID0gdGhpcy5jcmVhdGVTdHlsZShsYXllclN0eWxlLCBmZWF0dXJlLCByZXNvbHV0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdHlsZTtcclxuICB9XHJcblxyXG4gIGdldExhYmVsKGZlYXR1cmUsIGxhYmVsTWF0Y2gpOiBzdHJpbmcge1xyXG4gICAgbGV0IGxhYmVsID0gbGFiZWxNYXRjaDtcclxuICAgIGlmICghbGFiZWwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbGFiZWxUb0dldCA9IEFycmF5LmZyb20obGFiZWxNYXRjaC5tYXRjaEFsbCgvXFwkXFx7KFteXFx7XFx9XSspXFx9L2cpKTtcclxuXHJcbiAgICBsYWJlbFRvR2V0LmZvckVhY2godiA9PiB7XHJcbiAgICAgIGxhYmVsID0gbGFiZWwucmVwbGFjZSh2WzBdLCBmZWF0dXJlLmdldCh2WzFdKSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBOb3RoaW5nIGRvbmU/IGNoZWNrIGZlYXR1cmUncyBhdHRyaWJ1dGVcclxuICAgIGlmIChsYWJlbFRvR2V0Lmxlbmd0aCA9PT0gMCAmJiBsYWJlbCA9PT0gbGFiZWxNYXRjaCkge1xyXG4gICAgICBsYWJlbCA9IGZlYXR1cmUuZ2V0KGxhYmVsTWF0Y2gpIHx8IGxhYmVsTWF0Y2g7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxhYmVsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBndWVzc1R5cGVGZWF0dXJlKGZlYXR1cmUpIHtcclxuICAgIHN3aXRjaCAoZmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSkge1xyXG4gICAgICBjYXNlICdQb2ludCc6XHJcbiAgICAgIGNhc2UgJ011bHRpUG9pbnQnOlxyXG4gICAgICBjYXNlICdDaXJjbGUnOlxyXG4gICAgICAgIHJldHVybiAnY2lyY2xlJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ3JlZ3VsYXInO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLXN0eWxlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC92ZWN0b3Itc3R5bGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFN0eWxlQnlBdHRyaWJ1dGUge1xyXG4gICAgYW5jaG9yPzogQXJyYXk8W251bWJlcixudW1iZXJdPjtcclxuICAgIHR5cGU/OiBzdHJpbmc7XHJcbiAgICBhdHRyaWJ1dGU/OiBzdHJpbmc7XHJcbiAgICBkYXRhPzogQXJyYXk8YW55PjtcclxuICAgIGZpbGw/OiBBcnJheTxzdHJpbmc+O1xyXG4gICAgc3Ryb2tlPzogQXJyYXk8c3RyaW5nPjtcclxuICAgIHdpZHRoPzogQXJyYXk8bnVtYmVyPjtcclxuICAgIHJhZGl1cz86IEFycmF5PG51bWJlcj47XHJcbiAgICBpY29uPzogQXJyYXk8c3RyaW5nPjtcclxuICAgIHNjYWxlPzogQXJyYXk8bnVtYmVyPjtcclxuICAgIGxhYmVsPzogSWdvTGFiZWw7XHJcbiAgICBiYXNlU3R5bGU/OiB7IFtrZXk6IHN0cmluZ106IGFueSwgYWxsbz86IHN0cmluZyB9O1xyXG4gICAgaG92ZXJTdHlsZT86IFN0eWxlQnlBdHRyaWJ1dGU7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVN0eWxlIHtcclxuICBpZ29MYWJlbD86IElnb0xhYmVsLFxyXG4gIGlnb1N0eWxlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJZ29MYWJlbCB7XHJcbiAgYXR0cmlidXRlOiBzdHJpbmc7XHJcbiAgc3R5bGU/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG4gIG1pblJlc29sdXRpb24/OiBudW1iZXI7XHJcbiAgbWF4UmVzb2x1dGlvbj86IG51bWJlcjtcclxuICBtaW5TY2FsZURlbm9tPzogbnVtYmVyO1xyXG4gIG1heFNjYWxlRGVub20/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFwYm94U3R5bGUge1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHNvdXJjZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './track-feature-button.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci90cmFjay1mZWF0dXJlLWJ1dHRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90cmFjay1mZWF0dXJlLWJ1dHRvbi5jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -61,4 +61,4 @@ TrackFeatureButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
61
61
|
}], trackFeature: [{
|
|
62
62
|
type: Input
|
|
63
63
|
}] }); })();
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvdHJhY2stZmVhdHVyZS1idXR0b24vdHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvdHJhY2stZmVhdHVyZS1idXR0b24vdHJhY2stZmVhdHVyZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7OztJQ0FsRixpQ0FPaUM7SUFBL0IsME1BQThCOztJQUM5Qiw4QkFBOEM7SUFDaEQsaUJBQVM7OztJQUpQLCtFQUF1RCx1QkFBQTs7QURNekQsTUFBTSxPQUFPLDJCQUEyQjtJQWV0QztRQVhTLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBU3ZCLFVBQUssR0FBVyxTQUFTLENBQUM7SUFFbEIsQ0FBQztJQVRoQixJQUFJLE9BQU87UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU87U0FDUjtRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDNUIsQ0FBQztJQU1ELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUM7U0FDdEI7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7U0FDeEI7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6QyxDQUFDOztzR0E5QlUsMkJBQTJCOzhFQUEzQiwyQkFBMkI7UUNYeEMsa0ZBU1M7O1FBVEEsK0NBQTBCOzt1RkRXdEIsMkJBQTJCO2NBTnZDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxXQUFXLEVBQUUsdUNBQXVDO2dCQUNwRCxTQUFTLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQztnQkFDcEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7c0NBR1UsS0FBSztrQkFBYixLQUFLO1lBRUcsWUFBWTtrQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFZlY3RvckxheWVyIH0gZnJvbSAnLi4vc2hhcmVkL2xheWVycyc7XHJcbmltcG9ydCB7IFZlY3RvckxheWVyT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvdmVjdG9yLWxheWVyLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby10cmFjay1mZWF0dXJlLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYWNrLWZlYXR1cmUtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmFjay1mZWF0dXJlLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFja0ZlYXR1cmVCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBsYXllcjogVmVjdG9yTGF5ZXI7XHJcblxyXG4gIEBJbnB1dCgpIHRyYWNrRmVhdHVyZSA9IGZhbHNlO1xyXG5cclxuICBnZXQgb3B0aW9ucygpOiBWZWN0b3JMYXllck9wdGlvbnMge1xyXG4gICAgaWYgKCF0aGlzLmxheWVyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmxheWVyLm9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29sb3I6IHN0cmluZyA9ICdwcmltYXJ5JztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29sb3IgPSB0aGlzLnRyYWNrRmVhdHVyZSA/ICdwcmltYXJ5JyA6ICdiYXNpYyc7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVUcmFja0ZlYXR1cmUoKSB7XHJcbiAgICBpZiAodGhpcy50cmFja0ZlYXR1cmUpIHtcclxuICAgICAgdGhpcy5sYXllci5kaXNhYmxlVHJhY2tGZWF0dXJlKHRoaXMubGF5ZXIub3B0aW9ucy50cmFja0ZlYXR1cmUpO1xyXG4gICAgICB0aGlzLmNvbG9yID0gJ2Jhc2ljJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubGF5ZXIuZW5hYmxlVHJhY2tGZWF0dXJlKHRoaXMubGF5ZXIub3B0aW9ucy50cmFja0ZlYXR1cmUpO1xyXG4gICAgICB0aGlzLmNvbG9yID0gJ3ByaW1hcnknO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFja0ZlYXR1cmUgPSAhdGhpcy50cmFja0ZlYXR1cmU7XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b24gKm5nSWY9XCJvcHRpb25zLnRyYWNrRmVhdHVyZVwiXHJcbiAgbWF0LWljb24tYnV0dG9uXHJcbiAgY29sbGFwc2libGVCdXR0b25cclxuICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmxheWVyLnRyYWNrRmVhdHVyZScgfCB0cmFuc2xhdGVcIlxyXG4gIFtjb2xvcl09XCJjb2xvclwiXHJcbiAgKGNsaWNrKT1cInRvZ2dsZVRyYWNrRmVhdHVyZSgpXCI+XHJcbiAgPG1hdC1pY29uIHN2Z0ljb249XCJjcm9zc2hhaXJzLWdwc1wiPjwvbWF0LWljb24+XHJcbjwvYnV0dG9uPlxyXG4iXX0=
|
|
@@ -59,4 +59,4 @@ export class ImageWatcher extends Watcher {
|
|
|
59
59
|
this.status = SubjectStatus.Error;
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Utd2F0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3V0aWxzL2ltYWdlLXdhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzNELE1BQU0sT0FBTyxZQUFhLFNBQVEsT0FBTztJQVV2QyxZQUFZLEtBQWlCLEVBQUUsY0FBOEIsRUFBRSxlQUFnQztRQUM3RixLQUFLLEVBQUUsQ0FBQztRQVRBLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBU3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDekMsQ0FBQztJQUVTLEtBQUs7UUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVTLE9BQU87UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFVO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRTtZQUM3QixLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7U0FDL0I7UUFDRCxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUN0QyxDQUFDO0lBRU8sYUFBYSxDQUFDLEtBQUs7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0QsSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLE9BQU87U0FDUjtRQUVELEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFFakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxFQUFFO1lBQzFCLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDakMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQzthQUNoQztTQUNGO0lBQ0gsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFLO1FBRTNCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRTtZQUM3QixPQUFPO1NBQ1I7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQ2xELHFDQUFxQyxDQUN0QyxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUNwRCxnQ0FBZ0MsRUFBRSxFQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUMsQ0FDdkUsQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUVwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xTb3VyY2VJbWFnZSBmcm9tICdvbC9zb3VyY2UvSW1hZ2UnO1xyXG5pbXBvcnQgeyB1dWlkLCBXYXRjaGVyLCBTdWJqZWN0U3RhdHVzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IEltYWdlTGF5ZXIgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2ltYWdlLWxheWVyJztcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgSW1hZ2VXYXRjaGVyIGV4dGVuZHMgV2F0Y2hlciB7XHJcbiAgcHJvdGVjdGVkIGlkOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIGxvYWRlZCA9IDA7XHJcbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSAwO1xyXG5cclxuICBwcml2YXRlIHNvdXJjZTogb2xTb3VyY2VJbWFnZTtcclxuXHJcbiAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2U7XHJcbiAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZTtcclxuXHJcbiAgY29uc3RydWN0b3IobGF5ZXI6IEltYWdlTGF5ZXIsIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLnNvdXJjZSA9IGxheWVyLm9wdGlvbnMuc291cmNlLm9sO1xyXG4gICAgdGhpcy5pZCA9IHV1aWQoKTtcclxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UgPSBtZXNzYWdlU2VydmljZTtcclxuICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlID0gbGFuZ3VhZ2VTZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHdhdGNoKCkge1xyXG4gICAgdGhpcy5zb3VyY2Uub24oYGltYWdlbG9hZHN0YXJ0YCwgZSA9PiB0aGlzLmhhbmRsZUxvYWRTdGFydChlKSk7XHJcbiAgICB0aGlzLnNvdXJjZS5vbihgaW1hZ2Vsb2FkZW5kYCwgZSA9PiB0aGlzLmhhbmRsZUxvYWRFbmQoZSkpO1xyXG4gICAgdGhpcy5zb3VyY2Uub24oYGltYWdlbG9hZGVycm9yYCwgZSA9PiB0aGlzLmhhbmRsZUxvYWRFbmQoZSkpO1xyXG4gICAgdGhpcy5zb3VyY2Uub24oYGltYWdlbG9hZGVycm9yYCwgZSA9PiB0aGlzLmhhbmRsZUxvYWRFcnJvcihlKSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdW53YXRjaCgpIHtcclxuICAgIHRoaXMuc291cmNlLnVuKGBpbWFnZWxvYWRzdGFydGAsIGUgPT4gdGhpcy5oYW5kbGVMb2FkU3RhcnQoZSkpO1xyXG4gICAgdGhpcy5zb3VyY2UudW4oYGltYWdlbG9hZGVuZGAsIGUgPT4gdGhpcy5oYW5kbGVMb2FkRW5kKGUpKTtcclxuICAgIHRoaXMuc291cmNlLnVuKGBpbWFnZWxvYWRlcnJvcmAsIGUgPT4gdGhpcy5oYW5kbGVMb2FkRW5kKGUpKTtcclxuICAgIHRoaXMuc291cmNlLnVuKGBpbWFnZWxvYWRlcnJvcmAsIGUgPT4gdGhpcy5oYW5kbGVMb2FkRXJyb3IoZSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVMb2FkU3RhcnQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKCFldmVudC5pbWFnZS5fX3dhdGNoZXJzX18pIHtcclxuICAgICAgZXZlbnQuaW1hZ2UuX193YXRjaGVyc19fID0gW107XHJcbiAgICB9XHJcbiAgICBldmVudC5pbWFnZS5fX3dhdGNoZXJzX18ucHVzaCh0aGlzLmlkKTtcclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgKz0gMTtcclxuICAgIHRoaXMuc3RhdHVzID0gU3ViamVjdFN0YXR1cy5Xb3JraW5nO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVMb2FkRW5kKGV2ZW50KSB7XHJcbiAgICBpZiAoIWV2ZW50LmltYWdlLl9fd2F0Y2hlcnNfXykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgd2F0Y2hlckluZGV4ID0gZXZlbnQuaW1hZ2UuX193YXRjaGVyc19fLmluZGV4T2YodGhpcy5pZCk7XHJcbiAgICBpZiAod2F0Y2hlckluZGV4IDwgMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZXZlbnQuaW1hZ2UuX193YXRjaGVyc19fLnNwbGljZSh3YXRjaGVySW5kZXgsIDEpO1xyXG5cclxuICAgIHRoaXMubG9hZGVkICs9IDE7XHJcblxyXG4gICAgY29uc3QgbG9hZGluZyA9IHRoaXMubG9hZGluZztcclxuICAgIGlmICh0aGlzLmxvYWRlZCA+PSBsb2FkaW5nKSB7XHJcbiAgICAgIGlmIChsb2FkaW5nID09PSB0aGlzLmxvYWRpbmcpIHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IFN1YmplY3RTdGF0dXMuRG9uZTtcclxuICAgICAgICB0aGlzLmxvYWRlZCA9IHRoaXMubG9hZGluZyA9IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlTG9hZEVycm9yKGV2ZW50KSB7XHJcblxyXG4gICAgaWYgKCFldmVudC5pbWFnZS5fX3dhdGNoZXJzX18pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgKTtcclxuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsIHt2YWx1ZTogZXZlbnQudGFyZ2V0LnBhcmFtc18uTEFZRVJTfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKG1lc3NhZ2UsIHRpdGxlKTtcclxuICAgIHRoaXMubG9hZGVkID0gLTE7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSAwO1xyXG4gICAgdGhpcy5zdGF0dXMgPSBTdWJqZWN0U3RhdHVzLkVycm9yO1xyXG5cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -4,4 +4,4 @@ export * from './layerSync-watcher';
|
|
|
4
4
|
export * from './tile-watcher';
|
|
5
5
|
export * from './outputLegend';
|
|
6
6
|
export * from './vector-watcher';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ltYWdlLXdhdGNoZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xheWVyLnV0aWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9sYXllclN5bmMtd2F0Y2hlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGlsZS13YXRjaGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9vdXRwdXRMZWdlbmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ZlY3Rvci13YXRjaGVyJztcclxuIl19
|
|
@@ -8,4 +8,4 @@ export function computeMVTOptionsOnHover(layerOptions) {
|
|
|
8
8
|
}
|
|
9
9
|
return layerOptions;
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci91dGlscy9sYXllci51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLFVBQVUsd0JBQXdCLENBQUMsWUFBNkI7O0lBQ3BFLE1BQU0sc0JBQXNCLEdBQUcsWUFBc0MsQ0FBQztJQUN0RSxJQUNFLENBQUEsTUFBQSxzQkFBc0IsQ0FBQyxhQUFhLDBDQUFFLElBQUksTUFBSyxLQUFLO1FBQ3BELENBQUMsQ0FBQSxNQUFBLHNCQUFzQixDQUFDLGdCQUFnQiwwQ0FBRSxVQUFVLEtBQUksc0JBQXNCLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDNUYsTUFBTSxFQUFFLEdBQUcsc0JBQXNCLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztRQUM3RCxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7S0FDekU7SUFDRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW55TGF5ZXJPcHRpb25zIH0gZnJvbSBcIi4uL3NoYXJlZC9sYXllcnMvYW55LWxheWVyLmludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zIH0gZnJvbSBcIi4uL3NoYXJlZC9sYXllcnMvdmVjdG9ydGlsZS1sYXllci5pbnRlcmZhY2VcIjtcclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZU1WVE9wdGlvbnNPbkhvdmVyKGxheWVyT3B0aW9uczogQW55TGF5ZXJPcHRpb25zKSB7XHJcbiAgY29uc3QgdmVjdG9yVGlsZUxheWVyT3B0aW9ucyA9IGxheWVyT3B0aW9ucyBhcyBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zO1xyXG4gIGlmIChcclxuICAgIHZlY3RvclRpbGVMYXllck9wdGlvbnMuc291cmNlT3B0aW9ucz8udHlwZSA9PT0gJ212dCcgJiZcclxuICAgICh2ZWN0b3JUaWxlTGF5ZXJPcHRpb25zLnN0eWxlQnlBdHRyaWJ1dGU/LmhvdmVyU3R5bGUgfHwgdmVjdG9yVGlsZUxheWVyT3B0aW9ucy5ob3ZlclN0eWxlKSkge1xyXG4gICAgY29uc3QgZmMgPSB2ZWN0b3JUaWxlTGF5ZXJPcHRpb25zLnNvdXJjZU9wdGlvbnMuZmVhdHVyZUNsYXNzO1xyXG4gICAgdmVjdG9yVGlsZUxheWVyT3B0aW9ucy5zb3VyY2VPcHRpb25zLmZlYXR1cmVDbGFzcyA9IGZjID8gZmMgOiAnZmVhdHVyZSc7XHJcbiAgfVxyXG4gIHJldHVybiBsYXllck9wdGlvbnM7XHJcbn1cclxuIl19
|
|
@@ -220,7 +220,7 @@ export class LayerSyncWatcher extends Watcher {
|
|
|
220
220
|
});
|
|
221
221
|
if (childLayer) {
|
|
222
222
|
childLayer.dataSource.setTimeFilter(timeFilter, false);
|
|
223
|
-
const appliedTimeFilter = this.ol.
|
|
223
|
+
const appliedTimeFilter = this.ol.getSource().getParams().TIME;
|
|
224
224
|
childLayer.dataSource.ol.updateParams({ TIME: appliedTimeFilter });
|
|
225
225
|
}
|
|
226
226
|
});
|
|
@@ -236,7 +236,7 @@ export class LayerSyncWatcher extends Watcher {
|
|
|
236
236
|
parentLayer.options.linkedLayers.links.map(l => {
|
|
237
237
|
if (l.properties && l.properties.indexOf(LinkedProperties.TIMEFILTER) !== -1 &&
|
|
238
238
|
l.bidirectionnal !== false && l.linkedIds.indexOf(currentLinkedId) !== -1) {
|
|
239
|
-
const appliedTimeFilter = this.ol.
|
|
239
|
+
const appliedTimeFilter = this.ol.getSource().getParams().TIME;
|
|
240
240
|
parentLayer.dataSource.ol.updateParams({ TIME: appliedTimeFilter });
|
|
241
241
|
parentLayer.dataSource.setTimeFilter(timeFilter, true);
|
|
242
242
|
}
|
|
@@ -246,4 +246,4 @@ export class LayerSyncWatcher extends Watcher {
|
|
|
246
246
|
}
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJTeW5jLXdhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci91dGlscy9sYXllclN5bmMtd2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBTXRDLE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxPQUFPO0lBVXpDLFlBQVksS0FBWSxFQUFFLEdBQVc7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN2QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRVMsS0FBSztRQUVYLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSyxJQUFJLENBQUMsVUFBc0MsQ0FBQyxXQUFXLEVBQUU7WUFDMUQsSUFBSSxDQUFDLFlBQVksR0FBSSxJQUFJLENBQUMsVUFBc0MsQ0FBQyxXQUFXO2lCQUN2RSxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUMvRTtRQUNELElBQUssSUFBSSxDQUFDLFVBQXVDLENBQUMsV0FBVyxFQUFFO1lBQzNELElBQUksQ0FBQyxZQUFZLEdBQUksSUFBSSxDQUFDLFVBQXVDLENBQUMsV0FBVztpQkFDeEUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDL0U7UUFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVTLE9BQU87UUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7U0FBRTtRQUMzRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQUU7SUFDL0QsQ0FBQztJQUdPLGVBQWU7UUFDbkIsaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1gsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPO2FBQ1gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDVixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBQyxPQUFBLE1BQUEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLDBDQUFFLEtBQUssQ0FBQSxFQUFBLENBQUM7aUJBQ2xELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDVCxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFOztvQkFDeEMsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFLLENBQUMsQ0FBQyxFQUFFO3dCQUMzRCxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDakQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ2pELEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztxQkFDakM7b0JBQ0QsSUFBSSxDQUFBLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFLLENBQUMsQ0FBQyxFQUFFO3dCQUMzRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDNUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDbEMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDNUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO3FCQUNqQztvQkFDRCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE1BQUssQ0FBQyxDQUFDLEVBQUU7d0JBQ2pFLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7d0JBQ3hELEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ3hDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDeEQsS0FBSyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO3FCQUM3QztvQkFDRCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE1BQUssQ0FBQyxDQUFDLEVBQUU7d0JBQ2pFLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7d0JBQ3hELEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ3hDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDeEQsS0FBSyxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO3FCQUM3QztvQkFDRCxJQUFJLENBQUEsTUFBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE1BQUssQ0FBQyxDQUFDLEVBQUU7d0JBQzlELE1BQU0sV0FBVyxHQUFJLEtBQUssQ0FBQyxVQUFzQyxDQUFDLFdBQVcsQ0FBQzt3QkFDOUUsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ3ZDO29CQUNELElBQUksQ0FBQSxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsTUFBSyxDQUFDLENBQUMsRUFBRTt3QkFDOUQsTUFBTSxXQUFXLEdBQUksS0FBSyxDQUFDLFVBQXVDLENBQUMsV0FBVyxDQUFDO3dCQUMvRSxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDdkM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLHdCQUF3QixDQUFDLFdBQVc7UUFDeEMsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUM1QixNQUFNLHFCQUFxQixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakUsTUFBTSxRQUFRLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM5RSxPQUFPO1NBQ1Y7UUFDRCxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxZQUEwQixDQUFDO1FBQ3RFLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixPQUFPO1NBQ1Y7UUFDRCxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQzVDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDeEMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVsRCxJQUFJLGFBQWEsRUFBRTtZQUNmLDBCQUEwQjtZQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDcEIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ3pELE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzFCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFDLE9BQUEsQ0FBQSxNQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSwwQ0FBRSxNQUFNLE1BQUssUUFBUSxDQUFBLEVBQUEsQ0FBQyxDQUFDO29CQUNwRyxJQUFJLFlBQVksRUFBRTt3QkFDZCxZQUFZLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO3dCQUMzQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7NEJBQ25CLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3lCQUN4QztxQkFDSjtnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILDBCQUEwQjtZQUMxQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFOztnQkFDeEIsSUFBSSxNQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSwwQ0FBRSxLQUFLLEVBQUU7b0JBQ25DLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ3JDLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ2hELENBQUMsQ0FBQyxjQUFjLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFOzRCQUMzRSxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDOzRCQUNwQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7Z0NBQ25CLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzZCQUNqQzt5QkFDSjtvQkFDTCxDQUFDLENBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRU8sNEJBQTRCLENBQUMsVUFBVTtRQUMzQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLFlBQTBCLENBQUM7UUFDeEUsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNmLE9BQU87U0FDVjtRQUNELE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDNUMsTUFBTSxZQUFZLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUN4QyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xELElBQUksYUFBYSxFQUFFO1lBQ2YsMEJBQTBCO1lBQzFCLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUNqRixPQUFPO2lCQUNWO2dCQUNELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUMxQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBQyxPQUFBLENBQUEsTUFBQSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksMENBQUUsTUFBTSxNQUFLLFFBQVEsQ0FBQSxFQUFBLENBQUMsQ0FBQztvQkFDcEcsSUFBSSxZQUFZLEVBQUU7d0JBQ2QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO3dCQUNwRSxZQUFZLENBQUMsVUFBc0MsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO3dCQUN0RixJQUFJLFNBQVMsS0FBSyxLQUFLLEVBQUU7NEJBQ3JCLFlBQVksQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7eUJBQ3pDO3dCQUNELElBQUksU0FBUyxLQUFLLEtBQUssRUFBRTs0QkFDckIsSUFBSSxnQkFBZ0IsQ0FBQzs0QkFDckIsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO2dDQUN0RCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLDRCQUE0QixDQUNoRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUF5QyxFQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQWUsQ0FBQyxpQkFBaUIsRUFDbEQsU0FBUyxFQUNULElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLGVBQWUsRUFBRSxDQUM1QyxDQUFDOzZCQUNMO2lDQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtnQ0FDN0QsZ0JBQWdCLEdBQUksSUFBSSxDQUFDLFVBQTRCLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQzs2QkFDL0U7NEJBQ0EsWUFBWSxDQUFDLFVBQTRCLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7eUJBQzVGO3FCQUNKO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsMEJBQTBCO1lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTs7Z0JBQ3hCLElBQUksTUFBQSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksMENBQUUsS0FBSyxFQUFFO29CQUNuQyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNyQyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUN4RSxDQUFDLENBQUMsY0FBYyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTs0QkFDM0UsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDOzRCQUM5RCxJQUFJLFNBQVMsS0FBSyxLQUFLLEVBQUU7Z0NBQ3BCLEtBQUssQ0FBQyxVQUFzQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0NBQzlFLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7NkJBQ2xDOzRCQUNELElBQUksU0FBUyxLQUFLLEtBQUssRUFBRTtnQ0FDckIsSUFBSSxnQkFBZ0IsQ0FBQztnQ0FDckIsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO29DQUN0RCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLDRCQUE0QixDQUNoRSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQXlDLEVBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBZSxDQUFDLGlCQUFpQixFQUNsRCxTQUFTLEVBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLENBQzVDLENBQUM7aUNBRUw7cUNBQU0sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFO29DQUM3RCxnQkFBZ0IsR0FBSSxJQUFJLENBQUMsVUFBNEIsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDO2lDQUMvRTtnQ0FDQSxLQUFLLENBQUMsVUFBNEIsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztnQ0FDakYsS0FBSyxDQUFDLFVBQXNDLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQzs2QkFDakY7eUJBQ0o7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7aUJBQ047WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVPLDRCQUE0QixDQUFDLFVBQVU7UUFDM0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxZQUEwQixDQUFDO1FBQ3hFLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixPQUFPO1NBQ1Y7UUFDRCxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQzVDLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDeEMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNsRCxJQUFJLGFBQWEsRUFBRTtZQUNmLDBCQUEwQjtZQUMxQixZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDakYsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDMUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFOzt3QkFDNUMsT0FBQSxLQUFLLENBQUMsVUFBVSxZQUFZLGFBQWE7NEJBQ3pDLENBQUEsTUFBQSxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksMENBQUUsTUFBTSxNQUFLLFFBQVEsQ0FBQTtxQkFBQSxDQUFDLENBQUM7b0JBQ3JELElBQUksVUFBVSxFQUFFO3dCQUNYLFVBQVUsQ0FBQyxVQUF1QyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7d0JBQ3JGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQzt3QkFDeEUsVUFBVSxDQUFDLFVBQTRCLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7cUJBQ3pGO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsMEJBQTBCO1lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTTtpQkFDVixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxZQUFZLGFBQWEsQ0FBQztpQkFDMUQsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFOztnQkFDZixJQUFJLE1BQUEsV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZLDBDQUFFLEtBQUssRUFBRTtvQkFDekMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDM0MsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDeEUsQ0FBQyxDQUFDLGNBQWMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7NEJBQzNFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQzs0QkFDeEUsV0FBVyxDQUFDLFVBQTRCLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7NEJBQ3RGLFdBQVcsQ0FBQyxVQUF1QyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7eUJBQ3hGO29CQUNMLENBQUMsQ0FBQyxDQUFDO2lCQUNOO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDVjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFdhdGNoZXIgfSBmcm9tICdAaWdvMi91dGlscyc7XG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xuaW1wb3J0IG9sTGF5ZXIgZnJvbSAnb2wvbGF5ZXIvTGF5ZXInO1xuaW1wb3J0IG9sU291cmNlIGZyb20gJ29sL3NvdXJjZS9Tb3VyY2UnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgTGF5ZXJzTGluaywgTGlua2VkUHJvcGVydGllcyB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlLCBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJXcml0ZXIgfSBmcm9tICcuLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXInO1xuaW1wb3J0IHsgVGltZUZpbHRlcmFibGVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC90aW1lLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIExheWVyU3luY1dhdGNoZXIgZXh0ZW5kcyBXYXRjaGVyIHtcbiAgICBwcml2YXRlIG9nY0ZpbHRlcnMkJDogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgdGltZUZpbHRlciQkOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIG9sOiBvbExheWVyPG9sU291cmNlPjtcbiAgICBwcml2YXRlIGxheWVyOiBMYXllcjtcbiAgICBwcml2YXRlIGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XG4gICAgcHJpdmF0ZSBtYXA6IElnb01hcDtcbiAgICBwcml2YXRlIG9nY0ZpbHRlcldyaXRlcjtcblxuICAgIGNvbnN0cnVjdG9yKGxheWVyOiBMYXllciwgbWFwOiBJZ29NYXApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5vbCA9IGxheWVyLm9sO1xuICAgICAgICB0aGlzLmxheWVyID0gbGF5ZXI7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IGxheWVyLm9wdGlvbnMuc291cmNlO1xuICAgICAgICB0aGlzLm1hcCA9IG1hcDtcbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJXcml0ZXIgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHdhdGNoKCkge1xuXG4gICAgICAgIHRoaXMub2wub24oJ3Byb3BlcnR5Y2hhbmdlJywgZXZ0ID0+IHRoaXMudHJhbnNmZXJDb21tb25Qcm9wZXJ0aWVzKGV2dCkpO1xuICAgICAgICBpZiAoKHRoaXMuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSkub2djRmlsdGVycyQpIHtcbiAgICAgICAgICAgIHRoaXMub2djRmlsdGVycyQkID0gKHRoaXMuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSkub2djRmlsdGVycyRcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKG9nY0ZpbHRlcnMgPT4gdGhpcy50cmFuc2Zlck9nY0ZpbHRlcnNQcm9wZXJ0aWVzKG9nY0ZpbHRlcnMpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoKHRoaXMuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UpLnRpbWVGaWx0ZXIkKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVGaWx0ZXIkJCA9ICh0aGlzLmRhdGFTb3VyY2UgYXMgVGltZUZpbHRlcmFibGVEYXRhU291cmNlKS50aW1lRmlsdGVyJFxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodGltZUZpbHRlciA9PiB0aGlzLnRyYW5zZmVyVGltZUZpbHRlclByb3BlcnRpZXModGltZUZpbHRlcikpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3luY0NoaWxkTGF5ZXJzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVud2F0Y2goKSB7XG4gICAgICAgIHRoaXMub2wudW4oJ3Byb3BlcnR5Y2hhbmdlJywgZXZ0ID0+IHRoaXMudHJhbnNmZXJDb21tb25Qcm9wZXJ0aWVzKGV2dCkpO1xuICAgICAgICBpZiAodGhpcy5vZ2NGaWx0ZXJzJCQpIHsgdGhpcy5vZ2NGaWx0ZXJzJCQudW5zdWJzY3JpYmUoKTsgfVxuICAgICAgICBpZiAodGhpcy50aW1lRmlsdGVyJCQpIHsgdGhpcy50aW1lRmlsdGVyJCQudW5zdWJzY3JpYmUoKTsgfVxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBzeW5jQ2hpbGRMYXllcnMoKSB7XG4gICAgICAgIC8vIEZvcmNlIHRoZSBzeW5jIHRoZSBjaGlsZCBsYXllcnMgd2l0aCBwYXJlbnQgb24gdGhlIGZpcnN0IGxvYWQuXG4gICAgICAgIGlmICghdGhpcy5tYXApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hcC5zdGF0dXMkXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXAubGF5ZXJzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIobGF5ZXIgPT4gbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM/LmxpbmtzKVxuICAgICAgICAgICAgICAgICAgICAubWFwKGxheWVyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLm9wdGlvbnMubGlua2VkTGF5ZXJzLmxpbmtzLm1hcChsaW5rID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5wcm9wZXJ0aWVzPy5pbmRleE9mKExpbmtlZFByb3BlcnRpZXMuVklTSUJMRSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLm9sLnNldCgndmlzaWJsZScsICEobGF5ZXIudmlzaWJsZSksIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIub2wuc2V0KCd2aXNpYmxlJywgIShsYXllci52aXNpYmxlKSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci52aXNpYmxlID0gbGF5ZXIudmlzaWJsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmsucHJvcGVydGllcz8uaW5kZXhPZihMaW5rZWRQcm9wZXJ0aWVzLk9QQUNJVFkpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiYXNlT3BhY2l0eSA9IGxheWVyLm9sLmdldCgnb3BhY2l0eScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci5vbC5zZXQoJ29wYWNpdHknLCAwLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLm9sLnNldCgnb3BhY2l0eScsIGJhc2VPcGFjaXR5LCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLm9wYWNpdHkgPSBsYXllci5vcGFjaXR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5wcm9wZXJ0aWVzPy5pbmRleE9mKExpbmtlZFByb3BlcnRpZXMuTUlOUkVTT0xVVElPTikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhc2VNaW5SZXNvbHV0aW9uID0gbGF5ZXIub2wuZ2V0KCdtaW5SZXNvbHV0aW9uJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLm9sLnNldCgnbWluUmVzb2x1dGlvbicsIDAsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIub2wuc2V0KCdtaW5SZXNvbHV0aW9uJywgYmFzZU1pblJlc29sdXRpb24sIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIubWluUmVzb2x1dGlvbiA9IGxheWVyLm1pblJlc29sdXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5rLnByb3BlcnRpZXM/LmluZGV4T2YoTGlua2VkUHJvcGVydGllcy5NQVhSRVNPTFVUSU9OKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFzZU1heFJlc29sdXRpb24gPSBsYXllci5vbC5nZXQoJ21heFJlc29sdXRpb24nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIub2wuc2V0KCdtYXhSZXNvbHV0aW9uJywgMCwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci5vbC5zZXQoJ21heFJlc29sdXRpb24nLCBiYXNlTWF4UmVzb2x1dGlvbiwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci5taW5SZXNvbHV0aW9uID0gbGF5ZXIubWluUmVzb2x1dGlvbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmsucHJvcGVydGllcz8uaW5kZXhPZihMaW5rZWRQcm9wZXJ0aWVzLk9HQ0ZJTFRFUlMpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvZ2NGaWx0ZXJzJCA9IChsYXllci5kYXRhU291cmNlIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlKS5vZ2NGaWx0ZXJzJDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2djRmlsdGVycyQubmV4dChvZ2NGaWx0ZXJzJC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5rLnByb3BlcnRpZXM/LmluZGV4T2YoTGlua2VkUHJvcGVydGllcy5USU1FRklMVEVSKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZUZpbHRlciQgPSAobGF5ZXIuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UpLnRpbWVGaWx0ZXIkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lRmlsdGVyJC5uZXh0KHRpbWVGaWx0ZXIkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZmVyQ29tbW9uUHJvcGVydGllcyhsYXllckNoYW5nZSkge1xuICAgICAgICBjb25zdCBrZXkgPSBsYXllckNoYW5nZS5rZXk7XG4gICAgICAgIGNvbnN0IGxheWVyQ2hhbmdlUHJvcGVydGllcyA9IGxheWVyQ2hhbmdlLnRhcmdldC5nZXRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gbGF5ZXJDaGFuZ2VQcm9wZXJ0aWVzW2tleV07XG5cbiAgICAgICAgaWYgKFsndmlzaWJsZScsICdvcGFjaXR5JywgJ21pblJlc29sdXRpb24nLCAnbWF4UmVzb2x1dGlvbiddLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaW5rZWRMYXllcnMgPSBsYXllckNoYW5nZVByb3BlcnRpZXMubGlua2VkTGF5ZXJzIGFzIExheWVyc0xpbms7XG4gICAgICAgIGlmICghbGlua2VkTGF5ZXJzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudExpbmtlZElkID0gbGlua2VkTGF5ZXJzLmxpbmtJZDtcbiAgICAgICAgY29uc3QgY3VycmVudExpbmtzID0gbGlua2VkTGF5ZXJzLmxpbmtzO1xuICAgICAgICBjb25zdCBpc1BhcmVudExheWVyID0gY3VycmVudExpbmtzID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICAgIGlmIChpc1BhcmVudExheWVyKSB7XG4gICAgICAgICAgICAvLyBzZWFyY2ggZm9yIGNoaWxkIGxheWVyc1xuICAgICAgICAgICAgY29uc3Qgc2lsZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIGN1cnJlbnRMaW5rcy5tYXAobGluayA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFsaW5rLnByb3BlcnRpZXMgfHwgbGluay5wcm9wZXJ0aWVzLmluZGV4T2Yoa2V5KSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsaW5rLmxpbmtlZElkcy5tYXAobGlua2VkSWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXllclRvQXBwbHkgPSB0aGlzLm1hcC5sYXllcnMuZmluZChsYXllciA9PiBsYXllci5vcHRpb25zLmxpbmtlZExheWVycz8ubGlua0lkID09PSBsaW5rZWRJZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXllclRvQXBwbHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyVG9BcHBseS5vbC5zZXQoa2V5LCBuZXdWYWx1ZSwgc2lsZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT09ICd2aXNpYmxlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyVG9BcHBseS52aXNpYmxlJC5uZXh0KG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBzZWFyY2ggZm9yIHBhcmVudCBsYXllclxuICAgICAgICAgICAgY29uc3Qgc2lsZW50ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLm1hcC5sYXllcnMubWFwKGxheWVyID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM/LmxpbmtzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxheWVyLm9wdGlvbnMubGlua2VkTGF5ZXJzLmxpbmtzLm1hcChsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsLnByb3BlcnRpZXMgJiYgbC5wcm9wZXJ0aWVzLmluZGV4T2Yoa2V5KSAhPT0gLTEgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLmJpZGlyZWN0aW9ubmFsICE9PSBmYWxzZSAmJiBsLmxpbmtlZElkcy5pbmRleE9mKGN1cnJlbnRMaW5rZWRJZCkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIub2wuc2V0KGtleSwgbmV3VmFsdWUsIHNpbGVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gJ3Zpc2libGUnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLnZpc2libGUkLm5leHQobmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRyYW5zZmVyT2djRmlsdGVyc1Byb3BlcnRpZXMob2djRmlsdGVycykge1xuICAgICAgICBjb25zdCBsaW5rZWRMYXllcnMgPSB0aGlzLm9sLmdldFByb3BlcnRpZXMoKS5saW5rZWRMYXllcnMgYXMgTGF5ZXJzTGluaztcbiAgICAgICAgaWYgKCFsaW5rZWRMYXllcnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50TGlua2VkSWQgPSBsaW5rZWRMYXllcnMubGlua0lkO1xuICAgICAgICBjb25zdCBjdXJyZW50TGlua3MgPSBsaW5rZWRMYXllcnMubGlua3M7XG4gICAgICAgIGNvbnN0IGlzUGFyZW50TGF5ZXIgPSBjdXJyZW50TGlua3MgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIGlmIChpc1BhcmVudExheWVyKSB7XG4gICAgICAgICAgICAvLyBzZWFyY2ggZm9yIGNoaWxkIGxheWVyc1xuICAgICAgICAgICAgY3VycmVudExpbmtzLm1hcChsaW5rID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWxpbmsucHJvcGVydGllcyB8fCBsaW5rLnByb3BlcnRpZXMuaW5kZXhPZihMaW5rZWRQcm9wZXJ0aWVzLk9HQ0ZJTFRFUlMpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxpbmsubGlua2VkSWRzLm1hcChsaW5rZWRJZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheWVyVG9BcHBseSA9IHRoaXMubWFwLmxheWVycy5maW5kKGxheWVyID0+IGxheWVyLm9wdGlvbnMubGlua2VkTGF5ZXJzPy5saW5rSWQgPT09IGxpbmtlZElkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxheWVyVG9BcHBseSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5ZXJUeXBlID0gbGF5ZXJUb0FwcGx5Lm9sLmdldFByb3BlcnRpZXMoKS5zb3VyY2VPcHRpb25zLnR5cGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAobGF5ZXJUb0FwcGx5LmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UpLnNldE9nY0ZpbHRlcnMob2djRmlsdGVycywgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxheWVyVHlwZSA9PT0gJ3dmcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllclRvQXBwbHkub2wuZ2V0U291cmNlKCkucmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxheWVyVHlwZSA9PT0gJ3dtcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBwbGllZE9nY0ZpbHRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vbC5nZXRQcm9wZXJ0aWVzKCkuc291cmNlT3B0aW9ucy50eXBlID09PSAnd2ZzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWVkT2djRmlsdGVyID0gdGhpcy5vZ2NGaWx0ZXJXcml0ZXIuaGFuZGxlT2djRmlsdGVyc0FwcGxpZWRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmRhdGFTb3VyY2Uub3B0aW9ucyBhcyBhbnkpLmZpZWxkTmFtZUdlb21ldHJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0T2xQcm9qZWN0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub2wuZ2V0UHJvcGVydGllcygpLnNvdXJjZU9wdGlvbnMudHlwZSA9PT0gJ3dtcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGllZE9nY0ZpbHRlciA9ICh0aGlzLmRhdGFTb3VyY2UgYXMgV01TRGF0YVNvdXJjZSkub2wuZ2V0UGFyYW1zKCkuRklMVEVSO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGF5ZXJUb0FwcGx5LmRhdGFTb3VyY2UgYXMgV01TRGF0YVNvdXJjZSkub2wudXBkYXRlUGFyYW1zKHsgRklMVEVSOiBhcHBsaWVkT2djRmlsdGVyIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHNlYXJjaCBmb3IgcGFyZW50IGxheWVyXG4gICAgICAgICAgICB0aGlzLm1hcC5sYXllcnMubWFwKGxheWVyID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM/LmxpbmtzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxheWVyLm9wdGlvbnMubGlua2VkTGF5ZXJzLmxpbmtzLm1hcChsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsLnByb3BlcnRpZXMgJiYgbC5wcm9wZXJ0aWVzLmluZGV4T2YoTGlua2VkUHJvcGVydGllcy5PR0NGSUxURVJTKSAhPT0gLTEgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLmJpZGlyZWN0aW9ubmFsICE9PSBmYWxzZSAmJiBsLmxpbmtlZElkcy5pbmRleE9mKGN1cnJlbnRMaW5rZWRJZCkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5ZXJUeXBlID0gbGF5ZXIub2wuZ2V0UHJvcGVydGllcygpLnNvdXJjZU9wdGlvbnMudHlwZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5ZXJUeXBlID09PSAnd2ZzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGF5ZXIuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSkuc2V0T2djRmlsdGVycyhvZ2NGaWx0ZXJzLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIub2wuZ2V0U291cmNlKCkucmVmcmVzaCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5ZXJUeXBlID09PSAnd21zJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBwbGllZE9nY0ZpbHRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub2wuZ2V0UHJvcGVydGllcygpLnNvdXJjZU9wdGlvbnMudHlwZSA9PT0gJ3dmcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZWRPZ2NGaWx0ZXIgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5oYW5kbGVPZ2NGaWx0ZXJzQXBwbGllZFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuZGF0YVNvdXJjZS5vcHRpb25zIGFzIGFueSkuZmllbGROYW1lR2VvbWV0cnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldE9sUHJvamVjdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vbC5nZXRQcm9wZXJ0aWVzKCkuc291cmNlT3B0aW9ucy50eXBlID09PSAnd21zJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGllZE9nY0ZpbHRlciA9ICh0aGlzLmRhdGFTb3VyY2UgYXMgV01TRGF0YVNvdXJjZSkub2wuZ2V0UGFyYW1zKCkuRklMVEVSO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYXllci5kYXRhU291cmNlIGFzIFdNU0RhdGFTb3VyY2UpLm9sLnVwZGF0ZVBhcmFtcyh7IEZJTFRFUjogYXBwbGllZE9nY0ZpbHRlciB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxheWVyLmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UpLnNldE9nY0ZpbHRlcnMob2djRmlsdGVycywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdHJhbnNmZXJUaW1lRmlsdGVyUHJvcGVydGllcyh0aW1lRmlsdGVyKSB7XG4gICAgICAgIGNvbnN0IGxpbmtlZExheWVycyA9IHRoaXMub2wuZ2V0UHJvcGVydGllcygpLmxpbmtlZExheWVycyBhcyBMYXllcnNMaW5rO1xuICAgICAgICBpZiAoIWxpbmtlZExheWVycykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMaW5rZWRJZCA9IGxpbmtlZExheWVycy5saW5rSWQ7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMaW5rcyA9IGxpbmtlZExheWVycy5saW5rcztcbiAgICAgICAgY29uc3QgaXNQYXJlbnRMYXllciA9IGN1cnJlbnRMaW5rcyA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgaWYgKGlzUGFyZW50TGF5ZXIpIHtcbiAgICAgICAgICAgIC8vIHNlYXJjaCBmb3IgY2hpbGQgbGF5ZXJzXG4gICAgICAgICAgICBjdXJyZW50TGlua3MubWFwKGxpbmsgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghbGluay5wcm9wZXJ0aWVzIHx8IGxpbmsucHJvcGVydGllcy5pbmRleE9mKExpbmtlZFByb3BlcnRpZXMuVElNRUZJTFRFUikgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGluay5saW5rZWRJZHMubWFwKGxpbmtlZElkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRMYXllciA9IHRoaXMubWFwLmxheWVycy5maW5kKGxheWVyID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXllci5kYXRhU291cmNlIGluc3RhbmNlb2YgV01TRGF0YVNvdXJjZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM/LmxpbmtJZCA9PT0gbGlua2VkSWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRMYXllcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkTGF5ZXIuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UpLnNldFRpbWVGaWx0ZXIodGltZUZpbHRlciwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXBwbGllZFRpbWVGaWx0ZXIgPSB0aGlzLm9sLmdldCgndmFsdWVzXycpLnNvdXJjZS5nZXRQYXJhbXMoKS5USU1FO1xuICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkTGF5ZXIuZGF0YVNvdXJjZSBhcyBXTVNEYXRhU291cmNlKS5vbC51cGRhdGVQYXJhbXMoeyBUSU1FOiBhcHBsaWVkVGltZUZpbHRlciB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBzZWFyY2ggZm9yIHBhcmVudCBsYXllclxuICAgICAgICAgICAgdGhpcy5tYXAubGF5ZXJzXG4gICAgICAgICAgICAgICAgLmZpbHRlcihsYXllciA9PiBsYXllci5kYXRhU291cmNlIGluc3RhbmNlb2YgV01TRGF0YVNvdXJjZSlcbiAgICAgICAgICAgICAgICAubWFwKHBhcmVudExheWVyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudExheWVyLm9wdGlvbnMubGlua2VkTGF5ZXJzPy5saW5rcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50TGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnMubGlua3MubWFwKGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsLnByb3BlcnRpZXMgJiYgbC5wcm9wZXJ0aWVzLmluZGV4T2YoTGlua2VkUHJvcGVydGllcy5USU1FRklMVEVSKSAhPT0gLTEgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbC5iaWRpcmVjdGlvbm5hbCAhPT0gZmFsc2UgJiYgbC5saW5rZWRJZHMuaW5kZXhPZihjdXJyZW50TGlua2VkSWQpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhcHBsaWVkVGltZUZpbHRlciA9IHRoaXMub2wuZ2V0KCd2YWx1ZXNfJykuc291cmNlLmdldFBhcmFtcygpLlRJTUU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRMYXllci5kYXRhU291cmNlIGFzIFdNU0RhdGFTb3VyY2UpLm9sLnVwZGF0ZVBhcmFtcyh7IFRJTUU6IGFwcGxpZWRUaW1lRmlsdGVyIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50TGF5ZXIuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UpLnNldFRpbWVGaWx0ZXIodGltZUZpbHRlciwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXJTeW5jLXdhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci91dGlscy9sYXllclN5bmMtd2F0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBTXRDLE9BQU8sRUFBYyxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHakUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxPQUFPO0lBVXpDLFlBQVksS0FBWSxFQUFFLEdBQVc7UUFDakMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN2QyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRVMsS0FBSztRQUVYLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSyxJQUFJLENBQUMsVUFBc0MsQ0FBQyxXQUFXLEVBQUU7WUFDMUQsSUFBSSxDQUFDLFlBQVksR0FBSSxJQUFJLENBQUMsVUFBc0MsQ0FBQyxX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QUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUN4RSxDQUFDLENBQUMsY0FBYyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTs0QkFDM0UsTUFBTSxpQkFBaUIsR0FBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBdUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUM7NEJBQ3BGLFdBQVcsQ0FBQyxVQUE0QixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDOzRCQUN0RixXQUFXLENBQUMsVUFBdUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO3lCQUN4RjtvQkFDTCxDQUFDLENBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXYXRjaGVyIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgb2xMYXllciBmcm9tICdvbC9sYXllci9MYXllcic7XHJcbmltcG9ydCBvbFNvdXJjZSBmcm9tICdvbC9zb3VyY2UvU291cmNlJztcclxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcCc7XHJcbmltcG9ydCB7IExheWVyc0xpbmssIExpbmtlZFByb3BlcnRpZXMgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2xheWVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlLCBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV01TRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgT2djRmlsdGVyV3JpdGVyIH0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyJztcclxuaW1wb3J0IHsgVGltZUZpbHRlcmFibGVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC90aW1lLWZpbHRlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBvbFNvdXJjZUltYWdlV01TIGZyb20gJ29sL3NvdXJjZS9JbWFnZVdNUyc7XHJcblxyXG5leHBvcnQgY2xhc3MgTGF5ZXJTeW5jV2F0Y2hlciBleHRlbmRzIFdhdGNoZXIge1xyXG4gICAgcHJpdmF0ZSBvZ2NGaWx0ZXJzJCQ6IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgdGltZUZpbHRlciQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgcHJpdmF0ZSBvbDogb2xMYXllcjxvbFNvdXJjZT47XHJcbiAgICBwcml2YXRlIGxheWVyOiBMYXllcjtcclxuICAgIHByaXZhdGUgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcclxuICAgIHByaXZhdGUgbWFwOiBJZ29NYXA7XHJcbiAgICBwcml2YXRlIG9nY0ZpbHRlcldyaXRlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihsYXllcjogTGF5ZXIsIG1hcDogSWdvTWFwKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLm9sID0gbGF5ZXIub2w7XHJcbiAgICAgICAgdGhpcy5sYXllciA9IGxheWVyO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IGxheWVyLm9wdGlvbnMuc291cmNlO1xyXG4gICAgICAgIHRoaXMubWFwID0gbWFwO1xyXG4gICAgICAgIHRoaXMub2djRmlsdGVyV3JpdGVyID0gbmV3IE9nY0ZpbHRlcldyaXRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB3YXRjaCgpIHtcclxuXHJcbiAgICAgICAgdGhpcy5vbC5vbigncHJvcGVydHljaGFuZ2UnLCBldnQgPT4gdGhpcy50cmFuc2ZlckNvbW1vblByb3BlcnRpZXMoZXZ0KSk7XHJcbiAgICAgICAgaWYgKCh0aGlzLmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UpLm9nY0ZpbHRlcnMkKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2djRmlsdGVycyQkID0gKHRoaXMuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSkub2djRmlsdGVycyRcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUob2djRmlsdGVycyA9PiB0aGlzLnRyYW5zZmVyT2djRmlsdGVyc1Byb3BlcnRpZXMob2djRmlsdGVycykpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoKHRoaXMuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UpLnRpbWVGaWx0ZXIkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGltZUZpbHRlciQkID0gKHRoaXMuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UpLnRpbWVGaWx0ZXIkXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHRpbWVGaWx0ZXIgPT4gdGhpcy50cmFuc2ZlclRpbWVGaWx0ZXJQcm9wZXJ0aWVzKHRpbWVGaWx0ZXIpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zeW5jQ2hpbGRMYXllcnMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgdW53YXRjaCgpIHtcclxuICAgICAgICB0aGlzLm9sLnVuKCdwcm9wZXJ0eWNoYW5nZScsIGV2dCA9PiB0aGlzLnRyYW5zZmVyQ29tbW9uUHJvcGVydGllcyhldnQpKTtcclxuICAgICAgICBpZiAodGhpcy5vZ2NGaWx0ZXJzJCQpIHsgdGhpcy5vZ2NGaWx0ZXJzJCQudW5zdWJzY3JpYmUoKTsgfVxyXG4gICAgICAgIGlmICh0aGlzLnRpbWVGaWx0ZXIkJCkgeyB0aGlzLnRpbWVGaWx0ZXIkJC51bnN1YnNjcmliZSgpOyB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgc3luY0NoaWxkTGF5ZXJzKCkge1xyXG4gICAgICAgIC8vIEZvcmNlIHRoZSBzeW5jIHRoZSBjaGlsZCBsYXllcnMgd2l0aCBwYXJlbnQgb24gdGhlIGZpcnN0IGxvYWQuXHJcbiAgICAgICAgaWYgKCF0aGlzLm1hcCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWFwLnN0YXR1cyRcclxuICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcC5sYXllcnNcclxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGxheWVyID0+IGxheWVyLm9wdGlvbnMubGlua2VkTGF5ZXJzPy5saW5rcylcclxuICAgICAgICAgICAgICAgICAgICAubWFwKGxheWVyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnMubGlua3MubWFwKGxpbmsgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmsucHJvcGVydGllcz8uaW5kZXhPZihMaW5rZWRQcm9wZXJ0aWVzLlZJU0lCTEUpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLm9sLnNldCgndmlzaWJsZScsICEobGF5ZXIudmlzaWJsZSksIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci5vbC5zZXQoJ3Zpc2libGUnLCAhKGxheWVyLnZpc2libGUpLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIudmlzaWJsZSA9IGxheWVyLnZpc2libGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5wcm9wZXJ0aWVzPy5pbmRleE9mKExpbmtlZFByb3BlcnRpZXMuT1BBQ0lUWSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmFzZU9wYWNpdHkgPSBsYXllci5vbC5nZXQoJ29wYWNpdHknKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci5vbC5zZXQoJ29wYWNpdHknLCAwLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIub2wuc2V0KCdvcGFjaXR5JywgYmFzZU9wYWNpdHksIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci5vcGFjaXR5ID0gbGF5ZXIub3BhY2l0eTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsaW5rLnByb3BlcnRpZXM/LmluZGV4T2YoTGlua2VkUHJvcGVydGllcy5NSU5SRVNPTFVUSU9OKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiYXNlTWluUmVzb2x1dGlvbiA9IGxheWVyLm9sLmdldCgnbWluUmVzb2x1dGlvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLm9sLnNldCgnbWluUmVzb2x1dGlvbicsIDAsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci5vbC5zZXQoJ21pblJlc29sdXRpb24nLCBiYXNlTWluUmVzb2x1dGlvbiwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLm1pblJlc29sdXRpb24gPSBsYXllci5taW5SZXNvbHV0aW9uO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmsucHJvcGVydGllcz8uaW5kZXhPZihMaW5rZWRQcm9wZXJ0aWVzLk1BWFJFU09MVVRJT04pICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhc2VNYXhSZXNvbHV0aW9uID0gbGF5ZXIub2wuZ2V0KCdtYXhSZXNvbHV0aW9uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIub2wuc2V0KCdtYXhSZXNvbHV0aW9uJywgMCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLm9sLnNldCgnbWF4UmVzb2x1dGlvbicsIGJhc2VNYXhSZXNvbHV0aW9uLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIubWluUmVzb2x1dGlvbiA9IGxheWVyLm1pblJlc29sdXRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5wcm9wZXJ0aWVzPy5pbmRleE9mKExpbmtlZFByb3BlcnRpZXMuT0dDRklMVEVSUykgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2djRmlsdGVycyQgPSAobGF5ZXIuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSkub2djRmlsdGVycyQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2djRmlsdGVycyQubmV4dChvZ2NGaWx0ZXJzJC52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluay5wcm9wZXJ0aWVzPy5pbmRleE9mKExpbmtlZFByb3BlcnRpZXMuVElNRUZJTFRFUikgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZUZpbHRlciQgPSAobGF5ZXIuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UpLnRpbWVGaWx0ZXIkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVGaWx0ZXIkLm5leHQodGltZUZpbHRlciQudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0cmFuc2ZlckNvbW1vblByb3BlcnRpZXMobGF5ZXJDaGFuZ2UpIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBsYXllckNoYW5nZS5rZXk7XHJcbiAgICAgICAgY29uc3QgbGF5ZXJDaGFuZ2VQcm9wZXJ0aWVzID0gbGF5ZXJDaGFuZ2UudGFyZ2V0LmdldFByb3BlcnRpZXMoKTtcclxuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IGxheWVyQ2hhbmdlUHJvcGVydGllc1trZXldO1xyXG5cclxuICAgICAgICBpZiAoWyd2aXNpYmxlJywgJ29wYWNpdHknLCAnbWluUmVzb2x1dGlvbicsICdtYXhSZXNvbHV0aW9uJ10uaW5kZXhPZihrZXkpID09PSAtMSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGxpbmtlZExheWVycyA9IGxheWVyQ2hhbmdlUHJvcGVydGllcy5saW5rZWRMYXllcnMgYXMgTGF5ZXJzTGluaztcclxuICAgICAgICBpZiAoIWxpbmtlZExheWVycykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRMaW5rZWRJZCA9IGxpbmtlZExheWVycy5saW5rSWQ7XHJcbiAgICAgICAgY29uc3QgY3VycmVudExpbmtzID0gbGlua2VkTGF5ZXJzLmxpbmtzO1xyXG4gICAgICAgIGNvbnN0IGlzUGFyZW50TGF5ZXIgPSBjdXJyZW50TGlua3MgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICAgIGlmIChpc1BhcmVudExheWVyKSB7XHJcbiAgICAgICAgICAgIC8vIHNlYXJjaCBmb3IgY2hpbGQgbGF5ZXJzXHJcbiAgICAgICAgICAgIGNvbnN0IHNpbGVudCA9IHRydWU7XHJcbiAgICAgICAgICAgIGN1cnJlbnRMaW5rcy5tYXAobGluayA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWxpbmsucHJvcGVydGllcyB8fCBsaW5rLnByb3BlcnRpZXMuaW5kZXhPZihrZXkpID09PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxpbmsubGlua2VkSWRzLm1hcChsaW5rZWRJZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5ZXJUb0FwcGx5ID0gdGhpcy5tYXAubGF5ZXJzLmZpbmQobGF5ZXIgPT4gbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM/LmxpbmtJZCA9PT0gbGlua2VkSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChsYXllclRvQXBwbHkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJUb0FwcGx5Lm9sLnNldChrZXksIG5ld1ZhbHVlLCBzaWxlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAndmlzaWJsZScpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyVG9BcHBseS52aXNpYmxlJC5uZXh0KG5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBzZWFyY2ggZm9yIHBhcmVudCBsYXllclxyXG4gICAgICAgICAgICBjb25zdCBzaWxlbnQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5tYXAubGF5ZXJzLm1hcChsYXllciA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM/LmxpbmtzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnMubGlua3MubWFwKGwgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobC5wcm9wZXJ0aWVzICYmIGwucHJvcGVydGllcy5pbmRleE9mKGtleSkgIT09IC0xICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLmJpZGlyZWN0aW9ubmFsICE9PSBmYWxzZSAmJiBsLmxpbmtlZElkcy5pbmRleE9mKGN1cnJlbnRMaW5rZWRJZCkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci5vbC5zZXQoa2V5LCBuZXdWYWx1ZSwgc2lsZW50KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXkgPT09ICd2aXNpYmxlJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLnZpc2libGUkLm5leHQobmV3VmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRyYW5zZmVyT2djRmlsdGVyc1Byb3BlcnRpZXMob2djRmlsdGVycykge1xyXG4gICAgICAgIGNvbnN0IGxpbmtlZExheWVycyA9IHRoaXMub2wuZ2V0UHJvcGVydGllcygpLmxpbmtlZExheWVycyBhcyBMYXllcnNMaW5rO1xyXG4gICAgICAgIGlmICghbGlua2VkTGF5ZXJzKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY3VycmVudExpbmtlZElkID0gbGlua2VkTGF5ZXJzLmxpbmtJZDtcclxuICAgICAgICBjb25zdCBjdXJyZW50TGlua3MgPSBsaW5rZWRMYXllcnMubGlua3M7XHJcbiAgICAgICAgY29uc3QgaXNQYXJlbnRMYXllciA9IGN1cnJlbnRMaW5rcyA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICBpZiAoaXNQYXJlbnRMYXllcikge1xyXG4gICAgICAgICAgICAvLyBzZWFyY2ggZm9yIGNoaWxkIGxheWVyc1xyXG4gICAgICAgICAgICBjdXJyZW50TGlua3MubWFwKGxpbmsgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsaW5rLnByb3BlcnRpZXMgfHwgbGluay5wcm9wZXJ0aWVzLmluZGV4T2YoTGlua2VkUHJvcGVydGllcy5PR0NGSUxURVJTKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsaW5rLmxpbmtlZElkcy5tYXAobGlua2VkSWQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheWVyVG9BcHBseSA9IHRoaXMubWFwLmxheWVycy5maW5kKGxheWVyID0+IGxheWVyLm9wdGlvbnMubGlua2VkTGF5ZXJzPy5saW5rSWQgPT09IGxpbmtlZElkKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobGF5ZXJUb0FwcGx5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheWVyVHlwZSA9IGxheWVyVG9BcHBseS5vbC5nZXRQcm9wZXJ0aWVzKCkuc291cmNlT3B0aW9ucy50eXBlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAobGF5ZXJUb0FwcGx5LmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UpLnNldE9nY0ZpbHRlcnMob2djRmlsdGVycywgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5ZXJUeXBlID09PSAnd2ZzJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJUb0FwcGx5Lm9sLmdldFNvdXJjZSgpLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5ZXJUeXBlID09PSAnd21zJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFwcGxpZWRPZ2NGaWx0ZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vbC5nZXRQcm9wZXJ0aWVzKCkuc291cmNlT3B0aW9ucy50eXBlID09PSAnd2ZzJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZWRPZ2NGaWx0ZXIgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5oYW5kbGVPZ2NGaWx0ZXJzQXBwbGllZFZhbHVlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucyBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmRhdGFTb3VyY2Uub3B0aW9ucyBhcyBhbnkpLmZpZWxkTmFtZUdlb21ldHJ5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldE9sUHJvamVjdGlvbigpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vbC5nZXRQcm9wZXJ0aWVzKCkuc291cmNlT3B0aW9ucy50eXBlID09PSAnd21zJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZWRPZ2NGaWx0ZXIgPSAodGhpcy5kYXRhU291cmNlIGFzIFdNU0RhdGFTb3VyY2UpLm9sLmdldFBhcmFtcygpLkZJTFRFUjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYXllclRvQXBwbHkuZGF0YVNvdXJjZSBhcyBXTVNEYXRhU291cmNlKS5vbC51cGRhdGVQYXJhbXMoeyBGSUxURVI6IGFwcGxpZWRPZ2NGaWx0ZXIgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gc2VhcmNoIGZvciBwYXJlbnQgbGF5ZXJcclxuICAgICAgICAgICAgdGhpcy5tYXAubGF5ZXJzLm1hcChsYXllciA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAobGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnM/LmxpbmtzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnMubGlua3MubWFwKGwgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobC5wcm9wZXJ0aWVzICYmIGwucHJvcGVydGllcy5pbmRleE9mKExpbmtlZFByb3BlcnRpZXMuT0dDRklMVEVSUykgIT09IC0xICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsLmJpZGlyZWN0aW9ubmFsICE9PSBmYWxzZSAmJiBsLmxpbmtlZElkcy5pbmRleE9mKGN1cnJlbnRMaW5rZWRJZCkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYXllclR5cGUgPSBsYXllci5vbC5nZXRQcm9wZXJ0aWVzKCkuc291cmNlT3B0aW9ucy50eXBlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxheWVyVHlwZSA9PT0gJ3dmcycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGF5ZXIuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSkuc2V0T2djRmlsdGVycyhvZ2NGaWx0ZXJzLCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci5vbC5nZXRTb3VyY2UoKS5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGF5ZXJUeXBlID09PSAnd21zJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcHBsaWVkT2djRmlsdGVyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm9sLmdldFByb3BlcnRpZXMoKS5zb3VyY2VPcHRpb25zLnR5cGUgPT09ICd3ZnMnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZWRPZ2NGaWx0ZXIgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5oYW5kbGVPZ2NGaWx0ZXJzQXBwbGllZFZhbHVlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmRhdGFTb3VyY2Uub3B0aW9ucyBhcyBhbnkpLmZpZWxkTmFtZUdlb21ldHJ5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuZ2V0T2xQcm9qZWN0aW9uKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9sLmdldFByb3BlcnRpZXMoKS5zb3VyY2VPcHRpb25zLnR5cGUgPT09ICd3bXMnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZWRPZ2NGaWx0ZXIgPSAodGhpcy5kYXRhU291cmNlIGFzIFdNU0RhdGFTb3VyY2UpLm9sLmdldFBhcmFtcygpLkZJTFRFUjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxheWVyLmRhdGFTb3VyY2UgYXMgV01TRGF0YVNvdXJjZSkub2wudXBkYXRlUGFyYW1zKHsgRklMVEVSOiBhcHBsaWVkT2djRmlsdGVyIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYXllci5kYXRhU291cmNlIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlKS5zZXRPZ2NGaWx0ZXJzKG9nY0ZpbHRlcnMsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRyYW5zZmVyVGltZUZpbHRlclByb3BlcnRpZXModGltZUZpbHRlcikge1xyXG4gICAgICAgIGNvbnN0IGxpbmtlZExheWVycyA9IHRoaXMub2wuZ2V0UHJvcGVydGllcygpLmxpbmtlZExheWVycyBhcyBMYXllcnNMaW5rO1xyXG4gICAgICAgIGlmICghbGlua2VkTGF5ZXJzKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY3VycmVudExpbmtlZElkID0gbGlua2VkTGF5ZXJzLmxpbmtJZDtcclxuICAgICAgICBjb25zdCBjdXJyZW50TGlua3MgPSBsaW5rZWRMYXllcnMubGlua3M7XHJcbiAgICAgICAgY29uc3QgaXNQYXJlbnRMYXllciA9IGN1cnJlbnRMaW5rcyA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICBpZiAoaXNQYXJlbnRMYXllcikge1xyXG4gICAgICAgICAgICAvLyBzZWFyY2ggZm9yIGNoaWxkIGxheWVyc1xyXG4gICAgICAgICAgICBjdXJyZW50TGlua3MubWFwKGxpbmsgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFsaW5rLnByb3BlcnRpZXMgfHwgbGluay5wcm9wZXJ0aWVzLmluZGV4T2YoTGlua2VkUHJvcGVydGllcy5USU1FRklMVEVSKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsaW5rLmxpbmtlZElkcy5tYXAobGlua2VkSWQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkTGF5ZXIgPSB0aGlzLm1hcC5sYXllcnMuZmluZChsYXllciA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXllci5kYXRhU291cmNlIGluc3RhbmNlb2YgV01TRGF0YVNvdXJjZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXllci5vcHRpb25zLmxpbmtlZExheWVycz8ubGlua0lkID09PSBsaW5rZWRJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkTGF5ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoaWxkTGF5ZXIuZGF0YVNvdXJjZSBhcyBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UpLnNldFRpbWVGaWx0ZXIodGltZUZpbHRlciwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhcHBsaWVkVGltZUZpbHRlciA9ICh0aGlzLm9sLmdldFNvdXJjZSgpIGFzIG9sU291cmNlSW1hZ2VXTVMpLmdldFBhcmFtcygpLlRJTUU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGlsZExheWVyLmRhdGFTb3VyY2UgYXMgV01TRGF0YVNvdXJjZSkub2wudXBkYXRlUGFyYW1zKHsgVElNRTogYXBwbGllZFRpbWVGaWx0ZXIgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHNlYXJjaCBmb3IgcGFyZW50IGxheWVyXHJcbiAgICAgICAgICAgIHRoaXMubWFwLmxheWVyc1xyXG4gICAgICAgICAgICAgICAgLmZpbHRlcihsYXllciA9PiBsYXllci5kYXRhU291cmNlIGluc3RhbmNlb2YgV01TRGF0YVNvdXJjZSlcclxuICAgICAgICAgICAgICAgIC5tYXAocGFyZW50TGF5ZXIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnRMYXllci5vcHRpb25zLmxpbmtlZExheWVycz8ubGlua3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50TGF5ZXIub3B0aW9ucy5saW5rZWRMYXllcnMubGlua3MubWFwKGwgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGwucHJvcGVydGllcyAmJiBsLnByb3BlcnRpZXMuaW5kZXhPZihMaW5rZWRQcm9wZXJ0aWVzLlRJTUVGSUxURVIpICE9PSAtMSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGwuYmlkaXJlY3Rpb25uYWwgIT09IGZhbHNlICYmIGwubGlua2VkSWRzLmluZGV4T2YoY3VycmVudExpbmtlZElkKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhcHBsaWVkVGltZUZpbHRlciA9ICh0aGlzLm9sLmdldFNvdXJjZSgpIGFzIG9sU291cmNlSW1hZ2VXTVMpLmdldFBhcmFtcygpLlRJTUU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudExheWVyLmRhdGFTb3VyY2UgYXMgV01TRGF0YVNvdXJjZSkub2wudXBkYXRlUGFyYW1zKHsgVElNRTogYXBwbGllZFRpbWVGaWx0ZXIgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudExheWVyLmRhdGFTb3VyY2UgYXMgVGltZUZpbHRlcmFibGVEYXRhU291cmNlKS5zZXRUaW1lRmlsdGVyKHRpbWVGaWx0ZXIsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
export function getLayersLegends(layers, view) {
|
|
6
6
|
const legends = [];
|
|
7
7
|
for (const layer of layers) {
|
|
8
|
+
const legendOptions = layer.options.legendOptions;
|
|
8
9
|
if (layer.visible === false) {
|
|
9
10
|
continue;
|
|
10
11
|
}
|
|
@@ -15,11 +16,12 @@ export function getLayersLegends(layers, view) {
|
|
|
15
16
|
}
|
|
16
17
|
// Add legend info to the list
|
|
17
18
|
legends.push({
|
|
18
|
-
title: layer.title,
|
|
19
|
-
url: legendUrl.url
|
|
19
|
+
title: layer.title || '',
|
|
20
|
+
url: legendUrl.url,
|
|
21
|
+
display: (legendOptions === null || legendOptions === void 0 ? void 0 : legendOptions.display) === undefined ? true : legendOptions.display
|
|
20
22
|
});
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
25
|
return legends;
|
|
24
26
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0TGVnZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvdXRpbHMvb3V0cHV0TGVnZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFlLEVBQUUsSUFBMkI7SUFDM0UsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBRW5CLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO1FBQzFCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBQ2xELElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUU7WUFBRSxTQUFTO1NBQUU7UUFFMUMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRTtZQUNsQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO2dCQUFFLFNBQVM7YUFBRTtZQUU5Qyw4QkFBOEI7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUN4QixHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUc7Z0JBQ2xCLE9BQU8sRUFBRSxDQUFBLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxPQUFPLE1BQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPO2FBQzdFLENBQUMsQ0FBQztTQUNKO0tBQ0Y7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2xheWVyJztcclxuaW1wb3J0IHsgTGVnZW5kTWFwVmlld09wdGlvbnMsIE91dHB1dExheWVyTGVnZW5kIH0gZnJvbSAnLi4vc2hhcmVkL2xheWVycy9sYXllci5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIEdldCBhbGwgdGhlIGxheWVycyBsZWdlbmRcclxuICogQHJldHVybiBBcnJheSBvZiBsZWdlbmRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXllcnNMZWdlbmRzKGxheWVyczogTGF5ZXJbXSwgdmlldz86IExlZ2VuZE1hcFZpZXdPcHRpb25zKTogT3V0cHV0TGF5ZXJMZWdlbmRbXSB7XHJcbiAgY29uc3QgbGVnZW5kcyA9IFtdO1xyXG5cclxuICBmb3IgKGNvbnN0IGxheWVyIG9mIGxheWVycykge1xyXG4gICAgY29uc3QgbGVnZW5kT3B0aW9ucyA9IGxheWVyLm9wdGlvbnMubGVnZW5kT3B0aW9ucztcclxuICAgIGlmIChsYXllci52aXNpYmxlID09PSBmYWxzZSkgeyBjb250aW51ZTsgfVxyXG5cclxuICAgIGNvbnN0IGxlZ2VuZFVybHMgPSBsYXllci5kYXRhU291cmNlLmdldExlZ2VuZCh1bmRlZmluZWQsIHZpZXcpIHx8IFtdO1xyXG4gICAgZm9yIChjb25zdCBsZWdlbmRVcmwgb2YgbGVnZW5kVXJscykge1xyXG4gICAgICBpZiAobGVnZW5kVXJsLnVybCA9PT0gdW5kZWZpbmVkKSB7IGNvbnRpbnVlOyB9XHJcblxyXG4gICAgICAvLyBBZGQgbGVnZW5kIGluZm8gdG8gdGhlIGxpc3RcclxuICAgICAgbGVnZW5kcy5wdXNoKHtcclxuICAgICAgICB0aXRsZTogbGF5ZXIudGl0bGUgfHwgJycsXHJcbiAgICAgICAgdXJsOiBsZWdlbmRVcmwudXJsLFxyXG4gICAgICAgIGRpc3BsYXk6IGxlZ2VuZE9wdGlvbnM/LmRpc3BsYXkgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBsZWdlbmRPcHRpb25zLmRpc3BsYXlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbGVnZW5kcztcclxufVxyXG4iXX0=
|