@igo2/geo 1.12.0 → 1.12.1
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 +34 -7
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -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 +1 -1
- package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -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 +1 -1
- package/esm2015/lib/draw/draw/draw-shorcuts.component.js +1 -1
- package/esm2015/lib/draw/draw/draw.component.js +1 -1
- 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 +1 -1
- package/esm2015/lib/draw/shared/draw.enum.js +1 -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 +1 -1
- package/esm2015/lib/feature/feature-details/feature-details.directive.js +1 -1
- 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 +1 -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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/esm2015/lib/layer/layer-legend/index.js +1 -1
- package/esm2015/lib/layer/layer-legend/layer-legend.component.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -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 +1 -1
- 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 +1 -1
- 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 +1 -1
- package/esm2015/lib/layer/utils/outputLegend.js +1 -1
- 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 +1 -1
- package/esm2015/lib/map/geolocate-button/index.js +1 -1
- package/esm2015/lib/map/index.js +1 -1
- package/esm2015/lib/map/info-section/index.js +1 -1
- package/esm2015/lib/map/info-section/info-section.component.js +1 -1
- package/esm2015/lib/map/map-browser/index.js +1 -1
- package/esm2015/lib/map/map-browser/map-browser.component.js +1 -1
- package/esm2015/lib/map/map-center/index.js +1 -1
- package/esm2015/lib/map/map-center/map-center.component.js +1 -1
- package/esm2015/lib/map/map.module.js +1 -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 +19 -4
- package/esm2015/lib/map/shared/controllers/index.js +1 -1
- package/esm2015/lib/map/shared/controllers/view.js +1 -1
- package/esm2015/lib/map/shared/hover-feature.directive.js +1 -1
- 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 +4 -3
- 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 +1 -1
- 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 +1 -1
- package/esm2015/lib/map/wake-lock-button/wake-lock-button.component.js +1 -1
- 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 +1 -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 +13 -2
- 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 +1 -1
- package/esm2015/lib/offline/geoDB/geoDB.interface.js +1 -1
- package/esm2015/lib/offline/geoDB/geoDB.service.js +1 -1
- package/esm2015/lib/offline/geoDB/index.js +1 -1
- package/esm2015/lib/offline/index.js +1 -1
- package/esm2015/lib/offline/shared/geo-network.service.js +1 -1
- package/esm2015/lib/offline/shared/index.js +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -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 +1 -1
- package/esm2015/lib/search/shared/sources/storedqueries.interfaces.js +1 -1
- package/esm2015/lib/search/shared/sources/storedqueries.js +1 -1
- 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 +1 -1
- package/esm2015/lib/workspace/confirmation-popup/confirmation-popup.module.js +1 -1
- package/esm2015/lib/workspace/confirmation-popup/index.js +1 -1
- package/esm2015/lib/workspace/index.js +1 -1
- package/esm2015/lib/workspace/shared/edition-workspace.js +1 -1
- package/esm2015/lib/workspace/shared/edition-workspace.service.js +1 -1
- package/esm2015/lib/workspace/shared/feature-workspace.js +1 -1
- package/esm2015/lib/workspace/shared/feature-workspace.service.js +1 -1
- package/esm2015/lib/workspace/shared/index.js +1 -1
- package/esm2015/lib/workspace/shared/wfs-workspace.js +1 -1
- package/esm2015/lib/workspace/shared/wfs-workspace.service.js +1 -1
- package/esm2015/lib/workspace/shared/wms-workspace.service.js +1 -1
- 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 +1 -1
- package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +1 -1
- package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +1 -1
- package/esm2015/lib/workspace/workspace-updator/workspace-updator.module.js +1 -1
- package/esm2015/lib/workspace/workspace.module.js +1 -1
- package/esm2015/public_api.js +1 -1
- package/fesm2015/igo2-geo.js +48 -21
- package/fesm2015/igo2-geo.js.map +1 -1
- package/lib/map/shared/controllers/geolocation.d.ts +3 -2
- package/lib/map/shared/map.d.ts +3 -2
- package/ngcc.config.js +3 -3
- package/package.json +4 -4
- package/style/geo.theming.scss +12 -12
|
@@ -895,4 +895,4 @@ OgcFilterTimeComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OgcF
|
|
|
895
895
|
type: ViewChild,
|
|
896
896
|
args: ['endTime']
|
|
897
897
|
}] }); })();
|
|
898
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlci10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyLXRpbWUvb2djLWZpbHRlci10aW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyLXRpbWUvb2djLWZpbHRlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQVF4RSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7O0lDakJoQywyQ0FHZ0M7SUFEOUIsOE9BQXdCLGtOQUFBO0lBRXhCLFlBQ0Y7O0lBQUEsaUJBQW1COzs7SUFIakIsMkNBQXdCO0lBRXhCLGVBQ0Y7SUFERSx1RkFDRjs7OztJQUVBLDhCQUFpRDtJQUMvQyxxREFNQztJQURDLHNQQUErQztJQUVqRCxpQkFBNkI7SUFFL0IsaUJBQU07OztJQVJGLGVBQW9CO0lBQXBCLHlDQUFvQixxRUFBQSx1Q0FBQSxpQ0FBQTs7OztJQVl0Qiw4QkFBMkQ7SUFHekQsMENBQW9DO0lBQ2xDLGlDQUFXO0lBQUEsWUFBNkM7O0lBQUEsaUJBQVk7SUFDcEUsaUNBTUc7SUFGRCw2UEFBd0QsT0FBTyxLQUFFO0lBSm5FLGlCQU1HO0lBQ0gsNENBQWlIO0lBRWpILDhDQU1HO0lBREQsMlFBQXNELE9BQU8sS0FBRTtJQUVqRSxpQkFBaUI7SUFFakIsZ0NBU0c7SUFDTCxpQkFBaUI7SUFF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QyxtQkFBbUI7WUFDSSxtQkFBbUI7a0JBQXBELFNBQVM7bUJBQUMscUJBQXFCO1lBQ1IsU0FBUztrQkFBaEMsU0FBUzttQkFBQyxXQUFXO1lBQ0EsT0FBTztrQkFBNUIsU0FBUzttQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkluaXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9nY0ZpbHRlck9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyLmVudW0nO1xyXG5pbXBvcnQgeyBPR0NGaWx0ZXJUaW1lU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLXRpbWUuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlLFxyXG4gIE9nY0ZpbHRlckR1cmluZ09wdGlvbnNcclxufSBmcm9tICcuLi9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xyXG5cclxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xyXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tb2djLWZpbHRlci10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2djLWZpbHRlci10aW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vZ2MtZmlsdGVyLXRpbWUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyVGltZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZGF0YXNvdXJjZTogT2djRmlsdGVyYWJsZURhdGFTb3VyY2U7XHJcbiAgQElucHV0KCkgY3VycmVudEZpbHRlcjogYW55O1xyXG4gIEBPdXRwdXQoKSBjaGFuZ2VQcm9wZXJ0eTogRXZlbnRFbWl0dGVyPHtcclxuICAgIHZhbHVlOiBzdHJpbmc7XHJcbiAgICBwb3M6IG51bWJlcjtcclxuICAgIHJlZnJlc2hGaWx0ZXI6IGJvb2xlYW47XHJcbiAgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgYmVnaW5Ib3VyczogbnVtYmVyW107XHJcbiAgZW5kSG91cnM6IG51bWJlcltdO1xyXG4gIGJlZ2luTWludXRlczogbnVtYmVyW107XHJcbiAgZW5kTWludXRlczogbnVtYmVyW107XHJcbiAgYmVnaW5Ib3VyRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBiZWdpbk1pbnV0ZUZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZW5kSG91ckZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZW5kTWludXRlRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBfYmVnaW5WYWx1ZTogRGF0ZTtcclxuICBfZW5kVmFsdWU6IERhdGU7XHJcbiAgcmVhZG9ubHkgX2RlZmF1bHRNaW46IHN0cmluZyA9ICcxOTAwLTAxLTAxJztcclxuICByZWFkb25seSBfZGVmYXVsdE1heDogc3RyaW5nID0gJzIwNTItMDEtMDYnO1xyXG4gIHJlYWRvbmx5IF9kZWZhdWx0RGlzcGxheUZvcm1hdDogc3RyaW5nID0gJ0REL01NL1lZWVkgSEg6bW0gQSc7XHJcbiAgcmVhZG9ubHkgX2RlZmF1bHRTbGlkZXJNb2RlRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgb2djRmlsdGVyT3BlcmF0b3IgPSBPZ2NGaWx0ZXJPcGVyYXRvcjtcclxuICBwdWJsaWMgc2xpZGVyTW9kZSA9IGZhbHNlO1xyXG5cclxuICByZWFkb25seSBkZWZhdWx0U3RlcE1pbGxpc2Vjb25kID0gNjAwMDA7XHJcbiAgcHVibGljIG9wdGlvbnM6IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucztcclxuXHJcbiAgcHVibGljIG9ubHlZZWFyQmVnaW46IG51bWJlcjtcclxuICBwdWJsaWMgb25seVllYXJFbmQ6IG51bWJlcjtcclxuICBwdWJsaWMgY2FsZW5kYXJUeXBlWWVhciA9IGZhbHNlO1xyXG4gIHB1YmxpYyByZXNldEljb24gPSAncmVwbGF5JztcclxuICBwdWJsaWMgZmlsdGVyU3RhdGVEaXNhYmxlOiBib29sZWFuO1xyXG5cclxuICBAVmlld0NoaWxkKCdlbmREYXRlcGlja2VyVGltZScpIGVuZERhdGVwaWNrZXJUaW1lOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2JlZ2luRGF0ZXBpY2tlclRpbWUnKSBiZWdpbkRhdGVwaWNrZXJUaW1lOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2JlZ2luVGltZScpIGJlZ2luVGltZTogSFRNTElucHV0RWxlbWVudDtcclxuICBAVmlld0NoaWxkKCdlbmRUaW1lJykgZW5kVGltZTogSFRNTElucHV0RWxlbWVudDtcclxuXHJcbiAgZ2V0IHN0ZXAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5zdGVwRGF0ZVxyXG4gICAgICA/IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnN0ZXBEYXRlXHJcbiAgICAgIDogdGhpcy5jdXJyZW50RmlsdGVyLnN0ZXA7XHJcbiAgfVxyXG5cclxuICBnZXQgc3RlcE1pbGxpc2Vjb25kcygpOiBudW1iZXIge1xyXG4gICAgY29uc3Qgc3RlcCA9IG1vbWVudC5kdXJhdGlvbih0aGlzLnN0ZXApLmFzTWlsbGlzZWNvbmRzKCk7XHJcbiAgICByZXR1cm4gc3RlcCA9PT0gMCA/IHRoaXMuZGVmYXVsdFN0ZXBNaWxsaXNlY29uZCA6IHN0ZXA7XHJcbiAgfVxyXG5cclxuICBzZXQgYmVnaW5WYWx1ZShiZWdpbjogRGF0ZSkge1xyXG4gICAgdGhpcy5fYmVnaW5WYWx1ZSA9IGJlZ2luO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGJlZ2luVmFsdWUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYmVnaW5WYWx1ZTtcclxuICB9XHJcblxyXG4gIHNldCBlbmRWYWx1ZShlbmQ6IERhdGUpIHtcclxuICAgIHRoaXMuX2VuZFZhbHVlID0gZW5kO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVuZFZhbHVlKCk6IERhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VuZFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNsaWRlckludGVydmFsKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlckludGVydmFsID09PSB1bmRlZmluZWRcclxuICAgICAgPyAyMDAwXHJcbiAgICAgIDogdGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlckludGVydmFsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heERhdGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5tYXhEYXRlID8gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMubWF4RGF0ZSA6IHRoaXMuX2RlZmF1bHRNYXg7XHJcbiAgfVxyXG5cclxuICBnZXQgZGlzcGxheUZvcm1hdCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEZpbHRlci5kaXNwbGF5Rm9ybWF0ID8gdGhpcy5jdXJyZW50RmlsdGVyLmRpc3BsYXlGb3JtYXQgOiB0aGlzLl9kZWZhdWx0RGlzcGxheUZvcm1hdDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvZ2NGaWx0ZXJUaW1lU2VydmljZTogT0dDRmlsdGVyVGltZVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlck9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlck9wdGlvbnMuZW5hYmxlZCA9IHRoaXMuY3VycmVudEZpbHRlci5zbGlkZXJPcHRpb25zLmVuYWJsZWQgIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgICAgdGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlck9wdGlvbnMuZW5hYmxlZCA6IHRoaXMuX2RlZmF1bHRTbGlkZXJNb2RlRW5hYmxlZDtcclxuICAgIH1cclxuICAgIHRoaXMuYmVnaW5WYWx1ZSA9IHRoaXMucGFyc2VGaWx0ZXIodGhpcy5oYW5kbGVNaW4oKSk7XHJcbiAgICB0aGlzLmVuZFZhbHVlID0gdGhpcy5wYXJzZUZpbHRlcih0aGlzLmhhbmRsZU1heCgpKTtcclxuXHJcbiAgICB0aGlzLm9ubHlZZWFyQmVnaW4gPSB0aGlzLmJlZ2luVmFsdWUuZ2V0VVRDRnVsbFllYXIoKTtcclxuICAgIHRoaXMub25seVllYXJFbmQgPSB0aGlzLmVuZFZhbHVlLmdldFVUQ0Z1bGxZZWFyKCk7XHJcbiAgICB0aGlzLmNhbGVuZGFyVHlwZVllYXIgPSB0aGlzLmlzQ2FsZW5kYXJZZWFyTW9kZSgpO1xyXG4gICAgdGhpcy5zZXRGaWx0ZXJTdGF0ZURpc2FibGUoKTtcclxuICAgIHRoaXMudXBkYXRlSG91cnNNaW51dGVzQXJyYXkoKTtcclxuICAgIC8vIHVwZGF0ZSB2YWx1ZSBmb3Igbm93IHZhbHVlXHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlcygpO1xyXG4gIH1cclxuXHJcbiAgcGFyc2VGaWx0ZXIoZmlsdGVyKTogRGF0ZSB7XHJcbiAgICBpZiAoIWZpbHRlcil7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSgpO1xyXG4gICAgfSBlbHNlIGlmICggaXNOYU4oIG5ldyBEYXRlKGZpbHRlcikuZ2V0VGltZSgpICkgKcKge1xyXG4gICAgICBpZiAoZmlsdGVyLnNlYXJjaCgnbm93JykgPj0gMCApwqB7XHJcbiAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBmaWx0ZXIubWF0Y2goL3llYXJzfG1vbnRoc3x3ZWVrc3xkYXlzfGhvdXJzfHNlY29uZHMvKTtcclxuICAgICAgICBpZiAoZmlsdGVyLm1hdGNoKC9cXCsvKSkge1xyXG4gICAgICAgICAgY29uc3QgaW50ZXJ2YWxJbnQgPSBwYXJzZUludChcclxuICAgICAgICAgICAgZmlsdGVyLnN1YnN0cmluZyhmaWx0ZXIuc2VhcmNoKCcrJykgKyAxLCBpbnRlcnZhbC5pbmRleCksXHJcbiAgICAgICAgICAgIDEwXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuIG1vbWVudCgpLmFkZChpbnRlcnZhbEludCwgaW50ZXJ2YWxbMF0pLnRvRGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZmlsdGVyLm1hdGNoKC9cXC0vKSkge1xyXG4gICAgICAgICAgY29uc3QgaW50ZXJ2YWxJbnQgPSBwYXJzZUludChcclxuICAgICAgICAgICAgZmlsdGVyLnN1YnN0cmluZyhmaWx0ZXIuc2VhcmNoKCctJykgKyAxLCBpbnRlcnZhbC5pbmRleCksXHJcbiAgICAgICAgICAgIDEwXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuIG1vbWVudCgpLnN1YnRyYWN0KGludGVydmFsSW50LCBpbnRlcnZhbFswXSkudG9EYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChmaWx0ZXIuc2VhcmNoKCd0b2RheScpID49IDApe1xyXG4gICAgICAgIGNvbnN0IF9ub3cgPSBtb21lbnQoKS5lbmRPZignZGF5JykudG9EYXRlKCk7XHJcbiAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBmaWx0ZXIubWF0Y2goL3llYXJzfG1vbnRoc3x3ZWVrc3xkYXlzfGhvdXJzfHNlY29uZHMvKTtcclxuICAgICAgICBpZiAoIGZpbHRlci5tYXRjaCgvXFwrLykgKSB7XHJcbiAgICAgICAgICBjb25zdCBpbnRlcnZhbEludCA9IHBhcnNlSW50KCBmaWx0ZXIuc3Vic3RyaW5nKGZpbHRlci5zZWFyY2goJysnKSArIDEsIGludGVydmFsLmluZGV4KSwgMTAgKTtcclxuICAgICAgICAgIHJldHVybiBtb21lbnQoX25vdykuYWRkKGludGVydmFsSW50LCBpbnRlcnZhbFswXSkudG9EYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICggZmlsdGVyLm1hdGNoKC9cXC0vKSApIHtcclxuICAgICAgICAgIGNvbnN0IGludGVydmFsSW50ID0gcGFyc2VJbnQoZmlsdGVyLnN1YnN0cmluZyhmaWx0ZXIuc2VhcmNoKCctJykgKyAxLCBpbnRlcnZhbC5pbmRleCksIDEwKTtcclxuICAgICAgICAgIHJldHVybiBtb21lbnQoX25vdykuc3VidHJhY3QoaW50ZXJ2YWxJbnQsIGludGVydmFsWzBdKS50b0RhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIF9ub3c7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXJyZW50RmlsdGVyLmNhbGVuZGFyTW9kZVllYXIpIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZ2V0RGF0ZUZyb21TdHJpbmdXaXRob3V0VGltZShmaWx0ZXIpO1xyXG4gICAgICByZXR1cm4gZGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmaWx0ZXIgPyBuZXcgRGF0ZShmaWx0ZXIpIDogbmV3IERhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZVRlbXBvcmFsUHJvcGVydHkodmFsdWUsIHBvc2l0aW9uPywgcmVmcmVzaEZpbHRlciA9IHRydWUpIHtcclxuICAgIGxldCB2YWx1ZVRtcCA9IHRoaXMuZ2V0RGF0ZVRpbWUodmFsdWUsIHBvc2l0aW9uKTtcclxuICAgIGlmICh0aGlzLmlzQ2FsZW5kYXJZZWFyTW9kZSgpKSB7XHJcbiAgICAgIGxldCBkYXRlU3RyaW5nRnJvbVllYXJOb3RpbWU7XHJcbiAgICAgIGlmIChwb3NpdGlvbiA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuYmVnaW5WYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMub25seVllYXJCZWdpbiA9IHRoaXMuYmVnaW5WYWx1ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIGRhdGVTdHJpbmdGcm9tWWVhck5vdGltZSA9IGAke3RoaXMub25seVllYXJCZWdpbn0tMDEtMDFgO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZW5kVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLm9ubHlZZWFyRW5kID0gdGhpcy5lbmRWYWx1ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIGRhdGVTdHJpbmdGcm9tWWVhck5vdGltZSA9IGAke3RoaXMub25seVllYXJFbmR9LTAxLTAxYDtcclxuICAgICAgfVxyXG4gICAgICAvLyBjYWxsIHNlcnZpY2Ugd2l0aCBzdHJpbmcgZGF0ZSB3aXRob3V0IHRpbWVcclxuICAgICAgdGhpcy5jaGFuZ2VQcm9wZXJ0eS5uZXh0KHsgdmFsdWU6IGRhdGVTdHJpbmdGcm9tWWVhck5vdGltZSwgcG9zOiBwb3NpdGlvbiwgcmVmcmVzaEZpbHRlciB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHBvc2l0aW9uID09PSAyICYmIHRoaXMuY2FsZW5kYXJUeXBlKCkgPT09ICdkYXRlJyAmJiAhdGhpcy5zbGlkZXJNb2RlKSB7XHJcbiAgICAgIC8qIEFib3ZlIG1vbnRoOiBzZWUgeWVhclNlbGVjdGVkIG9yIG1vbnRoU2VsZWN0ZWQgKi9cclxuICAgICAgdmFsdWVUbXAgPSBtb21lbnQodmFsdWVUbXApLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocG9zaXRpb24gPT09IDEpIHtcclxuICAgICAgdGhpcy5iZWdpblZhbHVlID0gdmFsdWVUbXA7XHJcbiAgICAgIGlmICh0aGlzLnJlc3RyaWN0ZWRUb1N0ZXAoKSkge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlVGVtcG9yYWxQcm9wZXJ0eSh0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLmFkZFN0ZXAodmFsdWVUbXAsIHRoaXMuc3RlcE1pbGxpc2Vjb25kcyksIDIsIHJlZnJlc2hGaWx0ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVuZFZhbHVlID0gdmFsdWVUbXA7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUhvdXJzTWludXRlc0FycmF5KCk7XHJcbiAgICB0aGlzLmNoYW5nZVByb3BlcnR5Lm5leHQoeyB2YWx1ZTogdmFsdWVUbXAudG9JU09TdHJpbmcoKSwgcG9zOiBwb3NpdGlvbiwgcmVmcmVzaEZpbHRlciB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZURhdGUodmFsdWUpOiBEYXRlIHtcclxuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09ICcnKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mKHZhbHVlKSA9PT0gJ3N0cmluZycgJiYgdGhpcy5jdXJyZW50RmlsdGVyLmNhbGVuZGFyTW9kZVllYXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZUZyb21TdHJpbmdXaXRob3V0VGltZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2FsZW5kYXJUeXBlKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudEZpbHRlci5jYWxlbmRhck1vZGVZZWFyKSB7XHJcbiAgICAgIHJldHVybiAneWVhcic7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdGVwTWlsbGlzZWNvbmRzIDwgODY0MDAwMDApIHtcclxuICAgICAgcmV0dXJuICdkYXRldGltZSc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJ2RhdGUnO1xyXG4gIH1cclxuXHJcbiAgaXNDYWxlbmRhclllYXJNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuY2FsZW5kYXJUeXBlKCkgPT09ICd5ZWFyJykge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHllYXJPbmx5SW5wdXRDaGFuZ2UoY2hhbmdlRXZlbnQsIGRhdGVQaWNrZXI/OiBhbnksIHByb3BlcnR5Pzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB5ZWFyID0gY2hhbmdlRXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgY29uc3QgZGF0ZSA9IHRoaXMuZ2V0RGF0ZUZyb21TdHJpbmdXaXRob3V0VGltZSh5ZWFyKTtcclxuICAgIHRoaXMueWVhclNlbGVjdGVkKGRhdGUsIGRhdGVQaWNrZXIsIHByb3BlcnR5KTtcclxuICB9XHJcblxyXG4gIHllYXJTZWxlY3RlZCh5ZWFyLCBkYXRlUGlja2VyPzogYW55LCBwcm9wZXJ0eT86IHN0cmluZywgcmVmcmVzaEZpbHRlciA9IHRydWUpIHtcclxuICAgIGlmICh0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXBJc1llYXJEdXJhdGlvbih0aGlzLnN0ZXApKSB7XHJcbiAgICAgIGlmIChkYXRlUGlja2VyKSB7XHJcbiAgICAgICAgZGF0ZVBpY2tlci5jbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChwcm9wZXJ0eSA9PT0gJ2VuZCcpIHtcclxuICAgICAgICAvLyBjaGFuZ2UgdmFsdWUgMDEgamFuIHRvIDMxIGRlYyBzYW1lIHllYXJcclxuICAgICAgICB5ZWFyID0gbW9tZW50KHllYXIpLmVuZE9mKCd5ZWFyJykudG9EYXRlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkgPT09ICdiZWdpbicgJiYgdGhpcy5yZXN0cmljdGVkVG9TdGVwKCkgJiYgIXRoaXMuY2FsZW5kYXJUeXBlWWVhcikge1xyXG4gICAgICAgIHRoaXMueWVhclNlbGVjdGVkKHllYXIsIHVuZGVmaW5lZCwgJ2VuZCcpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hhbmdlVGVtcG9yYWxQcm9wZXJ0eSh5ZWFyLCBwcm9wZXJ0eSA9PT0gJ2JlZ2luJyA/IDEgOiAyLCByZWZyZXNoRmlsdGVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vbnRoU2VsZWN0ZWQobW9udGgsIGRhdGVQaWNrZXI/OiBhbnksIHByb3BlcnR5Pzogc3RyaW5nLCByZWZyZXNoRmlsdGVyID0gdHJ1ZSkge1xyXG4gICAgaWYgKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTW9udGhEdXJhdGlvbih0aGlzLnN0ZXApKSB7XHJcbiAgICAgIGlmIChkYXRlUGlja2VyKSB7XHJcbiAgICAgICAgZGF0ZVBpY2tlci5jbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChwcm9wZXJ0eSA9PT0gJ2VuZCcpIHtcclxuICAgICAgICBtb250aCA9IG1vbWVudChtb250aCkuZW5kT2YoJ21vbnRoJykudG9EYXRlKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkgPT09ICdiZWdpbicgJiYgdGhpcy5yZXN0cmljdGVkVG9TdGVwKCkpIHtcclxuICAgICAgICB0aGlzLm1vbnRoU2VsZWN0ZWQobW9udGgsIHVuZGVmaW5lZCwgJ2VuZCcpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hhbmdlVGVtcG9yYWxQcm9wZXJ0eShtb250aCwgcHJvcGVydHkgPT09ICdiZWdpbicgPyAxIDogMiwgcmVmcmVzaEZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxlbmRhclZpZXcoKSB7XHJcbiAgICBjb25zdCB0ZXN0ID0gdGhpcy5zdGVwTWlsbGlzZWNvbmRzO1xyXG4gICAgY29uc3QgZGlmZiA9IE1hdGguYWJzKFxyXG4gICAgICB0aGlzLnBhcnNlRmlsdGVyKHRoaXMuY3VycmVudEZpbHRlci5lbmQpLmdldFRpbWUoKSAtXHJcbiAgICAgICAgdGhpcy5wYXJzZUZpbHRlcih0aGlzLmN1cnJlbnRGaWx0ZXIuYmVnaW4pLmdldFRpbWUoKVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXBJc1llYXJEdXJhdGlvbih0aGlzLnN0ZXApKSB7XHJcbiAgICAgIHJldHVybiAnbXVsdGkteWVhcic7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTW9udGhEdXJhdGlvbih0aGlzLnN0ZXApKSB7XHJcbiAgICAgIHJldHVybiAneWVhcic7XHJcbiAgICB9IGVsc2UgaWYgKHRlc3QgPCA4NjQwMDAwMCAmJiBkaWZmIDwgODY0MDAwMDApIHtcclxuICAgICAgcmV0dXJuICdjbG9jayc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJ21vbnRoJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRhdGVGaWx0ZXIodHlwZTogc3RyaW5nLCBkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGRhdGVWYWx1ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgY29uc3QgZGlmZiA9IGRhdGVWYWx1ZS5nZXRUaW1lKCkgLSBuZXcgRGF0ZSh0aGlzLmhhbmRsZU1pbigpKS5nZXRUaW1lKCk7XHJcblxyXG4gICAgaWYgKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzWWVhckR1cmF0aW9uKHRoaXMuc3RlcCkpIHtcclxuICAgICAgY29uc3QgbW9udGhEaWZmID0gbW9tZW50KGRhdGVWYWx1ZSkuZGlmZihtb21lbnQodGhpcy5oYW5kbGVNaW4oKSksICd5ZWFycycsIHRydWUpO1xyXG4gICAgICBpZiAoIHR5cGUgPT09ICdlbmQnICkge1xyXG4gICAgICAgIGNvbnN0IGRhdGVWYWx1ZVBsdXMxID0gbW9tZW50KGRhdGVWYWx1ZSkuYWRkKDEsICdkJyk7XHJcbiAgICAgICAgY29uc3QgbW9udGhEaWZmUGx1czEgPSBtb21lbnQoZGF0ZVZhbHVlUGx1czEpLmRpZmYobW9tZW50KHRoaXMuaGFuZGxlTWluKCkpLCAneWVhcnMnLCB0cnVlKTtcclxuICAgICAgICByZXR1cm4gKG1vbnRoRGlmZlBsdXMxICUgbW9tZW50LmR1cmF0aW9uKHRoaXMuc3RlcCkuYXNZZWFycygpKSA9PT0gMDtcclxuICAgICAgfSBlbHNlIGlmICggdHlwZSA9PT0gJ2JlZ2luJyApIHtcclxuICAgICAgICByZXR1cm4gKG1vbnRoRGlmZiAlIG1vbWVudC5kdXJhdGlvbih0aGlzLnN0ZXApLmFzWWVhcnMoKSkgPT09IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTW9udGhEdXJhdGlvbih0aGlzLnN0ZXApKSB7XHJcbiAgICAgIGNvbnN0IG1vbnRoRGlmZiA9IG1vbWVudChkYXRlVmFsdWUpLmRpZmYobW9tZW50KHRoaXMuaGFuZGxlTWluKCkpLCAnbW9udGhzJywgdHJ1ZSk7XHJcbiAgICAgIGlmICggdHlwZSA9PT0gJ2VuZCcgKSB7XHJcbiAgICAgICAgY29uc3QgZGF0ZVZhbHVlUGx1czEgPSBtb21lbnQoZGF0ZVZhbHVlKS5hZGQoMSwgJ2QnKTtcclxuICAgICAgICBjb25zdCBtb250aERpZmZQbHVzMSA9IG1vbWVudChkYXRlVmFsdWVQbHVzMSkuZGlmZihtb21lbnQodGhpcy5oYW5kbGVNaW4oKSksICdtb250aHMnLCB0cnVlKTtcclxuICAgICAgICByZXR1cm4gKG1vbnRoRGlmZlBsdXMxICUgbW9tZW50LmR1cmF0aW9uKHRoaXMuc3RlcCkuYXNNb250aHMoKSkgPT09IDA7XHJcbiAgICAgIH0gZWxzZSBpZiAoIHR5cGUgPT09ICdiZWdpbicgKSB7XHJcbiAgICAgICAgcmV0dXJuIChtb250aERpZmYgJSBtb21lbnQuZHVyYXRpb24odGhpcy5zdGVwKS5hc01vbnRocygpKSA9PT0gMDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXBJc1dlZWtEdXJhdGlvbih0aGlzLnN0ZXApKSB7XHJcbiAgICAgIGNvbnN0IHdlZWtEaWZmID0gbW9tZW50KGRhdGVWYWx1ZSkuZGlmZihtb21lbnQodGhpcy5oYW5kbGVNaW4oKSksICd3ZWVrcycsIHRydWUpO1xyXG4gICAgICBpZiAoIHR5cGUgPT09ICdlbmQnICkge1xyXG4gICAgICAgIGNvbnN0IGRhdGVWYWx1ZVBsdXMxID0gbW9tZW50KGRhdGVWYWx1ZSkuYWRkKDEsICdkJyk7XHJcbiAgICAgICAgY29uc3Qgd2Vla0RpZmZQbHVzMSA9IG1vbWVudChkYXRlVmFsdWVQbHVzMSkuZGlmZihtb21lbnQodGhpcy5oYW5kbGVNaW4oKSksICd3ZWVrcycsIHRydWUpO1xyXG4gICAgICAgIHJldHVybiAod2Vla0RpZmZQbHVzMSAlIG1vbWVudC5kdXJhdGlvbih0aGlzLnN0ZXApLmFzV2Vla3MoKSkgPT09IDA7XHJcbiAgICAgIH0gZWxzZSBpZiAoIHR5cGUgPT09ICdiZWdpbicgKSB7XHJcbiAgICAgICAgcmV0dXJuICh3ZWVrRGlmZiAlIG1vbWVudC5kdXJhdGlvbih0aGlzLnN0ZXApLmFzV2Vla3MoKSkgPT09IDA7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNEYXlEdXJhdGlvbih0aGlzLnN0ZXApKSB7XHJcbiAgICAgIGNvbnN0IGRheURpZmYgPSBtb21lbnQoZGF0ZVZhbHVlKS5kaWZmKG1vbWVudCh0aGlzLmhhbmRsZU1pbigpKSwgJ2RheXMnLCB0cnVlKTtcclxuICAgICAgaWYgKCB0eXBlID09PSAnZW5kJyApIHtcclxuICAgICAgICBjb25zdCBkYXRlVmFsdWVQbHVzMSA9IG1vbWVudChkYXRlVmFsdWUpLmFkZCgxLCAnZCcpO1xyXG4gICAgICAgIGNvbnN0IGRheURpZmZQbHVzMSA9IG1vbWVudChkYXRlVmFsdWVQbHVzMSkuZGlmZihtb21lbnQodGhpcy5oYW5kbGVNaW4oKSksICdkYXlzJywgdHJ1ZSk7XHJcbiAgICAgICAgY29uc3QgX21vZCA9IChkYXlEaWZmUGx1czEgJSBtb21lbnQuZHVyYXRpb24odGhpcy5zdGVwKS5hc0RheXMoKSk7XHJcbiAgICAgICAgcmV0dXJuIChfbW9kIDwgMC4wMDAwMDAxICYmIF9tb2QgPiAtMC4wMDAwMDAxKSB8fCBfbW9kID09PSAwIDsgLy8gMSBtaWxsaXNlY29uZCA9IDEuMTU3NDA3NDA3NDA3NDA3NmUtOFxyXG4gICAgICB9IGVsc2UgaWYgKCB0eXBlID09PSAnYmVnaW4nICkge1xyXG4gICAgICAgIGNvbnN0IF9tb2QgPSAoKGRheURpZmYgJSBtb21lbnQuZHVyYXRpb24odGhpcy5zdGVwKS5hc0RheXMoKSkgKyAxKTtcclxuICAgICAgICByZXR1cm4gKF9tb2QgPCAwLjAwMDAwMDEgJiYgX21vZCA+IC0wLjAwMDAwMDEgJiYgX21vZCAhPT0gMCkgfHwgX21vZCA9PT0gMSA7IC8vIDEgbWlsbGlzZWNvbmQgPSAxLjE1NzQwNzQwNzQwNzQwNzZlLThcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICggdGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNIb3VyRHVyYXRpb24odGhpcy5zdGVwKSApIHtcclxuICAgICAgY29uc3QgaG91ckRpZmYgPSBtb21lbnQoZGF0ZVZhbHVlKS5kaWZmKG1vbWVudCh0aGlzLmhhbmRsZU1pbigpKSwgJ2hvdXJzJywgdHJ1ZSk7XHJcbiAgICAgIHJldHVybiAoaG91ckRpZmYgJSBtb21lbnQuZHVyYXRpb24odGhpcy5zdGVwKS5hc0hvdXJzKCkpID09PSAwO1xyXG5cclxuICAgIH0gZWxzZSBpZiAoIHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTWludXRlRHVyYXRpb24odGhpcy5zdGVwKSApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRpZmYgJSB0aGlzLnN0ZXBNaWxsaXNlY29uZHMgPT09IDA7XHJcbiAgfVxyXG5cclxuICBnZXREYXRlVGltZShkYXRlLCBwb3MpIHtcclxuICAgIGNvbnN0IHZhbHVldG1wID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBsZXQgdmFsdWV0bXAyO1xyXG4gICAgaWYgKCF0aGlzLnNsaWRlck1vZGUpIHtcclxuICAgICAgc3dpdGNoIChwb3MpIHtcclxuICAgICAgICBjYXNlIDE6IHtcclxuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIuY2FsZW5kYXJNb2RlWWVhcikge1xyXG4gICAgICAgICAgICB2YWx1ZXRtcDIgPSB2YWx1ZXRtcC5zZXRIb3VycygwLCAwKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZXRtcDIgPSB2YWx1ZXRtcC5zZXRIb3VycyhcclxuICAgICAgICAgICAgdGhpcy5iZWdpbkhvdXJGb3JtQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgdGhpcy5iZWdpbk1pbnV0ZUZvcm1Db250cm9sLnZhbHVlXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjYXNlIDI6IHtcclxuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIuY2FsZW5kYXJNb2RlWWVhcikge1xyXG4gICAgICAgICAgICB2YWx1ZXRtcDIgPSB2YWx1ZXRtcC5zZXRIb3VycygwLCAwKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZXRtcDIgPSB2YWx1ZXRtcC5zZXRIb3VycyhcclxuICAgICAgICAgICAgICB0aGlzLmVuZEhvdXJGb3JtQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgICB0aGlzLmVuZE1pbnV0ZUZvcm1Db250cm9sLnZhbHVlXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVldG1wMiA/IHZhbHVldG1wMiA6IHZhbHVldG1wKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU1pbnV0ZUluY3JlbWVudCgpIHtcclxuICAgIGlmICh0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXBJc01pbnV0ZUR1cmF0aW9uKHRoaXMuc3RlcCkpIHtcclxuICAgICAgaWYgKHRoaXMuc3RlcE1pbGxpc2Vjb25kcyA8IDM2MDAwMDApIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGVwTWlsbGlzZWNvbmRzIC8gMTAwMCA9PT0gNjAgPyAxIDogdGhpcy5zdGVwTWlsbGlzZWNvbmRzIC8gMTAwMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuc3RlcE1pbGxpc2Vjb25kcyAlIDM2MDAwMDApIC8gNjA7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNIb3VyRHVyYXRpb24odGhpcy5zdGVwKSkge1xyXG4gICAgICByZXR1cm4gNjA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUhvdXJJbmNyZW1lbnQoKSB7XHJcbiAgICBpZiAodGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNIb3VyRHVyYXRpb24odGhpcy5zdGVwKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zdGVwTWlsbGlzZWNvbmRzIC8gMTAwMCAvIDYwIC8gNjA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMTtcclxuICB9XHJcblxyXG4gIGZ1bGxCZWdpbkhvdXJzQXJyYXkoY2hlY2tFbmRWYWx1ZT8pIHtcclxuICAgIGlmIChjaGVja0VuZFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuYmVnaW5Ib3VycyA9IEFycmF5LmZyb20oXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVuZ3RoOlxyXG4gICAgICAgICAgICAodGhpcy5lbmRIb3VyRm9ybUNvbnRyb2wudmFsdWUgLSAwKSAvIHRoaXMuaGFuZGxlSG91ckluY3JlbWVudCgpICsgMVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKF8sIGkpID0+IDAgKyBpICogdGhpcy5oYW5kbGVIb3VySW5jcmVtZW50KClcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYmVnaW5Ib3VycyA9IEFycmF5LmZyb20oXHJcbiAgICAgICAgeyBsZW5ndGg6ICgyMyAtIDApIC8gdGhpcy5oYW5kbGVIb3VySW5jcmVtZW50KCkgKyAxIH0sXHJcbiAgICAgICAgKF8sIGkpID0+IDAgKyBpICogdGhpcy5oYW5kbGVIb3VySW5jcmVtZW50KClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuYmVnaW5Ib3VyRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5iZWdpblZhbHVlLmdldEhvdXJzKCkpO1xyXG4gIH1cclxuXHJcbiAgZnVsbEVuZEhvdXJzQXJyYXkoY2hlY2tFbmRWYWx1ZT8pIHtcclxuICAgIGlmIChjaGVja0VuZFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZW5kSG91cnMgPSBBcnJheS5mcm9tKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxlbmd0aDpcclxuICAgICAgICAgICAgKDIzIC0gdGhpcy5iZWdpbkhvdXJGb3JtQ29udHJvbC52YWx1ZSkgL1xyXG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlSG91ckluY3JlbWVudCgpICtcclxuICAgICAgICAgICAgMVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKF8sIGkpID0+XHJcbiAgICAgICAgICB0aGlzLmJlZ2luSG91ckZvcm1Db250cm9sLnZhbHVlICsgaSAqIHRoaXMuaGFuZGxlSG91ckluY3JlbWVudCgpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVuZEhvdXJzID0gQXJyYXkuZnJvbShcclxuICAgICAgICB7IGxlbmd0aDogKDIzIC0gMCkgLyB0aGlzLmhhbmRsZUhvdXJJbmNyZW1lbnQoKSArIDEgfSxcclxuICAgICAgICAoXywgaSkgPT4gMCArIGkgKiB0aGlzLmhhbmRsZUhvdXJJbmNyZW1lbnQoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbmRIb3VyRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5lbmRWYWx1ZS5nZXRIb3VycygpKTtcclxuICB9XHJcblxyXG4gIGZ1bGxCZWdpbk1pbnV0ZXNBcnJheShjaGVja0VuZFZhbHVlPykge1xyXG4gICAgaWYgKGNoZWNrRW5kVmFsdWUpIHtcclxuICAgICAgdGhpcy5iZWdpbk1pbnV0ZXMgPSBBcnJheS5mcm9tKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxlbmd0aDpcclxuICAgICAgICAgICAgKHRoaXMuZW5kTWludXRlRm9ybUNvbnRyb2wudmFsdWUgLSAwKSAvXHJcbiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVNaW51dGVJbmNyZW1lbnQoKSArXHJcbiAgICAgICAgICAgIDFcclxuICAgICAgICB9LFxyXG4gICAgICAgIChfLCBpKSA9PiAwICsgaSAqIHRoaXMuaGFuZGxlTWludXRlSW5jcmVtZW50KClcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYmVnaW5NaW51dGVzID0gQXJyYXkuZnJvbShcclxuICAgICAgICB7IGxlbmd0aDogKDU5IC0gMCkgLyB0aGlzLmhhbmRsZU1pbnV0ZUluY3JlbWVudCgpICsgMSB9LFxyXG4gICAgICAgIChfLCBpKSA9PiAwICsgaSAqIHRoaXMuaGFuZGxlTWludXRlSW5jcmVtZW50KClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuYmVnaW5NaW51dGVGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmJlZ2luVmFsdWUuZ2V0TWludXRlcygpKTtcclxuICB9XHJcblxyXG4gIGZ1bGxFbmRNaW51dGVzQXJyYXkoY2hlY2tFbmRWYWx1ZT8pIHtcclxuICAgIGlmIChjaGVja0VuZFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuZW5kTWludXRlcyA9IEFycmF5LmZyb20oXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGVuZ3RoOlxyXG4gICAgICAgICAgICAoNTkgLSB0aGlzLmJlZ2luTWludXRlRm9ybUNvbnRyb2wudmFsdWUpIC9cclxuICAgICAgICAgICAgICB0aGlzLmhhbmRsZU1pbnV0ZUluY3JlbWVudCgpICtcclxuICAgICAgICAgICAgMVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKF8sIGkpID0+XHJcbiAgICAgICAgICB0aGlzLmJlZ2luTWludXRlRm9ybUNvbnRyb2wudmFsdWUgKyBpICogdGhpcy5oYW5kbGVNaW51dGVJbmNyZW1lbnQoKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lbmRNaW51dGVzID0gQXJyYXkuZnJvbShcclxuICAgICAgICB7IGxlbmd0aDogKDU5IC0gMCkgLyB0aGlzLmhhbmRsZU1pbnV0ZUluY3JlbWVudCgpICsgMSB9LFxyXG4gICAgICAgIChfLCBpKSA9PiAwICsgaSAqIHRoaXMuaGFuZGxlTWludXRlSW5jcmVtZW50KClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuZW5kTWludXRlRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5lbmRWYWx1ZS5nZXRNaW51dGVzKCkpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlSG91cnNNaW51dGVzQXJyYXkoKSB7XHJcbiAgICBjb25zdCBiZWdpblRtcCA9IG5ldyBEYXRlKHRoaXMuYmVnaW5WYWx1ZSk7XHJcbiAgICBjb25zdCBlbmRUbXAgPSBuZXcgRGF0ZSh0aGlzLmVuZFZhbHVlKTtcclxuICAgIGlmIChiZWdpblRtcC5zZXRIb3VycygwLCAwKSA9PT0gZW5kVG1wLnNldEhvdXJzKDAsIDApKSB7XHJcbiAgICAgIHRoaXMuZnVsbEJlZ2luSG91cnNBcnJheSh0cnVlKTtcclxuICAgICAgdGhpcy5mdWxsRW5kSG91cnNBcnJheSh0cnVlKTtcclxuICAgICAgaWYgKHRoaXMuYmVnaW5WYWx1ZS5nZXRIb3VycygpID09PSB0aGlzLmVuZFZhbHVlLmdldEhvdXJzKCkpIHtcclxuICAgICAgICB0aGlzLmZ1bGxCZWdpbk1pbnV0ZXNBcnJheSh0cnVlKTtcclxuICAgICAgICB0aGlzLmZ1bGxFbmRNaW51dGVzQXJyYXkodHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZnVsbEJlZ2luSG91cnNBcnJheSgpO1xyXG4gICAgICB0aGlzLmZ1bGxFbmRIb3Vyc0FycmF5KCk7XHJcbiAgICAgIHRoaXMuZnVsbEJlZ2luTWludXRlc0FycmF5KCk7XHJcbiAgICAgIHRoaXMuZnVsbEVuZE1pbnV0ZXNBcnJheSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLmNoYW5nZVRlbXBvcmFsUHJvcGVydHkodGhpcy5iZWdpblZhbHVlLCAxLCBmYWxzZSk7XHJcbiAgICB0aGlzLmNoYW5nZVRlbXBvcmFsUHJvcGVydHkodGhpcy5lbmRWYWx1ZSwgMiwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzdHJpY3RlZFRvU3RlcCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRGaWx0ZXIucmVzdHJpY3RUb1N0ZXBcclxuICAgICAgPyB0aGlzLmN1cnJlbnRGaWx0ZXIucmVzdHJpY3RUb1N0ZXAgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVNaW4oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50RmlsdGVyLmJlZ2luID8gdGhpcy5jdXJyZW50RmlsdGVyLmJlZ2luIDpcclxuICAgICAgICAgICAgICAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMubWluRGF0ZSA/IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm1pbkRhdGUgOiB0aGlzLl9kZWZhdWx0TWluKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVNYXgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50RmlsdGVyLmVuZCA/IHRoaXMuY3VycmVudEZpbHRlci5lbmQgOlxyXG4gICAgICAgICAgICAgICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5tYXhEYXRlID8gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMubWF4RGF0ZSA6IHRoaXMuX2RlZmF1bHRNYXgpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlUHJvcGVydHlCeVBhc3MoZXZlbnQpIHtcclxuICAgIHRoaXMuY2hhbmdlUHJvcGVydHkubmV4dChldmVudCk7XHJcbiAgfVxyXG5cclxuICBtb2RlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICBpZiAoIWV2ZW50LmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEZpbHRlclN0YXRlRGlzYWJsZSgpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIpIHtcclxuICAgICAgdGhpcy5maWx0ZXJTdGF0ZURpc2FibGUgPSAhdGhpcy5jdXJyZW50RmlsdGVyLmFjdGl2ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyU3RhdGVEaXNhYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmNhbGVuZGFyVHlwZSgpID09PSAnZGF0ZXRpbWUnKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbHRlclN0YXRlRGlzYWJsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuYmVnaW5Ib3VyRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICAgIHRoaXMuYmVnaW5NaW51dGVGb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5lbmRIb3VyRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICAgIHRoaXMuZW5kTWludXRlRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYmVnaW5Ib3VyRm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICAgICAgdGhpcy5iZWdpbk1pbnV0ZUZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgICAgIHRoaXMuZW5kSG91ckZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgICAgIHRoaXMuZW5kTWludXRlRm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0RGF0ZUZyb21TdHJpbmdXaXRob3V0VGltZShzdHJpbmdEYXRlOiBzdHJpbmcpOiBEYXRlIHtcclxuICAgIC8vIHdhcm5pbmcgY3JlYXRlIGRhdGUgd2l0aCBubyB0aW1lIG1ha2UgYSBkYXRlIFVUQyB3aXRoIFRaIGFuZCB0aGUgZGF0ZSBjcmVhdGUgbWF5YmUgbm90IHRoZSBzYW1lIHllYXIsIG1vbnRoIGFuZCBkYXlcclxuICAgIC8vIGV4ZW1wbGU6XHJcbiAgICAvLyBuZXcgRGF0ZSgnMjAyMi0wMS0wMScpIC0+IEZyaSBEZWMgMzEgMjAyMSAxOTowMDowMCBHTVQtMDUwMCAoaGV1cmUgbm9ybWFsZSBkZSBs4oCZRXN0IG5vcmQtYW3DqXJpY2FpbilcclxuICAgIC8vIHRvIGNyZWF0ZSBzYW1lIGRhdGUgYXMgc3RyaW5nLCBhZGQgdGltZSAwMCBpbiB0aGUgY3JlYXRpb25cclxuICAgIC8vIG5ldyBEYXRlKCcyMDIyLTAxLTAxIDAwOjAwOjAwJykgLT4gU2F0IEphbiAwMSAyMDIyIDAwOjAwOjAwIEdNVC0wNTAwIChoZXVyZSBub3JtYWxlIGRlIGzigJlFc3Qgbm9yZC1hbcOpcmljYWluKVxyXG4gICAgbGV0IHllYXI7XHJcbiAgICBsZXQgbW9udGggPSAnMDEnO1xyXG4gICAgbGV0IGRheSA9ICcwMSc7XHJcbiAgICBpZiAoc3RyaW5nRGF0ZS5sZW5ndGggPT09IDEwKSB7XHJcbiAgICAgICBjb25zdCBkYXRlSXRlbXMgPSBzdHJpbmdEYXRlLnNwbGl0KCctJyk7XHJcbiAgICAgICAgaWYgKGRhdGVJdGVtcy5sZW5ndGggIT09IDMpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgaW4gY29uZmlnIGRhdGUgYmVnaW4tZW5kIGZvciBvZ2NGaWx0ZXI6IERhdGUgd2l0aG91dCB0aW1lIGZvcm1hdCBuZWVkIHRvIGJlIFlZWVktTU0tREQgb3IgWVlZWScpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB5ZWFyID0gZGF0ZUl0ZW1zWzBdO1xyXG4gICAgICAgICAgbW9udGggPSBkYXRlSXRlbXNbMV07XHJcbiAgICAgICAgICBkYXkgPSBkYXRlSXRlbXNbMl07XHJcbiAgICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChzdHJpbmdEYXRlLmxlbmd0aCA9PT0gNCkge1xyXG4gICAgICB5ZWFyID0gc3RyaW5nRGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZShzdHJpbmdEYXRlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZShgJHt5ZWFyfS0ke21vbnRofS0ke2RheX0gMDA6MDA6MDBgKTtcclxuICB9XHJcblxyXG4gIHJlc2V0RmlsdGVyKCkge1xyXG4gICAgbGV0IGZpbHRlck9yaWdpbkNvbmZpZyA9IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuZmlsdGVycyBhcyBPZ2NGaWx0ZXJEdXJpbmdPcHRpb25zO1xyXG5cclxuICAgIGxldCBtaW5EZWZhdWx0RGF0ZTtcclxuICAgIGxldCBtYXhEZWZhdWx0RGF0ZTtcclxuICAgIGxldCBtaW5EZWZhdWx0SVNPU3RyaW5nO1xyXG4gICAgbGV0IG1heERlZmF1bHRJU09TdHJpbmc7XHJcblxyXG4gICAgaWYgKHRoaXMuY2FsZW5kYXJUeXBlWWVhcikge1xyXG4gICAgICBpZiAoZmlsdGVyT3JpZ2luQ29uZmlnLmVuZCA9PT0gJ3RvZGF5Jykge1xyXG4gICAgICAgIGxldCB0b2RheURhdGVTdHJpbmdOb1RpbWUgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tQ0EnKTsgLy8gJzIwMjItMDItMTMnXHJcbiAgICAgICAgbWF4RGVmYXVsdElTT1N0cmluZyA9IGAke3RvZGF5RGF0ZVN0cmluZ05vVGltZS5zdWJzdHJpbmcoMCw0KX0tMDEtMDFgO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1heERlZmF1bHRJU09TdHJpbmcgPSBgJHtmaWx0ZXJPcmlnaW5Db25maWcuZW5kLnN1YnN0cmluZygwLDQpfS0wMS0wMWA7XHJcbiAgICAgIH1cclxuICAgICAgbWluRGVmYXVsdElTT1N0cmluZyA9IGAke2ZpbHRlck9yaWdpbkNvbmZpZy5iZWdpbi5zdWJzdHJpbmcoMCw0KX0tMDEtMDFgO1xyXG4gICAgICBtaW5EZWZhdWx0RGF0ZSA9IHRoaXMuZ2V0RGF0ZUZyb21TdHJpbmdXaXRob3V0VGltZShtaW5EZWZhdWx0SVNPU3RyaW5nKTtcclxuICAgICAgbWF4RGVmYXVsdERhdGUgPSB0aGlzLmdldERhdGVGcm9tU3RyaW5nV2l0aG91dFRpbWUobWF4RGVmYXVsdElTT1N0cmluZyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBtaW5EZWZhdWx0RGF0ZSA9IHRoaXMucGFyc2VGaWx0ZXIoZmlsdGVyT3JpZ2luQ29uZmlnLmJlZ2luKTtcclxuICAgICAgbWF4RGVmYXVsdERhdGUgPSB0aGlzLnBhcnNlRmlsdGVyKGZpbHRlck9yaWdpbkNvbmZpZy5lbmQpO1xyXG4gICAgICBtaW5EZWZhdWx0SVNPU3RyaW5nID0gbWluRGVmYXVsdERhdGUudG9JU09TdHJpbmcoKTtcclxuICAgICAgbWF4RGVmYXVsdElTT1N0cmluZyA9IG1heERlZmF1bHREYXRlLnRvSVNPU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCh0aGlzLmN1cnJlbnRGaWx0ZXIuYmVnaW4gIT09IG1pbkRlZmF1bHRJU09TdHJpbmcgKSB8fFxyXG4gICAgKHRoaXMuY3VycmVudEZpbHRlci5lbmQgIT09IG1heERlZmF1bHRJU09TdHJpbmcpKSB7XHJcbiAgICAgIHRoaXMuYmVnaW5WYWx1ZSA9IG1pbkRlZmF1bHREYXRlO1xyXG4gICAgICB0aGlzLmVuZFZhbHVlID0gbWF4RGVmYXVsdERhdGU7XHJcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b2dnbGVGaWx0ZXJTdGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlci5hY3RpdmUgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEZpbHRlci5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRGaWx0ZXJTdGF0ZURpc2FibGUoKTtcclxuICAgIHRoaXMudXBkYXRlVmFsdWVzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkYXRldGltZS1jb250YWluZXJcIj5cclxuICA8bWF0LXNsaWRlLXRvZ2dsZSBcclxuICAgICpuZ0lmPVwidGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlck9wdGlvbnM/LmVuYWJsZWRcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJzbGlkZXJNb2RlXCJcclxuICAgIChjaGFuZ2UpPVwibW9kZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICB7eydpZ28uZ2VvLmZpbHRlci5zbGlkZXJNb2RlVGl0bGUnIHwgdHJhbnNsYXRlfX1cclxuICA8L21hdC1zbGlkZS10b2dnbGU+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzbGlkZXItY29udGFpbmVyXCIgKm5nSWY9XCJzbGlkZXJNb2RlXCI+XHJcbiAgICA8aWdvLW9nYy1maWx0ZXItdGltZS1zbGlkZXJcclxuICAgICAgW2JlZ2luXT1cImJlZ2luVmFsdWVcIlxyXG4gICAgICBbbWF4XT1cInRoaXMucmVzdHJpY3RlZFRvU3RlcCgpID8gdGhpcy5tYXhEYXRlIDogdGhpcy5lbmRWYWx1ZVwiXHJcbiAgICAgIFtjdXJyZW50RmlsdGVyXT1cImN1cnJlbnRGaWx0ZXJcIiBcclxuICAgICAgW2RhdGFzb3VyY2VdPVwiZGF0YXNvdXJjZVwiXHJcbiAgICAgIChjaGFuZ2VQcm9wZXJ0eSk9XCJjaGFuZ2VQcm9wZXJ0eUJ5UGFzcygkZXZlbnQpXCJcclxuICAgID5cclxuICAgIDwvaWdvLW9nYy1maWx0ZXItdGltZS1zbGlkZXI+XHJcbiAgICBcclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFzbGlkZXJNb2RlXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInllYXItaW5wdXQtY29udGFpbmVyXCIgKm5nSWY9XCJjYWxlbmRhclR5cGVZZWFyXCI+XHJcbiAgICAgIDwhLS0gdG8gZW11bGF0ZSBhIHllYXItcGlja2VyLCAyIGlucHV0OiBmaXJzdCBpbnB1dCB0byBzaG93IHVzZXIganVzdCB5ZWFyIGFuZCBzZWNvbmQgaW5wdXQgaGlkZW4gYW5kIGJpbmQgXHJcbiAgICAgICAgd2l0aCB0aGUgZGF0ZXBpY2tlciAgLS0+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCAgY2xhc3M9XCJ5ZWFyLWlucHV0XCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbD57eydpZ28uZ2VvLnRpbWVGaWx0ZXIuc3RhcnRZZWFyJ3wgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBjbGFzcz1cInllYXItaW5wdXQtb25seS15ZWFyXCJcclxuICAgICAgICAgIHZhbHVlPVwie3tvbmx5WWVhckJlZ2lufX1cIlxyXG4gICAgICAgICAgKGNoYW5nZSk9IFwieWVhck9ubHlJbnB1dENoYW5nZSgkZXZlbnQsIGJlZ2luRGF0ZXBpY2tlciwgJ2JlZ2luJylcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT0gXCJmaWx0ZXJTdGF0ZURpc2FibGVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiYmVnaW5EYXRlcGlja2VyXCIgW2Rpc2FibGVkXT1cImZpbHRlclN0YXRlRGlzYWJsZVwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gIFxyXG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlclxyXG4gICAgICAgICAgcGFuZWxDbGFzcz1cImRhdGVwaWNrZXIteWVhclwiXHJcbiAgICAgICAgICAjYmVnaW5EYXRlcGlja2VyXHJcbiAgICAgICAgICBbc3RhcnRWaWV3XT1cImNhbGVuZGFyVmlldygpXCJcclxuICAgICAgICAgIFtzdGFydEF0XT1cImJlZ2luVmFsdWVcIlxyXG4gICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJ5ZWFyU2VsZWN0ZWQoJGV2ZW50LCBiZWdpbkRhdGVwaWNrZXIsICdiZWdpbicpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICA8L21hdC1kYXRlcGlja2VyPlxyXG5cclxuICAgICAgICA8aW5wdXQgI2JlZ2luWWVhclxyXG4gICAgICAgICAgY2xhc3M9IFwieWVhci1pbnB1dC1oaWRlXCJcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJiZWdpbkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgZW5hYmxlZD0gZmFsc2VcclxuICAgICAgICAgIHJlYWRvbmx5PSB0cnVlXHJcbiAgICAgICAgICBbdmFsdWVdPVwiYmVnaW5WYWx1ZT9iZWdpblZhbHVlOmhhbmRsZURhdGUoZGF0YXNvdXJjZS5vcHRpb25zLm1pbkRhdGUpXCJcclxuICAgICAgICAgIFttaW5dPVwiaGFuZGxlRGF0ZShkYXRhc291cmNlLm9wdGlvbnMubWluRGF0ZSlcIlxyXG4gICAgICAgICAgW21heF09XCIoZW5kVmFsdWUgJiYgKCFyZXN0cmljdGVkVG9TdGVwKCkpKT9lbmRWYWx1ZTpoYW5kbGVEYXRlKGRhdGFzb3VyY2Uub3B0aW9ucy5tYXhEYXRlKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgIGNsYXNzPVwieWVhci1pbnB1dFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWw+e3snaWdvLmdlby50aW1lRmlsdGVyLmVuZFllYXInfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGNsYXNzPVwieWVhci1pbnB1dC1vbmx5LXllYXJcIlxyXG4gICAgICAgICAgdmFsdWU9XCJ7e29ubHlZZWFyRW5kfX1cIlxyXG4gICAgICAgICAgKGNoYW5nZSk9IFwieWVhck9ubHlJbnB1dENoYW5nZSgkZXZlbnQsIGVuZERhdGVwaWNrZXIsICdlbmQnKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdID0gXCJmaWx0ZXJTdGF0ZURpc2FibGVcIj5cclxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImVuZERhdGVwaWNrZXJcIiBbZGlzYWJsZWRdPVwiZmlsdGVyU3RhdGVEaXNhYmxlXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1kYXRlcGlja2VyXHJcbiAgICAgICAgICBwYW5lbENsYXNzPVwiZGF0ZXBpY2tlci15ZWFyXCJcclxuICAgICAgICAgICNlbmREYXRlcGlja2VyXHJcbiAgICAgICAgICBbc3RhcnRWaWV3XT1cImNhbGVuZGFyVmlldygpXCJcclxuICAgICAgICAgIFtzdGFydEF0XT1cImVuZFZhbHVlXCJcclxuICAgICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwieWVhclNlbGVjdGVkKCRldmVudCwgZW5kRGF0ZXBpY2tlciwgJ2VuZCcpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICA8L21hdC1kYXRlcGlja2VyPlxyXG5cclxuICAgICAgICA8aW5wdXQgI2VuZFllYXJcclxuICAgICAgICAgIGNsYXNzPSBcInllYXItaW5wdXQtaGlkZVwiXHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZW5kRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICBlbmFibGVkPSBmYWxzZVxyXG4gICAgICAgICAgcmVhZG9ubHk9IHRydWVcclxuICAgICAgICAgIFt2YWx1ZV09XCJlbmRWYWx1ZT9lbmRWYWx1ZTpoYW5kbGVEYXRlKGRhdGFzb3VyY2Uub3B0aW9ucy5tYXhEYXRlKVwiXHJcbiAgICAgICAgICBbbWluXT1cImJlZ2luVmFsdWU/YmVnaW5WYWx1ZTpoYW5kbGVEYXRlKGRhdGFzb3VyY2Uub3B0aW9ucy5taW5EYXRlKVwiXHJcbiAgICAgICAgICBbbWF4XT1cImhhbmRsZURhdGUoZGF0YXNvdXJjZS5vcHRpb25zLm1heERhdGUpXCJcclxuICAgICAgICAgID5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlc2V0LWJ1dHRvblwiIFxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIFxyXG4gICAgICAgIChjbGljayk9XCJyZXNldEZpbHRlcigpXCIgXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZmlsdGVyLnJlc2V0RmlsdGVycycgfCB0cmFuc2xhdGVcIiBcclxuICAgICAgICBbZGlzYWJsZWRdPSBcImZpbHRlclN0YXRlRGlzYWJsZVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3tyZXNldEljb259fVwiPjwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBcclxuICAgICAgICBjbGFzcz0ndG9nZ2xlLWZpbHRlci1zdGF0ZScgXHJcbiAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVGaWx0ZXJTdGF0ZSgpXCIgXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZmlsdGVyLnRvZ2dsZUZpbHRlclN0YXRlJyB8IHRyYW5zbGF0ZVwiIFxyXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIFxyXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICAgIFtjaGVja2VkXT1cIiFmaWx0ZXJTdGF0ZURpc2FibGVcIj5cclxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJkYXRldGltZS1pbnB1dC1jb250YWluZXJcIiAqbmdJZj1cImNhbGVuZGFyVHlwZSgpIT09J3llYXInXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRldGltZS1pbnB1dFwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImRhdGUtaW5wdXRcIj5cclxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiYmVnaW5EYXRlcGlja2VyXCIgW2Rpc2FibGVkXT0gXCJmaWx0ZXJTdGF0ZURpc2FibGVcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgIDxpbnB1dCAjYmVnaW5cclxuICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiYmVnaW5EYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidpZ28uZ2VvLnRpbWVGaWx0ZXIuc3RhcnREYXRlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIiFjdXJyZW50RmlsdGVyLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cImNoYW5nZVRlbXBvcmFsUHJvcGVydHkoYmVnaW4udmFsdWUsIDEpXCJcclxuICAgICAgICAgICAgW21hdERhdGVwaWNrZXJGaWx0ZXJdPVwiZGF0ZUZpbHRlci5iaW5kKHRoaXMsICdiZWdpbicpXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cImJlZ2luVmFsdWU/YmVnaW5WYWx1ZTpoYW5kbGVEYXRlKGRhdGFzb3VyY2Uub3B0aW9ucy5taW5EYXRlKVwiXHJcbiAgICAgICAgICAgIFttaW5dPVwiaGFuZGxlRGF0ZShkYXRhc291cmNlLm9wdGlvbnMubWluRGF0ZSlcIlxyXG4gICAgICAgICAgICBbbWF4XT1cIihlbmRWYWx1ZSAmJiAoIXJlc3RyaWN0ZWRUb1N0ZXAoKSkpP2VuZFZhbHVlOmhhbmRsZURhdGUoZGF0YXNvdXJjZS5vcHRpb25zLm1heERhdGUpXCIgXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09IFwiZmlsdGVyU3RhdGVEaXNhYmxlXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGxlclwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAjYmVnaW5EYXRlcGlja2VyXHJcbiAgICAgICAgICAgIFtzdGFydFZpZXddPVwiY2FsZW5kYXJWaWV3KClcIlxyXG4gICAgICAgICAgICBbc3RhcnRBdF09XCJiZWdpblZhbHVlXCJcclxuICAgICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJ5ZWFyU2VsZWN0ZWQoJGV2ZW50LCBiZWdpbkRhdGVwaWNrZXIsICdiZWdpbicpXCJcclxuICAgICAgICAgICAgKG1vbnRoU2VsZWN0ZWQpPVwibW9udGhTZWxlY3RlZCgkZXZlbnQsIGJlZ2luRGF0ZXBpY2tlciwgJ2JlZ2luJylcIj5cclxuICAgICAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtaW5wdXRcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImhvdXItaW5wdXRcIiAqbmdJZj1cImNhbGVuZGFyVHlwZSgpPT09J2RhdGV0aW1lJ1wiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7J2lnby5nZW8udGltZUZpbHRlci5ob3VyJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImJlZ2luSG91ckZvcm1Db250cm9sXCJcclxuICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlVGVtcG9yYWxQcm9wZXJ0eShiZWdpbi52YWx1ZSwgMSlcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaG91ciBvZiBiZWdpbkhvdXJzXCIgW3ZhbHVlXT1cImhvdXJcIj57e2hvdXJ9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1pbnV0ZS1pbnB1dFwiICpuZ0lmPVwiY2FsZW5kYXJUeXBlKCk9PT0nZGF0ZXRpbWUnXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3snaWdvLmdlby50aW1lRmlsdGVyLm1pbnV0ZScgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJiZWdpbk1pbnV0ZUZvcm1Db250cm9sXCJcclxuICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlVGVtcG9yYWxQcm9wZXJ0eShiZWdpbi52YWx1ZSwgMSlcIj5cclxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbWludXRlIG9mIGJlZ2luTWludXRlc1wiIFt2YWx1ZV09XCJtaW51dGVcIj57e21pbnV0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRldGltZS1pbnB1dFwiICpuZ0lmPVwiIXJlc3RyaWN0ZWRUb1N0ZXAoKVwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImRhdGUtaW5wdXRcIj5cclxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwiZW5kRGF0ZXBpY2tlclwiIFtkaXNhYmxlZF09IFwiZmlsdGVyU3RhdGVEaXNhYmxlXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgIDxpbnB1dCAjZW5kXHJcbiAgICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJlbmREYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2lnby5nZW8udGltZUZpbHRlci5lbmREYXRlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiIWN1cnJlbnRGaWx0ZXIuYWN0aXZlXCJcclxuICAgICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJjaGFuZ2VUZW1wb3JhbFByb3BlcnR5KGVuZC52YWx1ZSwgMilcIlxyXG4gICAgICAgICAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cImRhdGVGaWx0ZXIuYmluZCh0aGlzLCAnZW5kJylcIlxyXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJlbmRWYWx1ZT9lbmRWYWx1ZTpoYW5kbGVEYXRlKGRhdGFzb3VyY2Uub3B0aW9ucy5tYXhEYXRlKVwiXHJcbiAgICAgICAgICAgICAgW21pbl09XCJiZWdpblZhbHVlP2JlZ2luVmFsdWU6aGFuZGxlRGF0ZShkYXRhc291cmNlLm9wdGlvbnMubWluRGF0ZSlcIlxyXG4gICAgICAgICAgICAgIFttYXhdPVwiaGFuZGxlRGF0ZShkYXRhc291cmNlLm9wdGlvbnMubWF4RGF0ZSlcIiBcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPSBcImZpbHRlclN0YXRlRGlzYWJsZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGxlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNlbmREYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgW3N0YXJ0Vmlld109XCJjYWxlbmRhclZpZXcoKVwiXHJcbiAgICAgICAgICAgICAgW3N0YXJ0QXRdPVwiZW5kVmFsdWVcIlxyXG4gICAgICAgICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwieWVhclNlbGVjdGVkKCRldmVudCwgZW5kRGF0ZXBpY2tlciwgJ2VuZCcpXCJcclxuICAgICAgICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJtb250aFNlbGVjdGVkKCRldmVudCwgZW5kRGF0ZXBpY2tlciwgJ2VuZCcpXCI+XHJcbiAgICAgICAgICA8L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWlucHV0XCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJob3VyLWlucHV0XCIgKm5nSWY9XCJjYWxlbmRhclR5cGUoKT09PSdkYXRldGltZSdcIiA+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3snaWdvLmdlby50aW1lRmlsdGVyLmhvdXInIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZW5kSG91ckZvcm1Db250cm9sXCJcclxuICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlVGVtcG9yYWxQcm9wZXJ0eShlbmQudmFsdWUsIDIpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGhvdXIgb2YgZW5kSG91cnNcIiBbdmFsdWVdPVwiaG91clwiPnt7aG91cn19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWludXRlLWlucHV0XCIgKm5nSWY9XCJjYWxlbmRhclR5cGUoKT09PSdkYXRldGltZSdcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eydpZ28uZ2VvLnRpbWVGaWx0ZXIubWludXRlJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVuZE1pbnV0ZUZvcm1Db250cm9sXCJcclxuICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCIhY3VycmVudEZpbHRlci5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlVGVtcG9yYWxQcm9wZXJ0eShlbmQudmFsdWUsIDIpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG1pbnV0ZSBvZiBlbmRNaW51dGVzXCIgW3ZhbHVlXT1cIm1pbnV0ZVwiPnt7bWludXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlc2V0LWJ1dHRvblwiIFxyXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgIChjbGljayk9XCJyZXNldEZpbHRlcigpXCIgXHJcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZmlsdGVyLnJlc2V0RmlsdGVycycgfCB0cmFuc2xhdGVcIiBcclxuICAgICAgICBbZGlzYWJsZWRdPSBcImZpbHRlclN0YXRlRGlzYWJsZVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3tyZXNldEljb259fVwiPjwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBcclxuICAgICAgICBjbGFzcz1cInRvZ2dsZS1maWx0ZXItc3RhdGVcIiBcclxuICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUZpbHRlclN0YXRlKClcIiBcclxuICAgICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBcclxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5maWx0ZXIudG9nZ2xlRmlsdGVyU3RhdGUnIHwgdHJhbnNsYXRlXCIgXHJcbiAgICAgICAgW2NoZWNrZWRdPSBcIiFmaWx0ZXJTdGF0ZURpc2FibGVcIj5cclxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
898
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlci10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyLXRpbWUvb2djLWZpbHRlci10aW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyLXRpbWUvb2djLWZpbHRlci10aW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sWUFBWSxFQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQVF4RSxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7O0lDakJoQywyQ0FHZ0M7SUFEOUIsOE9BQXdCLGtOQUFBO0lBRXhCLFlBQ0Y7O0lBQUEsaUJBQW1COzs7SUFIakIsMkNBQXdCO0lBRXhCLGVBQ0Y7SUFERSx1RkFDRjs7OztJQUVBLDhCQUFpRDtJQUMvQyxxREFNQztJQURDLHNQQUErQztJQUVqRCxpQkFBNkI7SUFFL0IsaUJBQU07OztJQVJGLGVBQW9CO0lBQXBCLHlDQUFvQixxRUFBQSx1Q0FBQSxpQ0FBQTs7OztJQVl0Qiw4QkFBMkQ7SUFHekQsMENBQW9DO0lBQ2xDLGlDQUFXO0lBQUEsWUFBNkM7O0lBQUEsaUJBQVk7SUFDcEUsaUNBTUc7SUFGRCw2UEFBd0QsT0FBTyxLQUFFO0lBSm5FLGlCQU1HO0lBQ0gsNENBQWlIO0lBRWpILDhDQU1HO0lBREQsMlFBQXNELE9BQU8sS0FBRTtJQUVqRSxpQkFBaUI7SUFFakIsZ0NBU0c7SUFDTCxpQkFBaUI7SUFF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QyxtQkFBbUI7WUFDSSxtQkFBbUI7a0JBQXBELFNBQVM7bUJBQUMscUJBQXFCO1lBQ1IsU0FBUztrQkFBaEMsU0FBUzttQkFBQyxXQUFXO1lBQ0EsT0FBTztrQkFBNUIsU0FBUzttQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPZ2NGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5lbnVtJztcbmltcG9ydCB7IE9HQ0ZpbHRlclRpbWVTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL29nYy1maWx0ZXItdGltZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucyxcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UsXG4gIE9nY0ZpbHRlckR1cmluZ09wdGlvbnNcbn0gZnJvbSAnLi4vc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcblxuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuY29uc3QgbW9tZW50ID0gbW9tZW50XztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLW9nYy1maWx0ZXItdGltZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vZ2MtZmlsdGVyLXRpbWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBPZ2NGaWx0ZXJUaW1lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgZGF0YXNvdXJjZTogT2djRmlsdGVyYWJsZURhdGFTb3VyY2U7XG4gIEBJbnB1dCgpIGN1cnJlbnRGaWx0ZXI6IGFueTtcbiAgQE91dHB1dCgpIGNoYW5nZVByb3BlcnR5OiBFdmVudEVtaXR0ZXI8e1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgcG9zOiBudW1iZXI7XG4gICAgcmVmcmVzaEZpbHRlcjogYm9vbGVhbjtcbiAgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBiZWdpbkhvdXJzOiBudW1iZXJbXTtcbiAgZW5kSG91cnM6IG51bWJlcltdO1xuICBiZWdpbk1pbnV0ZXM6IG51bWJlcltdO1xuICBlbmRNaW51dGVzOiBudW1iZXJbXTtcbiAgYmVnaW5Ib3VyRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgYmVnaW5NaW51dGVGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBlbmRIb3VyRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgZW5kTWludXRlRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgX2JlZ2luVmFsdWU6IERhdGU7XG4gIF9lbmRWYWx1ZTogRGF0ZTtcbiAgcmVhZG9ubHkgX2RlZmF1bHRNaW46IHN0cmluZyA9ICcxOTAwLTAxLTAxJztcbiAgcmVhZG9ubHkgX2RlZmF1bHRNYXg6IHN0cmluZyA9ICcyMDUyLTAxLTA2JztcbiAgcmVhZG9ubHkgX2RlZmF1bHREaXNwbGF5Rm9ybWF0OiBzdHJpbmcgPSAnREQvTU0vWVlZWSBISDptbSBBJztcbiAgcmVhZG9ubHkgX2RlZmF1bHRTbGlkZXJNb2RlRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIG9nY0ZpbHRlck9wZXJhdG9yID0gT2djRmlsdGVyT3BlcmF0b3I7XG4gIHB1YmxpYyBzbGlkZXJNb2RlID0gZmFsc2U7XG5cbiAgcmVhZG9ubHkgZGVmYXVsdFN0ZXBNaWxsaXNlY29uZCA9IDYwMDAwO1xuICBwdWJsaWMgb3B0aW9uczogT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zO1xuXG4gIHB1YmxpYyBvbmx5WWVhckJlZ2luOiBudW1iZXI7XG4gIHB1YmxpYyBvbmx5WWVhckVuZDogbnVtYmVyO1xuICBwdWJsaWMgY2FsZW5kYXJUeXBlWWVhciA9IGZhbHNlO1xuICBwdWJsaWMgcmVzZXRJY29uID0gJ3JlcGxheSc7XG4gIHB1YmxpYyBmaWx0ZXJTdGF0ZURpc2FibGU6IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnZW5kRGF0ZXBpY2tlclRpbWUnKSBlbmREYXRlcGlja2VyVGltZTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnYmVnaW5EYXRlcGlja2VyVGltZScpIGJlZ2luRGF0ZXBpY2tlclRpbWU6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2JlZ2luVGltZScpIGJlZ2luVGltZTogSFRNTElucHV0RWxlbWVudDtcbiAgQFZpZXdDaGlsZCgnZW5kVGltZScpIGVuZFRpbWU6IEhUTUxJbnB1dEVsZW1lbnQ7XG5cbiAgZ2V0IHN0ZXAoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc3RlcERhdGVcbiAgICAgID8gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc3RlcERhdGVcbiAgICAgIDogdGhpcy5jdXJyZW50RmlsdGVyLnN0ZXA7XG4gIH1cblxuICBnZXQgc3RlcE1pbGxpc2Vjb25kcygpOiBudW1iZXIge1xuICAgIGNvbnN0IHN0ZXAgPSBtb21lbnQuZHVyYXRpb24odGhpcy5zdGVwKS5hc01pbGxpc2Vjb25kcygpO1xuICAgIHJldHVybiBzdGVwID09PSAwID8gdGhpcy5kZWZhdWx0U3RlcE1pbGxpc2Vjb25kIDogc3RlcDtcbiAgfVxuXG4gIHNldCBiZWdpblZhbHVlKGJlZ2luOiBEYXRlKSB7XG4gICAgdGhpcy5fYmVnaW5WYWx1ZSA9IGJlZ2luO1xuICB9XG5cbiAgZ2V0IGJlZ2luVmFsdWUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2JlZ2luVmFsdWU7XG4gIH1cblxuICBzZXQgZW5kVmFsdWUoZW5kOiBEYXRlKSB7XG4gICAgdGhpcy5fZW5kVmFsdWUgPSBlbmQ7XG4gIH1cblxuICBnZXQgZW5kVmFsdWUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2VuZFZhbHVlO1xuICB9XG5cbiAgZ2V0IHNsaWRlckludGVydmFsKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEZpbHRlci5zbGlkZXJJbnRlcnZhbCA9PT0gdW5kZWZpbmVkXG4gICAgICA/IDIwMDBcbiAgICAgIDogdGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlckludGVydmFsO1xuICB9XG5cbiAgZ2V0IG1heERhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMubWF4RGF0ZSA/IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm1heERhdGUgOiB0aGlzLl9kZWZhdWx0TWF4O1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlGb3JtYXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50RmlsdGVyLmRpc3BsYXlGb3JtYXQgPyB0aGlzLmN1cnJlbnRGaWx0ZXIuZGlzcGxheUZvcm1hdCA6IHRoaXMuX2RlZmF1bHREaXNwbGF5Rm9ybWF0O1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIG9nY0ZpbHRlclRpbWVTZXJ2aWNlOiBPR0NGaWx0ZXJUaW1lU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpe1xuICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIuc2xpZGVyT3B0aW9ucykge1xuICAgICAgdGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlck9wdGlvbnMuZW5hYmxlZCA9IHRoaXMuY3VycmVudEZpbHRlci5zbGlkZXJPcHRpb25zLmVuYWJsZWQgIT09IHVuZGVmaW5lZCA/XG4gICAgICAgIHRoaXMuY3VycmVudEZpbHRlci5zbGlkZXJPcHRpb25zLmVuYWJsZWQgOiB0aGlzLl9kZWZhdWx0U2xpZGVyTW9kZUVuYWJsZWQ7XG4gICAgfVxuICAgIHRoaXMuYmVnaW5WYWx1ZSA9IHRoaXMucGFyc2VGaWx0ZXIodGhpcy5oYW5kbGVNaW4oKSk7XG4gICAgdGhpcy5lbmRWYWx1ZSA9IHRoaXMucGFyc2VGaWx0ZXIodGhpcy5oYW5kbGVNYXgoKSk7XG5cbiAgICB0aGlzLm9ubHlZZWFyQmVnaW4gPSB0aGlzLmJlZ2luVmFsdWUuZ2V0VVRDRnVsbFllYXIoKTtcbiAgICB0aGlzLm9ubHlZZWFyRW5kID0gdGhpcy5lbmRWYWx1ZS5nZXRVVENGdWxsWWVhcigpO1xuICAgIHRoaXMuY2FsZW5kYXJUeXBlWWVhciA9IHRoaXMuaXNDYWxlbmRhclllYXJNb2RlKCk7XG4gICAgdGhpcy5zZXRGaWx0ZXJTdGF0ZURpc2FibGUoKTtcbiAgICB0aGlzLnVwZGF0ZUhvdXJzTWludXRlc0FycmF5KCk7XG4gICAgLy8gdXBkYXRlIHZhbHVlIGZvciBub3cgdmFsdWVcbiAgICB0aGlzLnVwZGF0ZVZhbHVlcygpO1xuICB9XG5cbiAgcGFyc2VGaWx0ZXIoZmlsdGVyKTogRGF0ZSB7XG4gICAgaWYgKCFmaWx0ZXIpe1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKCk7XG4gICAgfSBlbHNlIGlmICggaXNOYU4oIG5ldyBEYXRlKGZpbHRlcikuZ2V0VGltZSgpICkgKcKge1xuICAgICAgaWYgKGZpbHRlci5zZWFyY2goJ25vdycpID49IDAgKcKge1xuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IGZpbHRlci5tYXRjaCgveWVhcnN8bW9udGhzfHdlZWtzfGRheXN8aG91cnN8c2Vjb25kcy8pO1xuICAgICAgICBpZiAoZmlsdGVyLm1hdGNoKC9cXCsvKSkge1xuICAgICAgICAgIGNvbnN0IGludGVydmFsSW50ID0gcGFyc2VJbnQoXG4gICAgICAgICAgICBmaWx0ZXIuc3Vic3RyaW5nKGZpbHRlci5zZWFyY2goJysnKSArIDEsIGludGVydmFsLmluZGV4KSxcbiAgICAgICAgICAgIDEwXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gbW9tZW50KCkuYWRkKGludGVydmFsSW50LCBpbnRlcnZhbFswXSkudG9EYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZpbHRlci5tYXRjaCgvXFwtLykpIHtcbiAgICAgICAgICBjb25zdCBpbnRlcnZhbEludCA9IHBhcnNlSW50KFxuICAgICAgICAgICAgZmlsdGVyLnN1YnN0cmluZyhmaWx0ZXIuc2VhcmNoKCctJykgKyAxLCBpbnRlcnZhbC5pbmRleCksXG4gICAgICAgICAgICAxMFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIG1vbWVudCgpLnN1YnRyYWN0KGludGVydmFsSW50LCBpbnRlcnZhbFswXSkudG9EYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKCk7XG4gICAgICB9XG4gICAgICBpZiAoZmlsdGVyLnNlYXJjaCgndG9kYXknKSA+PSAwKXtcbiAgICAgICAgY29uc3QgX25vdyA9IG1vbWVudCgpLmVuZE9mKCdkYXknKS50b0RhdGUoKTtcbiAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSBmaWx0ZXIubWF0Y2goL3llYXJzfG1vbnRoc3x3ZWVrc3xkYXlzfGhvdXJzfHNlY29uZHMvKTtcbiAgICAgICAgaWYgKCBmaWx0ZXIubWF0Y2goL1xcKy8pICkge1xuICAgICAgICAgIGNvbnN0IGludGVydmFsSW50ID0gcGFyc2VJbnQoIGZpbHRlci5zdWJzdHJpbmcoZmlsdGVyLnNlYXJjaCgnKycpICsgMSwgaW50ZXJ2YWwuaW5kZXgpLCAxMCApO1xuICAgICAgICAgIHJldHVybiBtb21lbnQoX25vdykuYWRkKGludGVydmFsSW50LCBpbnRlcnZhbFswXSkudG9EYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCBmaWx0ZXIubWF0Y2goL1xcLS8pICkge1xuICAgICAgICAgIGNvbnN0IGludGVydmFsSW50ID0gcGFyc2VJbnQoZmlsdGVyLnN1YnN0cmluZyhmaWx0ZXIuc2VhcmNoKCctJykgKyAxLCBpbnRlcnZhbC5pbmRleCksIDEwKTtcbiAgICAgICAgICByZXR1cm4gbW9tZW50KF9ub3cpLnN1YnRyYWN0KGludGVydmFsSW50LCBpbnRlcnZhbFswXSkudG9EYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIF9ub3c7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IERhdGUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY3VycmVudEZpbHRlci5jYWxlbmRhck1vZGVZZWFyKSB7XG4gICAgICBjb25zdCBkYXRlID0gdGhpcy5nZXREYXRlRnJvbVN0cmluZ1dpdGhvdXRUaW1lKGZpbHRlcik7XG4gICAgICByZXR1cm4gZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZpbHRlciA/IG5ldyBEYXRlKGZpbHRlcikgOiBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVRlbXBvcmFsUHJvcGVydHkodmFsdWUsIHBvc2l0aW9uPywgcmVmcmVzaEZpbHRlciA9IHRydWUpIHtcbiAgICBsZXQgdmFsdWVUbXAgPSB0aGlzLmdldERhdGVUaW1lKHZhbHVlLCBwb3NpdGlvbik7XG4gICAgaWYgKHRoaXMuaXNDYWxlbmRhclllYXJNb2RlKCkpIHtcbiAgICAgIGxldCBkYXRlU3RyaW5nRnJvbVllYXJOb3RpbWU7XG4gICAgICBpZiAocG9zaXRpb24gPT09IDEpIHtcbiAgICAgICAgdGhpcy5iZWdpblZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub25seVllYXJCZWdpbiA9IHRoaXMuYmVnaW5WYWx1ZS5nZXRGdWxsWWVhcigpO1xuICAgICAgICBkYXRlU3RyaW5nRnJvbVllYXJOb3RpbWUgPSBgJHt0aGlzLm9ubHlZZWFyQmVnaW59LTAxLTAxYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZW5kVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5vbmx5WWVhckVuZCA9IHRoaXMuZW5kVmFsdWUuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgZGF0ZVN0cmluZ0Zyb21ZZWFyTm90aW1lID0gYCR7dGhpcy5vbmx5WWVhckVuZH0tMDEtMDFgO1xuICAgICAgfVxuICAgICAgLy8gY2FsbCBzZXJ2aWNlIHdpdGggc3RyaW5nIGRhdGUgd2l0aG91dCB0aW1lXG4gICAgICB0aGlzLmNoYW5nZVByb3BlcnR5Lm5leHQoeyB2YWx1ZTogZGF0ZVN0cmluZ0Zyb21ZZWFyTm90aW1lLCBwb3M6IHBvc2l0aW9uLCByZWZyZXNoRmlsdGVyIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG9zaXRpb24gPT09IDIgJiYgdGhpcy5jYWxlbmRhclR5cGUoKSA9PT0gJ2RhdGUnICYmICF0aGlzLnNsaWRlck1vZGUpIHtcbiAgICAgIC8qIEFib3ZlIG1vbnRoOiBzZWUgeWVhclNlbGVjdGVkIG9yIG1vbnRoU2VsZWN0ZWQgKi9cbiAgICAgIHZhbHVlVG1wID0gbW9tZW50KHZhbHVlVG1wKS5lbmRPZignZGF5JykudG9EYXRlKCk7XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uID09PSAxKSB7XG4gICAgICB0aGlzLmJlZ2luVmFsdWUgPSB2YWx1ZVRtcDtcbiAgICAgIGlmICh0aGlzLnJlc3RyaWN0ZWRUb1N0ZXAoKSkge1xuICAgICAgICB0aGlzLmNoYW5nZVRlbXBvcmFsUHJvcGVydHkodGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5hZGRTdGVwKHZhbHVlVG1wLCB0aGlzLnN0ZXBNaWxsaXNlY29uZHMpLCAyLCByZWZyZXNoRmlsdGVyKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbmRWYWx1ZSA9IHZhbHVlVG1wO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUhvdXJzTWludXRlc0FycmF5KCk7XG4gICAgdGhpcy5jaGFuZ2VQcm9wZXJ0eS5uZXh0KHsgdmFsdWU6IHZhbHVlVG1wLnRvSVNPU3RyaW5nKCksIHBvczogcG9zaXRpb24sIHJlZnJlc2hGaWx0ZXIgfSk7XG4gIH1cblxuICBoYW5kbGVEYXRlKHZhbHVlKTogRGF0ZSB7XG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0eXBlb2YodmFsdWUpID09PSAnc3RyaW5nJyAmJiB0aGlzLmN1cnJlbnRGaWx0ZXIuY2FsZW5kYXJNb2RlWWVhcikge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0ZUZyb21TdHJpbmdXaXRob3V0VGltZSh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZSk7XG4gIH1cblxuICBjYWxlbmRhclR5cGUoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudEZpbHRlci5jYWxlbmRhck1vZGVZZWFyKSB7XG4gICAgICByZXR1cm4gJ3llYXInO1xuICAgIH1cbiAgICBpZiAodGhpcy5zdGVwTWlsbGlzZWNvbmRzIDwgODY0MDAwMDApIHtcbiAgICAgIHJldHVybiAnZGF0ZXRpbWUnO1xuICAgIH1cbiAgICByZXR1cm4gJ2RhdGUnO1xuICB9XG5cbiAgaXNDYWxlbmRhclllYXJNb2RlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyVHlwZSgpID09PSAneWVhcicpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgeWVhck9ubHlJbnB1dENoYW5nZShjaGFuZ2VFdmVudCwgZGF0ZVBpY2tlcj86IGFueSwgcHJvcGVydHk/OiBzdHJpbmcpIHtcbiAgICBjb25zdCB5ZWFyID0gY2hhbmdlRXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIGNvbnN0IGRhdGUgPSB0aGlzLmdldERhdGVGcm9tU3RyaW5nV2l0aG91dFRpbWUoeWVhcik7XG4gICAgdGhpcy55ZWFyU2VsZWN0ZWQoZGF0ZSwgZGF0ZVBpY2tlciwgcHJvcGVydHkpO1xuICB9XG5cbiAgeWVhclNlbGVjdGVkKHllYXIsIGRhdGVQaWNrZXI/OiBhbnksIHByb3BlcnR5Pzogc3RyaW5nLCByZWZyZXNoRmlsdGVyID0gdHJ1ZSkge1xuICAgIGlmICh0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXBJc1llYXJEdXJhdGlvbih0aGlzLnN0ZXApKSB7XG4gICAgICBpZiAoZGF0ZVBpY2tlcikge1xuICAgICAgICBkYXRlUGlja2VyLmNsb3NlKCk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcGVydHkgPT09ICdlbmQnKSB7XG4gICAgICAgIC8vIGNoYW5nZSB2YWx1ZSAwMSBqYW4gdG8gMzEgZGVjIHNhbWUgeWVhclxuICAgICAgICB5ZWFyID0gbW9tZW50KHllYXIpLmVuZE9mKCd5ZWFyJykudG9EYXRlKCk7XG4gICAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09PSAnYmVnaW4nICYmIHRoaXMucmVzdHJpY3RlZFRvU3RlcCgpICYmICF0aGlzLmNhbGVuZGFyVHlwZVllYXIpIHtcbiAgICAgICAgdGhpcy55ZWFyU2VsZWN0ZWQoeWVhciwgdW5kZWZpbmVkLCAnZW5kJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoYW5nZVRlbXBvcmFsUHJvcGVydHkoeWVhciwgcHJvcGVydHkgPT09ICdiZWdpbicgPyAxIDogMiwgcmVmcmVzaEZpbHRlcik7XG4gICAgfVxuICB9XG5cbiAgbW9udGhTZWxlY3RlZChtb250aCwgZGF0ZVBpY2tlcj86IGFueSwgcHJvcGVydHk/OiBzdHJpbmcsIHJlZnJlc2hGaWx0ZXIgPSB0cnVlKSB7XG4gICAgaWYgKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTW9udGhEdXJhdGlvbih0aGlzLnN0ZXApKSB7XG4gICAgICBpZiAoZGF0ZVBpY2tlcikge1xuICAgICAgICBkYXRlUGlja2VyLmNsb3NlKCk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcGVydHkgPT09ICdlbmQnKSB7XG4gICAgICAgIG1vbnRoID0gbW9tZW50KG1vbnRoKS5lbmRPZignbW9udGgnKS50b0RhdGUoKTtcbiAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkgPT09ICdiZWdpbicgJiYgdGhpcy5yZXN0cmljdGVkVG9TdGVwKCkpIHtcbiAgICAgICAgdGhpcy5tb250aFNlbGVjdGVkKG1vbnRoLCB1bmRlZmluZWQsICdlbmQnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2hhbmdlVGVtcG9yYWxQcm9wZXJ0eShtb250aCwgcHJvcGVydHkgPT09ICdiZWdpbicgPyAxIDogMiwgcmVmcmVzaEZpbHRlcik7XG4gICAgfVxuICB9XG5cbiAgY2FsZW5kYXJWaWV3KCkge1xuICAgIGNvbnN0IHRlc3QgPSB0aGlzLnN0ZXBNaWxsaXNlY29uZHM7XG4gICAgY29uc3QgZGlmZiA9IE1hdGguYWJzKFxuICAgICAgdGhpcy5wYXJzZUZpbHRlcih0aGlzLmN1cnJlbnRGaWx0ZXIuZW5kKS5nZXRUaW1lKCkgLVxuICAgICAgICB0aGlzLnBhcnNlRmlsdGVyKHRoaXMuY3VycmVudEZpbHRlci5iZWdpbikuZ2V0VGltZSgpXG4gICAgKTtcbiAgICBpZiAodGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNZZWFyRHVyYXRpb24odGhpcy5zdGVwKSkge1xuICAgICAgcmV0dXJuICdtdWx0aS15ZWFyJztcbiAgICB9IGVsc2UgaWYgKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTW9udGhEdXJhdGlvbih0aGlzLnN0ZXApKSB7XG4gICAgICByZXR1cm4gJ3llYXInO1xuICAgIH0gZWxzZSBpZiAodGVzdCA8IDg2NDAwMDAwICYmIGRpZmYgPCA4NjQwMDAwMCkge1xuICAgICAgcmV0dXJuICdjbG9jayc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnbW9udGgnO1xuICAgIH1cbiAgfVxuXG4gIGRhdGVGaWx0ZXIodHlwZTogc3RyaW5nLCBkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBkYXRlVmFsdWUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICBjb25zdCBkaWZmID0gZGF0ZVZhbHVlLmdldFRpbWUoKSAtIG5ldyBEYXRlKHRoaXMuaGFuZGxlTWluKCkpLmdldFRpbWUoKTtcblxuICAgIGlmICh0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXBJc1llYXJEdXJhdGlvbih0aGlzLnN0ZXApKSB7XG4gICAgICBjb25zdCBtb250aERpZmYgPSBtb21lbnQoZGF0ZVZhbHVlKS5kaWZmKG1vbWVudCh0aGlzLmhhbmRsZU1pbigpKSwgJ3llYXJzJywgdHJ1ZSk7XG4gICAgICBpZiAoIHR5cGUgPT09ICdlbmQnICkge1xuICAgICAgICBjb25zdCBkYXRlVmFsdWVQbHVzMSA9IG1vbWVudChkYXRlVmFsdWUpLmFkZCgxLCAnZCcpO1xuICAgICAgICBjb25zdCBtb250aERpZmZQbHVzMSA9IG1vbWVudChkYXRlVmFsdWVQbHVzMSkuZGlmZihtb21lbnQodGhpcy5oYW5kbGVNaW4oKSksICd5ZWFycycsIHRydWUpO1xuICAgICAgICByZXR1cm4gKG1vbnRoRGlmZlBsdXMxICUgbW9tZW50LmR1cmF0aW9uKHRoaXMuc3RlcCkuYXNZZWFycygpKSA9PT0gMDtcbiAgICAgIH0gZWxzZSBpZiAoIHR5cGUgPT09ICdiZWdpbicgKSB7XG4gICAgICAgIHJldHVybiAobW9udGhEaWZmICUgbW9tZW50LmR1cmF0aW9uKHRoaXMuc3RlcCkuYXNZZWFycygpKSA9PT0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNNb250aER1cmF0aW9uKHRoaXMuc3RlcCkpIHtcbiAgICAgIGNvbnN0IG1vbnRoRGlmZiA9IG1vbWVudChkYXRlVmFsdWUpLmRpZmYobW9tZW50KHRoaXMuaGFuZGxlTWluKCkpLCAnbW9udGhzJywgdHJ1ZSk7XG4gICAgICBpZiAoIHR5cGUgPT09ICdlbmQnICkge1xuICAgICAgICBjb25zdCBkYXRlVmFsdWVQbHVzMSA9IG1vbWVudChkYXRlVmFsdWUpLmFkZCgxLCAnZCcpO1xuICAgICAgICBjb25zdCBtb250aERpZmZQbHVzMSA9IG1vbWVudChkYXRlVmFsdWVQbHVzMSkuZGlmZihtb21lbnQodGhpcy5oYW5kbGVNaW4oKSksICdtb250aHMnLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIChtb250aERpZmZQbHVzMSAlIG1vbWVudC5kdXJhdGlvbih0aGlzLnN0ZXApLmFzTW9udGhzKCkpID09PSAwO1xuICAgICAgfSBlbHNlIGlmICggdHlwZSA9PT0gJ2JlZ2luJyApIHtcbiAgICAgICAgcmV0dXJuIChtb250aERpZmYgJSBtb21lbnQuZHVyYXRpb24odGhpcy5zdGVwKS5hc01vbnRocygpKSA9PT0gMDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzV2Vla0R1cmF0aW9uKHRoaXMuc3RlcCkpIHtcbiAgICAgIGNvbnN0IHdlZWtEaWZmID0gbW9tZW50KGRhdGVWYWx1ZSkuZGlmZihtb21lbnQodGhpcy5oYW5kbGVNaW4oKSksICd3ZWVrcycsIHRydWUpO1xuICAgICAgaWYgKCB0eXBlID09PSAnZW5kJyApIHtcbiAgICAgICAgY29uc3QgZGF0ZVZhbHVlUGx1czEgPSBtb21lbnQoZGF0ZVZhbHVlKS5hZGQoMSwgJ2QnKTtcbiAgICAgICAgY29uc3Qgd2Vla0RpZmZQbHVzMSA9IG1vbWVudChkYXRlVmFsdWVQbHVzMSkuZGlmZihtb21lbnQodGhpcy5oYW5kbGVNaW4oKSksICd3ZWVrcycsIHRydWUpO1xuICAgICAgICByZXR1cm4gKHdlZWtEaWZmUGx1czEgJSBtb21lbnQuZHVyYXRpb24odGhpcy5zdGVwKS5hc1dlZWtzKCkpID09PSAwO1xuICAgICAgfSBlbHNlIGlmICggdHlwZSA9PT0gJ2JlZ2luJyApIHtcbiAgICAgICAgcmV0dXJuICh3ZWVrRGlmZiAlIG1vbWVudC5kdXJhdGlvbih0aGlzLnN0ZXApLmFzV2Vla3MoKSkgPT09IDA7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXBJc0RheUR1cmF0aW9uKHRoaXMuc3RlcCkpIHtcbiAgICAgIGNvbnN0IGRheURpZmYgPSBtb21lbnQoZGF0ZVZhbHVlKS5kaWZmKG1vbWVudCh0aGlzLmhhbmRsZU1pbigpKSwgJ2RheXMnLCB0cnVlKTtcbiAgICAgIGlmICggdHlwZSA9PT0gJ2VuZCcgKSB7XG4gICAgICAgIGNvbnN0IGRhdGVWYWx1ZVBsdXMxID0gbW9tZW50KGRhdGVWYWx1ZSkuYWRkKDEsICdkJyk7XG4gICAgICAgIGNvbnN0IGRheURpZmZQbHVzMSA9IG1vbWVudChkYXRlVmFsdWVQbHVzMSkuZGlmZihtb21lbnQodGhpcy5oYW5kbGVNaW4oKSksICdkYXlzJywgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IF9tb2QgPSAoZGF5RGlmZlBsdXMxICUgbW9tZW50LmR1cmF0aW9uKHRoaXMuc3RlcCkuYXNEYXlzKCkpO1xuICAgICAgICByZXR1cm4gKF9tb2QgPCAwLjAwMDAwMDEgJiYgX21vZCA+IC0wLjAwMDAwMDEpIHx8IF9tb2QgPT09IDAgOyAvLyAxIG1pbGxpc2Vjb25kID0gMS4xNTc0MDc0MDc0MDc0MDc2ZS04XG4gICAgICB9IGVsc2UgaWYgKCB0eXBlID09PSAnYmVnaW4nICkge1xuICAgICAgICBjb25zdCBfbW9kID0gKChkYXlEaWZmICUgbW9tZW50LmR1cmF0aW9uKHRoaXMuc3RlcCkuYXNEYXlzKCkpICsgMSk7XG4gICAgICAgIHJldHVybiAoX21vZCA8IDAuMDAwMDAwMSAmJiBfbW9kID4gLTAuMDAwMDAwMSAmJiBfbW9kICE9PSAwKSB8fCBfbW9kID09PSAxIDsgLy8gMSBtaWxsaXNlY29uZCA9IDEuMTU3NDA3NDA3NDA3NDA3NmUtOFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoIHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzSG91ckR1cmF0aW9uKHRoaXMuc3RlcCkgKSB7XG4gICAgICBjb25zdCBob3VyRGlmZiA9IG1vbWVudChkYXRlVmFsdWUpLmRpZmYobW9tZW50KHRoaXMuaGFuZGxlTWluKCkpLCAnaG91cnMnLCB0cnVlKTtcbiAgICAgIHJldHVybiAoaG91ckRpZmYgJSBtb21lbnQuZHVyYXRpb24odGhpcy5zdGVwKS5hc0hvdXJzKCkpID09PSAwO1xuXG4gICAgfSBlbHNlIGlmICggdGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNNaW51dGVEdXJhdGlvbih0aGlzLnN0ZXApICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZmYgJSB0aGlzLnN0ZXBNaWxsaXNlY29uZHMgPT09IDA7XG4gIH1cblxuICBnZXREYXRlVGltZShkYXRlLCBwb3MpIHtcbiAgICBjb25zdCB2YWx1ZXRtcCA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIGxldCB2YWx1ZXRtcDI7XG4gICAgaWYgKCF0aGlzLnNsaWRlck1vZGUpIHtcbiAgICAgIHN3aXRjaCAocG9zKSB7XG4gICAgICAgIGNhc2UgMToge1xuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIuY2FsZW5kYXJNb2RlWWVhcikge1xuICAgICAgICAgICAgdmFsdWV0bXAyID0gdmFsdWV0bXAuc2V0SG91cnMoMCwgMCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWV0bXAyID0gdmFsdWV0bXAuc2V0SG91cnMoXG4gICAgICAgICAgICB0aGlzLmJlZ2luSG91ckZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgdGhpcy5iZWdpbk1pbnV0ZUZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhc2UgMjoge1xuICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIuY2FsZW5kYXJNb2RlWWVhcikge1xuICAgICAgICAgICAgdmFsdWV0bXAyID0gdmFsdWV0bXAuc2V0SG91cnMoMCwgMCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWV0bXAyID0gdmFsdWV0bXAuc2V0SG91cnMoXG4gICAgICAgICAgICAgIHRoaXMuZW5kSG91ckZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICB0aGlzLmVuZE1pbnV0ZUZvcm1Db250cm9sLnZhbHVlXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZXRtcDIgPyB2YWx1ZXRtcDIgOiB2YWx1ZXRtcCk7XG4gIH1cblxuICBoYW5kbGVNaW51dGVJbmNyZW1lbnQoKSB7XG4gICAgaWYgKHRoaXMub2djRmlsdGVyVGltZVNlcnZpY2Uuc3RlcElzTWludXRlRHVyYXRpb24odGhpcy5zdGVwKSkge1xuICAgICAgaWYgKHRoaXMuc3RlcE1pbGxpc2Vjb25kcyA8IDM2MDAwMDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcE1pbGxpc2Vjb25kcyAvIDEwMDAgPT09IDYwID8gMSA6IHRoaXMuc3RlcE1pbGxpc2Vjb25kcyAvIDEwMDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gKHRoaXMuc3RlcE1pbGxpc2Vjb25kcyAlIDM2MDAwMDApIC8gNjA7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLm9nY0ZpbHRlclRpbWVTZXJ2aWNlLnN0ZXBJc0hvdXJEdXJhdGlvbih0aGlzLnN0ZXApKSB7XG4gICAgICByZXR1cm4gNjA7XG4gICAgfVxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgaGFuZGxlSG91ckluY3JlbWVudCgpIHtcbiAgICBpZiAodGhpcy5vZ2NGaWx0ZXJUaW1lU2VydmljZS5zdGVwSXNIb3VyRHVyYXRpb24odGhpcy5zdGVwKSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RlcE1pbGxpc2Vjb25kcyAvIDEwMDAgLyA2MCAvIDYwO1xuICAgIH1cbiAgICByZXR1cm4gMTtcbiAgfVxuXG4gIGZ1bGxCZWdpbkhvdXJzQXJyYXkoY2hlY2tFbmRWYWx1ZT8pIHtcbiAgICBpZiAoY2hlY2tFbmRWYWx1ZSkge1xuICAgICAgdGhpcy5iZWdpbkhvdXJzID0gQXJyYXkuZnJvbShcbiAgICAgICAge1xuICAgICAgICAgIGxlbmd0aDpcbiAgICAgICAgICAgICh0aGlzLmVuZEhvdXJGb3JtQ29udHJvbC52YWx1ZSAtIDApIC8gdGhpcy5oYW5kbGVIb3VySW5jcmVtZW50KCkgKyAxXG4gICAgICAgIH0sXG4gICAgICAgIChfLCBpKSA9PiAwICsgaSAqIHRoaXMuaGFuZGxlSG91ckluY3JlbWVudCgpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJlZ2luSG91cnMgPSBBcnJheS5mcm9tKFxuICAgICAgICB7IGxlbmd0aDogKDIzIC0gMCkgLyB0aGlzLmhhbmRsZUhvdXJJbmNyZW1lbnQoKSArIDEgfSxcbiAgICAgICAgKF8sIGkpID0+IDAgKyBpICogdGhpcy5oYW5kbGVIb3VySW5jcmVtZW50KClcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuYmVnaW5Ib3VyRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5iZWdpblZhbHVlLmdldEhvdXJzKCkpO1xuICB9XG5cbiAgZnVsbEVuZEhvdXJzQXJyYXkoY2hlY2tFbmRWYWx1ZT8pIHtcbiAgICBpZiAoY2hlY2tFbmRWYWx1ZSkge1xuICAgICAgdGhpcy5lbmRIb3VycyA9IEFycmF5LmZyb20oXG4gICAgICAgIHtcbiAgICAgICAgICBsZW5ndGg6XG4gICAgICAgICAgICAoMjMgLSB0aGlzLmJlZ2luSG91ckZvcm1Db250cm9sLnZhbHVlKSAvXG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlSG91ckluY3JlbWVudCgpICtcbiAgICAgICAgICAgIDFcbiAgICAgICAgfSxcbiAgICAgICAgKF8sIGkpID0+XG4gICAgICAgICAgdGhpcy5iZWdpbkhvdXJGb3JtQ29udHJvbC52YWx1ZSArIGkgKiB0aGlzLmhhbmRsZUhvdXJJbmNyZW1lbnQoKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbmRIb3VycyA9IEFycmF5LmZyb20oXG4gICAgICAgIHsgbGVuZ3RoOiAoMjMgLSAwKSAvIHRoaXMuaGFuZGxlSG91ckluY3JlbWVudCgpICsgMSB9LFxuICAgICAgICAoXywgaSkgPT4gMCArIGkgKiB0aGlzLmhhbmRsZUhvdXJJbmNyZW1lbnQoKVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5lbmRIb3VyRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5lbmRWYWx1ZS5nZXRIb3VycygpKTtcbiAgfVxuXG4gIGZ1bGxCZWdpbk1pbnV0ZXNBcnJheShjaGVja0VuZFZhbHVlPykge1xuICAgIGlmIChjaGVja0VuZFZhbHVlKSB7XG4gICAgICB0aGlzLmJlZ2luTWludXRlcyA9IEFycmF5LmZyb20oXG4gICAgICAgIHtcbiAgICAgICAgICBsZW5ndGg6XG4gICAgICAgICAgICAodGhpcy5lbmRNaW51dGVGb3JtQ29udHJvbC52YWx1ZSAtIDApIC9cbiAgICAgICAgICAgICAgdGhpcy5oYW5kbGVNaW51dGVJbmNyZW1lbnQoKSArXG4gICAgICAgICAgICAxXG4gICAgICAgIH0sXG4gICAgICAgIChfLCBpKSA9PiAwICsgaSAqIHRoaXMuaGFuZGxlTWludXRlSW5jcmVtZW50KClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYmVnaW5NaW51dGVzID0gQXJyYXkuZnJvbShcbiAgICAgICAgeyBsZW5ndGg6ICg1OSAtIDApIC8gdGhpcy5oYW5kbGVNaW51dGVJbmNyZW1lbnQoKSArIDEgfSxcbiAgICAgICAgKF8sIGkpID0+IDAgKyBpICogdGhpcy5oYW5kbGVNaW51dGVJbmNyZW1lbnQoKVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5iZWdpbk1pbnV0ZUZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuYmVnaW5WYWx1ZS5nZXRNaW51dGVzKCkpO1xuICB9XG5cbiAgZnVsbEVuZE1pbnV0ZXNBcnJheShjaGVja0VuZFZhbHVlPykge1xuICAgIGlmIChjaGVja0VuZFZhbHVlKSB7XG4gICAgICB0aGlzLmVuZE1pbnV0ZXMgPSBBcnJheS5mcm9tKFxuICAgICAgICB7XG4gICAgICAgICAgbGVuZ3RoOlxuICAgICAgICAgICAgKDU5IC0gdGhpcy5iZWdpbk1pbnV0ZUZvcm1Db250cm9sLnZhbHVlKSAvXG4gICAgICAgICAgICAgIHRoaXMuaGFuZGxlTWludXRlSW5jcmVtZW50KCkgK1xuICAgICAgICAgICAgMVxuICAgICAgICB9LFxuICAgICAgICAoXywgaSkgPT5cbiAgICAgICAgICB0aGlzLmJlZ2luTWludXRlRm9ybUNvbnRyb2wudmFsdWUgKyBpICogdGhpcy5oYW5kbGVNaW51dGVJbmNyZW1lbnQoKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbmRNaW51dGVzID0gQXJyYXkuZnJvbShcbiAgICAgICAgeyBsZW5ndGg6ICg1OSAtIDApIC8gdGhpcy5oYW5kbGVNaW51dGVJbmNyZW1lbnQoKSArIDEgfSxcbiAgICAgICAgKF8sIGkpID0+IDAgKyBpICogdGhpcy5oYW5kbGVNaW51dGVJbmNyZW1lbnQoKVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5lbmRNaW51dGVGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmVuZFZhbHVlLmdldE1pbnV0ZXMoKSk7XG4gIH1cblxuICB1cGRhdGVIb3Vyc01pbnV0ZXNBcnJheSgpIHtcbiAgICBjb25zdCBiZWdpblRtcCA9IG5ldyBEYXRlKHRoaXMuYmVnaW5WYWx1ZSk7XG4gICAgY29uc3QgZW5kVG1wID0gbmV3IERhdGUodGhpcy5lbmRWYWx1ZSk7XG4gICAgaWYgKGJlZ2luVG1wLnNldEhvdXJzKDAsIDApID09PSBlbmRUbXAuc2V0SG91cnMoMCwgMCkpIHtcbiAgICAgIHRoaXMuZnVsbEJlZ2luSG91cnNBcnJheSh0cnVlKTtcbiAgICAgIHRoaXMuZnVsbEVuZEhvdXJzQXJyYXkodHJ1ZSk7XG4gICAgICBpZiAodGhpcy5iZWdpblZhbHVlLmdldEhvdXJzKCkgPT09IHRoaXMuZW5kVmFsdWUuZ2V0SG91cnMoKSkge1xuICAgICAgICB0aGlzLmZ1bGxCZWdpbk1pbnV0ZXNBcnJheSh0cnVlKTtcbiAgICAgICAgdGhpcy5mdWxsRW5kTWludXRlc0FycmF5KHRydWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZ1bGxCZWdpbkhvdXJzQXJyYXkoKTtcbiAgICAgIHRoaXMuZnVsbEVuZEhvdXJzQXJyYXkoKTtcbiAgICAgIHRoaXMuZnVsbEJlZ2luTWludXRlc0FycmF5KCk7XG4gICAgICB0aGlzLmZ1bGxFbmRNaW51dGVzQXJyYXkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbHVlcygpIHtcbiAgICB0aGlzLmNoYW5nZVRlbXBvcmFsUHJvcGVydHkodGhpcy5iZWdpblZhbHVlLCAxLCBmYWxzZSk7XG4gICAgdGhpcy5jaGFuZ2VUZW1wb3JhbFByb3BlcnR5KHRoaXMuZW5kVmFsdWUsIDIsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIHJlc3RyaWN0ZWRUb1N0ZXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEZpbHRlci5yZXN0cmljdFRvU3RlcFxuICAgICAgPyB0aGlzLmN1cnJlbnRGaWx0ZXIucmVzdHJpY3RUb1N0ZXAgOiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVNaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEZpbHRlci5iZWdpbiA/IHRoaXMuY3VycmVudEZpbHRlci5iZWdpbiA6XG4gICAgICAgICAgICAgICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5taW5EYXRlID8gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMubWluRGF0ZSA6IHRoaXMuX2RlZmF1bHRNaW4pO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZU1heCgpIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50RmlsdGVyLmVuZCA/IHRoaXMuY3VycmVudEZpbHRlci5lbmQgOlxuICAgICAgICAgICAgICAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMubWF4RGF0ZSA/IHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm1heERhdGUgOiB0aGlzLl9kZWZhdWx0TWF4KTtcbiAgfVxuXG4gIGNoYW5nZVByb3BlcnR5QnlQYXNzKGV2ZW50KSB7XG4gICAgdGhpcy5jaGFuZ2VQcm9wZXJ0eS5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIG1vZGVDaGFuZ2UoZXZlbnQpIHtcbiAgICBpZiAoIWV2ZW50LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVzKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0RmlsdGVyU3RhdGVEaXNhYmxlKCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRGaWx0ZXIpIHtcbiAgICAgIHRoaXMuZmlsdGVyU3RhdGVEaXNhYmxlID0gIXRoaXMuY3VycmVudEZpbHRlci5hY3RpdmU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyU3RhdGVEaXNhYmxlID0gZmFsc2U7XG4gICAgfVxuICAgIGlmKHRoaXMuY2FsZW5kYXJUeXBlKCkgPT09ICdkYXRldGltZScpIHtcbiAgICAgIGlmICh0aGlzLmZpbHRlclN0YXRlRGlzYWJsZSA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLmJlZ2luSG91ckZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgdGhpcy5iZWdpbk1pbnV0ZUZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgdGhpcy5lbmRIb3VyRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgICB0aGlzLmVuZE1pbnV0ZUZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYmVnaW5Ib3VyRm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuYmVnaW5NaW51dGVGb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgICAgdGhpcy5lbmRIb3VyRm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIHRoaXMuZW5kTWludXRlRm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldERhdGVGcm9tU3RyaW5nV2l0aG91dFRpbWUoc3RyaW5nRGF0ZTogc3RyaW5nKTogRGF0ZSB7XG4gICAgLy8gd2FybmluZyBjcmVhdGUgZGF0ZSB3aXRoIG5vIHRpbWUgbWFrZSBhIGRhdGUgVVRDIHdpdGggVFogYW5kIHRoZSBkYXRlIGNyZWF0ZSBtYXliZSBub3QgdGhlIHNhbWUgeWVhciwgbW9udGggYW5kIGRheVxuICAgIC8vIGV4ZW1wbGU6XG4gICAgLy8gbmV3IERhdGUoJzIwMjItMDEtMDEnKSAtPiBGcmkgRGVjIDMxIDIwMjEgMTk6MDA6MDAgR01ULTA1MDAgKGhldXJlIG5vcm1hbGUgZGUgbOKAmUVzdCBub3JkLWFtw6lyaWNhaW4pXG4gICAgLy8gdG8gY3JlYXRlIHNhbWUgZGF0ZSBhcyBzdHJpbmcsIGFkZCB0aW1lIDAwIGluIHRoZSBjcmVhdGlvblxuICAgIC8vIG5ldyBEYXRlKCcyMDIyLTAxLTAxIDAwOjAwOjAwJykgLT4gU2F0IEphbiAwMSAyMDIyIDAwOjAwOjAwIEdNVC0wNTAwIChoZXVyZSBub3JtYWxlIGRlIGzigJlFc3Qgbm9yZC1hbcOpcmljYWluKVxuICAgIGxldCB5ZWFyO1xuICAgIGxldCBtb250aCA9ICcwMSc7XG4gICAgbGV0IGRheSA9ICcwMSc7XG4gICAgaWYgKHN0cmluZ0RhdGUubGVuZ3RoID09PSAxMCkge1xuICAgICAgIGNvbnN0IGRhdGVJdGVtcyA9IHN0cmluZ0RhdGUuc3BsaXQoJy0nKTtcbiAgICAgICAgaWYgKGRhdGVJdGVtcy5sZW5ndGggIT09IDMpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGluIGNvbmZpZyBkYXRlIGJlZ2luLWVuZCBmb3Igb2djRmlsdGVyOiBEYXRlIHdpdGhvdXQgdGltZSBmb3JtYXQgbmVlZCB0byBiZSBZWVlZLU1NLUREIG9yIFlZWVknKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB5ZWFyID0gZGF0ZUl0ZW1zWzBdO1xuICAgICAgICAgIG1vbnRoID0gZGF0ZUl0ZW1zWzFdO1xuICAgICAgICAgIGRheSA9IGRhdGVJdGVtc1syXTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoc3RyaW5nRGF0ZS5sZW5ndGggPT09IDQpIHtcbiAgICAgIHllYXIgPSBzdHJpbmdEYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IERhdGUoc3RyaW5nRGF0ZSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZShgJHt5ZWFyfS0ke21vbnRofS0ke2RheX0gMDA6MDA6MDBgKTtcbiAgfVxuXG4gIHJlc2V0RmlsdGVyKCkge1xuICAgIGxldCBmaWx0ZXJPcmlnaW5Db25maWcgPSB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmZpbHRlcnMgYXMgT2djRmlsdGVyRHVyaW5nT3B0aW9ucztcblxuICAgIGxldCBtaW5EZWZhdWx0RGF0ZTtcbiAgICBsZXQgbWF4RGVmYXVsdERhdGU7XG4gICAgbGV0IG1pbkRlZmF1bHRJU09TdHJpbmc7XG4gICAgbGV0IG1heERlZmF1bHRJU09TdHJpbmc7XG5cbiAgICBpZiAodGhpcy5jYWxlbmRhclR5cGVZZWFyKSB7XG4gICAgICBpZiAoZmlsdGVyT3JpZ2luQ29uZmlnLmVuZCA9PT0gJ3RvZGF5Jykge1xuICAgICAgICBsZXQgdG9kYXlEYXRlU3RyaW5nTm9UaW1lID0gbmV3IERhdGUoKS50b0xvY2FsZURhdGVTdHJpbmcoJ2VuLUNBJyk7IC8vICcyMDIyLTAyLTEzJ1xuICAgICAgICBtYXhEZWZhdWx0SVNPU3RyaW5nID0gYCR7dG9kYXlEYXRlU3RyaW5nTm9UaW1lLnN1YnN0cmluZygwLDQpfS0wMS0wMWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtYXhEZWZhdWx0SVNPU3RyaW5nID0gYCR7ZmlsdGVyT3JpZ2luQ29uZmlnLmVuZC5zdWJzdHJpbmcoMCw0KX0tMDEtMDFgO1xuICAgICAgfVxuICAgICAgbWluRGVmYXVsdElTT1N0cmluZyA9IGAke2ZpbHRlck9yaWdpbkNvbmZpZy5iZWdpbi5zdWJzdHJpbmcoMCw0KX0tMDEtMDFgO1xuICAgICAgbWluRGVmYXVsdERhdGUgPSB0aGlzLmdldERhdGVGcm9tU3RyaW5nV2l0aG91dFRpbWUobWluRGVmYXVsdElTT1N0cmluZyk7XG4gICAgICBtYXhEZWZhdWx0RGF0ZSA9IHRoaXMuZ2V0RGF0ZUZyb21TdHJpbmdXaXRob3V0VGltZShtYXhEZWZhdWx0SVNPU3RyaW5nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbWluRGVmYXVsdERhdGUgPSB0aGlzLnBhcnNlRmlsdGVyKGZpbHRlck9yaWdpbkNvbmZpZy5iZWdpbik7XG4gICAgICBtYXhEZWZhdWx0RGF0ZSA9IHRoaXMucGFyc2VGaWx0ZXIoZmlsdGVyT3JpZ2luQ29uZmlnLmVuZCk7XG4gICAgICBtaW5EZWZhdWx0SVNPU3RyaW5nID0gbWluRGVmYXVsdERhdGUudG9JU09TdHJpbmcoKTtcbiAgICAgIG1heERlZmF1bHRJU09TdHJpbmcgPSBtYXhEZWZhdWx0RGF0ZS50b0lTT1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICgodGhpcy5jdXJyZW50RmlsdGVyLmJlZ2luICE9PSBtaW5EZWZhdWx0SVNPU3RyaW5nICkgfHxcbiAgICAodGhpcy5jdXJyZW50RmlsdGVyLmVuZCAhPT0gbWF4RGVmYXVsdElTT1N0cmluZykpIHtcbiAgICAgIHRoaXMuYmVnaW5WYWx1ZSA9IG1pbkRlZmF1bHREYXRlO1xuICAgICAgdGhpcy5lbmRWYWx1ZSA9IG1heERlZmF1bHREYXRlO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZXMoKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVGaWx0ZXJTdGF0ZSgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50RmlsdGVyLmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5jdXJyZW50RmlsdGVyLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRGaWx0ZXIuYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5zZXRGaWx0ZXJTdGF0ZURpc2FibGUoKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlcygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0ZXRpbWUtY29udGFpbmVyXCI+XG4gIDxtYXQtc2xpZGUtdG9nZ2xlIFxuICAgICpuZ0lmPVwidGhpcy5jdXJyZW50RmlsdGVyLnNsaWRlck9wdGlvbnM/LmVuYWJsZWRcIlxuICAgIFsobmdNb2RlbCldPVwic2xpZGVyTW9kZVwiXG4gICAgKGNoYW5nZSk9XCJtb2RlQ2hhbmdlKCRldmVudClcIj5cbiAgICB7eydpZ28uZ2VvLmZpbHRlci5zbGlkZXJNb2RlVGl0bGUnIHwgdHJhbnNsYXRlfX1cbiAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuXG4gIDxkaXYgY2xhc3M9XCJzbGlkZXItY29udGFpbmVyXCIgKm5nSWY9XCJzbGlkZXJNb2RlXCI+XG4gICAgPGlnby1vZ2MtZmlsdGVyLXRpbWUtc2xpZGVyXG4gICAgICBbYmVnaW5dPVwiYmVnaW5WYWx1ZVwiXG4gICAgICBbbWF4XT1cInRoaXMucmVzdHJpY3RlZFRvU3RlcCgpID8gdGhpcy5tYXhEYXRlIDogdGhpcy5lbmRWYWx1ZVwiXG4gICAgICBbY3VycmVudEZpbHRlcl09XCJjdXJyZW50RmlsdGVyXCIgXG4gICAgICBbZGF0YXNvdXJjZV09XCJkYXRhc291cmNlXCJcbiAgICAgIChjaGFuZ2VQcm9wZXJ0eSk9XCJjaGFuZ2VQcm9wZXJ0eUJ5UGFzcygkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9pZ28tb2djLWZpbHRlci10aW1lLXNsaWRlcj5cbiAgICBcbiAgPC9kaXY+XG5cbiAgPGRpdiAqbmdJZj1cIiFzbGlkZXJNb2RlXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwieWVhci1pbnB1dC1jb250YWluZXJcIiAqbmdJZj1cImNhbGVuZGFyVHlwZVllYXJcIj5cbiAgICAgIDwhLS0gdG8gZW11bGF0ZSBhIHllYXItcGlja2VyLCAyIGlucHV0OiBmaXJzdCBpbnB1dCB0byBzaG93IHVzZXIganVzdCB5ZWFyIGFuZCBzZWNvbmQgaW5wdXQgaGlkZW4gYW5kIGJpbmQgXG4gICAgICAgIHdpdGggdGhlIGRhdGVwaWNrZXIgIC0tPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkICBjbGFzcz1cInllYXItaW5wdXRcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eydpZ28uZ2VvLnRpbWVGaWx0ZXIuc3RhcnRZZWFyJ3wgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBjbGFzcz1cInllYXItaW5wdXQtb25seS15ZWFyXCJcbiAgICAgICAgICB2YWx1ZT1cInt7b25seVllYXJCZWdpbn19XCJcbiAgICAgICAgICAoY2hhbmdlKT0gXCJ5ZWFyT25seUlucHV0Q2hhbmdlKCRldmVudCwgYmVnaW5EYXRlcGlja2VyLCAnYmVnaW4nKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT0gXCJmaWx0ZXJTdGF0ZURpc2FibGVcIlxuICAgICAgICAgID5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJiZWdpbkRhdGVwaWNrZXJcIiBbZGlzYWJsZWRdPVwiZmlsdGVyU3RhdGVEaXNhYmxlXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gIFxuICAgICAgICA8bWF0LWRhdGVwaWNrZXJcbiAgICAgICAgICBwYW5lbENsYXNzPVwiZGF0ZXBpY2tlci15ZWFyXCJcbiAgICAgICAgICAjYmVnaW5EYXRlcGlja2VyXG4gICAgICAgICAgW3N0YXJ0Vmlld109XCJjYWxlbmRhclZpZXcoKVwiXG4gICAgICAgICAgW3N0YXJ0QXRdPVwiYmVnaW5WYWx1ZVwiXG4gICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJ5ZWFyU2VsZWN0ZWQoJGV2ZW50LCBiZWdpbkRhdGVwaWNrZXIsICdiZWdpbicpXCJcbiAgICAgICAgICA+XG4gICAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XG5cbiAgICAgICAgPGlucHV0ICNiZWdpblllYXJcbiAgICAgICAgICBjbGFzcz0gXCJ5ZWFyLWlucHV0LWhpZGVcIlxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiYmVnaW5EYXRlcGlja2VyXCJcbiAgICAgICAgICBlbmFibGVkPSBmYWxzZVxuICAgICAgICAgIHJlYWRvbmx5PSB0cnVlXG4gICAgICAgICAgW3ZhbHVlXT1cImJlZ2luVmFsdWU/YmVnaW5WYWx1ZTpoYW5kbGVEYXRlKGRhdGFzb3VyY2Uub3B0aW9ucy5taW5EYXRlKVwiXG4gICAgICAgICAgW21pbl09XCJoYW5kbGVEYXRlKGRhdGFzb3VyY2Uub3B0aW9ucy5taW5EYXRlKVwiXG4gICAgICAgICAgW21heF09XCIoZW5kVmFsdWUgJiYgKCFyZXN0cmljdGVkVG9TdGVwKCkpKT9lbmRWYWx1ZTpoYW5kbGVEYXRlKGRhdGFzb3VyY2Uub3B0aW9ucy5tYXhEYXRlKVwiXG4gICAgICAgICAgPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkICBjbGFzcz1cInllYXItaW5wdXRcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eydpZ28uZ2VvLnRpbWVGaWx0ZXIuZW5kWWVhcid8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgY2xhc3M9XCJ5ZWFyLWlucHV0LW9ubHkteWVhclwiXG4gICAgICAgICAgdmFsdWU9XCJ7e29ubHlZZWFyRW5kfX1cIlxuICAgICAgICAgIChjaGFuZ2UpPSBcInllYXJPbmx5SW5wdXRDaGFuZ2UoJGV2ZW50LCBlbmREYXRlcGlja2VyLCAnZW5kJylcIlxuICAgICAgICAgIFtkaXNhYmxlZF0gPSBcImZpbHRlclN0YXRlRGlzYWJsZVwiPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImVuZERhdGVwaWNrZXJcIiBbZGlzYWJsZWRdPVwiZmlsdGVyU3RhdGVEaXNhYmxlXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlclxuICAgICAgICAgIHBhbmVsQ2xhc3M9XCJkYXRlcGlja2VyLXllYXJcIlxuICAgICAgICAgICNlbmREYXRlcGlja2VyXG4gICAgICAgICAgW3N0YXJ0Vmlld109XCJjYWxlbmRhclZpZXcoKVwiXG4gICAgICAgICAgW3N0YXJ0QXRdPVwiZW5kVmFsdWVcIlxuICAgICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwieWVhclNlbGVjdGVkKCRldmVudCwgZW5kRGF0ZXBpY2tlciwgJ2VuZCcpXCJcbiAgICAgICAgICA+XG4gICAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XG5cbiAgICAgICAgPGlucHV0ICNlbmRZZWFyXG4gICAgICAgICAgY2xhc3M9IFwieWVhci1pbnB1dC1oaWRlXCJcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImVuZERhdGVwaWNrZXJcIlxuICAgICAgICAgIGVuYWJsZWQ9IGZhbHNlXG4gICAgICAgICAgcmVhZG9ubHk9IHRydWVcbiAgICAgICAgICBbdmFsdWVdPVwiZW5kVmFsdWU/ZW5kVmFsdWU6aGFuZGxlRGF0ZShkYXRhc291cmNlLm9wdGlvbnMubWF4RGF0ZSlcIlxuICAgICAgICAgIFttaW5dPVwiYmVnaW5WYWx1ZT9iZWdpblZhbHVlOmhhbmRsZURhdGUoZGF0YXNvdXJjZS5vcHRpb25zLm1pbkRhdGUpXCJcbiAgICAgICAgICBbbWF4XT1cImhhbmRsZURhdGUoZGF0YXNvdXJjZS5vcHRpb25zLm1heERhdGUpXCJcbiAgICAgICAgICA+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlc2V0LWJ1dHRvblwiIFxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCIgXG4gICAgICAgIChjbGljayk9XCJyZXNldEZpbHRlcigpXCIgXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci5yZXNldEZpbHRlcnMnIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgIFtkaXNhYmxlZF09IFwiZmlsdGVyU3RhdGVEaXNhYmxlXCI+XG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3tyZXNldEljb259fVwiPjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFxuICAgICAgICBjbGFzcz0ndG9nZ2xlLWZpbHRlci1zdGF0ZScgXG4gICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlRmlsdGVyU3RhdGUoKVwiIFxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5maWx0ZXIudG9nZ2xlRmlsdGVyU3RhdGUnIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiIFxuICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgICAgW2NoZWNrZWRdPVwiIWZpbHRlclN0YXRlRGlzYWJsZVwiPlxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuXG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZXRpbWUtaW5wdXQtY29udGFpbmVyXCIgKm5nSWY9XCJjYWxlbmRhclR5cGUoKSE9PSd5ZWFyJ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImRhdGV0aW1lLWlucHV0XCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImRhdGUtaW5wdXRcIj5cbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImJlZ2luRGF0ZXBpY2tlclwiIFtkaXNhYmxlZF09IFwiZmlsdGVyU3RhdGVEaXNhYmxlXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgICAgPGlucHV0ICNiZWdpblxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImJlZ2luRGF0ZXBpY2tlclwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2lnby5nZW8udGltZUZpbHRlci5zdGFydERhdGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIiFjdXJyZW50RmlsdGVyLmFjdGl2ZVwiXG4gICAgICAgICAgICAoZGF0ZUNoYW5nZSk9XCJjaGFuZ2VUZW1wb3JhbFByb3BlcnR5KGJlZ2luLnZhbHVlLCAxKVwiXG4gICAgICAgICAgICBbbWF0RGF0ZXBpY2tlckZpbHRlcl09XCJkYXRlRmlsdGVyLmJpbmQodGhpcywgJ2JlZ2luJylcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImJlZ2luVmFsdWU/YmVnaW5WYWx1ZTpoYW5kbGVEYXRlKGRhdGFzb3VyY2Uub3B0aW9ucy5taW5EYXRlKVwiXG4gICAgICAgICAgICBbbWluXT1cImhhbmRsZURhdGUoZGF0YXNvdXJjZS5vcHRpb25zLm1pbkRhdGUpXCJcbiAgICAgICAgICAgIFttYXhdPVwiKGVuZFZhbHVlICYmICghcmVzdHJpY3RlZFRvU3RlcCgpKSk/ZW5kVmFsdWU6aGFuZGxlRGF0ZShkYXRhc291cmNlLm9wdGlvbnMubWF4RGF0ZSlcIiBcbiAgICAgICAgICAgIFtkaXNhYmxlZF09IFwiZmlsdGVyU3RhdGVEaXNhYmxlXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxsZXJcIj48L3NwYW4+XG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyXG4gICAgICAgICAgICAjYmVnaW5EYXRlcGlja2VyXG4gICAgICAgICAgICBbc3RhcnRWaWV3XT1cImNhbGVuZGFyVmlldygpXCJcbiAgICAgICAgICAgIFtzdGFydEF0XT1cImJlZ2luVmFsdWVcIlxuICAgICAgICAgICAgKHllYXJTZWxlY3RlZCk9XCJ5ZWFyU2VsZWN0ZWQoJGV2ZW50LCBiZWdpbkRhdGVwaWNrZXIsICdiZWdpbicpXCJcbiAgICAgICAgICAgIChtb250aFNlbGVjdGVkKT1cIm1vbnRoU2VsZWN0ZWQoJGV2ZW50LCBiZWdpbkRhdGVwaWNrZXIsICdiZWdpbicpXCI+XG4gICAgICAgICAgPC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1pbnB1dFwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImhvdXItaW5wdXRcIiAqbmdJZj1cImNhbGVuZGFyVHlwZSgpPT09J2RhdGV0aW1lJ1wiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eydpZ28uZ2VvLnRpbWVGaWx0ZXIuaG91cicgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImJlZ2luSG91ckZvcm1Db250cm9sXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiIWN1cnJlbnRGaWx0ZXIuYWN0aXZlXCJcbiAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VUZW1wb3JhbFByb3BlcnR5KGJlZ2luLnZhbHVlLCAxKVwiPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaG91ciBvZiBiZWdpbkhvdXJzXCIgW3ZhbHVlXT1cImhvdXJcIj57e2hvdXJ9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1pbnV0ZS1pbnB1dFwiICpuZ0lmPVwiY2FsZW5kYXJUeXBlKCk9PT0nZGF0ZXRpbWUnXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7J2lnby5nZW8udGltZUZpbHRlci5taW51dGUnIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJiZWdpbk1pbnV0ZUZvcm1Db250cm9sXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiIWN1cnJlbnRGaWx0ZXIuYWN0aXZlXCJcbiAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VUZW1wb3JhbFByb3BlcnR5KGJlZ2luLnZhbHVlLCAxKVwiPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbWludXRlIG9mIGJlZ2luTWludXRlc1wiIFt2YWx1ZV09XCJtaW51dGVcIj57e21pbnV0ZX19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRldGltZS1pbnB1dFwiICpuZ0lmPVwiIXJlc3RyaWN0ZWRUb1N0ZXAoKVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJkYXRlLWlucHV0XCI+XG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJlbmREYXRlcGlja2VyXCIgW2Rpc2FibGVkXT0gXCJmaWx0ZXJTdGF0ZURpc2FibGVcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cbiAgICAgICAgICAgIDxpbnB1dCAjZW5kXG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImVuZERhdGVwaWNrZXJcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2lnby5nZW8udGltZUZpbHRlci5lbmREYXRlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cIiFjdXJyZW50RmlsdGVyLmFjdGl2ZVwiXG4gICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cImNoYW5nZVRlbXBvcmFsUHJvcGVydHkoZW5kLnZhbHVlLCAyKVwiXG4gICAgICAgICAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cImRhdGVGaWx0ZXIuYmluZCh0aGlzLCAnZW5kJylcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiZW5kVmFsdWU/ZW5kVmFsdWU6aGFuZGxlRGF0ZShkYXRhc291cmNlLm9wdGlvbnMubWF4RGF0ZSlcIlxuICAgICAgICAgICAgICBbbWluXT1cImJlZ2luVmFsdWU/YmVnaW5WYWx1ZTpoYW5kbGVEYXRlKGRhdGFzb3VyY2Uub3B0aW9ucy5taW5EYXRlKVwiXG4gICAgICAgICAgICAgIFttYXhdPVwiaGFuZGxlRGF0ZShkYXRhc291cmNlLm9wdGlvbnMubWF4RGF0ZSlcIiBcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT0gXCJmaWx0ZXJTdGF0ZURpc2FibGVcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsbGVyXCI+PC9zcGFuPlxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNlbmREYXRlcGlja2VyXG4gICAgICAgICAgICAgIFtzdGFydFZpZXddPVwiY2FsZW5kYXJWaWV3KClcIlxuICAgICAgICAgICAgICBbc3RhcnRBdF09XCJlbmRWYWx1ZVwiXG4gICAgICAgICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwieWVhclNlbGVjdGVkKCRldmVudCwgZW5kRGF0ZXBpY2tlciwgJ2VuZCcpXCJcbiAgICAgICAgICAgICAgKG1vbnRoU2VsZWN0ZWQpPVwibW9udGhTZWxlY3RlZCgkZXZlbnQsIGVuZERhdGVwaWNrZXIsICdlbmQnKVwiPlxuICAgICAgICAgIDwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtaW5wdXRcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJob3VyLWlucHV0XCIgKm5nSWY9XCJjYWxlbmRhclR5cGUoKT09PSdkYXRldGltZSdcIiA+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7J2lnby5nZW8udGltZUZpbHRlci5ob3VyJyB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZW5kSG91ckZvcm1Db250cm9sXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiIWN1cnJlbnRGaWx0ZXIuYWN0aXZlXCJcbiAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VUZW1wb3JhbFByb3BlcnR5KGVuZC52YWx1ZSwgMilcIj5cbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGhvdXIgb2YgZW5kSG91cnNcIiBbdmFsdWVdPVwiaG91clwiPnt7aG91cn19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWludXRlLWlucHV0XCIgKm5nSWY9XCJjYWxlbmRhclR5cGUoKT09PSdkYXRldGltZSdcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3snaWdvLmdlby50aW1lRmlsdGVyLm1pbnV0ZScgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVuZE1pbnV0ZUZvcm1Db250cm9sXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiIWN1cnJlbnRGaWx0ZXIuYWN0aXZlXCJcbiAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VUZW1wb3JhbFByb3BlcnR5KGVuZC52YWx1ZSwgMilcIj5cbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG1pbnV0ZSBvZiBlbmRNaW51dGVzXCIgW3ZhbHVlXT1cIm1pbnV0ZVwiPnt7bWludXRlfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlc2V0LWJ1dHRvblwiIFxuICAgICAgICBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgKGNsaWNrKT1cInJlc2V0RmlsdGVyKClcIiBcbiAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZmlsdGVyLnJlc2V0RmlsdGVycycgfCB0cmFuc2xhdGVcIiBcbiAgICAgICAgW2Rpc2FibGVkXT0gXCJmaWx0ZXJTdGF0ZURpc2FibGVcIj5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJ7e3Jlc2V0SWNvbn19XCI+PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG1hdC1zbGlkZS10b2dnbGUgXG4gICAgICAgIGNsYXNzPVwidG9nZ2xlLWZpbHRlci1zdGF0ZVwiIFxuICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUZpbHRlclN0YXRlKClcIiBcbiAgICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCIgXG4gICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5maWx0ZXIudG9nZ2xlRmlsdGVyU3RhdGUnIHwgdHJhbnNsYXRlXCIgXG4gICAgICAgIFtjaGVja2VkXT0gXCIhZmlsdGVyU3RhdGVEaXNhYmxlXCI+XG4gICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './ogc-filterable-form.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vZ2MtZmlsdGVyYWJsZS1mb3JtLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -59,4 +59,4 @@ OgcFilterableFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
59
59
|
}], refreshFilters: [{
|
|
60
60
|
type: Input
|
|
61
61
|
}] }); })();
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtZm9ybS9vZ2MtZmlsdGVyYWJsZS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1mb3JtL29nYy1maWx0ZXJhYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztJQ0FqRCw4Q0FPMkI7OztJQUp6QixtREFBOEIsaUNBQUEsbUJBQUEsdUNBQUE7OztJQVVoQyx5Q0FLc0I7Ozs7SUFKcEIsZ0RBQStCLHNDQUFBLGlDQUFBLG1CQUFBOzs7SUFMakMsNkZBVWM7OztJQVBkLGtGQUE2RDs7QURKN0QsTUFBTSxPQUFPLDBCQUEwQjtJQTBCckM7UUFGTyxVQUFLLEdBQUcsU0FBUyxDQUFDO0lBRVYsQ0FBQztJQWxCaEIsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUN0QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQztTQUM5RDtRQUNELE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN4RSxDQUFDOztvR0F0QlUsMEJBQTBCOzZFQUExQiwwQkFBMEI7UUNSdkMscUhBTzJCO1FBRTNCLDJFQVVjOztRQWxCWCw4Q0FBeUI7UUFTM0IsZUFBa0U7UUFBbEUsMkZBQWtFOzt1RkRGdEQsMEJBQTBCO2NBSnRDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxXQUFXLEVBQUUsc0NBQXNDO2FBQ3BEO3NDQUdVLFVBQVU7a0JBQWxCLEtBQUs7WUFFRyxHQUFHO2tCQUFYLEtBQUs7WUFFRyxjQUFjO2tCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuLi9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLW9nYy1maWx0ZXJhYmxlLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vb2djLWZpbHRlcmFibGUtZm9ybS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyYWJsZUZvcm1Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGRhdGFzb3VyY2U6IE9nY0ZpbHRlcmFibGVEYXRhU291cmNlO1xuXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuXG4gIEBJbnB1dCgpIHJlZnJlc2hGaWx0ZXJzOiAoKSA9PiB2b2lkO1xuXG4gIGdldCByZWZyZXNoRnVuYygpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoRmlsdGVycztcbiAgfVxuXG4gIGdldCBhZHZhbmNlZE9nY0ZpbHRlcnMoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycztcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRGaWx0ZXIoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzID9cbiAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnNbMF0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgY29sb3IgPSAncHJpbWFyeSc7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIiwiPGlnby1vZ2MtZmlsdGVyLXNlbGVjdGlvblxuICAqbmdJZj1cIiFhZHZhbmNlZE9nY0ZpbHRlcnNcIlxuICBpZ29MaXN0SXRlbVxuICBbcmVmcmVzaEZpbHRlcnNdPVwicmVmcmVzaEZ1bmNcIlxuICBbZGF0YXNvdXJjZV09XCJkYXRhc291cmNlXCJcbiAgW21hcF09XCJtYXBcIlxuICBbY3VycmVudEZpbHRlcl09XCJjdXJyZW50RmlsdGVyXCI+XG48L2lnby1vZ2MtZmlsdGVyLXNlbGVjdGlvbj5cblxuPG5nLXRlbXBsYXRlIFxuKm5nSWY9XCJhZHZhbmNlZE9nY0ZpbHRlcnMgJiYgZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuZWRpdGFibGVcIlxubmdGb3IgbGV0LWN1cnJlbnRGaWx0ZXIgXG5bbmdGb3JPZl09XCJkYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzXCI+XG48aWdvLW9nYy1maWx0ZXItZm9ybVxuICBbY3VycmVudEZpbHRlcl09XCJjdXJyZW50RmlsdGVyXCJcbiAgW3JlZnJlc2hGaWx0ZXJzXT1cInJlZnJlc2hGdW5jXCJcbiAgW2RhdGFzb3VyY2VdPVwiZGF0YXNvdXJjZVwiXG4gIFttYXBdPVwibWFwXCI+XG48L2lnby1vZ2MtZmlsdGVyLWZvcm0+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './ogc-filterable-item.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtaXRlbS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -304,4 +304,4 @@ OgcFilterableItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
304
304
|
}], header: [{
|
|
305
305
|
type: Input
|
|
306
306
|
}] }); })();
|
|
307
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtaXRlbS9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1pdGVtL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBS3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBU3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7SUNibkQsbUNBT3VCO0lBRHJCLGlOQUFrQztJQUVwQyxpQkFBVzs7OztJQUpHLDRCQUFxQixzQ0FBQTs7Ozs7SUFLbkMsNkJBQWlMO0lBQTdLLG1NQUErQjtJQUE4SSxZQUFlO0lBQUEsaUJBQUs7OztJQUFsSixxR0FBZ0Usa0NBQUE7SUFBOEQsZUFBZTtJQUFmLHdDQUFlOzs7O0lBQzlMLGtDQUN3RztJQUFoQyw2TUFBK0I7O0lBQ3JHLCtCQUFvQztJQUN0QyxpQkFBUzs7O0lBSG9ELHFEQUFnQyxnRUFBQSx1QkFBQTs7Ozs7SUFJN0Ysa0NBUzJDO0lBQXpDLDhOQUF3Qzs7O0lBQ3hDLCtCQUdXOztJQUNiLGlCQUFTOzs7SUFaUCxvRUFBK0Msd0lBQUE7SUFTN0MsZUFBNEQ7SUFBNUQsZ0hBQTRELHFEQUFBOzs7SUFROUQsdUNBQ21COzs7SUFEMkIscUNBQWU7OztJQUQvRCxtQ0FBK0Q7SUFDN0QsNEdBQ21COztJQUNyQixpQkFBTTs7O0lBRmUsZUFBeUI7SUFBekIsK0RBQXlCOzs7O0lBTWhELG1DQUE2RjtJQUMzRiw4QkFBMkI7SUFDM0Isd0NBQ2lFO0lBRDVCLGtPQUFzQyxpUUFBQTtJQUV6RSxZQUNGOztJQUFBLGlCQUFlO0lBQ2pCLGlCQUFVOzs7SUFITixlQUE4RDtJQUE5RCxpRkFBOEQ7SUFDOUQsZUFDRjtJQURFLDBGQUNGOztBRHhCSixNQUFNLE9BQU8sMEJBQTBCO0lBMkJyQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTFCL0MsVUFBSyxHQUFHLFNBQVMsQ0FBQztRQUVqQix5QkFBb0IsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7UUFDOUMsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUMxQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDcEMsZ0JBQVcsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsdUJBQWtCLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBUWhFLFdBQU0sR0FBWSxJQUFJLENBQUM7UUFXOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFWRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBcUMsQ0FBQztJQUMxRCxDQUFDO0lBTUQsUUFBUTtRQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUN0RCxJQUNFLENBQUMsVUFBVSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3JFLENBQUMsVUFBVSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ25FLENBQUMsVUFBVSxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZFLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQzNELENBQUMsVUFBVSxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDekUsSUFBSSxVQUFVLENBQUMsa0JBQWtCLEtBQUssU0FBUyxFQUFFO2dCQUMvQyxVQUFVLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO2FBQ3ZDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDekI7UUFFRCxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNwQyxLQUFLLEtBQUs7Z0JBQ1IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDL0QsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixJQUFJLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMvRCxNQUFNO1lBQ1I7Z0JBQ0UsTUFBTTtTQUNUO1FBRUQsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQy9DLENBQUM7Z0JBQ0YsSUFDRSxVQUFVLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQ3RFO29CQUNBLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7aUJBQ3BDO2FBQ0Y7WUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLFFBQVE7Z0JBQzNDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUTtnQkFDckIsQ0FBQyxDQUFDLEtBQUssQ0FBQztTQUNYO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUM5RCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixNQUFNLG1CQUFtQixHQUFnQyxJQUFJLENBQUMsVUFBVTthQUNyRSxPQUFPLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDO1FBQzFDLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbkUsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2xHLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDN0IsY0FBYztnQkFDWixjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ3RFO1FBQ0QsSUFBSSxpQkFBaUIsQ0FBQztRQUN0QixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVO2FBQ3RDLE9BQXFDLENBQUM7UUFDekMsSUFBSSxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRTtZQUN2QyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQztTQUN6RDthQUFNLElBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFlLENBQUMsU0FBUztZQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQWUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQzVEO1lBQ0EsaUJBQWlCLEdBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFlLENBQUMsU0FBUztpQkFDM0QsaUJBQWlCLENBQUM7U0FDdEI7UUFDRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksRUFDcEMsY0FBYyxFQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzNELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNELEdBQUcsQ0FBQyxJQUFJLENBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FDckM7WUFDRSxZQUFZLEVBQUUsY0FBYztZQUM1QixRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLE1BQU0sRUFBRSxJQUFJO1lBQ1osa0JBQWtCLEVBQUUsYUFBYTtZQUNqQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVO1NBQ0EsRUFDOUIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxJQUFJLENBQUMsb0JBQW9CLENBQzFCLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsR0FBRyxHQUFHLENBQUM7SUFDL0QsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFlO1FBQzVCLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUNsQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1NBQ25DO1FBQ0QsTUFBTSxVQUFVLEdBQXNCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUN6RSxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNwRCxVQUFVLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JFLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDOUIsVUFBVSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDL0IsVUFBVSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDN0I7UUFDRCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztTQUNqRTtRQUNELElBQ0UsYUFBYSxDQUFDLE1BQU0sQ0FDbEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdkUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUNkO1lBQ0EsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQztTQUNyQzthQUFNO1lBQ0wsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztTQUNwQztRQUVELElBQ0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUMxRTtZQUNBLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7Z0JBQ2hELE1BQU0sYUFBYSxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO2dCQUNqRCxNQUFNLFFBQVEsR0FBc0IsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Z0JBQ3JFLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQ0FBcUMsQ0FDM0UsYUFBYSxDQUNkLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3BDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxLQUFLO2dCQUM1QyxVQUFVLENBQUMsT0FBTyxFQUNsQjtnQkFDQSxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksYUFBYSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7b0JBQzdCLE1BQU0sYUFBYSxHQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO29CQUNqRCxNQUFNLFFBQVEsR0FBc0IsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7b0JBQ3JFLFFBQVEsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQ0FBcUMsQ0FDM0UsYUFBYSxDQUNkLENBQUM7b0JBQ0YsYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUM5QyxRQUFRLENBQUMsT0FBTyxFQUNoQixTQUFTLEVBQ1QsU0FBUyxFQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWUsQ0FBQyxpQkFBaUIsRUFDeEQsYUFBYSxDQUFDLE9BQU8sQ0FDdEIsQ0FBQztpQkFDSDtnQkFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUMvQixJQUFJLENBQUMsVUFBMkIsRUFDaEMsYUFBYSxDQUNkLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVE7b0JBQ3pDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzthQUM3QztZQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUNuRTthQUFNO1lBQ0wsc0NBQXNDO1NBQ3ZDO1FBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFzQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUVNLG9CQUFvQjtRQUN6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQztJQUMvRCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sQ0FDTCxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVk7WUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQ2xELENBQUM7SUFDSixDQUFDO0lBRU8sa0NBQWtDLENBQUMsS0FBYztRQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxvQkFBb0I7UUFDdEMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RFLElBQUksb0JBQW9CLENBQUMsT0FBTyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLFNBQWtCO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDOztvR0E3T1UsMEJBQTBCOzZFQUExQiwwQkFBMEI7UUN0QnZDLHFDQUFlO1FBRWIscUZBUVc7UUFDWCx5RUFBcU07UUFDbk0saUZBR1M7UUFDVCxrRkFjUztRQUNiLGlCQUFnQjtRQUVoQixvQ0FBaUI7UUFDYiwyRUFHTTtRQUNSLDZDQUMwQjtRQUUxQixtRkFNVTtRQUNaLGlCQUFNOztRQTdDRCxlQUFZO1FBQVosaUNBQVk7UUFRc0IsZUFBWTtRQUFaLGlDQUFZO1FBQ3RDLGVBQWtEO1FBQWxELDJFQUFrRDtRQUlsRCxlQUFZO1FBQVosaUNBQVk7UUFrQmYsZUFBWTtRQUFaLGlDQUFZO1FBSUssZUFBeUI7UUFBekIsMkNBQXlCLGdCQUFBLG1DQUFBO1FBR3hDLGVBQXVDO1FBQXZDLGdFQUF1Qzs7dUZEbkJ0QywwQkFBMEI7Y0FMdEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFdBQVcsRUFBRSxzQ0FBc0M7Z0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2FBQ3BEO21FQWNVLEtBQUs7a0JBQWIsS0FBSztZQUVHLEdBQUc7a0JBQVgsS0FBSztZQUVHLE1BQU07a0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBXRlNEYXRhU291cmNlT3B0aW9uc1BhcmFtcyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dmcy1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE9nY0ZpbHRlck9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyLmVudW0nO1xyXG5cclxuaW1wb3J0IHtcclxuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSxcclxuICBPZ2NGaWx0ZXJzT3B0aW9ucyxcclxuICBPZ2NJbnRlcmZhY2VGaWx0ZXJPcHRpb25zXHJcbn0gZnJvbSAnLi4vc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgT0dDRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAnO1xyXG5pbXBvcnQgeyBPZ2NGaWx0ZXJXcml0ZXIgfSBmcm9tICcuLi9zaGFyZWQvb2djLWZpbHRlcic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyYWJsZS1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vb2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vb2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPZ2NGaWx0ZXJhYmxlSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgY29sb3IgPSAncHJpbWFyeSc7XHJcbiAgcHJpdmF0ZSBsYXN0UnVuT2djRmlsdGVyO1xyXG4gIHByaXZhdGUgZGVmYXVsdExvZ2ljYWxQYXJlbnQgPSBPZ2NGaWx0ZXJPcGVyYXRvci5BbmQ7XHJcbiAgcHVibGljIGhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSBmYWxzZTtcclxuICBwdWJsaWMgZmlsdGVyc0FyZUVkaXRhYmxlID0gdHJ1ZTtcclxuICBwdWJsaWMgZmlsdGVyc0NvbGxhcHNlZCA9IHRydWU7XHJcbiAgcHVibGljIGhhc1NlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0xlZ2VuZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIGluUmVzb2x1dGlvblJhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgb2djRmlsdGVyV3JpdGVyO1xyXG5cclxuICBASW5wdXQoKSBsYXllcjogTGF5ZXI7XHJcblxyXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xyXG5cclxuICBASW5wdXQoKSBoZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBnZXQgcmVmcmVzaEZ1bmMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoRmlsdGVycy5iaW5kKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRhdGFzb3VyY2UoKTogT2djRmlsdGVyYWJsZURhdGFTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMubGF5ZXIuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb2djRmlsdGVyU2VydmljZTogT0dDRmlsdGVyU2VydmljZSkge1xyXG4gICAgdGhpcy5vZ2NGaWx0ZXJXcml0ZXIgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IG9nY0ZpbHRlcnMgPSB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzO1xyXG4gICAgaWYgKFxyXG4gICAgICAob2djRmlsdGVycy5wdXNoQnV0dG9ucyAmJiBvZ2NGaWx0ZXJzLnB1c2hCdXR0b25zLmJ1bmRsZXMubGVuZ3RoID4gMCkgfHxcclxuICAgICAgKG9nY0ZpbHRlcnMuY2hlY2tib3hlcyAmJiBvZ2NGaWx0ZXJzLmNoZWNrYm94ZXMuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAob2djRmlsdGVycy5yYWRpb0J1dHRvbnMgJiYgb2djRmlsdGVycy5yYWRpb0J1dHRvbnMuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAob2djRmlsdGVycy5zZWxlY3QgJiYgb2djRmlsdGVycy5zZWxlY3QuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxyXG4gICAgICAob2djRmlsdGVycy5hdXRvY29tcGxldGUgJiYgb2djRmlsdGVycy5hdXRvY29tcGxldGUuYnVuZGxlcy5sZW5ndGggPiAwKSkge1xyXG4gICAgICBpZiAob2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIG9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5oYXNTZWxlY3RvciA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3dtcyc6XHJcbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLnNldE9nY1dNU0ZpbHRlcnNPcHRpb25zKHRoaXMuZGF0YXNvdXJjZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dmcyc6XHJcbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLnNldE9nY1dGU0ZpbHRlcnNPcHRpb25zKHRoaXMuZGF0YXNvdXJjZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9nY0ZpbHRlcnMpIHtcclxuICAgICAgaWYgKG9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycykge1xyXG4gICAgICAgIHRoaXMubGFzdFJ1bk9nY0ZpbHRlciA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmlsdGVyKGYgPT4gZi53a3RfZ2VvbWV0cnkpLmxlbmd0aCA+PSAxXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5maWx0ZXJzQXJlRWRpdGFibGUgPSBvZ2NGaWx0ZXJzLmVkaXRhYmxlXHJcbiAgICAgICAgPyBvZ2NGaWx0ZXJzLmVkaXRhYmxlXHJcbiAgICAgICAgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXNvbHV0aW9uJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kO1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQgPSByZXNvbHV0aW9uJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5uZXh0KHRoaXMubGF5ZXIuaXNJblJlc29sdXRpb25zUmFuZ2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbiQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBhZGRGaWx0ZXJUb1NlcXVlbmNlKCkge1xyXG4gICAgdGhpcy5maWx0ZXJzQ29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICBjb25zdCBpbnRlcmZhY2VPZ2NGaWx0ZXJzOiBPZ2NJbnRlcmZhY2VGaWx0ZXJPcHRpb25zW10gPSB0aGlzLmRhdGFzb3VyY2VcclxuICAgICAgLm9wdGlvbnMub2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzO1xyXG4gICAgY29uc3QgYXJyID0gaW50ZXJmYWNlT2djRmlsdGVycyB8fCBbXTtcclxuICAgIGNvbnN0IGxhc3RMZXZlbCA9IGFyci5sZW5ndGggPT09IDAgPyAwIDogYXJyW2Fyci5sZW5ndGggLSAxXS5sZXZlbDtcclxuICAgIGxldCBmaXJzdEZpZWxkTmFtZSA9ICcnO1xyXG4gICAgY29uc3QgaW5jbHVkZWRGaWVsZHMgPSB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5zb3VyY2VGaWVsZHMuZmlsdGVyKGYgPT4gIWYuZXhjbHVkZUZyb21PZ2NGaWx0ZXJzKTtcclxuICAgIGlmIChpbmNsdWRlZEZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZpcnN0RmllbGROYW1lID1cclxuICAgICAgICBpbmNsdWRlZEZpZWxkc1swXS5uYW1lID09PSB1bmRlZmluZWQgPyAnJyA6IGluY2x1ZGVkRmllbGRzWzBdLm5hbWU7XHJcbiAgICB9XHJcbiAgICBsZXQgZmllbGROYW1lR2VvbWV0cnk7XHJcbiAgICBjb25zdCBkYXRhc291cmNlT3B0aW9ucyA9IHRoaXMuZGF0YXNvdXJjZVxyXG4gICAgICAub3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9uc1BhcmFtcztcclxuICAgIGlmIChkYXRhc291cmNlT3B0aW9ucy5maWVsZE5hbWVHZW9tZXRyeSkge1xyXG4gICAgICBmaWVsZE5hbWVHZW9tZXRyeSA9IGRhdGFzb3VyY2VPcHRpb25zLmZpZWxkTmFtZUdlb21ldHJ5O1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zIGFzIGFueSkucGFyYW1zV0ZTICYmXHJcbiAgICAgICh0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucyBhcyBhbnkpLnBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeVxyXG4gICAgKSB7XHJcbiAgICAgIGZpZWxkTmFtZUdlb21ldHJ5ID0gKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zIGFzIGFueSkucGFyYW1zV0ZTXHJcbiAgICAgICAgLmZpZWxkTmFtZUdlb21ldHJ5O1xyXG4gICAgfVxyXG4gICAgY29uc3QgYWxsb3dlZE9wZXJhdG9ycyA9IHRoaXMub2djRmlsdGVyV3JpdGVyLmNvbXB1dGVBbGxvd2VkT3BlcmF0b3JzKFxyXG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5zb3VyY2VGaWVsZHMsXHJcbiAgICAgIGZpcnN0RmllbGROYW1lLFxyXG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFsbG93ZWRPcGVyYXRvcnNUeXBlKTtcclxuICAgIGNvbnN0IGZpcnN0T3BlcmF0b3JOYW1lID0gT2JqZWN0LmtleXMoYWxsb3dlZE9wZXJhdG9ycylbMF07XHJcblxyXG4gICAgYXJyLnB1c2goXHJcbiAgICAgIHRoaXMub2djRmlsdGVyV3JpdGVyLmFkZEludGVyZmFjZUZpbHRlcihcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGZpcnN0RmllbGROYW1lLFxyXG4gICAgICAgICAgb3BlcmF0b3I6IGZpcnN0T3BlcmF0b3JOYW1lLFxyXG4gICAgICAgICAgYWN0aXZlOiB0cnVlLFxyXG4gICAgICAgICAgaWdvU3BhdGlhbFNlbGVjdG9yOiAnZml4ZWRFeHRlbnQnLFxyXG4gICAgICAgICAgc3JzTmFtZTogdGhpcy5tYXAucHJvamVjdGlvbixcclxuICAgICAgICB9IGFzIE9nY0ludGVyZmFjZUZpbHRlck9wdGlvbnMsXHJcbiAgICAgICAgZmllbGROYW1lR2VvbWV0cnksXHJcbiAgICAgICAgbGFzdExldmVsLFxyXG4gICAgICAgIHRoaXMuZGVmYXVsdExvZ2ljYWxQYXJlbnRcclxuICAgICAgKVxyXG4gICAgKTtcclxuICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycyA9IGFycjtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hGaWx0ZXJzKGZvcmNlPzogYm9vbGVhbikge1xyXG4gICAgaWYgKGZvcmNlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMubGFzdFJ1bk9nY0ZpbHRlciA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGNvbnN0IG9nY0ZpbHRlcnM6IE9nY0ZpbHRlcnNPcHRpb25zID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycztcclxuICAgIGNvbnN0IGFjdGl2ZUZpbHRlcnMgPSBvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMgP1xyXG4gICAgICBvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmlsdGVyKGYgPT4gZi5hY3RpdmUgPT09IHRydWUpIDogW107XHJcbiAgICBpZiAoYWN0aXZlRmlsdGVycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgb2djRmlsdGVycy5maWx0ZXJzID0gdW5kZWZpbmVkO1xyXG4gICAgICBvZ2NGaWx0ZXJzLmZpbHRlcmVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoYWN0aXZlRmlsdGVycy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIGFjdGl2ZUZpbHRlcnNbMF0ucGFyZW50TG9naWNhbCA9IGFjdGl2ZUZpbHRlcnNbMV0ucGFyZW50TG9naWNhbDtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgYWN0aXZlRmlsdGVycy5maWx0ZXIoXHJcbiAgICAgICAgYWYgPT4gWydDb250YWlucycsICdJbnRlcnNlY3RzJywgJ1dpdGhpbiddLmluZGV4T2YoYWYub3BlcmF0b3IpICE9PSAtMVxyXG4gICAgICApLmxlbmd0aCA9PT0gMFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaGFzQWN0aXZlU3BhdGlhbEZpbHRlciA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5oYXNBY3RpdmVTcGF0aWFsRmlsdGVyID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgICEoSlNPTi5zdHJpbmdpZnkodGhpcy5sYXN0UnVuT2djRmlsdGVyKSA9PT0gSlNPTi5zdHJpbmdpZnkoYWN0aXZlRmlsdGVycykpXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnR5cGUgPT09ICd3ZnMnKSB7XHJcbiAgICAgICAgY29uc3Qgb2djRGF0YVNvdXJjZTogYW55ID0gdGhpcy5sYXllci5kYXRhU291cmNlO1xyXG4gICAgICAgIGNvbnN0IG9nY0xheWVyOiBPZ2NGaWx0ZXJzT3B0aW9ucyA9IG9nY0RhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzO1xyXG4gICAgICAgIG9nY0xheWVyLmZpbHRlcnMgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5yZWJ1aWx0SWdvT2djRmlsdGVyT2JqZWN0RnJvbVNlcXVlbmNlKFxyXG4gICAgICAgICAgYWN0aXZlRmlsdGVyc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5sYXllci5kYXRhU291cmNlLm9sLnJlZnJlc2goKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy50eXBlID09PSAnd21zJyAmJlxyXG4gICAgICAgIG9nY0ZpbHRlcnMuZW5hYmxlZFxyXG4gICAgICApIHtcclxuICAgICAgICBsZXQgcmVidWlsZEZpbHRlciA9ICcnO1xyXG4gICAgICAgIGlmIChhY3RpdmVGaWx0ZXJzLmxlbmd0aCA+PSAxKSB7XHJcbiAgICAgICAgICBjb25zdCBvZ2NEYXRhU291cmNlOiBhbnkgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2U7XHJcbiAgICAgICAgICBjb25zdCBvZ2NMYXllcjogT2djRmlsdGVyc09wdGlvbnMgPSBvZ2NEYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycztcclxuICAgICAgICAgIG9nY0xheWVyLmZpbHRlcnMgPSB0aGlzLm9nY0ZpbHRlcldyaXRlci5yZWJ1aWx0SWdvT2djRmlsdGVyT2JqZWN0RnJvbVNlcXVlbmNlKFxyXG4gICAgICAgICAgICBhY3RpdmVGaWx0ZXJzXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmVidWlsZEZpbHRlciA9IHRoaXMub2djRmlsdGVyV3JpdGVyLmJ1aWxkRmlsdGVyKFxyXG4gICAgICAgICAgICBvZ2NMYXllci5maWx0ZXJzLFxyXG4gICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgKHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zIGFzIGFueSkuZmllbGROYW1lR2VvbWV0cnksXHJcbiAgICAgICAgICAgIG9nY0RhdGFTb3VyY2Uub3B0aW9uc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLmZpbHRlckJ5T2djKFxyXG4gICAgICAgICAgdGhpcy5kYXRhc291cmNlIGFzIFdNU0RhdGFTb3VyY2UsXHJcbiAgICAgICAgICByZWJ1aWxkRmlsdGVyXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmZpbHRlcmVkID1cclxuICAgICAgICAgIGFjdGl2ZUZpbHRlcnMubGVuZ3RoID09PSAwID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmxhc3RSdW5PZ2NGaWx0ZXIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGl2ZUZpbHRlcnMpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGlkZW50aWNhbCBmaWx0ZXIuIE5vdGhpbmcgdHJpZ2dlcmVkXHJcbiAgICB9XHJcbiAgICAodGhpcy5sYXllci5kYXRhU291cmNlIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlKS5zZXRPZ2NGaWx0ZXJzKG9nY0ZpbHRlcnMsIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZpc2libGUoKSB7XHJcbiAgICB0aGlzLmxheWVyLnZpc2libGUgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzQWR2YW5jZWRPZ2NGaWx0ZXJzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEZpbHRlckRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgIXRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLnNvdXJjZUZpZWxkcyB8fFxyXG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5zb3VyY2VGaWVsZHMubGVuZ3RoID09PSAwXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGFuZ2VPZ2NGaWx0ZXJzQWR2YW5jZWRPZ2NGaWx0ZXJzKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFkdmFuY2VkT2djRmlsdGVycyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlT2djRmlsdGVyVHlwZShpc0FkdmFuY2VkT2djRmlsdGVycykge1xyXG4gICAgdGhpcy5jaGFuZ2VPZ2NGaWx0ZXJzQWR2YW5jZWRPZ2NGaWx0ZXJzKGlzQWR2YW5jZWRPZ2NGaWx0ZXJzLmNoZWNrZWQpO1xyXG4gICAgaWYgKGlzQWR2YW5jZWRPZ2NGaWx0ZXJzLmNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5yZWZyZXNoRmlsdGVycyh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpbHRlcnNDb2xsYXBzZWQpIHtcclxuICAgICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5zaG93TGVnZW5kJC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b2dnbGVGaWx0ZXJzQ29sbGFwc2VkKCkge1xyXG4gICAgdGhpcy5maWx0ZXJzQ29sbGFwc2VkID0gIXRoaXMuZmlsdGVyc0NvbGxhcHNlZDtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1saXN0LWl0ZW0+XHJcblxyXG4gIDxtYXQtaWNvblxyXG4gICAgKm5nSWY9XCJoZWFkZXJcIlxyXG4gICAgY2xhc3M9XCJpZ28tY2hldnJvblwiXHJcbiAgICBtYXQtbGlzdC1hdmF0YXJcclxuICAgIGlnb0NvbGxhcHNlIFt0YXJnZXRdPVwib2djRmlsdGVyc1wiXHJcbiAgICBbY29sbGFwc2VkXT1cImZpbHRlcnNDb2xsYXBzZWRcIlxyXG4gICAgKGNsaWNrKT1cInRvZ2dsZUZpbHRlcnNDb2xsYXBzZWQoKVwiXHJcbiAgICBzdmdJY29uPVwiY2hldnJvbi11cFwiPlxyXG4gIDwvbWF0LWljb24+XHJcbiAgPGg0IChjbGljayk9XCJ0b2dnbGVMZWdlbmRPbkNsaWNrKClcIiAqbmdJZj1cImhlYWRlclwiIFtuZ1N0eWxlXT1cInsnY3Vyc29yJzogZmlsdGVyc0NvbGxhcHNlZCA/ICdkZWZhdWx0JyA6ICdwb2ludGVyJ31cIiBtYXRMaW5lIFttYXRUb29sdGlwXT1cImxheWVyLnRpdGxlXCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiPnt7bGF5ZXIudGl0bGV9fTwvaDQ+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiaXNBZHZhbmNlZE9nY0ZpbHRlcnMoKSAmJiBmaWx0ZXJzQXJlRWRpdGFibGVcIiBbZGlzYWJsZWRdPVwiYWRkRmlsdGVyRGlzYWJsZWQoKVwiIG1hdC1pY29uLWJ1dHRvbiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZmlsdGVyLmFkZEZpbHRlcicgfCB0cmFuc2xhdGVcIiBbY29sb3JdPVwiY29sb3JcIiAoY2xpY2spPVwiYWRkRmlsdGVyVG9TZXF1ZW5jZSgpXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwicGx1c1wiPjwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJoZWFkZXJcIlxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgW2NvbG9yXT1cImxheWVyLnZpc2libGUgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxyXG4gICAgICBjb2xsYXBzaWJsZUJ1dHRvblxyXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgICAgW21hdFRvb2x0aXBdPVwibGF5ZXIudmlzaWJsZSA/XHJcbiAgICAgICAgICAgICAgICAgICAgKCdpZ28uZ2VvLmxheWVyLmhpZGVMYXllcicgfCB0cmFuc2xhdGUpIDpcclxuICAgICAgICAgICAgICAgICAgICAoJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJyB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAoY2xpY2spPVwibGF5ZXIudmlzaWJsZSA9ICFsYXllci52aXNpYmxlXCI+XHJcbiAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKT09PWZhbHNlfVwiXHJcbiAgICAgICAgW3N2Z0ljb25dPVwibGF5ZXIudmlzaWJsZSA/ICdleWUnIDogJ2V5ZS1vZmYnXCI+XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuPC9tYXQtbGlzdC1pdGVtPlxyXG5cclxuPGRpdiAjb2djRmlsdGVycz5cclxuICAgIDxkaXYgKm5nSWY9XCJoZWFkZXJcIiAjbGVnZW5kIGNsYXNzPVwiaWdvLWxheWVyLWxlZ2VuZC1jb250YWluZXJcIj5cclxuICAgICAgPGlnby1sYXllci1sZWdlbmQgKm5nSWY9XCJzaG93TGVnZW5kJCB8IGFzeW5jXCIgW2xheWVyXT1cImxheWVyXCI+XHJcbiAgICAgIDwvaWdvLWxheWVyLWxlZ2VuZD5cclxuICAgIDwvZGl2PlxyXG4gIDxpZ28tb2djLWZpbHRlcmFibGUtZm9ybSBbZGF0YXNvdXJjZV09XCJkYXRhc291cmNlXCIgW21hcF09XCJtYXBcIiBbcmVmcmVzaEZpbHRlcnNdPVwicmVmcmVzaEZ1bmNcIj5cclxuICA8L2lnby1vZ2MtZmlsdGVyYWJsZS1mb3JtPlxyXG5cclxuICA8c2VjdGlvbiAqbmdJZj1cImhhc1NlbGVjdG9yICYmIGZpbHRlcnNBcmVFZGl0YWJsZVwiIGNsYXNzPVwibWF0LXR5cG9ncmFwaHkgYWR2YW5jZWRPZ2NGaWx0ZXJzXCI+XHJcbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgIDxtYXQtY2hlY2tib3ggbGFiZWxQb3NpdGlvbj0nYmVmb3JlJyAoY2hhbmdlKT1cImNoYW5nZU9nY0ZpbHRlclR5cGUoJGV2ZW50KVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzXCI+XHJcbiAgICAgIHt7J2lnby5nZW8uZmlsdGVyLmFkdmFuY2VkT2djRmlsdGVycycgfCB0cmFuc2xhdGV9fVxyXG4gICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgPC9zZWN0aW9uPlxyXG48L2Rpdj4iXX0=
|
|
307
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtaXRlbS9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1pdGVtL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBS3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBU3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7Ozs7SUNibkQsbUNBT3VCO0lBRHJCLGlOQUFrQztJQUVwQyxpQkFBVzs7OztJQUpHLDRCQUFxQixzQ0FBQTs7Ozs7SUFLbkMsNkJBQWlMO0lBQTdLLG1NQUErQjtJQUE4SSxZQUFlO0lBQUEsaUJBQUs7OztJQUFsSixxR0FBZ0Usa0NBQUE7SUFBOEQsZUFBZTtJQUFmLHdDQUFlOzs7O0lBQzlMLGtDQUN3RztJQUFoQyw2TUFBK0I7O0lBQ3JHLCtCQUFvQztJQUN0QyxpQkFBUzs7O0lBSG9ELHFEQUFnQyxnRUFBQSx1QkFBQTs7Ozs7SUFJN0Ysa0NBUzJDO0lBQXpDLDhOQUF3Qzs7O0lBQ3hDLCtCQUdXOztJQUNiLGlCQUFTOzs7SUFaUCxvRUFBK0Msd0lBQUE7SUFTN0MsZUFBNEQ7SUFBNUQsZ0hBQTRELHFEQUFBOzs7SUFROUQsdUNBQ21COzs7SUFEMkIscUNBQWU7OztJQUQvRCxtQ0FBK0Q7SUFDN0QsNEdBQ21COztJQUNy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RCxlQUFZO1FBQVosaUNBQVk7UUFrQmYsZUFBWTtRQUFaLGlDQUFZO1FBSUssZUFBeUI7UUFBekIsMkNBQXlCLGdCQUFBLG1DQUFBO1FBR3hDLGVBQXVDO1FBQXZDLGdFQUF1Qzs7dUZEbkJ0QywwQkFBMEI7Y0FMdEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFdBQVcsRUFBRSxzQ0FBc0M7Z0JBQ25ELFNBQVMsRUFBRSxDQUFDLHNDQUFzQyxDQUFDO2FBQ3BEO21FQWNVLEtBQUs7a0JBQWIsS0FBSztZQUVHLEdBQUc7a0JBQVgsS0FBSztZQUVHLE1BQU07a0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XG5pbXBvcnQgeyBXTVNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgV0ZTRGF0YVNvdXJjZU9wdGlvbnNQYXJhbXMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93ZnMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT2djRmlsdGVyT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuZW51bSc7XG5cbmltcG9ydCB7XG4gIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlLFxuICBPZ2NGaWx0ZXJzT3B0aW9ucyxcbiAgT2djSW50ZXJmYWNlRmlsdGVyT3B0aW9uc1xufSBmcm9tICcuLi9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT0dDRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwJztcbmltcG9ydCB7IE9nY0ZpbHRlcldyaXRlciB9IGZyb20gJy4uL3NoYXJlZC9vZ2MtZmlsdGVyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1vZ2MtZmlsdGVyYWJsZS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29nYy1maWx0ZXJhYmxlLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vZ2MtZmlsdGVyYWJsZS1pdGVtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyYWJsZUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBjb2xvciA9ICdwcmltYXJ5JztcbiAgcHJpdmF0ZSBsYXN0UnVuT2djRmlsdGVyO1xuICBwcml2YXRlIGRlZmF1bHRMb2dpY2FsUGFyZW50ID0gT2djRmlsdGVyT3BlcmF0b3IuQW5kO1xuICBwdWJsaWMgaGFzQWN0aXZlU3BhdGlhbEZpbHRlciA9IGZhbHNlO1xuICBwdWJsaWMgZmlsdGVyc0FyZUVkaXRhYmxlID0gdHJ1ZTtcbiAgcHVibGljIGZpbHRlcnNDb2xsYXBzZWQgPSB0cnVlO1xuICBwdWJsaWMgaGFzU2VsZWN0b3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd0xlZ2VuZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBpblJlc29sdXRpb25SYW5nZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb2djRmlsdGVyV3JpdGVyO1xuXG4gIEBJbnB1dCgpIGxheWVyOiBMYXllcjtcblxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcblxuICBASW5wdXQoKSBoZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGdldCByZWZyZXNoRnVuYygpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoRmlsdGVycy5iaW5kKHRoaXMpO1xuICB9XG5cbiAgZ2V0IGRhdGFzb3VyY2UoKTogT2djRmlsdGVyYWJsZURhdGFTb3VyY2Uge1xuICAgIHJldHVybiB0aGlzLmxheWVyLmRhdGFTb3VyY2UgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2U7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9nY0ZpbHRlclNlcnZpY2U6IE9HQ0ZpbHRlclNlcnZpY2UpIHtcbiAgICB0aGlzLm9nY0ZpbHRlcldyaXRlciA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IG9nY0ZpbHRlcnMgPSB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzO1xuICAgIGlmIChcbiAgICAgIChvZ2NGaWx0ZXJzLnB1c2hCdXR0b25zICYmIG9nY0ZpbHRlcnMucHVzaEJ1dHRvbnMuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxuICAgICAgKG9nY0ZpbHRlcnMuY2hlY2tib3hlcyAmJiBvZ2NGaWx0ZXJzLmNoZWNrYm94ZXMuYnVuZGxlcy5sZW5ndGggPiAwKSB8fFxuICAgICAgKG9nY0ZpbHRlcnMucmFkaW9CdXR0b25zICYmIG9nY0ZpbHRlcnMucmFkaW9CdXR0b25zLmJ1bmRsZXMubGVuZ3RoID4gMCkgfHxcbiAgICAgIChvZ2NGaWx0ZXJzLnNlbGVjdCAmJiBvZ2NGaWx0ZXJzLnNlbGVjdC5idW5kbGVzLmxlbmd0aCA+IDApIHx8XG4gICAgICAob2djRmlsdGVycy5hdXRvY29tcGxldGUgJiYgb2djRmlsdGVycy5hdXRvY29tcGxldGUuYnVuZGxlcy5sZW5ndGggPiAwKSkge1xuICAgICAgaWYgKG9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgb2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnMgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaGFzU2VsZWN0b3IgPSB0cnVlO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMudHlwZSkge1xuICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLnNldE9nY1dNU0ZpbHRlcnNPcHRpb25zKHRoaXMuZGF0YXNvdXJjZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnd2ZzJzpcbiAgICAgICAgdGhpcy5vZ2NGaWx0ZXJTZXJ2aWNlLnNldE9nY1dGU0ZpbHRlcnNPcHRpb25zKHRoaXMuZGF0YXNvdXJjZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgaWYgKG9nY0ZpbHRlcnMpIHtcbiAgICAgIGlmIChvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMpIHtcbiAgICAgICAgdGhpcy5sYXN0UnVuT2djRmlsdGVyID0gSlNPTi5wYXJzZShcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMpXG4gICAgICAgICk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBvZ2NGaWx0ZXJzLmludGVyZmFjZU9nY0ZpbHRlcnMuZmlsdGVyKGYgPT4gZi53a3RfZ2VvbWV0cnkpLmxlbmd0aCA+PSAxXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuaGFzQWN0aXZlU3BhdGlhbEZpbHRlciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5maWx0ZXJzQXJlRWRpdGFibGUgPSBvZ2NGaWx0ZXJzLmVkaXRhYmxlXG4gICAgICAgID8gb2djRmlsdGVycy5lZGl0YWJsZVxuICAgICAgICA6IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc29sdXRpb24kID0gdGhpcy5sYXllci5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQ7XG4gICAgdGhpcy5yZXNvbHV0aW9uJCQgPSByZXNvbHV0aW9uJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dCh0aGlzLmxheWVyLmlzSW5SZXNvbHV0aW9uc1JhbmdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzb2x1dGlvbiQkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBhZGRGaWx0ZXJUb1NlcXVlbmNlKCkge1xuICAgIHRoaXMuZmlsdGVyc0NvbGxhcHNlZCA9IGZhbHNlO1xuICAgIGNvbnN0IGludGVyZmFjZU9nY0ZpbHRlcnM6IE9nY0ludGVyZmFjZUZpbHRlck9wdGlvbnNbXSA9IHRoaXMuZGF0YXNvdXJjZVxuICAgICAgLm9wdGlvbnMub2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzO1xuICAgIGNvbnN0IGFyciA9IGludGVyZmFjZU9nY0ZpbHRlcnMgfHwgW107XG4gICAgY29uc3QgbGFzdExldmVsID0gYXJyLmxlbmd0aCA9PT0gMCA/IDAgOiBhcnJbYXJyLmxlbmd0aCAtIDFdLmxldmVsO1xuICAgIGxldCBmaXJzdEZpZWxkTmFtZSA9ICcnO1xuICAgIGNvbnN0IGluY2x1ZGVkRmllbGRzID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzLmZpbHRlcihmID0+ICFmLmV4Y2x1ZGVGcm9tT2djRmlsdGVycyk7XG4gICAgaWYgKGluY2x1ZGVkRmllbGRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGZpcnN0RmllbGROYW1lID1cbiAgICAgICAgaW5jbHVkZWRGaWVsZHNbMF0ubmFtZSA9PT0gdW5kZWZpbmVkID8gJycgOiBpbmNsdWRlZEZpZWxkc1swXS5uYW1lO1xuICAgIH1cbiAgICBsZXQgZmllbGROYW1lR2VvbWV0cnk7XG4gICAgY29uc3QgZGF0YXNvdXJjZU9wdGlvbnMgPSB0aGlzLmRhdGFzb3VyY2VcbiAgICAgIC5vcHRpb25zIGFzIFdGU0RhdGFTb3VyY2VPcHRpb25zUGFyYW1zO1xuICAgIGlmIChkYXRhc291cmNlT3B0aW9ucy5maWVsZE5hbWVHZW9tZXRyeSkge1xuICAgICAgZmllbGROYW1lR2VvbWV0cnkgPSBkYXRhc291cmNlT3B0aW9ucy5maWVsZE5hbWVHZW9tZXRyeTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zIGFzIGFueSkucGFyYW1zV0ZTICYmXG4gICAgICAodGhpcy5kYXRhc291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXNXRlMuZmllbGROYW1lR2VvbWV0cnlcbiAgICApIHtcbiAgICAgIGZpZWxkTmFtZUdlb21ldHJ5ID0gKHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zIGFzIGFueSkucGFyYW1zV0ZTXG4gICAgICAgIC5maWVsZE5hbWVHZW9tZXRyeTtcbiAgICB9XG4gICAgY29uc3QgYWxsb3dlZE9wZXJhdG9ycyA9IHRoaXMub2djRmlsdGVyV3JpdGVyLmNvbXB1dGVBbGxvd2VkT3BlcmF0b3JzKFxuICAgICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzLFxuICAgICAgZmlyc3RGaWVsZE5hbWUsXG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmFsbG93ZWRPcGVyYXRvcnNUeXBlKTtcbiAgICBjb25zdCBmaXJzdE9wZXJhdG9yTmFtZSA9IE9iamVjdC5rZXlzKGFsbG93ZWRPcGVyYXRvcnMpWzBdO1xuXG4gICAgYXJyLnB1c2goXG4gICAgICB0aGlzLm9nY0ZpbHRlcldyaXRlci5hZGRJbnRlcmZhY2VGaWx0ZXIoXG4gICAgICAgIHtcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGZpcnN0RmllbGROYW1lLFxuICAgICAgICAgIG9wZXJhdG9yOiBmaXJzdE9wZXJhdG9yTmFtZSxcbiAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgaWdvU3BhdGlhbFNlbGVjdG9yOiAnZml4ZWRFeHRlbnQnLFxuICAgICAgICAgIHNyc05hbWU6IHRoaXMubWFwLnByb2plY3Rpb24sXG4gICAgICAgIH0gYXMgT2djSW50ZXJmYWNlRmlsdGVyT3B0aW9ucyxcbiAgICAgICAgZmllbGROYW1lR2VvbWV0cnksXG4gICAgICAgIGxhc3RMZXZlbCxcbiAgICAgICAgdGhpcy5kZWZhdWx0TG9naWNhbFBhcmVudFxuICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzID0gYXJyO1xuICB9XG5cbiAgcmVmcmVzaEZpbHRlcnMoZm9yY2U/OiBib29sZWFuKSB7XG4gICAgaWYgKGZvcmNlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmxhc3RSdW5PZ2NGaWx0ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IG9nY0ZpbHRlcnM6IE9nY0ZpbHRlcnNPcHRpb25zID0gdGhpcy5kYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycztcbiAgICBjb25zdCBhY3RpdmVGaWx0ZXJzID0gb2djRmlsdGVycy5pbnRlcmZhY2VPZ2NGaWx0ZXJzID9cbiAgICAgIG9nY0ZpbHRlcnMuaW50ZXJmYWNlT2djRmlsdGVycy5maWx0ZXIoZiA9PiBmLmFjdGl2ZSA9PT0gdHJ1ZSkgOiBbXTtcbiAgICBpZiAoYWN0aXZlRmlsdGVycy5sZW5ndGggPT09IDApIHtcbiAgICAgIG9nY0ZpbHRlcnMuZmlsdGVycyA9IHVuZGVmaW5lZDtcbiAgICAgIG9nY0ZpbHRlcnMuZmlsdGVyZWQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGFjdGl2ZUZpbHRlcnMubGVuZ3RoID4gMSkge1xuICAgICAgYWN0aXZlRmlsdGVyc1swXS5wYXJlbnRMb2dpY2FsID0gYWN0aXZlRmlsdGVyc1sxXS5wYXJlbnRMb2dpY2FsO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICBhY3RpdmVGaWx0ZXJzLmZpbHRlcihcbiAgICAgICAgYWYgPT4gWydDb250YWlucycsICdJbnRlcnNlY3RzJywgJ1dpdGhpbiddLmluZGV4T2YoYWYub3BlcmF0b3IpICE9PSAtMVxuICAgICAgKS5sZW5ndGggPT09IDBcbiAgICApIHtcbiAgICAgIHRoaXMuaGFzQWN0aXZlU3BhdGlhbEZpbHRlciA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc0FjdGl2ZVNwYXRpYWxGaWx0ZXIgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICEoSlNPTi5zdHJpbmdpZnkodGhpcy5sYXN0UnVuT2djRmlsdGVyKSA9PT0gSlNPTi5zdHJpbmdpZnkoYWN0aXZlRmlsdGVycykpXG4gICAgKSB7XG4gICAgICBpZiAodGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMudHlwZSA9PT0gJ3dmcycpIHtcbiAgICAgICAgY29uc3Qgb2djRGF0YVNvdXJjZTogYW55ID0gdGhpcy5sYXllci5kYXRhU291cmNlO1xuICAgICAgICBjb25zdCBvZ2NMYXllcjogT2djRmlsdGVyc09wdGlvbnMgPSBvZ2NEYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycztcbiAgICAgICAgb2djTGF5ZXIuZmlsdGVycyA9IHRoaXMub2djRmlsdGVyV3JpdGVyLnJlYnVpbHRJZ29PZ2NGaWx0ZXJPYmplY3RGcm9tU2VxdWVuY2UoXG4gICAgICAgICAgYWN0aXZlRmlsdGVyc1xuICAgICAgICApO1xuICAgICAgICB0aGlzLmxheWVyLmRhdGFTb3VyY2Uub2wucmVmcmVzaCgpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5sYXllci5kYXRhU291cmNlLm9wdGlvbnMudHlwZSA9PT0gJ3dtcycgJiZcbiAgICAgICAgb2djRmlsdGVycy5lbmFibGVkXG4gICAgICApIHtcbiAgICAgICAgbGV0IHJlYnVpbGRGaWx0ZXIgPSAnJztcbiAgICAgICAgaWYgKGFjdGl2ZUZpbHRlcnMubGVuZ3RoID49IDEpIHtcbiAgICAgICAgICBjb25zdCBvZ2NEYXRhU291cmNlOiBhbnkgPSB0aGlzLmxheWVyLmRhdGFTb3VyY2U7XG4gICAgICAgICAgY29uc3Qgb2djTGF5ZXI6IE9nY0ZpbHRlcnNPcHRpb25zID0gb2djRGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnM7XG4gICAgICAgICAgb2djTGF5ZXIuZmlsdGVycyA9IHRoaXMub2djRmlsdGVyV3JpdGVyLnJlYnVpbHRJZ29PZ2NGaWx0ZXJPYmplY3RGcm9tU2VxdWVuY2UoXG4gICAgICAgICAgICBhY3RpdmVGaWx0ZXJzXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZWJ1aWxkRmlsdGVyID0gdGhpcy5vZ2NGaWx0ZXJXcml0ZXIuYnVpbGRGaWx0ZXIoXG4gICAgICAgICAgICBvZ2NMYXllci5maWx0ZXJzLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgKHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zIGFzIGFueSkuZmllbGROYW1lR2VvbWV0cnksXG4gICAgICAgICAgICBvZ2NEYXRhU291cmNlLm9wdGlvbnNcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub2djRmlsdGVyU2VydmljZS5maWx0ZXJCeU9nYyhcbiAgICAgICAgICB0aGlzLmRhdGFzb3VyY2UgYXMgV01TRGF0YVNvdXJjZSxcbiAgICAgICAgICByZWJ1aWxkRmlsdGVyXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuZmlsdGVyZWQgPVxuICAgICAgICAgIGFjdGl2ZUZpbHRlcnMubGVuZ3RoID09PSAwID8gZmFsc2UgOiB0cnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxhc3RSdW5PZ2NGaWx0ZXIgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGl2ZUZpbHRlcnMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWRlbnRpY2FsIGZpbHRlci4gTm90aGluZyB0cmlnZ2VyZWRcbiAgICB9XG4gICAgKHRoaXMubGF5ZXIuZGF0YVNvdXJjZSBhcyBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSkuc2V0T2djRmlsdGVycyhvZ2NGaWx0ZXJzLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRWaXNpYmxlKCkge1xuICAgIHRoaXMubGF5ZXIudmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgaXNBZHZhbmNlZE9nY0ZpbHRlcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzO1xuICB9XG5cbiAgcHVibGljIGFkZEZpbHRlckRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5kYXRhc291cmNlLm9wdGlvbnMuc291cmNlRmllbGRzIHx8XG4gICAgICB0aGlzLmRhdGFzb3VyY2Uub3B0aW9ucy5zb3VyY2VGaWVsZHMubGVuZ3RoID09PSAwXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlT2djRmlsdGVyc0FkdmFuY2VkT2djRmlsdGVycyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZGF0YXNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuYWR2YW5jZWRPZ2NGaWx0ZXJzID0gdmFsdWU7XG4gIH1cblxuICBjaGFuZ2VPZ2NGaWx0ZXJUeXBlKGlzQWR2YW5jZWRPZ2NGaWx0ZXJzKSB7XG4gICAgdGhpcy5jaGFuZ2VPZ2NGaWx0ZXJzQWR2YW5jZWRPZ2NGaWx0ZXJzKGlzQWR2YW5jZWRPZ2NGaWx0ZXJzLmNoZWNrZWQpO1xuICAgIGlmIChpc0FkdmFuY2VkT2djRmlsdGVycy5jaGVja2VkKSB7XG4gICAgICB0aGlzLnJlZnJlc2hGaWx0ZXJzKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xuICAgIHRoaXMubGF5ZXIubGVnZW5kQ29sbGFwc2VkID0gY29sbGFwc2VkO1xuICAgIHRoaXMuc2hvd0xlZ2VuZCQubmV4dCghY29sbGFwc2VkKTtcbiAgfVxuXG4gIHRvZ2dsZUxlZ2VuZE9uQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLmZpbHRlcnNDb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMudG9nZ2xlTGVnZW5kKHRoaXMuc2hvd0xlZ2VuZCQudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZUZpbHRlcnNDb2xsYXBzZWQoKSB7XG4gICAgdGhpcy5maWx0ZXJzQ29sbGFwc2VkID0gIXRoaXMuZmlsdGVyc0NvbGxhcHNlZDtcbiAgfVxufVxuIiwiPG1hdC1saXN0LWl0ZW0+XG5cbiAgPG1hdC1pY29uXG4gICAgKm5nSWY9XCJoZWFkZXJcIlxuICAgIGNsYXNzPVwiaWdvLWNoZXZyb25cIlxuICAgIG1hdC1saXN0LWF2YXRhclxuICAgIGlnb0NvbGxhcHNlIFt0YXJnZXRdPVwib2djRmlsdGVyc1wiXG4gICAgW2NvbGxhcHNlZF09XCJmaWx0ZXJzQ29sbGFwc2VkXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRmlsdGVyc0NvbGxhcHNlZCgpXCJcbiAgICBzdmdJY29uPVwiY2hldnJvbi11cFwiPlxuICA8L21hdC1pY29uPlxuICA8aDQgKGNsaWNrKT1cInRvZ2dsZUxlZ2VuZE9uQ2xpY2soKVwiICpuZ0lmPVwiaGVhZGVyXCIgW25nU3R5bGVdPVwieydjdXJzb3InOiBmaWx0ZXJzQ29sbGFwc2VkID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInfVwiIG1hdExpbmUgW21hdFRvb2x0aXBdPVwibGF5ZXIudGl0bGVcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCI+e3tsYXllci50aXRsZX19PC9oND5cbiAgICA8YnV0dG9uICpuZ0lmPVwiaXNBZHZhbmNlZE9nY0ZpbHRlcnMoKSAmJiBmaWx0ZXJzQXJlRWRpdGFibGVcIiBbZGlzYWJsZWRdPVwiYWRkRmlsdGVyRGlzYWJsZWQoKVwiIG1hdC1pY29uLWJ1dHRvbiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIiBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmZpbHRlci5hZGRGaWx0ZXInIHwgdHJhbnNsYXRlXCIgW2NvbG9yXT1cImNvbG9yXCIgKGNsaWNrKT1cImFkZEZpbHRlclRvU2VxdWVuY2UoKVwiPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJwbHVzXCI+PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uICpuZ0lmPVwiaGVhZGVyXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgW2NvbG9yXT1cImxheWVyLnZpc2libGUgPyAncHJpbWFyeScgOiAnZGVmYXVsdCdcIlxuICAgICAgY29sbGFwc2libGVCdXR0b25cbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAgIFttYXRUb29sdGlwXT1cImxheWVyLnZpc2libGUgP1xuICAgICAgICAgICAgICAgICAgICAoJ2lnby5nZW8ubGF5ZXIuaGlkZUxheWVyJyB8IHRyYW5zbGF0ZSkgOlxuICAgICAgICAgICAgICAgICAgICAoJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgKGNsaWNrKT1cImxheWVyLnZpc2libGUgPSAhbGF5ZXIudmlzaWJsZVwiPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKT09PWZhbHNlfVwiXG4gICAgICAgIFtzdmdJY29uXT1cImxheWVyLnZpc2libGUgPyAnZXllJyA6ICdleWUtb2ZmJ1wiPlxuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvbWF0LWxpc3QtaXRlbT5cblxuPGRpdiAjb2djRmlsdGVycz5cbiAgICA8ZGl2ICpuZ0lmPVwiaGVhZGVyXCIgI2xlZ2VuZCBjbGFzcz1cImlnby1sYXllci1sZWdlbmQtY29udGFpbmVyXCI+XG4gICAgICA8aWdvLWxheWVyLWxlZ2VuZCAqbmdJZj1cInNob3dMZWdlbmQkIHwgYXN5bmNcIiBbbGF5ZXJdPVwibGF5ZXJcIj5cbiAgICAgIDwvaWdvLWxheWVyLWxlZ2VuZD5cbiAgICA8L2Rpdj5cbiAgPGlnby1vZ2MtZmlsdGVyYWJsZS1mb3JtIFtkYXRhc291cmNlXT1cImRhdGFzb3VyY2VcIiBbbWFwXT1cIm1hcFwiIFtyZWZyZXNoRmlsdGVyc109XCJyZWZyZXNoRnVuY1wiPlxuICA8L2lnby1vZ2MtZmlsdGVyYWJsZS1mb3JtPlxuXG4gIDxzZWN0aW9uICpuZ0lmPVwiaGFzU2VsZWN0b3IgJiYgZmlsdGVyc0FyZUVkaXRhYmxlXCIgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeSBhZHZhbmNlZE9nY0ZpbHRlcnNcIj5cbiAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICA8bWF0LWNoZWNrYm94IGxhYmVsUG9zaXRpb249J2JlZm9yZScgKGNoYW5nZSk9XCJjaGFuZ2VPZ2NGaWx0ZXJUeXBlKCRldmVudClcIlxuICAgICAgWyhuZ01vZGVsKV09XCJkYXRhc291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hZHZhbmNlZE9nY0ZpbHRlcnNcIj5cbiAgICAgIHt7J2lnby5nZW8uZmlsdGVyLmFkdmFuY2VkT2djRmlsdGVycycgfCB0cmFuc2xhdGV9fVxuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L3NlY3Rpb24+XG48L2Rpdj4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './ogc-filterable-list.component';
|
|
2
2
|
export * from './ogc-filterable-list-binding.directive';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtbGlzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL29nYy1maWx0ZXJhYmxlLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vb2djLWZpbHRlcmFibGUtbGlzdC1iaW5kaW5nLmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -28,4 +28,4 @@ OgcFilterableListBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({
|
|
|
28
28
|
}], function () { return [{ type: i1.OgcFilterableListComponent, decorators: [{
|
|
29
29
|
type: Self
|
|
30
30
|
}] }, { type: i2.MapService }]; }, null); })();
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtbGlzdC1iaW5kaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1saXN0L29nYy1maWx0ZXJhYmxlLWxpc3QtYmluZGluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7O0FBU25FLE1BQU0sT0FBTyxpQ0FBaUM7SUFJNUMsWUFDVSxTQUFxQyxFQUNyQyxVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRTlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7O2tIQXRCVSxpQ0FBaUM7b0ZBQWpDLGlDQUFpQzt1RkFBakMsaUNBQWlDO2NBSDdDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsK0JBQStCO2FBQzFDOztzQkFNSSxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBTZWxmLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC5zZXJ2aWNlJztcbmltcG9ydCB7IE9nY0ZpbHRlcmFibGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpZ29PZ2NGaWx0ZXJhYmxlTGlzdEJpbmRpbmddJ1xufSlcbmV4cG9ydCBjbGFzcyBPZ2NGaWx0ZXJhYmxlTGlzdEJpbmRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgY29tcG9uZW50OiBPZ2NGaWx0ZXJhYmxlTGlzdENvbXBvbmVudDtcbiAgcHJpdmF0ZSBsYXllcnMkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgY29tcG9uZW50OiBPZ2NGaWx0ZXJhYmxlTGlzdENvbXBvbmVudCxcbiAgICBwcml2YXRlIG1hcFNlcnZpY2U6IE1hcFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyBPdmVycmlkZSBpbnB1dCBsYXllcnNcbiAgICB0aGlzLmNvbXBvbmVudC5sYXllcnMgPSBbXTtcblxuICAgIHRoaXMubGF5ZXJzJCQgPSB0aGlzLm1hcFNlcnZpY2UuZ2V0TWFwKCkubGF5ZXJzJC5zdWJzY3JpYmUobGF5ZXJzID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50LmxheWVycyA9IGxheWVycy5maWx0ZXIobGF5ZXIgPT4gbGF5ZXIuc2hvd0luTGF5ZXJMaXN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
|
|
@@ -32,4 +32,4 @@ OgcFilterableListComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
|
|
|
32
32
|
}], map: [{
|
|
33
33
|
type: Input
|
|
34
34
|
}] }); })();
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2djLWZpbHRlcmFibGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvb2djLWZpbHRlcmFibGUtbGlzdC9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZpbHRlci9vZ2MtZmlsdGVyYWJsZS1saXN0L29nYy1maWx0ZXJhYmxlLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3hCLE1BQU0sZUFBZSxDQUFDOzs7SUNGbkIsNkNBQzZDOzs7SUFEUiw2QkFBZSxtQkFBQSxxQkFBQTs7QURZeEQsTUFBTSxPQUFPLDBCQUEwQjtJQU1yQyxnQkFBZSxDQUFDOztvR0FOTCwwQkFBMEI7NkVBQTFCLDBCQUEwQjtRQ2R2QyxtQ0FBbUQ7UUFDakQsMkZBR2M7O1FBQ2hCLGlCQUFXOztRQUxELGtDQUFvQixvQkFBQTtRQUNDLGVBQWdEO1FBQWhELGlFQUFnRDs7dUZEYWxFLDBCQUEwQjtjQUx0QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsV0FBVyxFQUFFLHNDQUFzQztnQkFDbkQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7c0NBR1UsTUFBTTtrQkFBZCxLQUFLO1lBRUcsR0FBRztrQkFBWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tb2djLWZpbHRlcmFibGUtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vZ2MtZmlsdGVyYWJsZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgT2djRmlsdGVyYWJsZUxpc3RDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIGxheWVyczogTGF5ZXJbXTtcblxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iLCI8aWdvLWxpc3QgW25hdmlnYXRpb25dPVwiZmFsc2VcIiBbc2VsZWN0aW9uXT1cImZhbHNlXCI+XG4gIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtbGF5ZXIgW25nRm9yT2ZdPVwibGF5ZXJzIHwgZmlsdGVyYWJsZURhdGFTb3VyY2U6ICdvZ2MnXCI+XG4gICAgPGlnby1vZ2MtZmlsdGVyYWJsZS1pdGVtIGlnb0xpc3RJdGVtIFtoZWFkZXJdPVwidHJ1ZVwiIFtsYXllcl09XCJsYXllclwiIFxuICAgIFttYXBdPVwibGF5ZXIubWFwXCIgPjwvaWdvLW9nYy1maWx0ZXJhYmxlLWl0ZW0+XG4gIDwvbmctdGVtcGxhdGU+XG48L2lnby1saXN0PlxuIl19
|
|
@@ -52,4 +52,4 @@ FilterableDataSourcePipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "filte
|
|
|
52
52
|
name: 'filterableDataSource'
|
|
53
53
|
}]
|
|
54
54
|
}], null, null); })();
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyYWJsZS1kYXRhc291cmNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9maWx0ZXIvc2hhcmVkL2ZpbHRlcmFibGUtZGF0YXNvdXJjZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQVVwRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFNBQVMsQ0FBQyxLQUFjLEVBQUUsR0FBVztRQUNuQyxJQUFJLE1BQU0sQ0FBQztRQUVYLElBQUksR0FBRyxLQUFLLE1BQU0sRUFBRTtZQUNsQixNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQVksRUFBRSxFQUFFO2dCQUNyQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBc0MsQ0FBQztnQkFDaEUsT0FBTyxDQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7b0JBQ2pDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVM7b0JBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQ2xELENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO1lBQ2pCLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7Z0JBQ3JDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFxQyxDQUFDO2dCQUMvRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxVQUFvQztRQUMzRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRTtZQUNyQyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sZUFBZSxDQUFDLFVBQW1DO1FBQ3pELElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUNFLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUM3QixVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPO1lBQ3JDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFDdEM7WUFDQSxlQUFlLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO1FBQ0QsSUFDRSxVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVU7WUFDN0IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTztZQUNyQyxDQUNFLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFdBQVc7Z0JBQ3pDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVU7Z0JBQ3hDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVk7Z0JBQzFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU07Z0JBQ3BDLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQzdDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDMUI7UUFDRCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDOztnR0FuRFUsd0JBQXdCO3FHQUF4Qix3QkFBd0I7dUZBQXhCLHdCQUF3QjtjQUhwQyxJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLHNCQUFzQjthQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcblxuaW1wb3J0IHsgT2djRmlsdGVyYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRpbWVGaWx0ZXJhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4vdGltZS1maWx0ZXIuaW50ZXJmYWNlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZmlsdGVyYWJsZURhdGFTb3VyY2UnXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlcmFibGVEYXRhU291cmNlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IExheWVyW10sIGFyZzogc3RyaW5nKTogTGF5ZXJbXSB7XG4gICAgbGV0IGxheWVycztcblxuICAgIGlmIChhcmcgPT09ICd0aW1lJykge1xuICAgICAgbGF5ZXJzID0gdmFsdWUuZmlsdGVyKChsYXllcjogTGF5ZXIpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YXNvdXJjZSA9IGxheWVyLmRhdGFTb3VyY2UgYXMgVGltZUZpbHRlcmFibGVEYXRhU291cmNlO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIHRoaXMuaXNUaW1lRmlsdGVyYWJsZShkYXRhc291cmNlKSAmJlxuICAgICAgICAgIGRhdGFzb3VyY2Uub3B0aW9ucy50aW1lRmlsdGVyICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhc291cmNlLm9wdGlvbnMudGltZUZpbHRlcikubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKGFyZyA9PT0gJ29nYycpIHtcbiAgICAgIGxheWVycyA9IHZhbHVlLmZpbHRlcigobGF5ZXI6IExheWVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFzb3VyY2UgPSBsYXllci5kYXRhU291cmNlIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlO1xuICAgICAgICByZXR1cm4gdGhpcy5pc09nY0ZpbHRlcmFibGUoZGF0YXNvdXJjZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGxheWVycztcbiAgfVxuXG4gIHByaXZhdGUgaXNUaW1lRmlsdGVyYWJsZShkYXRhU291cmNlOiBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2UpIHtcbiAgICBpZiAoZGF0YVNvdXJjZS5vcHRpb25zLnR5cGUgIT09ICd3bXMnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBkYXRhU291cmNlLm9wdGlvbnMudGltZUZpbHRlcmFibGU7XG4gIH1cblxuICBwcml2YXRlIGlzT2djRmlsdGVyYWJsZShkYXRhU291cmNlOiBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZSk6IGJvb2xlYW4ge1xuICAgIGxldCBpc09nY0ZpbHRlcmFibGUgPSBmYWxzZTtcbiAgICBpZiAoXG4gICAgICBkYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycyAmJlxuICAgICAgZGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuZW5hYmxlZCAmJlxuICAgICAgZGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMuZWRpdGFibGVcbiAgICApIHtcbiAgICAgIGlzT2djRmlsdGVyYWJsZSA9IHRydWU7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzICYmXG4gICAgICBkYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycy5lbmFibGVkICYmXG4gICAgICAoXG4gICAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnB1c2hCdXR0b25zIHx8XG4gICAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLmNoZWNrYm94ZXMgfHxcbiAgICAgICAgZGF0YVNvdXJjZS5vcHRpb25zLm9nY0ZpbHRlcnMucmFkaW9CdXR0b25zIHx8XG4gICAgICAgIGRhdGFTb3VyY2Uub3B0aW9ucy5vZ2NGaWx0ZXJzLnNlbGVjdCB8fFxuICAgICAgICBkYXRhU291cmNlLm9wdGlvbnMub2djRmlsdGVycy5hdXRvY29tcGxldGUpKSB7XG4gICAgICAgIGlzT2djRmlsdGVyYWJsZSA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiBpc09nY0ZpbHRlcmFibGU7XG4gIH1cbn1cbiJdfQ==
|