@igo2/geo 17.0.0-next.4 → 17.0.0-next.6
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/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +5 -5
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +1 -1
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +1 -1
- package/esm2022/lib/catalog/catalog-library/index.mjs +1 -1
- package/esm2022/lib/catalog/catalog.module.mjs +1 -1
- package/esm2022/lib/catalog/index.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalogs.mjs +1 -1
- package/esm2022/lib/catalog/shared/index.mjs +1 -1
- package/esm2022/lib/datasource/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasource.service.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +1 -1
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +3 -3
- package/esm2022/lib/directions/directions-buttons/index.mjs +1 -1
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +3 -3
- package/esm2022/lib/directions/directions-inputs/index.mjs +1 -1
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +3 -3
- package/esm2022/lib/directions/directions-results/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
- package/esm2022/lib/directions/directions.component.mjs +3 -3
- package/esm2022/lib/directions/directions.module.mjs +1 -1
- package/esm2022/lib/directions/index.mjs +1 -1
- package/esm2022/lib/directions/shared/directions-source.service.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.enum.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.service.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.utils.mjs +21 -21
- package/esm2022/lib/directions/shared/index.mjs +1 -1
- package/esm2022/lib/directions/shared/store.mjs +1 -1
- package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
- package/esm2022/lib/download/download-button/index.mjs +1 -1
- package/esm2022/lib/download/download.module.mjs +1 -1
- package/esm2022/lib/download/index.mjs +1 -1
- package/esm2022/lib/download/shared/download.interface.mjs +1 -1
- package/esm2022/lib/download/shared/download.service.mjs +1 -1
- package/esm2022/lib/download/shared/index.mjs +1 -1
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -4
- package/esm2022/lib/draw/draw/draw.component.mjs +4 -4
- package/esm2022/lib/draw/draw/draw.module.mjs +1 -1
- package/esm2022/lib/draw/drawingTool.module.mjs +1 -1
- package/esm2022/lib/draw/index.mjs +1 -1
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
- package/esm2022/lib/draw/shared/index.mjs +1 -1
- package/esm2022/lib/environment/environment.interface.mjs +1 -1
- package/esm2022/lib/environment/index.mjs +1 -1
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +3 -3
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +1 -1
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +1 -1
- package/esm2022/lib/feature/feature-details/index.mjs +1 -1
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +3 -3
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +1 -1
- package/esm2022/lib/feature/feature.module.mjs +1 -1
- package/esm2022/lib/feature/index.mjs +1 -1
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.enums.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/index.mjs +1 -1
- package/esm2022/lib/feature/shared/store.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/index.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/loading.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/search.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/selection.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies.utils.mjs +1 -1
- package/esm2022/lib/filter/filter.module.mjs +1 -1
- package/esm2022/lib/filter/index.mjs +1 -1
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +7 -7
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +1 -1
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +1 -1
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.mjs +1 -1
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +1 -1
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +3 -3
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +1 -1
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +7 -7
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +1 -1
- package/esm2022/lib/geo.module.mjs +1 -1
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +3 -3
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +3 -3
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +1 -1
- package/esm2022/lib/geometry/geometry-form-field/index.mjs +1 -1
- package/esm2022/lib/geometry/geometry.module.mjs +1 -1
- package/esm2022/lib/geometry/index.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/index.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/modify.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.utils.mjs +1 -1
- package/esm2022/lib/geometry/shared/index.mjs +1 -1
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +3 -3
- package/esm2022/lib/import-export/export-button/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +3 -3
- package/esm2022/lib/import-export/import-export/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export.module.mjs +1 -1
- package/esm2022/lib/import-export/index.mjs +1 -1
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +5 -56
- package/esm2022/lib/import-export/shared/export.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.service.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.service.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/index.mjs +1 -1
- package/esm2022/lib/layer/index.mjs +1 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +3 -3
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +3 -3
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +1 -1
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +1 -1
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +1 -1
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +1 -1
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +5 -4
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +3 -3
- package/esm2022/lib/layer/layer.module.mjs +1 -1
- package/esm2022/lib/layer/shared/layer.service.mjs +6 -6
- package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/index.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +3 -3
- package/esm2022/lib/layer/utils/image-watcher.mjs +1 -1
- package/esm2022/lib/layer/utils/tile-watcher.mjs +1 -1
- package/esm2022/lib/layer/utils/vector-watcher.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +1 -1
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +7 -7
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +3 -3
- package/esm2022/lib/map/index.mjs +1 -1
- package/esm2022/lib/map/info-section/info-section.component.mjs +1 -1
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +1 -1
- package/esm2022/lib/map/map-center/map-center.component.mjs +1 -1
- package/esm2022/lib/map/map.module.mjs +1 -1
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +3 -3
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +3 -3
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +3 -3
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/view.mjs +1 -1
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +1 -1
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +3 -3
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +1 -1
- package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
- package/esm2022/lib/map/shared/map.mjs +1 -1
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +1 -1
- package/esm2022/lib/map/shared/projection.service.mjs +1 -1
- package/esm2022/lib/map/shared/projection.utils.mjs +60 -1
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +1 -1
- package/esm2022/lib/map/utils/layer-watcher.mjs +1 -1
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +6 -6
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +3 -3
- package/esm2022/lib/measure/index.mjs +1 -1
- package/esm2022/lib/measure/measure.module.mjs +1 -1
- package/esm2022/lib/measure/measurer/index.mjs +1 -1
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +1 -1
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer.module.mjs +1 -1
- package/esm2022/lib/measure/shared/index.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
- package/esm2022/lib/metadata/index.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/index.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +5 -5
- package/esm2022/lib/metadata/metadata.module.mjs +1 -1
- package/esm2022/lib/metadata/shared/index.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.service.mjs +1 -1
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +1 -1
- package/esm2022/lib/offline/geoDB/index.mjs +1 -1
- package/esm2022/lib/offline/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +1 -1
- package/esm2022/lib/offline/shared/geo-network.service.mjs +1 -1
- package/esm2022/lib/offline/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/index.mjs +1 -1
- package/esm2022/lib/overlay/overlay.module.mjs +1 -1
- package/esm2022/lib/overlay/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.service.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
- package/esm2022/lib/print/index.mjs +1 -1
- package/esm2022/lib/print/print/print.component.mjs +3 -3
- package/esm2022/lib/print/print-form/index.mjs +1 -1
- package/esm2022/lib/print/print-form/print-form.component.mjs +3 -3
- package/esm2022/lib/print/print.module.mjs +1 -1
- package/esm2022/lib/print/shared/geopdf.mjs +1 -1
- package/esm2022/lib/print/shared/index.mjs +1 -1
- package/esm2022/lib/print/shared/print.interface.mjs +1 -1
- package/esm2022/lib/print/shared/print.service.mjs +1 -1
- package/esm2022/lib/print/shared/print.type.mjs +1 -1
- package/esm2022/lib/query/index.mjs +1 -1
- package/esm2022/lib/query/query.module.mjs +1 -1
- package/esm2022/lib/query/shared/index.mjs +1 -1
- package/esm2022/lib/query/shared/query-search-source.mjs +1 -1
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +1 -1
- package/esm2022/lib/query/shared/query.directive.mjs +1 -1
- package/esm2022/lib/query/shared/query.enums.mjs +1 -1
- package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2022/lib/query/shared/query.service.mjs +1 -1
- package/esm2022/lib/query/shared/query.utils.mjs +1 -1
- package/esm2022/lib/search/index.mjs +1 -1
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +3 -3
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +1 -1
- package/esm2022/lib/search/search-results/index.mjs +1 -1
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +5 -5
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results.module.mjs +1 -1
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +3 -3
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +1 -1
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +3 -3
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +1 -1
- package/esm2022/lib/search/search.module.mjs +1 -1
- package/esm2022/lib/search/shared/index.mjs +1 -1
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +1 -1
- package/esm2022/lib/search/shared/search-source-service.providers.mjs +1 -1
- package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.enums.mjs +1 -1
- package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.utils.mjs +2 -2
- package/esm2022/lib/search/shared/sources/cadastre.mjs +2 -2
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.mjs +2 -2
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche-icons.mjs +32 -0
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.mjs +8 -3
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/index.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.mjs +3 -3
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +3 -3
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.mjs +2 -2
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +1 -1
- package/esm2022/lib/style/index.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/index.mjs +1 -1
- package/esm2022/lib/style/shared/feature/feature-style.mjs +1 -1
- package/esm2022/lib/style/shared/feature/index.mjs +1 -1
- package/esm2022/lib/style/shared/font.enum.mjs +1 -1
- package/esm2022/lib/style/shared/index.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/index.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +1 -1
- package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/index.mjs +1 -1
- package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +1 -1
- package/esm2022/lib/style/style-list/index.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.interface.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.module.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.provider.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.service.mjs +1 -1
- package/esm2022/lib/style/style-modal/drawing/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/layer-button/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/shared/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
- package/esm2022/lib/style/style-service/draw-style.service.mjs +1 -1
- package/esm2022/lib/style/style-service/index.mjs +1 -1
- package/esm2022/lib/style/style-service/style.service.mjs +1 -1
- package/esm2022/lib/style/style.module.mjs +1 -1
- package/esm2022/lib/toast/index.mjs +1 -1
- package/esm2022/lib/toast/toast.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +1 -1
- package/esm2022/lib/utils/googleLinks.mjs +1 -1
- package/esm2022/lib/utils/id-generator.mjs +1 -1
- package/esm2022/lib/utils/index.mjs +1 -1
- package/esm2022/lib/utils/osmLinks.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/index.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +1 -1
- package/esm2022/lib/wkt/index.mjs +1 -1
- package/esm2022/lib/wkt/shared/index.mjs +1 -1
- package/esm2022/lib/wkt/shared/wkt.service.mjs +15 -15
- package/esm2022/lib/wkt/wkt.module.mjs +1 -1
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +3 -3
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +1 -1
- package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
- package/esm2022/lib/workspace/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +3 -3
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
- package/esm2022/lib/workspace/widgets/index.mjs +1 -1
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +3 -3
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +1 -1
- package/esm2022/lib/workspace/widgets/widgets.mjs +1 -1
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +1 -1
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +1 -1
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +1 -1
- package/esm2022/lib/workspace/workspace.module.mjs +1 -1
- package/esm2022/public_api.mjs +1 -1
- package/fesm2022/igo2-geo.mjs +307 -262
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
- package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +2 -3
- package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +2 -3
- package/lib/datasource/shared/datasources/datasource.d.ts +1 -2
- package/lib/datasource/shared/datasources/feature-datasource.d.ts +2 -3
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +2 -3
- package/lib/datasource/shared/datasources/websocket-datasource.d.ts +1 -2
- package/lib/datasource/shared/datasources/wfs-datasource.d.ts +2 -3
- package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +1 -2
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -2
- package/lib/directions/shared/directions.interface.d.ts +2 -9
- package/lib/draw/draw/draw-shorcuts.component.d.ts +2 -0
- package/lib/filter/shared/ogc-filter.interface.d.ts +1 -2
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -2
- package/lib/geometry/shared/controls/draw.d.ts +4 -4
- package/lib/geometry/shared/controls/slice.d.ts +4 -4
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +0 -2
- package/lib/layer/layer-list/layer-list.component.d.ts +2 -0
- package/lib/layer/shared/layers/vector-layer.d.ts +3 -4
- package/lib/layer/shared/layers/vector-layer.interface.d.ts +1 -2
- package/lib/map/shared/projection.utils.d.ts +11 -0
- package/lib/query/shared/query.interfaces.d.ts +1 -2
- package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
- package/lib/search/shared/search.interfaces.d.ts +12 -10
- package/lib/search/shared/sources/icherche-icons.d.ts +7 -0
- package/lib/style/shared/vector/conversion.utils.d.ts +2 -3
- package/lib/workspace/shared/edition-workspace.service.d.ts +2 -1
- package/locale/en.geo.json +818 -818
- package/locale/fr.geo.json +819 -819
- package/package.json +6 -6
- package/src/_index.scss +2 -2
- package/src/lib/catalog/catalog-browser/catalog-browser.theming.scss +22 -22
- package/src/lib/catalog/catalog.theming.scss +5 -5
- package/src/lib/directions/directions-results/directions-results.theming.scss +10 -10
- package/src/lib/directions/directions.theming.scss +6 -6
- package/src/lib/draw/draw.theming.scss +32 -32
- package/src/lib/feature/feature-details/feature-details.theming.scss +16 -16
- package/src/lib/feature/feature.theming.scss +4 -4
- package/src/lib/measure/measure.theming.scss +5 -5
- package/src/lib/measure/measurer/measurer.theming.scss +26 -26
- package/src/lib/search/search-bar/search-bar.theming.scss +33 -33
- package/src/lib/search/search-results/search-results-item.theme.scss +20 -20
- package/src/lib/search/search.theming.scss +7 -7
- package/src/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
- package/src/lib/workspace/workspace.theming.scss +6 -6
- package/style/style.css +2 -1
|
@@ -315,7 +315,7 @@ export function formatDuration(duration) {
|
|
|
315
315
|
export function formatInstruction(type, modifier, route, direction, stepPosition, exit, languageService, lastStep = false) {
|
|
316
316
|
const translate = languageService.translate;
|
|
317
317
|
let directive;
|
|
318
|
-
let image = '
|
|
318
|
+
let image = 'arrow_forward';
|
|
319
319
|
let cssClass = 'rotate-270';
|
|
320
320
|
const translatedDirection = translateBearing(direction, languageService);
|
|
321
321
|
const translatedModifier = translateModifier(modifier, languageService);
|
|
@@ -327,34 +327,34 @@ export function formatInstruction(type, modifier, route, direction, stepPosition
|
|
|
327
327
|
aggregatedDirection = translatedModifier;
|
|
328
328
|
}
|
|
329
329
|
if (modifier === 'uturn') {
|
|
330
|
-
image = '
|
|
330
|
+
image = 'arrow_forward';
|
|
331
331
|
cssClass = 'rotate-90';
|
|
332
332
|
}
|
|
333
333
|
else if (modifier === 'sharp right') {
|
|
334
|
-
image = '
|
|
334
|
+
image = 'subdirectory_arrow_right';
|
|
335
335
|
cssClass = 'icon-flipped';
|
|
336
336
|
}
|
|
337
337
|
else if (modifier === 'right') {
|
|
338
|
-
image = '
|
|
338
|
+
image = 'subdirectory_arrow_right';
|
|
339
339
|
cssClass = 'icon-flipped';
|
|
340
340
|
}
|
|
341
341
|
else if (modifier === 'slight right') {
|
|
342
|
-
image = '
|
|
342
|
+
image = 'arrow_forward';
|
|
343
343
|
cssClass = 'rotate-290';
|
|
344
344
|
}
|
|
345
345
|
else if (modifier === 'straight') {
|
|
346
|
-
image = '
|
|
346
|
+
image = 'arrow_forward';
|
|
347
347
|
}
|
|
348
348
|
else if (modifier === 'slight left') {
|
|
349
|
-
image = '
|
|
349
|
+
image = 'arrow_forward';
|
|
350
350
|
cssClass = 'rotate-250';
|
|
351
351
|
}
|
|
352
352
|
else if (modifier === 'left') {
|
|
353
|
-
image = '
|
|
353
|
+
image = 'subdirectory_arrow_left';
|
|
354
354
|
cssClass = 'icon-flipped';
|
|
355
355
|
}
|
|
356
356
|
else if (modifier === 'sharp left') {
|
|
357
|
-
image = '
|
|
357
|
+
image = 'subdirectory_arrow_left';
|
|
358
358
|
cssClass = 'icon-flipped';
|
|
359
359
|
}
|
|
360
360
|
if (type === 'turn') {
|
|
@@ -379,7 +379,7 @@ export function formatInstruction(type, modifier, route, direction, stepPosition
|
|
|
379
379
|
route,
|
|
380
380
|
translatedDirection
|
|
381
381
|
});
|
|
382
|
-
image = '
|
|
382
|
+
image = 'explore';
|
|
383
383
|
cssClass = '';
|
|
384
384
|
}
|
|
385
385
|
else if (type === 'depart') {
|
|
@@ -387,7 +387,7 @@ export function formatInstruction(type, modifier, route, direction, stepPosition
|
|
|
387
387
|
route,
|
|
388
388
|
translatedDirection
|
|
389
389
|
});
|
|
390
|
-
image = '
|
|
390
|
+
image = 'explore';
|
|
391
391
|
cssClass = '';
|
|
392
392
|
}
|
|
393
393
|
else if (type === 'arrive') {
|
|
@@ -403,13 +403,13 @@ export function formatInstruction(type, modifier, route, direction, stepPosition
|
|
|
403
403
|
directive = translate.instant('igo.geo.directions.arrive.intermediate', {
|
|
404
404
|
route
|
|
405
405
|
});
|
|
406
|
-
image = '
|
|
406
|
+
image = 'location_on';
|
|
407
407
|
cssClass = '';
|
|
408
408
|
}
|
|
409
409
|
}
|
|
410
410
|
else if (type === 'merge') {
|
|
411
411
|
directive = translate.instant('igo.geo.directions.merge', { route });
|
|
412
|
-
image = '
|
|
412
|
+
image = 'arrow_forward';
|
|
413
413
|
cssClass = 'rotate-270';
|
|
414
414
|
}
|
|
415
415
|
else if (type === 'on ramp') {
|
|
@@ -446,7 +446,7 @@ export function formatInstruction(type, modifier, route, direction, stepPosition
|
|
|
446
446
|
directive = translate.instant('igo.geo.directions.continue.notUturn', {
|
|
447
447
|
route
|
|
448
448
|
});
|
|
449
|
-
image = '
|
|
449
|
+
image = 'arrow_forward';
|
|
450
450
|
cssClass = 'rotate-270';
|
|
451
451
|
}
|
|
452
452
|
else if (type === 'roundabout') {
|
|
@@ -458,24 +458,24 @@ export function formatInstruction(type, modifier, route, direction, stepPosition
|
|
|
458
458
|
cntSuffix,
|
|
459
459
|
route
|
|
460
460
|
});
|
|
461
|
-
image = '
|
|
461
|
+
image = 'donut_large';
|
|
462
462
|
cssClass = '';
|
|
463
463
|
}
|
|
464
464
|
else if (type === 'rotary') {
|
|
465
465
|
directive = translate.instant('igo.geo.directions.rotary');
|
|
466
|
-
image = '
|
|
466
|
+
image = 'donut_large';
|
|
467
467
|
cssClass = '';
|
|
468
468
|
}
|
|
469
469
|
else if (type === 'roundabout turn') {
|
|
470
470
|
directive = translate.instant('igo.geo.directions.roundabout turn');
|
|
471
|
-
image = '
|
|
471
|
+
image = 'donut_large';
|
|
472
472
|
cssClass = '';
|
|
473
473
|
}
|
|
474
474
|
else if (type === 'exit roundabout') {
|
|
475
475
|
directive = translate.instant('igo.geo.directions.exit roundabout', {
|
|
476
476
|
route
|
|
477
477
|
});
|
|
478
|
-
image = '
|
|
478
|
+
image = 'arrow_forward';
|
|
479
479
|
cssClass = 'rotate-270';
|
|
480
480
|
}
|
|
481
481
|
else if (type === 'notification') {
|
|
@@ -490,9 +490,9 @@ export function formatInstruction(type, modifier, route, direction, stepPosition
|
|
|
490
490
|
else {
|
|
491
491
|
directive = translate.instant('igo.geo.directions.unknown');
|
|
492
492
|
}
|
|
493
|
-
image = lastStep ? 'flag
|
|
493
|
+
image = lastStep ? 'flag' : image;
|
|
494
494
|
cssClass = lastStep ? '' : cssClass;
|
|
495
|
-
image = stepPosition === 0 ? '
|
|
495
|
+
image = stepPosition === 0 ? 'explore' : image;
|
|
496
496
|
cssClass = stepPosition === 0 ? '' : cssClass;
|
|
497
497
|
return { instruction: directive, image, cssClass };
|
|
498
498
|
}
|
|
@@ -556,4 +556,4 @@ export function translateBearing(bearing, languageService) {
|
|
|
556
556
|
return;
|
|
557
557
|
}
|
|
558
558
|
}
|
|
559
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsYUFBYSxFQUNkLE1BQU0sbUJBQW1CLENBQUM7QUFjM0I7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFVBQXNCLEVBQ3RCLFlBQTRCLEtBQUssRUFDakMsS0FBSyxHQUFHLFVBQVU7SUFFbEIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIsU0FBUztRQUNULGFBQWEsRUFBRSxDQUFDLE1BQVksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztLQUMvQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxLQUFhLEVBQ2IsV0FBVztJQUVYLElBQUksZ0JBQWdCLEdBQUcsNkJBQTZCLENBQUMsWUFBWSxDQUFDO0lBQ2xFLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hCLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDLEtBQUssQ0FBQztJQUN6RCxDQUFDO1NBQU0sSUFBSSxLQUFLLEtBQUssV0FBVyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JDLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDLEdBQUcsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFVBQXNCO0lBQ3pELE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9ELHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsdUJBQXVCLENBQzdDLElBQUksQ0FBQyxRQUFRLEVBQ2Isc0JBQXNCLENBQUMsTUFBTSxDQUM5QixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLHNCQUFzQixFQUFFLENBQUM7UUFDM0IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2hELENBQUM7QUFDSCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxVQUFzQjtJQUNuRCxNQUFNLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNsQixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0IsSUFBSSxTQUFtQixDQUFDO0lBQ3hCLElBQUksVUFBVSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQixTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO1NBQU0sQ0FBQztRQUNOLFNBQVMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELE1BQU0sV0FBVyxHQUFXLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUNuRCxNQUFNLGNBQWMsR0FBVyxXQUFXLENBQUM7SUFDM0MsTUFBTSxZQUFZLEdBQVcsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUU3QyxNQUFNLFlBQVksR0FBRyxVQUFVO1NBQzVCLEdBQUcsRUFBRTtTQUNMLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLENBQUMsQ0FBQztJQUNqRCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLFlBQVksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO1FBQ3JDLFlBQVksQ0FBQyxnQkFBZ0IsR0FBRyx1QkFBdUIsQ0FDckQsWUFBWSxFQUNaLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDaEIsRUFBRTtRQUNGLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLGdCQUFnQixFQUFFLHVCQUF1QixDQUN2QyxjQUFjLEVBQ2QsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQ3JCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0IsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsVUFBc0IsRUFBRSxJQUFVO0lBQ3BFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUM3QixPQUE4QixFQUM5QixVQUFrQjtJQUVsQixNQUFNLFdBQVcsR0FBRztRQUNsQixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDaEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDL0IsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDeEIsTUFBTSxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQzNELENBQUM7U0FDSCxDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sU0FBUyxHQUFHLHdCQUF3QixDQUFDO1FBQ3pDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUM3QixPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDbkMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQ3JDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7S0FDcEMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUc7UUFDakIsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSx1QkFBdUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUc7Z0JBQ2pFLEtBQUssRUFBRSxFQUFFO2FBQ1YsQ0FBQztTQUNILENBQUM7UUFDRixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDaEIsTUFBTSxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDekIsS0FBSyxFQUFFLHNCQUFzQixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRztnQkFDaEUsS0FBSyxFQUFFLENBQUM7YUFDVCxDQUFDO1NBQ0gsQ0FBQztLQUNILENBQUM7SUFFRixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9DLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckMsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEQsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGlCQUFvQyxFQUNwQyxlQUFnQztJQUVoQyxNQUFNLGVBQWUsR0FBRyxJQUFJLDJCQUEyQixDQUFDO1FBQ3RELE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSTtLQUMzQixDQUFDLENBQUM7SUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQztRQUNqQyxrQkFBa0IsRUFBRSxJQUFJO1FBQ3hCLEVBQUUsRUFBRSwyQkFBMkI7UUFDL0IsS0FBSyxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUN0QyxrQ0FBa0MsQ0FDbkM7UUFDRCxNQUFNLEVBQUUsR0FBRztRQUNYLE1BQU0sRUFBRSxJQUFJLGlCQUFpQixFQUFFO1FBQy9CLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLFNBQVMsRUFBRTtZQUNULE9BQU8sRUFBRSxLQUFLO1NBQ2Y7UUFDRCxZQUFZLEVBQUU7WUFDWixNQUFNLEVBQUUsMkJBQTJCO1lBQ25DLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxZQUFZLEVBQUUsSUFBSTtvQkFDbEIsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ3hDLFVBQVUsRUFBRSxFQUFFO2lCQUNmO2FBQ0Y7U0FDRjtRQUNELFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLEtBQUssRUFBRSxlQUFlO0tBQ3ZCLENBQUMsQ0FBQztJQUNILGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELGlCQUFpQixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLGtCQUFzQyxFQUN0QyxlQUFnQztJQUVoQyxNQUFNLGVBQWUsR0FBRyxJQUFJLDJCQUEyQixDQUFDO1FBQ3RELE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSTtLQUMzQixDQUFDLENBQUM7SUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLFdBQVcsQ0FBQztRQUNqQyxrQkFBa0IsRUFBRSxJQUFJO1FBQ3hCLEVBQUUsRUFBRSwyQkFBMkI7UUFDL0IsS0FBSyxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUN0QyxtQ0FBbUMsQ0FDcEM7UUFDRCxNQUFNLEVBQUUsR0FBRztRQUNYLE1BQU0sRUFBRSxJQUFJLGlCQUFpQixFQUFFO1FBQy9CLGVBQWUsRUFBRSxJQUFJO1FBQ3JCLFNBQVMsRUFBRTtZQUNULE9BQU8sRUFBRSxLQUFLO1NBQ2Y7UUFDRCxZQUFZLEVBQUU7WUFDWixNQUFNLEVBQUUsMkJBQTJCO1NBQ3BDO1FBQ0QsVUFBVSxFQUFFLElBQUk7UUFDaEIsU0FBUyxFQUFFLEtBQUs7UUFDaEIsS0FBSyxFQUFFLGVBQWU7S0FDdkIsQ0FBQyxDQUFDO0lBQ0gsaUJBQWlCLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbEQsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDeEMscUJBQXFCLENBQUMsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxnQkFBa0M7SUFDckUsTUFBTSxlQUFlLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQztRQUN0RCxNQUFNLEVBQUUsYUFBYSxDQUFDLElBQUk7S0FDM0IsQ0FBQyxDQUFDO0lBRUgsTUFBTSxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUM7UUFDaEMsa0JBQWtCLEVBQUUsSUFBSTtRQUN4QixFQUFFLEVBQUUsMEJBQTBCO1FBQzlCLEtBQUssRUFBRSxFQUFFO1FBQ1QsTUFBTSxFQUFFLEdBQUc7UUFDWCxNQUFNLEVBQUUsSUFBSSxpQkFBaUIsRUFBRTtRQUMvQixlQUFlLEVBQUUsS0FBSztRQUN0QixTQUFTLEVBQUU7WUFDVCxPQUFPLEVBQUUsS0FBSztTQUNmO1FBQ0QsWUFBWSxFQUFFO1lBQ1osTUFBTSxFQUFFLDJCQUEyQjtTQUNwQztRQUNELFVBQVUsRUFBRSxLQUFLO1FBQ2pCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLEtBQUssRUFBRSxlQUFlO0tBQ3ZCLENBQUMsQ0FBQztJQUNILGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RDLHFCQUFxQixDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQ3hDLElBQVUsRUFDVixVQUFzQixFQUN0QixpQkFBb0MsRUFDcEMsVUFBa0IsRUFDbEIsZUFBZ0M7SUFFaEMsSUFBSSxTQUFTLENBQUM7SUFDZCxJQUFJLFFBQVEsQ0FBQztJQUViLFFBQVEsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDOUIsS0FBSyw2QkFBNkIsQ0FBQyxLQUFLO1lBQ3RDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDdEIsUUFBUSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMxQyw4QkFBOEIsQ0FDL0IsQ0FBQztZQUNGLE1BQU07UUFDUixLQUFLLDZCQUE2QixDQUFDLEdBQUc7WUFDcEMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUN0QixRQUFRLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQzFDLDRCQUE0QixDQUM3QixDQUFDO1lBQ0YsTUFBTTtRQUNSO1lBQ0UsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUN0QixRQUFRO2dCQUNOLGVBQWUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMvQixxQ0FBcUMsQ0FDdEM7b0JBQ0QsSUFBSTtvQkFDSixJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2hCLE1BQU07SUFDVixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUMvQixNQUFNLENBQUMsU0FBUyxDQUNkLElBQUksQ0FBQyxXQUFXLEVBQ2hCLFVBQVUsRUFDVixpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUNqQyxDQUNGLENBQUM7SUFFRixNQUFNLFdBQVcsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRTtRQUNoRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsVUFBVTtRQUNuRCxjQUFjLEVBQUUsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFVBQVU7S0FDakQsQ0FBb0IsQ0FBQztJQUV0QixNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sZ0JBQWdCLEdBQW9CO1FBQ3hDLElBQUksRUFBRSxPQUFPO1FBQ2IsUUFBUSxFQUFFLFdBQVc7UUFDckIsVUFBVSxFQUFFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVO1FBQzVDLFVBQVUsRUFBRTtZQUNWLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSTtZQUN4QixRQUFRO1lBQ1IsU0FBUztZQUNULFdBQVcsRUFBRSxDQUFDO1lBQ2QsSUFBSTtTQUNMO1FBQ0QsSUFBSSxFQUFFO1lBQ0osRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsUUFBUSxFQUFFLG9CQUFvQixHQUFHLENBQUM7U0FDbkM7UUFDRCxFQUFFLEVBQUUsSUFBSSxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztLQUNoQyxDQUFDO0lBQ0YsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsa0JBQXNDLEVBQ3RDLFNBQW9CLEVBQ3BCLFVBQWtCLEVBQ2xCLFNBQWtCLEtBQUssRUFDdkIsWUFBWSxHQUFHLEtBQUs7SUFFcEIsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7SUFDNUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQ3JDLFVBQVUsRUFDVixrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUNsQyxDQUFDO0lBRUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUU7UUFDaEUsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVU7UUFDcEQsY0FBYyxFQUFFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFVO0tBQ2xELENBQW9CLENBQUM7SUFFdEIsTUFBTSxhQUFhLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzRCxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU5RSxNQUFNLGlCQUFpQixHQUF5QjtRQUM5QyxJQUFJLEVBQUUsT0FBTztRQUNiLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVTtRQUM3QyxVQUFVLEVBQUU7WUFDVixFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDaEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLO1lBQ3pCLE1BQU07WUFDTixTQUFTO1NBQ1Y7UUFDRCxJQUFJLEVBQUU7WUFDSixFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDaEIsUUFBUSxFQUFFLHFCQUFxQixHQUFHLENBQUM7U0FDcEM7UUFDRCxFQUFFLEVBQUUsSUFBSSxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztLQUNoQyxDQUFDO0lBQ0Ysa0JBQWtCLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBZ0I7SUFDN0MsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbkIsT0FBTztJQUNULENBQUM7SUFDRCxJQUFJLFFBQVEsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUN2QixPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzdFLENBQUM7SUFDRCxJQUFJLFFBQVEsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQ0wsV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUN4RSxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FDTCxXQUFXLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQ3hFLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBZ0I7SUFDN0MsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDekQsSUFBSSxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxJQUFJLEdBQUcsS0FBSyxHQUFHLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksUUFBUSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFDRCxPQUFPLFFBQVEsR0FBRyxJQUFJLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsSUFBSSxFQUNKLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixJQUFJLEVBQ0osZUFBZ0MsRUFDaEMsUUFBUSxHQUFHLEtBQUs7SUFFaEIsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUM1QyxJQUFJLFNBQVMsQ0FBQztJQUNkLElBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQztJQUN0QixJQUFJLFFBQVEsR0FBRyxZQUFZLENBQUM7SUFDNUIsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekUsTUFBTSxrQkFBa0IsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDeEUsTUFBTSxNQUFNLEdBQ1YsUUFBUSxLQUFLLFVBQVU7UUFDckIsQ0FBQyxDQUFDLEVBQUU7UUFDSixDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBRTlELElBQUksbUJBQW1CLEdBQUcsTUFBTSxHQUFHLGtCQUFrQixDQUFDO0lBRXRELElBQUksUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNwQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxRQUFRLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDekIsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUNsQixRQUFRLEdBQUcsV0FBVyxDQUFDO0lBQ3pCLENBQUM7U0FBTSxJQUFJLFFBQVEsS0FBSyxhQUFhLEVBQUUsQ0FBQztRQUN0QyxLQUFLLEdBQUcsMEJBQTBCLENBQUM7UUFDbkMsUUFBUSxHQUFHLGNBQWMsQ0FBQztJQUM1QixDQUFDO1NBQU0sSUFBSSxRQUFRLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDaEMsS0FBSyxHQUFHLDBCQUEwQixDQUFDO1FBQ25DLFFBQVEsR0FBRyxjQUFjLENBQUM7SUFDNUIsQ0FBQztTQUFNLElBQUksUUFBUSxLQUFLLGNBQWMsRUFBRSxDQUFDO1FBQ3ZDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDbEIsUUFBUSxHQUFHLFlBQVksQ0FBQztJQUMxQixDQUFDO1NBQU0sSUFBSSxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDbkMsS0FBSyxHQUFHLFNBQVMsQ0FBQztJQUNwQixDQUFDO1NBQU0sSUFBSSxRQUFRLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDdEMsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUNsQixRQUFRLEdBQUcsWUFBWSxDQUFDO0lBQzFCLENBQUM7U0FBTSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUMvQixLQUFLLEdBQUcseUJBQXlCLENBQUM7UUFDbEMsUUFBUSxHQUFHLGNBQWMsQ0FBQztJQUM1QixDQUFDO1NBQU0sSUFBSSxRQUFRLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDckMsS0FBSyxHQUFHLHlCQUF5QixDQUFDO1FBQ2xDLFFBQVEsR0FBRyxjQUFjLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLElBQUksUUFBUSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzVCLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxFQUFFO2dCQUNoRSxLQUFLO2FBQ04sQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLElBQUksUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ2hDLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLCtCQUErQixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1RSxDQUFDO2FBQU0sQ0FBQztZQUNOLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLDhCQUE4QixFQUFFO2dCQUM1RCxLQUFLO2dCQUNMLG1CQUFtQjtnQkFDbkIsa0JBQWtCO2FBQ25CLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO1NBQU0sSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDL0IsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLEVBQUU7WUFDM0QsS0FBSztZQUNMLG1CQUFtQjtTQUNwQixDQUFDLENBQUM7UUFDSCxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ2xCLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDaEIsQ0FBQztTQUFNLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFO1lBQ3pELEtBQUs7WUFDTCxtQkFBbUI7U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUNsQixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLENBQUM7U0FBTSxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDN0MsbUJBQW1CLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUNyRSxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsRUFBRTtnQkFDbEUsSUFBSTtnQkFDSixtQkFBbUI7YUFDcEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsRUFBRTtnQkFDdEUsS0FBSzthQUNOLENBQUMsQ0FBQztZQUNILEtBQUssR0FBRyxZQUFZLENBQUM7WUFDckIsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQztTQUFNLElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQzVCLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNyRSxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ2xCLFFBQVEsR0FBRyxZQUFZLENBQUM7SUFDMUIsQ0FBQztTQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzlCLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFO1lBQzFELG1CQUFtQjtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDL0IsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLEVBQUU7WUFDM0QsbUJBQW1CO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7U0FBTSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUMzQixJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDakMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsOEJBQThCLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDekMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsK0JBQStCLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsOEJBQThCLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7SUFDSCxDQUFDO1NBQU0sSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDbEMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLEVBQUU7WUFDOUQsa0JBQWtCO1lBQ2xCLEtBQUs7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sSUFBSSxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDL0IsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUMvRCxDQUFDO1NBQU0sSUFBSSxJQUFJLEtBQUssVUFBVSxJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN2RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsRUFBRTtZQUNwRSxLQUFLO1NBQ04sQ0FBQyxDQUFDO1FBQ0gsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUNsQixRQUFRLEdBQUcsWUFBWSxDQUFDO0lBQzFCLENBQUM7U0FBTSxJQUFJLElBQUksS0FBSyxZQUFZLEVBQUUsQ0FBQztRQUNqQyxNQUFNLFNBQVMsR0FDYixJQUFJLEtBQUssQ0FBQztZQUNSLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDdEUsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsK0JBQStCLEVBQUU7WUFDN0QsSUFBSTtZQUNKLFNBQVM7WUFDVCxLQUFLO1NBQ04sQ0FBQyxDQUFDO1FBQ0gsS0FBSyxHQUFHLGFBQWEsQ0FBQztRQUN0QixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLENBQUM7U0FBTSxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQzNELEtBQUssR0FBRyxhQUFhLENBQUM7UUFDdEIsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNoQixDQUFDO1NBQU0sSUFBSSxJQUFJLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztRQUN0QyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3BFLEtBQUssR0FBRyxhQUFhLENBQUM7UUFDdEIsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNoQixDQUFDO1NBQU0sSUFBSSxJQUFJLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztRQUN0QyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsRUFBRTtZQUNsRSxLQUFLO1NBQ04sQ0FBQyxDQUFDO1FBQ0gsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUNsQixRQUFRLEdBQUcsWUFBWSxDQUFDO0lBQzFCLENBQUM7U0FBTSxJQUFJLElBQUksS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUNuQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7U0FBTSxJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRTtZQUM1RCxtQkFBbUI7WUFDbkIsS0FBSztTQUNOLENBQUMsQ0FBQztJQUNMLENBQUM7U0FBTSxDQUFDO1FBQ04sU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDMUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDcEMsS0FBSyxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQy9DLFFBQVEsR0FBRyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUU5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsZUFBZ0M7SUFDMUUsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUM1QyxJQUFJLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN6QixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUN2RCxDQUFDO1NBQU0sSUFBSSxRQUFRLEtBQUssYUFBYSxFQUFFLENBQUM7UUFDdEMsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztTQUFNLElBQUksUUFBUSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7U0FBTSxJQUFJLFFBQVEsS0FBSyxjQUFjLEVBQUUsQ0FBQztRQUN2QyxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUM5RCxDQUFDO1NBQU0sSUFBSSxRQUFRLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDckMsT0FBTyxlQUFlLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7U0FBTSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUMvQixPQUFPLGVBQWUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDdEUsQ0FBQztTQUFNLElBQUksUUFBUSxLQUFLLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sZUFBZSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUM3RSxDQUFDO1NBQU0sSUFBSSxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDbkMsT0FBTyxlQUFlLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE9BQWUsRUFDZixlQUFnQztJQUVoQyxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDO0lBQzVDLElBQUksT0FBTyxJQUFJLEdBQUcsSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDbkMsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDdkQsQ0FBQztTQUFNLElBQUksT0FBTyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3hELENBQUM7U0FBTSxJQUFJLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUN6QixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUN2RCxDQUFDO1NBQU0sSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDekIsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDeEQsQ0FBQztTQUFNLElBQUksT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7U0FBTSxJQUFJLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUN6QixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUN4RCxDQUFDO1NBQU0sSUFBSSxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDekIsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDdkQsQ0FBQztTQUFNLElBQUksT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ3hELENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTztJQUNULENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XHJcbmltcG9ydCB7IE51bWJlclV0aWxzLCB1dWlkIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IG9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcclxuaW1wb3J0IE9sR2VvSlNPTiBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTic7XHJcbmltcG9ydCAqIGFzIG9sR2VvbSBmcm9tICdvbC9nZW9tJztcclxuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuaW1wb3J0ICogYXMgb2xQcm9qIGZyb20gJ29sL3Byb2onO1xyXG5pbXBvcnQgKiBhcyBvbFN0eWxlIGZyb20gJ29sL3N0eWxlJztcclxuXHJcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgdHJ5QmluZFN0b3JlTGF5ZXIgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLXN0b3JlLnV0aWxzJztcclxuaW1wb3J0IHsgRkVBVFVSRSwgRmVhdHVyZU1vdGlvbiB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuZW51bXMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlR2VvbWV0cnkgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyB0cnlBZGRMb2FkaW5nU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9zdHJhdGVnaWVzLnV0aWxzJztcclxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9sb2FkaW5nJztcclxuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllcic7XHJcbmltcG9ydCB7IGNyZWF0ZU92ZXJsYXlNYXJrZXJTdHlsZSB9IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC9vdmVybGF5L292ZXJsYXktbWFya2VyLXN0eWxlLnV0aWxzJztcclxuaW1wb3J0IHtcclxuICBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZSxcclxuICBEaXJlY3Rpb25UeXBlXHJcbn0gZnJvbSAnLi9kaXJlY3Rpb25zLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIERpcmVjdGlvbixcclxuICBGZWF0dXJlV2l0aERpcmVjdGlvbixcclxuICBGZWF0dXJlV2l0aFN0b3AsXHJcbiAgU3RvcFxyXG59IGZyb20gJy4vZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIFJvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICBTdGVwRmVhdHVyZVN0b3JlLFxyXG4gIFN0b3BzRmVhdHVyZVN0b3JlLFxyXG4gIFN0b3BzU3RvcmVcclxufSBmcm9tICcuL3N0b3JlJztcclxuXHJcbi8qKlxyXG4gKiBGdW5jdGlvbiB0aGF0IHVwZGF0IHRoZSBzb3J0IG9mIHRoZSBsaXN0IGJhc2Ugb24gdGhlIHByb3ZpZGVkIGZpZWxkLlxyXG4gKiBAcGFyYW0gc291cmNlIHN0b3Agc3RvcmVcclxuICogQHBhcmFtIGRpcmVjdGlvbiBhc2MgLyBkZXNjIHNvcnQgb3JkZXJcclxuICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCB0byB1c2UgdG8gc29ydCB0aGUgdmlld1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVN0b3JlU29ydGluZyhcclxuICBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlLFxyXG4gIGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycgPSAnYXNjJyxcclxuICBmaWVsZCA9ICdwb3NpdGlvbidcclxuKSB7XHJcbiAgc3RvcHNTdG9yZS52aWV3LnNvcnQoe1xyXG4gICAgZGlyZWN0aW9uLFxyXG4gICAgdmFsdWVBY2Nlc3NvcjogKGVudGl0eTogU3RvcCkgPT4gZW50aXR5W2ZpZWxkXVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZVJlbGF0aXZlUG9zaXRpb24oXHJcbiAgaW5kZXg6IG51bWJlcixcclxuICB0b3RhbExlbmd0aFxyXG4pOiBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZSB7XHJcbiAgbGV0IHJlbGF0aXZlUG9zaXRpb24gPSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5JbnRlcm1lZGlhdGU7XHJcbiAgaWYgKGluZGV4ID09PSAwKSB7XHJcbiAgICByZWxhdGl2ZVBvc2l0aW9uID0gRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUuU3RhcnQ7XHJcbiAgfSBlbHNlIGlmIChpbmRleCA9PT0gdG90YWxMZW5ndGggLSAxKSB7XHJcbiAgICByZWxhdGl2ZVBvc2l0aW9uID0gRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUuRW5kO1xyXG4gIH1cclxuICByZXR1cm4gcmVsYXRpdmVQb3NpdGlvbjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVTdG9wc1Bvc2l0aW9uKHN0b3BzU3RvcmU6IFN0b3BzU3RvcmUpIHtcclxuICBjb25zdCBzdG9wc1RvQ29tcHV0ZVBvc2l0aW9uID0gWy4uLnN0b3BzU3RvcmUuYWxsKCldO1xyXG4gIHN0b3BzVG9Db21wdXRlUG9zaXRpb24uc29ydCgoYSwgYikgPT4gYS5wb3NpdGlvbiAtIGIucG9zaXRpb24pO1xyXG4gIHN0b3BzVG9Db21wdXRlUG9zaXRpb24ubWFwKChzdG9wLCBpKSA9PiB7XHJcbiAgICBzdG9wLnBvc2l0aW9uID0gaTtcclxuICAgIHN0b3AucmVsYXRpdmVQb3NpdGlvbiA9IGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKFxyXG4gICAgICBzdG9wLnBvc2l0aW9uLFxyXG4gICAgICBzdG9wc1RvQ29tcHV0ZVBvc2l0aW9uLmxlbmd0aFxyXG4gICAgKTtcclxuICB9KTtcclxuICBpZiAoc3RvcHNUb0NvbXB1dGVQb3NpdGlvbikge1xyXG4gICAgc3RvcHNTdG9yZS51cGRhdGVNYW55KHN0b3BzVG9Db21wdXRlUG9zaXRpb24pO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRoYXQgYWRkIGEgc3RvcCB0byB0aGUgc3RvcCBzdG9yZS4gU3RvcCBhcmUgYWx3YXlzIGFkZGVkIGJlZm9yZSB0aGUgbGFzdCBzdG9wLlxyXG4gKiBAcGFyYW0gc3RvcHNTdG9yZSBzdG9wIHN0b3JlIGFzIGFuIEVudGl0eVN0b3JlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkU3RvcFRvU3RvcmUoc3RvcHNTdG9yZTogU3RvcHNTdG9yZSk6IFN0b3Age1xyXG4gIGNvbnN0IGlkID0gdXVpZCgpO1xyXG4gIGNvbnN0IHN0b3BzID0gc3RvcHNTdG9yZS5hbGwoKTtcclxuICBsZXQgcG9zaXRpb25zOiBudW1iZXJbXTtcclxuICBpZiAoc3RvcHNTdG9yZS5jb3VudCA9PT0gMCkge1xyXG4gICAgcG9zaXRpb25zID0gWzBdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBwb3NpdGlvbnMgPSBzdG9wcy5tYXAoKHN0b3ApID0+IHN0b3AucG9zaXRpb24pO1xyXG4gIH1cclxuICBjb25zdCBtYXhQb3NpdGlvbjogbnVtYmVyID0gTWF0aC5tYXgoLi4ucG9zaXRpb25zKTtcclxuICBjb25zdCBpbnNlcnRQb3NpdGlvbjogbnVtYmVyID0gbWF4UG9zaXRpb247XHJcbiAgY29uc3QgbGFzdFBvc2l0aW9uOiBudW1iZXIgPSBtYXhQb3NpdGlvbiArIDE7XHJcblxyXG4gIGNvbnN0IHN0b3BUb1VwZGF0ZSA9IHN0b3BzU3RvcmVcclxuICAgIC5hbGwoKVxyXG4gICAgLmZpbmQoKHN0b3ApID0+IHN0b3AucG9zaXRpb24gPT09IG1heFBvc2l0aW9uKTtcclxuICBpZiAoc3RvcFRvVXBkYXRlKSB7XHJcbiAgICBzdG9wVG9VcGRhdGUucG9zaXRpb24gPSBsYXN0UG9zaXRpb247XHJcbiAgICBzdG9wVG9VcGRhdGUucmVsYXRpdmVQb3NpdGlvbiA9IGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKFxyXG4gICAgICBsYXN0UG9zaXRpb24sXHJcbiAgICAgIHN0b3BzU3RvcmUuY291bnQgKyAxXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc3RvcHNTdG9yZS5pbnNlcnQoe1xyXG4gICAgaWQsXHJcbiAgICBwb3NpdGlvbjogaW5zZXJ0UG9zaXRpb24sXHJcbiAgICByZWxhdGl2ZVBvc2l0aW9uOiBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbihcclxuICAgICAgaW5zZXJ0UG9zaXRpb24sXHJcbiAgICAgIHN0b3BzU3RvcmUuY291bnQgKyAxXHJcbiAgICApXHJcbiAgfSk7XHJcblxyXG4gIHVwZGF0ZVN0b3JlU29ydGluZyhzdG9wc1N0b3JlKTtcclxuICByZXR1cm4gc3RvcHNTdG9yZS5nZXQoaWQpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlU3RvcEZyb21TdG9yZShzdG9wc1N0b3JlOiBTdG9wc1N0b3JlLCBzdG9wOiBTdG9wKSB7XHJcbiAgc3RvcHNTdG9yZS5kZWxldGUoc3RvcCk7XHJcbiAgY29tcHV0ZVN0b3BzUG9zaXRpb24oc3RvcHNTdG9yZSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGUgYSBzdHlsZSBmb3IgdGhlIGRpcmVjdGlvbnMgc3RvcHMgYW5kIHJvdXRlc1xyXG4gKiBAcGFyYW0gZmVhdHVyZSBPbEZlYXR1cmVcclxuICogQHJldHVybnMgT0wgc3R5bGUgZnVuY3Rpb25cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkaXJlY3Rpb25zU3R5bGUoXHJcbiAgZmVhdHVyZTogb2xGZWF0dXJlPE9sR2VvbWV0cnk+LFxyXG4gIHJlc29sdXRpb246IG51bWJlclxyXG4pOiBvbFN0eWxlLlN0eWxlIHwgb2xTdHlsZS5TdHlsZVtdIHtcclxuICBjb25zdCB2ZXJ0ZXhTdHlsZSA9IFtcclxuICAgIG5ldyBvbFN0eWxlLlN0eWxlKHtcclxuICAgICAgZ2VvbWV0cnk6IGZlYXR1cmUuZ2V0R2VvbWV0cnkoKSxcclxuICAgICAgaW1hZ2U6IG5ldyBvbFN0eWxlLkNpcmNsZSh7XHJcbiAgICAgICAgcmFkaXVzOiA3LFxyXG4gICAgICAgIHN0cm9rZTogbmV3IG9sU3R5bGUuU3Ryb2tlKHsgY29sb3I6ICcjRkYwMDAwJywgd2lkdGg6IDMgfSlcclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgXTtcclxuXHJcbiAgY29uc3Qgc3RvcFN0eWxlID0gY3JlYXRlT3ZlcmxheU1hcmtlclN0eWxlKHtcclxuICAgIHRleHQ6IGZlYXR1cmUuZ2V0KCdzdG9wVGV4dCcpLFxyXG4gICAgb3BhY2l0eTogZmVhdHVyZS5nZXQoJ3N0b3BPcGFjaXR5JyksXHJcbiAgICBtYXJrZXJDb2xvcjogZmVhdHVyZS5nZXQoJ3N0b3BDb2xvcicpLFxyXG4gICAgbWFya2VyT3V0bGluZUNvbG9yOiBbMjU1LCAyNTUsIDI1NV1cclxuICB9KTtcclxuXHJcbiAgY29uc3Qgcm91dGVTdHlsZSA9IFtcclxuICAgIG5ldyBvbFN0eWxlLlN0eWxlKHtcclxuICAgICAgc3Ryb2tlOiBuZXcgb2xTdHlsZS5TdHJva2Uoe1xyXG4gICAgICAgIGNvbG9yOiBgcmdiYSgxMDYsIDEyMSwgMTMwLCAke2ZlYXR1cmUuZ2V0KCdhY3RpdmUnKSA/IDAuNzUgOiAwfSlgLFxyXG4gICAgICAgIHdpZHRoOiAxMFxyXG4gICAgICB9KVxyXG4gICAgfSksXHJcbiAgICBuZXcgb2xTdHlsZS5TdHlsZSh7XHJcbiAgICAgIHN0cm9rZTogbmV3IG9sU3R5bGUuU3Ryb2tlKHtcclxuICAgICAgICBjb2xvcjogYHJnYmEoNzksIDE2OSwgMjIxLCAke2ZlYXR1cmUuZ2V0KCdhY3RpdmUnKSA/IDAuNzUgOiAwfSlgLFxyXG4gICAgICAgIHdpZHRoOiA2XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIF07XHJcblxyXG4gIGlmIChmZWF0dXJlLmdldCgndHlwZScpID09PSBEaXJlY3Rpb25UeXBlLlN0b3ApIHtcclxuICAgIHJldHVybiBzdG9wU3R5bGU7XHJcbiAgfVxyXG4gIGlmIChmZWF0dXJlLmdldCgndHlwZScpID09PSAndmVydGV4Jykge1xyXG4gICAgcmV0dXJuIHZlcnRleFN0eWxlO1xyXG4gIH1cclxuICBpZiAoZmVhdHVyZS5nZXQoJ3R5cGUnKSA9PT0gRGlyZWN0aW9uVHlwZS5Sb3V0ZSkge1xyXG4gICAgcmV0dXJuIHJvdXRlU3R5bGU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5pdFN0b3BzRmVhdHVyZVN0b3JlKFxyXG4gIHN0b3BzRmVhdHVyZVN0b3JlOiBTdG9wc0ZlYXR1cmVTdG9yZSxcclxuICBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZVxyXG4pIHtcclxuICBjb25zdCBsb2FkaW5nU3RyYXRlZ3kgPSBuZXcgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KHtcclxuICAgIG1vdGlvbjogRmVhdHVyZU1vdGlvbi5Ob25lXHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0IHN0b3BzTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxyXG4gICAgaWQ6ICdpZ28tZGlyZWN0aW9uLXN0b3BzLWxheWVyJyxcclxuICAgIHRpdGxlOiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnN0b3BMYXllcidcclxuICAgICksXHJcbiAgICB6SW5kZXg6IDkxMSxcclxuICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXHJcbiAgICBzaG93SW5MYXllckxpc3Q6IHRydWUsXHJcbiAgICB3b3Jrc3BhY2U6IHtcclxuICAgICAgZW5hYmxlZDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBsaW5rZWRMYXllcnM6IHtcclxuICAgICAgbGlua0lkOiAnaWdvLWRpcmVjdGlvbi1zdG9wcy1sYXllcicsXHJcbiAgICAgIGxpbmtzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgc3luY2VkRGVsZXRlOiB0cnVlLFxyXG4gICAgICAgICAgbGlua2VkSWRzOiBbJ2lnby1kaXJlY3Rpb24tcm91dGUtbGF5ZXInXSxcclxuICAgICAgICAgIHByb3BlcnRpZXM6IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAgZXhwb3J0YWJsZTogdHJ1ZSxcclxuICAgIGJyb3dzYWJsZTogZmFsc2UsXHJcbiAgICBzdHlsZTogZGlyZWN0aW9uc1N0eWxlXHJcbiAgfSk7XHJcbiAgdHJ5QmluZFN0b3JlTGF5ZXIoc3RvcHNGZWF0dXJlU3RvcmUsIHN0b3BzTGF5ZXIpO1xyXG4gIHN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLnZpc2libGUgPSB0cnVlO1xyXG4gIHRyeUFkZExvYWRpbmdTdHJhdGVneShzdG9wc0ZlYXR1cmVTdG9yZSwgbG9hZGluZ1N0cmF0ZWd5KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGluaXRSb3V0ZXNGZWF0dXJlU3RvcmUoXHJcbiAgcm91dGVzRmVhdHVyZVN0b3JlOiBSb3V0ZXNGZWF0dXJlU3RvcmUsXHJcbiAgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2VcclxuKSB7XHJcbiAgY29uc3QgbG9hZGluZ1N0cmF0ZWd5ID0gbmV3IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSh7XHJcbiAgICBtb3Rpb246IEZlYXR1cmVNb3Rpb24uTm9uZVxyXG4gIH0pO1xyXG5cclxuICBjb25zdCByb3V0ZUxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcclxuICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcclxuICAgIGlkOiAnaWdvLWRpcmVjdGlvbi1yb3V0ZS1sYXllcicsXHJcbiAgICB0aXRsZTogbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5yb3V0ZUxheWVyJ1xyXG4gICAgKSxcclxuICAgIHpJbmRleDogOTEwLFxyXG4gICAgc291cmNlOiBuZXcgRmVhdHVyZURhdGFTb3VyY2UoKSxcclxuICAgIHNob3dJbkxheWVyTGlzdDogdHJ1ZSxcclxuICAgIHdvcmtzcGFjZToge1xyXG4gICAgICBlbmFibGVkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGxpbmtlZExheWVyczoge1xyXG4gICAgICBsaW5rSWQ6ICdpZ28tZGlyZWN0aW9uLXJvdXRlLWxheWVyJ1xyXG4gICAgfSxcclxuICAgIGV4cG9ydGFibGU6IHRydWUsXHJcbiAgICBicm93c2FibGU6IGZhbHNlLFxyXG4gICAgc3R5bGU6IGRpcmVjdGlvbnNTdHlsZVxyXG4gIH0pO1xyXG4gIHRyeUJpbmRTdG9yZUxheWVyKHJvdXRlc0ZlYXR1cmVTdG9yZSwgcm91dGVMYXllcik7XHJcbiAgcm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLnZpc2libGUgPSB0cnVlO1xyXG4gIHRyeUFkZExvYWRpbmdTdHJhdGVneShyb3V0ZXNGZWF0dXJlU3RvcmUsIGxvYWRpbmdTdHJhdGVneSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpbml0U3RlcEZlYXR1cmVTdG9yZShzdGVwRmVhdHVyZVN0b3JlOiBTdGVwRmVhdHVyZVN0b3JlKSB7XHJcbiAgY29uc3QgbG9hZGluZ1N0cmF0ZWd5ID0gbmV3IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSh7XHJcbiAgICBtb3Rpb246IEZlYXR1cmVNb3Rpb24uTm9uZVxyXG4gIH0pO1xyXG5cclxuICBjb25zdCBzdGVwTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxyXG4gICAgaWQ6ICdpZ28tZGlyZWN0aW9uLXN0ZXAtbGF5ZXInLFxyXG4gICAgdGl0bGU6ICcnLFxyXG4gICAgekluZGV4OiA5MTAsXHJcbiAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxyXG4gICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcclxuICAgIHdvcmtzcGFjZToge1xyXG4gICAgICBlbmFibGVkOiBmYWxzZVxyXG4gICAgfSxcclxuICAgIGxpbmtlZExheWVyczoge1xyXG4gICAgICBsaW5rSWQ6ICdpZ28tZGlyZWN0aW9uLXJvdXRlLWxheWVyJ1xyXG4gICAgfSxcclxuICAgIGV4cG9ydGFibGU6IGZhbHNlLFxyXG4gICAgYnJvd3NhYmxlOiBmYWxzZSxcclxuICAgIHN0eWxlOiBkaXJlY3Rpb25zU3R5bGVcclxuICB9KTtcclxuICB0cnlCaW5kU3RvcmVMYXllcihzdGVwRmVhdHVyZVN0b3JlLCBzdGVwTGF5ZXIpO1xyXG4gIHN0ZXBGZWF0dXJlU3RvcmUubGF5ZXIudmlzaWJsZSA9IHRydWU7XHJcbiAgdHJ5QWRkTG9hZGluZ1N0cmF0ZWd5KHN0ZXBGZWF0dXJlU3RvcmUsIGxvYWRpbmdTdHJhdGVneSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRTdG9wVG9TdG9wc0ZlYXR1cmVTdG9yZShcclxuICBzdG9wOiBTdG9wLFxyXG4gIHN0b3BzU3RvcmU6IFN0b3BzU3RvcmUsXHJcbiAgc3RvcHNGZWF0dXJlU3RvcmU6IFN0b3BzRmVhdHVyZVN0b3JlLFxyXG4gIHByb2plY3Rpb246IHN0cmluZyxcclxuICBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZVxyXG4pIHtcclxuICBsZXQgc3RvcENvbG9yO1xyXG4gIGxldCBzdG9wVGV4dDtcclxuXHJcbiAgc3dpdGNoIChzdG9wLnJlbGF0aXZlUG9zaXRpb24pIHtcclxuICAgIGNhc2UgRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUuU3RhcnQ6XHJcbiAgICAgIHN0b3BDb2xvciA9ICcjMDA4MDAwJztcclxuICAgICAgc3RvcFRleHQgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uc3RhcnQnXHJcbiAgICAgICk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5FbmQ6XHJcbiAgICAgIHN0b3BDb2xvciA9ICcjZjY0MTM5JztcclxuICAgICAgc3RvcFRleHQgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZW5kJ1xyXG4gICAgICApO1xyXG4gICAgICBicmVhaztcclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHN0b3BDb2xvciA9ICcjZmZkNzAwJztcclxuICAgICAgc3RvcFRleHQgPVxyXG4gICAgICAgIGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmludGVybWVkaWF0ZSdcclxuICAgICAgICApICtcclxuICAgICAgICAnICMnICtcclxuICAgICAgICBzdG9wLnBvc2l0aW9uO1xyXG4gICAgICBicmVhaztcclxuICB9XHJcblxyXG4gIGNvbnN0IGdlb21ldHJ5ID0gbmV3IG9sR2VvbS5Qb2ludChcclxuICAgIG9sUHJvai50cmFuc2Zvcm0oXHJcbiAgICAgIHN0b3AuY29vcmRpbmF0ZXMsXHJcbiAgICAgIHByb2plY3Rpb24sXHJcbiAgICAgIHN0b3BzRmVhdHVyZVN0b3JlLm1hcC5wcm9qZWN0aW9uXHJcbiAgICApXHJcbiAgKTtcclxuXHJcbiAgY29uc3QgZ2VvanNvbkdlb20gPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChnZW9tZXRyeSwge1xyXG4gICAgZmVhdHVyZVByb2plY3Rpb246IHN0b3BzRmVhdHVyZVN0b3JlLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgZGF0YVByb2plY3Rpb246IHN0b3BzRmVhdHVyZVN0b3JlLm1hcC5wcm9qZWN0aW9uXHJcbiAgfSkgYXMgRmVhdHVyZUdlb21ldHJ5O1xyXG5cclxuICBjb25zdCBwcmV2aW91c1N0b3AgPSBzdG9wc0ZlYXR1cmVTdG9yZS5nZXQoc3RvcC5pZCk7XHJcbiAgY29uc3QgcHJldmlvdXNTdG9wUmV2aXNpb24gPSBwcmV2aW91c1N0b3AgPyBwcmV2aW91c1N0b3AubWV0YS5yZXZpc2lvbiA6IDA7XHJcblxyXG4gIGNvbnN0IHN0b3BGZWF0dXJlU3RvcmU6IEZlYXR1cmVXaXRoU3RvcCA9IHtcclxuICAgIHR5cGU6IEZFQVRVUkUsXHJcbiAgICBnZW9tZXRyeTogZ2VvanNvbkdlb20sXHJcbiAgICBwcm9qZWN0aW9uOiBzdG9wc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvbixcclxuICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgaWQ6IHN0b3AuaWQsXHJcbiAgICAgIHR5cGU6IERpcmVjdGlvblR5cGUuU3RvcCxcclxuICAgICAgc3RvcFRleHQsXHJcbiAgICAgIHN0b3BDb2xvcixcclxuICAgICAgc3RvcE9wYWNpdHk6IDEsXHJcbiAgICAgIHN0b3BcclxuICAgIH0sXHJcbiAgICBtZXRhOiB7XHJcbiAgICAgIGlkOiBzdG9wLmlkLFxyXG4gICAgICByZXZpc2lvbjogcHJldmlvdXNTdG9wUmV2aXNpb24gKyAxXHJcbiAgICB9LFxyXG4gICAgb2w6IG5ldyBvbEZlYXR1cmUoeyBnZW9tZXRyeSB9KVxyXG4gIH07XHJcbiAgc3RvcHNGZWF0dXJlU3RvcmUudXBkYXRlKHN0b3BGZWF0dXJlU3RvcmUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkRGlyZWN0aW9uVG9Sb3V0ZXNGZWF0dXJlU3RvcmUoXHJcbiAgcm91dGVzRmVhdHVyZVN0b3JlOiBSb3V0ZXNGZWF0dXJlU3RvcmUsXHJcbiAgZGlyZWN0aW9uOiBEaXJlY3Rpb24sXHJcbiAgcHJvamVjdGlvbjogc3RyaW5nLFxyXG4gIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlLFxyXG4gIG1vdmVUb0V4dGVudCA9IGZhbHNlXHJcbikge1xyXG4gIGNvbnN0IGdlb20gPSBkaXJlY3Rpb24uZ2VvbWV0cnkuY29vcmRpbmF0ZXM7XHJcbiAgY29uc3QgZ2VvbWV0cnk0MzI2ID0gbmV3IG9sR2VvbS5MaW5lU3RyaW5nKGdlb20pO1xyXG4gIGNvbnN0IGdlb21ldHJ5ID0gZ2VvbWV0cnk0MzI2LnRyYW5zZm9ybShcclxuICAgIHByb2plY3Rpb24sXHJcbiAgICByb3V0ZXNGZWF0dXJlU3RvcmUubWFwLnByb2plY3Rpb25cclxuICApO1xyXG5cclxuICBjb25zdCBnZW9qc29uR2VvbSA9IG5ldyBPbEdlb0pTT04oKS53cml0ZUdlb21ldHJ5T2JqZWN0KGdlb21ldHJ5LCB7XHJcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogcm91dGVzRmVhdHVyZVN0b3JlLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgZGF0YVByb2plY3Rpb246IHJvdXRlc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvblxyXG4gIH0pIGFzIEZlYXR1cmVHZW9tZXRyeTtcclxuXHJcbiAgY29uc3QgcHJldmlvdXNSb3V0ZSA9IHJvdXRlc0ZlYXR1cmVTdG9yZS5nZXQoZGlyZWN0aW9uLmlkKTtcclxuICBjb25zdCBwcmV2aW91c1JvdXRlUmV2aXNpb24gPSBwcmV2aW91c1JvdXRlID8gcHJldmlvdXNSb3V0ZS5tZXRhLnJldmlzaW9uIDogMDtcclxuXHJcbiAgY29uc3Qgcm91dGVGZWF0dXJlU3RvcmU6IEZlYXR1cmVXaXRoRGlyZWN0aW9uID0ge1xyXG4gICAgdHlwZTogRkVBVFVSRSxcclxuICAgIGdlb21ldHJ5OiBnZW9qc29uR2VvbSxcclxuICAgIHByb2plY3Rpb246IHJvdXRlc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvbixcclxuICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgaWQ6IGRpcmVjdGlvbi5pZCxcclxuICAgICAgdHlwZTogRGlyZWN0aW9uVHlwZS5Sb3V0ZSxcclxuICAgICAgYWN0aXZlLFxyXG4gICAgICBkaXJlY3Rpb25cclxuICAgIH0sXHJcbiAgICBtZXRhOiB7XHJcbiAgICAgIGlkOiBkaXJlY3Rpb24uaWQsXHJcbiAgICAgIHJldmlzaW9uOiBwcmV2aW91c1JvdXRlUmV2aXNpb24gKyAxXHJcbiAgICB9LFxyXG4gICAgb2w6IG5ldyBvbEZlYXR1cmUoeyBnZW9tZXRyeSB9KVxyXG4gIH07XHJcbiAgcm91dGVzRmVhdHVyZVN0b3JlLnVwZGF0ZShyb3V0ZUZlYXR1cmVTdG9yZSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREaXN0YW5jZShkaXN0YW5jZTogbnVtYmVyKTogc3RyaW5nIHtcclxuICBpZiAoZGlzdGFuY2UgPT09IDApIHtcclxuICAgIHJldHVybjtcclxuICB9XHJcbiAgaWYgKGRpc3RhbmNlID49IDEwMDAwMCkge1xyXG4gICAgcmV0dXJuIE51bWJlclV0aWxzLnJvdW5kVG9ORGVjaW1hbChNYXRoLnJvdW5kKGRpc3RhbmNlKSAvIDEwMDAsIDEpICsgJyBrbSc7XHJcbiAgfVxyXG4gIGlmIChkaXN0YW5jZSA+PSAxMDAwMCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgTnVtYmVyVXRpbHMucm91bmRUb05EZWNpbWFsKE1hdGgucm91bmQoZGlzdGFuY2UpIC8gMTAwIC8gMTAsIDEpICsgJyBrbSdcclxuICAgICk7XHJcbiAgfVxyXG4gIGlmIChkaXN0YW5jZSA+PSAxMDAwKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBOdW1iZXJVdGlscy5yb3VuZFRvTkRlY2ltYWwoTWF0aC5yb3VuZChkaXN0YW5jZSkgLyAxMDAgLyAxMCwgMSkgKyAnIGttJ1xyXG4gICAgKTtcclxuICB9XHJcbiAgcmV0dXJuIE51bWJlclV0aWxzLnJvdW5kVG9ORGVjaW1hbChkaXN0YW5jZSwgMCkgKyAnIG0nO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RHVyYXRpb24oZHVyYXRpb246IG51bWJlcik6IHN0cmluZyB7XHJcbiAgaWYgKGR1cmF0aW9uID49IDM2MDApIHtcclxuICAgIGNvbnN0IGhvdXIgPSBNYXRoLmZsb29yKGR1cmF0aW9uIC8gMzYwMCk7XHJcbiAgICBjb25zdCBtaW51dGUgPSBNYXRoLnJvdW5kKChkdXJhdGlvbiAvIDM2MDAgLSBob3VyKSAqIDYwKTtcclxuICAgIGlmIChtaW51dGUgPT09IDYwKSB7XHJcbiAgICAgIHJldHVybiBob3VyICsgMSArICcgaCc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaG91ciArICcgaCAnICsgbWludXRlICsgJyBtaW4nO1xyXG4gIH1cclxuXHJcbiAgaWYgKGR1cmF0aW9uID49IDYwKSB7XHJcbiAgICByZXR1cm4gTWF0aC5yb3VuZChkdXJhdGlvbiAvIDYwKSArICcgbWluJztcclxuICB9XHJcbiAgcmV0dXJuIGR1cmF0aW9uICsgJyBzJztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEluc3RydWN0aW9uKFxyXG4gIHR5cGUsXHJcbiAgbW9kaWZpZXIsXHJcbiAgcm91dGUsXHJcbiAgZGlyZWN0aW9uLFxyXG4gIHN0ZXBQb3NpdGlvbixcclxuICBleGl0LFxyXG4gIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gIGxhc3RTdGVwID0gZmFsc2VcclxuKSB7XHJcbiAgY29uc3QgdHJhbnNsYXRlID0gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZTtcclxuICBsZXQgZGlyZWN0aXZlO1xyXG4gIGxldCBpbWFnZSA9ICdmb3J3YXJkJztcclxuICBsZXQgY3NzQ2xhc3MgPSAncm90YXRlLTI3MCc7XHJcbiAgY29uc3QgdHJhbnNsYXRlZERpcmVjdGlvbiA9IHRyYW5zbGF0ZUJlYXJpbmcoZGlyZWN0aW9uLCBsYW5ndWFnZVNlcnZpY2UpO1xyXG4gIGNvbnN0IHRyYW5zbGF0ZWRNb2RpZmllciA9IHRyYW5zbGF0ZU1vZGlmaWVyKG1vZGlmaWVyLCBsYW5ndWFnZVNlcnZpY2UpO1xyXG4gIGNvbnN0IHByZWZpeCA9XHJcbiAgICBtb2RpZmllciA9PT0gJ3N0cmFpZ2h0J1xyXG4gICAgICA/ICcnXHJcbiAgICAgIDogdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5tb2RpZmllci5wcmVmaXgnKTtcclxuXHJcbiAgbGV0IGFnZ3JlZ2F0ZWREaXJlY3Rpb24gPSBwcmVmaXggKyB0cmFuc2xhdGVkTW9kaWZpZXI7XHJcblxyXG4gIGlmIChtb2RpZmllcj8uc2VhcmNoKCdzbGlnaHQnKSA+PSAwKSB7XHJcbiAgICBhZ2dyZWdhdGVkRGlyZWN0aW9uID0gdHJhbnNsYXRlZE1vZGlmaWVyO1xyXG4gIH1cclxuXHJcbiAgaWYgKG1vZGlmaWVyID09PSAndXR1cm4nKSB7XHJcbiAgICBpbWFnZSA9ICdmb3J3YXJkJztcclxuICAgIGNzc0NsYXNzID0gJ3JvdGF0ZS05MCc7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NoYXJwIHJpZ2h0Jykge1xyXG4gICAgaW1hZ2UgPSAnc3ViZGlyZWN0b3J5LWFycm93LXJpZ2h0JztcclxuICAgIGNzc0NsYXNzID0gJ2ljb24tZmxpcHBlZCc7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgaW1hZ2UgPSAnc3ViZGlyZWN0b3J5LWFycm93LXJpZ2h0JztcclxuICAgIGNzc0NsYXNzID0gJ2ljb24tZmxpcHBlZCc7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NsaWdodCByaWdodCcpIHtcclxuICAgIGltYWdlID0gJ2ZvcndhcmQnO1xyXG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTI5MCc7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3N0cmFpZ2h0Jykge1xyXG4gICAgaW1hZ2UgPSAnZm9yd2FyZCc7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NsaWdodCBsZWZ0Jykge1xyXG4gICAgaW1hZ2UgPSAnZm9yd2FyZCc7XHJcbiAgICBjc3NDbGFzcyA9ICdyb3RhdGUtMjUwJztcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnbGVmdCcpIHtcclxuICAgIGltYWdlID0gJ3N1YmRpcmVjdG9yeS1hcnJvdy1sZWZ0JztcclxuICAgIGNzc0NsYXNzID0gJ2ljb24tZmxpcHBlZCc7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NoYXJwIGxlZnQnKSB7XHJcbiAgICBpbWFnZSA9ICdzdWJkaXJlY3RvcnktYXJyb3ctbGVmdCc7XHJcbiAgICBjc3NDbGFzcyA9ICdpY29uLWZsaXBwZWQnO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGUgPT09ICd0dXJuJykge1xyXG4gICAgaWYgKG1vZGlmaWVyID09PSAnc3RyYWlnaHQnKSB7XHJcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMudHVybi5zdHJhaWdodCcsIHtcclxuICAgICAgICByb3V0ZVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICd1dHVybicpIHtcclxuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy50dXJuLnV0dXJuJywgeyByb3V0ZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMudHVybi5lbHNlJywge1xyXG4gICAgICAgIHJvdXRlLFxyXG4gICAgICAgIGFnZ3JlZ2F0ZWREaXJlY3Rpb24sXHJcbiAgICAgICAgdHJhbnNsYXRlZE1vZGlmaWVyXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ25ldyBuYW1lJykge1xyXG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5uZXcgbmFtZScsIHtcclxuICAgICAgcm91dGUsXHJcbiAgICAgIHRyYW5zbGF0ZWREaXJlY3Rpb25cclxuICAgIH0pO1xyXG4gICAgaW1hZ2UgPSAnY29tcGFzcyc7XHJcbiAgICBjc3NDbGFzcyA9ICcnO1xyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2RlcGFydCcpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuZGVwYXJ0Jywge1xyXG4gICAgICByb3V0ZSxcclxuICAgICAgdHJhbnNsYXRlZERpcmVjdGlvblxyXG4gICAgfSk7XHJcbiAgICBpbWFnZSA9ICdjb21wYXNzJztcclxuICAgIGNzc0NsYXNzID0gJyc7XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnYXJyaXZlJykge1xyXG4gICAgaWYgKGxhc3RTdGVwKSB7XHJcbiAgICAgIGNvbnN0IGNvbWEgPSAhdHJhbnNsYXRlZE1vZGlmaWVyID8gJycgOiAnLCAnO1xyXG4gICAgICBhZ2dyZWdhdGVkRGlyZWN0aW9uID0gIXRyYW5zbGF0ZWRNb2RpZmllciA/ICcnIDogYWdncmVnYXRlZERpcmVjdGlvbjtcclxuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5hcnJpdmUubGFzdFN0ZXAnLCB7XHJcbiAgICAgICAgY29tYSxcclxuICAgICAgICBhZ2dyZWdhdGVkRGlyZWN0aW9uXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5hcnJpdmUuaW50ZXJtZWRpYXRlJywge1xyXG4gICAgICAgIHJvdXRlXHJcbiAgICAgIH0pO1xyXG4gICAgICBpbWFnZSA9ICdtYXAtbWFya2VyJztcclxuICAgICAgY3NzQ2xhc3MgPSAnJztcclxuICAgIH1cclxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdtZXJnZScpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMubWVyZ2UnLCB7IHJvdXRlIH0pO1xyXG4gICAgaW1hZ2UgPSAnZm9yd2FyZCc7XHJcbiAgICBjc3NDbGFzcyA9ICdyb3RhdGUtMjcwJztcclxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdvbiByYW1wJykge1xyXG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5vbiByYW1wJywge1xyXG4gICAgICBhZ2dyZWdhdGVkRGlyZWN0aW9uXHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdvZmYgcmFtcCcpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMub2ZmIHJhbXAnLCB7XHJcbiAgICAgIGFnZ3JlZ2F0ZWREaXJlY3Rpb25cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2ZvcmsnKSB7XHJcbiAgICBpZiAobW9kaWZpZXIuc2VhcmNoKCdsZWZ0JykgPj0gMCkge1xyXG4gICAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmZvcmsubGVmdCcsIHsgcm91dGUgfSk7XHJcbiAgICB9IGVsc2UgaWYgKG1vZGlmaWVyLnNlYXJjaCgncmlnaHQnKSA+PSAwKSB7XHJcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuZm9yay5yaWdodCcsIHsgcm91dGUgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmZvcmsuZWxzZScsIHsgcm91dGUgfSk7XHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnZW5kIG9mIHJvYWQnKSB7XHJcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmVuZCBvZiByb2FkJywge1xyXG4gICAgICB0cmFuc2xhdGVkTW9kaWZpZXIsXHJcbiAgICAgIHJvdXRlXHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICd1c2UgbGFuZScpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMudXNlIGxhbmUnKTtcclxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdjb250aW51ZScgJiYgbW9kaWZpZXIgIT09ICd1dHVybicpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuY29udGludWUubm90VXR1cm4nLCB7XHJcbiAgICAgIHJvdXRlXHJcbiAgICB9KTtcclxuICAgIGltYWdlID0gJ2ZvcndhcmQnO1xyXG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTI3MCc7XHJcbiAgfSBlbHNlIGlmICh0eXBlID09PSAncm91bmRhYm91dCcpIHtcclxuICAgIGNvbnN0IGNudFN1ZmZpeCA9XHJcbiAgICAgIGV4aXQgPT09IDFcclxuICAgICAgICA/IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuY250U3VmZml4LmZpcnN0JylcclxuICAgICAgICA6IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuY250U3VmZml4LnNlY29uZEFuZE1vcmUnKTtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMucm91bmRhYm91dCcsIHtcclxuICAgICAgZXhpdCxcclxuICAgICAgY250U3VmZml4LFxyXG4gICAgICByb3V0ZVxyXG4gICAgfSk7XHJcbiAgICBpbWFnZSA9ICdjaGFydC1kb251dCc7XHJcbiAgICBjc3NDbGFzcyA9ICcnO1xyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3JvdGFyeScpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMucm90YXJ5Jyk7XHJcbiAgICBpbWFnZSA9ICdjaGFydC1kb251dCc7XHJcbiAgICBjc3NDbGFzcyA9ICcnO1xyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3JvdW5kYWJvdXQgdHVybicpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMucm91bmRhYm91dCB0dXJuJyk7XHJcbiAgICBpbWFnZSA9ICdjaGFydC1kb251dCc7XHJcbiAgICBjc3NDbGFzcyA9ICcnO1xyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2V4aXQgcm91bmRhYm91dCcpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuZXhpdCByb3VuZGFib3V0Jywge1xyXG4gICAgICByb3V0ZVxyXG4gICAgfSk7XHJcbiAgICBpbWFnZSA9ICdmb3J3YXJkJztcclxuICAgIGNzc0NsYXNzID0gJ3JvdGF0ZS0yNzAnO1xyXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ25vdGlmaWNhdGlvbicpIHtcclxuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMubm90aWZpY2F0aW9uJyk7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3V0dXJuJykge1xyXG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy51dHVyblRleHQnLCB7XHJcbiAgICAgIHRyYW5zbGF0ZWREaXJlY3Rpb24sXHJcbiAgICAgIHJvdXRlXHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy51bmtub3duJyk7XHJcbiAgfVxyXG5cclxuICBpbWFnZSA9IGxhc3RTdGVwID8gJ2ZsYWctdmFyaWFudCcgOiBpbWFnZTtcclxuICBjc3NDbGFzcyA9IGxhc3RTdGVwID8gJycgOiBjc3NDbGFzcztcclxuICBpbWFnZSA9IHN0ZXBQb3NpdGlvbiA9PT0gMCA/ICdjb21wYXNzJyA6IGltYWdlO1xyXG4gIGNzc0NsYXNzID0gc3RlcFBvc2l0aW9uID09PSAwID8gJycgOiBjc3NDbGFzcztcclxuXHJcbiAgcmV0dXJuIHsgaW5zdHJ1Y3Rpb246IGRpcmVjdGl2ZSwgaW1hZ2UsIGNzc0NsYXNzIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVNb2RpZmllcihtb2RpZmllciwgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UpIHtcclxuICBjb25zdCB0cmFuc2xhdGUgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xyXG4gIGlmIChtb2RpZmllciA9PT0gJ3V0dXJuJykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMudXR1cm4nKTtcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2hhcnAgcmlnaHQnKSB7XHJcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5zaGFycCByaWdodCcpO1xyXG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdyaWdodCcpIHtcclxuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnJpZ2h0Jyk7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NsaWdodCByaWdodCcpIHtcclxuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnNsaWdodCByaWdodCcpO1xyXG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzaGFycCBsZWZ0Jykge1xyXG4gICAgcmV0dXJuIGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnNoYXJwIGxlZnQnKTtcclxuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnbGVmdCcpIHtcclxuICAgIHJldHVybiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5sZWZ0Jyk7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NsaWdodCBsZWZ0Jykge1xyXG4gICAgcmV0dXJuIGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnNsaWdodCBsZWZ0Jyk7XHJcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3N0cmFpZ2h0Jykge1xyXG4gICAgcmV0dXJuIGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnN0cmFpZ2h0Jyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBtb2RpZmllcjtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVCZWFyaW5nKFxyXG4gIGJlYXJpbmc6IG51bWJlcixcclxuICBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZVxyXG4pIHtcclxuICBjb25zdCB0cmFuc2xhdGUgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xyXG4gIGlmIChiZWFyaW5nID49IDMzNyB8fCBiZWFyaW5nIDwgMjMpIHtcclxuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXJkaW5hbFBvaW50cy5uJyk7XHJcbiAgfSBlbHNlIGlmIChiZWFyaW5nIDwgNjcpIHtcclxuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXJkaW5hbFBvaW50cy5uZScpO1xyXG4gIH0gZWxzZSBpZiAoYmVhcmluZyA8IDExMykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLmUnKTtcclxuICB9IGVsc2UgaWYgKGJlYXJpbmcgPCAxNTcpIHtcclxuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXJkaW5hbFBvaW50cy5zZScpO1xyXG4gIH0gZWxzZSBpZiAoYmVhcmluZyA8IDIwMykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLnMnKTtcclxuICB9IGVsc2UgaWYgKGJlYXJpbmcgPCAyNDcpIHtcclxuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXJkaW5hbFBvaW50cy5zdycpO1xyXG4gIH0gZWxzZSBpZiAoYmVhcmluZyA8IDI5Mykge1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLncnKTtcclxuICB9IGVsc2UgaWYgKGJlYXJpbmcgPCAzMzcpIHtcclxuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXJkaW5hbFBvaW50cy5udycpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
559
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFaEQsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ25DLE9BQU8sU0FBUyxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsYUFBYSxFQUNkLE1BQU0sbUJBQW1CLENBQUM7QUFjM0I7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFVBQXNCLEVBQ3RCLFlBQTRCLEtBQUssRUFDakMsS0FBSyxHQUFHLFVBQVU7SUFFbEIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDbkIs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T0FBTztJQUNULENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5pbXBvcnQgeyBOdW1iZXJVdGlscywgdXVpZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IG9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuaW1wb3J0ICogYXMgb2xHZW9tIGZyb20gJ29sL2dlb20nO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcbmltcG9ydCAqIGFzIG9sUHJvaiBmcm9tICdvbC9wcm9qJztcbmltcG9ydCAqIGFzIG9sU3R5bGUgZnJvbSAnb2wvc3R5bGUnO1xuXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyB0cnlCaW5kU3RvcmVMYXllciB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUtc3RvcmUudXRpbHMnO1xuaW1wb3J0IHsgRkVBVFVSRSwgRmVhdHVyZU1vdGlvbiB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuZW51bXMnO1xuaW1wb3J0IHsgRmVhdHVyZUdlb21ldHJ5IH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IHRyeUFkZExvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMudXRpbHMnO1xuaW1wb3J0IHsgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9sb2FkaW5nJztcbmltcG9ydCB7IFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXInO1xuaW1wb3J0IHsgY3JlYXRlT3ZlcmxheU1hcmtlclN0eWxlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc2hhcmVkL292ZXJsYXkvb3ZlcmxheS1tYXJrZXItc3R5bGUudXRpbHMnO1xuaW1wb3J0IHtcbiAgRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUsXG4gIERpcmVjdGlvblR5cGVcbn0gZnJvbSAnLi9kaXJlY3Rpb25zLmVudW0nO1xuaW1wb3J0IHtcbiAgRGlyZWN0aW9uLFxuICBGZWF0dXJlV2l0aERpcmVjdGlvbixcbiAgRmVhdHVyZVdpdGhTdG9wLFxuICBTdG9wXG59IGZyb20gJy4vZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgUm91dGVzRmVhdHVyZVN0b3JlLFxuICBTdGVwRmVhdHVyZVN0b3JlLFxuICBTdG9wc0ZlYXR1cmVTdG9yZSxcbiAgU3RvcHNTdG9yZVxufSBmcm9tICcuL3N0b3JlJztcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IHVwZGF0IHRoZSBzb3J0IG9mIHRoZSBsaXN0IGJhc2Ugb24gdGhlIHByb3ZpZGVkIGZpZWxkLlxuICogQHBhcmFtIHNvdXJjZSBzdG9wIHN0b3JlXG4gKiBAcGFyYW0gZGlyZWN0aW9uIGFzYyAvIGRlc2Mgc29ydCBvcmRlclxuICogQHBhcmFtIGZpZWxkIHRoZSBmaWVsZCB0byB1c2UgdG8gc29ydCB0aGUgdmlld1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlU3RvcmVTb3J0aW5nKFxuICBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlLFxuICBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnID0gJ2FzYycsXG4gIGZpZWxkID0gJ3Bvc2l0aW9uJ1xuKSB7XG4gIHN0b3BzU3RvcmUudmlldy5zb3J0KHtcbiAgICBkaXJlY3Rpb24sXG4gICAgdmFsdWVBY2Nlc3NvcjogKGVudGl0eTogU3RvcCkgPT4gZW50aXR5W2ZpZWxkXVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKFxuICBpbmRleDogbnVtYmVyLFxuICB0b3RhbExlbmd0aFxuKTogRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUge1xuICBsZXQgcmVsYXRpdmVQb3NpdGlvbiA9IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlLkludGVybWVkaWF0ZTtcbiAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgcmVsYXRpdmVQb3NpdGlvbiA9IERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlLlN0YXJ0O1xuICB9IGVsc2UgaWYgKGluZGV4ID09PSB0b3RhbExlbmd0aCAtIDEpIHtcbiAgICByZWxhdGl2ZVBvc2l0aW9uID0gRGlyZWN0aW9uUmVsYXRpdmVQb3NpdGlvblR5cGUuRW5kO1xuICB9XG4gIHJldHVybiByZWxhdGl2ZVBvc2l0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZVN0b3BzUG9zaXRpb24oc3RvcHNTdG9yZTogU3RvcHNTdG9yZSkge1xuICBjb25zdCBzdG9wc1RvQ29tcHV0ZVBvc2l0aW9uID0gWy4uLnN0b3BzU3RvcmUuYWxsKCldO1xuICBzdG9wc1RvQ29tcHV0ZVBvc2l0aW9uLnNvcnQoKGEsIGIpID0+IGEucG9zaXRpb24gLSBiLnBvc2l0aW9uKTtcbiAgc3RvcHNUb0NvbXB1dGVQb3NpdGlvbi5tYXAoKHN0b3AsIGkpID0+IHtcbiAgICBzdG9wLnBvc2l0aW9uID0gaTtcbiAgICBzdG9wLnJlbGF0aXZlUG9zaXRpb24gPSBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbihcbiAgICAgIHN0b3AucG9zaXRpb24sXG4gICAgICBzdG9wc1RvQ29tcHV0ZVBvc2l0aW9uLmxlbmd0aFxuICAgICk7XG4gIH0pO1xuICBpZiAoc3RvcHNUb0NvbXB1dGVQb3NpdGlvbikge1xuICAgIHN0b3BzU3RvcmUudXBkYXRlTWFueShzdG9wc1RvQ29tcHV0ZVBvc2l0aW9uKTtcbiAgfVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uIHRoYXQgYWRkIGEgc3RvcCB0byB0aGUgc3RvcCBzdG9yZS4gU3RvcCBhcmUgYWx3YXlzIGFkZGVkIGJlZm9yZSB0aGUgbGFzdCBzdG9wLlxuICogQHBhcmFtIHN0b3BzU3RvcmUgc3RvcCBzdG9yZSBhcyBhbiBFbnRpdHlTdG9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkU3RvcFRvU3RvcmUoc3RvcHNTdG9yZTogU3RvcHNTdG9yZSk6IFN0b3Age1xuICBjb25zdCBpZCA9IHV1aWQoKTtcbiAgY29uc3Qgc3RvcHMgPSBzdG9wc1N0b3JlLmFsbCgpO1xuICBsZXQgcG9zaXRpb25zOiBudW1iZXJbXTtcbiAgaWYgKHN0b3BzU3RvcmUuY291bnQgPT09IDApIHtcbiAgICBwb3NpdGlvbnMgPSBbMF07XG4gIH0gZWxzZSB7XG4gICAgcG9zaXRpb25zID0gc3RvcHMubWFwKChzdG9wKSA9PiBzdG9wLnBvc2l0aW9uKTtcbiAgfVxuICBjb25zdCBtYXhQb3NpdGlvbjogbnVtYmVyID0gTWF0aC5tYXgoLi4ucG9zaXRpb25zKTtcbiAgY29uc3QgaW5zZXJ0UG9zaXRpb246IG51bWJlciA9IG1heFBvc2l0aW9uO1xuICBjb25zdCBsYXN0UG9zaXRpb246IG51bWJlciA9IG1heFBvc2l0aW9uICsgMTtcblxuICBjb25zdCBzdG9wVG9VcGRhdGUgPSBzdG9wc1N0b3JlXG4gICAgLmFsbCgpXG4gICAgLmZpbmQoKHN0b3ApID0+IHN0b3AucG9zaXRpb24gPT09IG1heFBvc2l0aW9uKTtcbiAgaWYgKHN0b3BUb1VwZGF0ZSkge1xuICAgIHN0b3BUb1VwZGF0ZS5wb3NpdGlvbiA9IGxhc3RQb3NpdGlvbjtcbiAgICBzdG9wVG9VcGRhdGUucmVsYXRpdmVQb3NpdGlvbiA9IGNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKFxuICAgICAgbGFzdFBvc2l0aW9uLFxuICAgICAgc3RvcHNTdG9yZS5jb3VudCArIDFcbiAgICApO1xuICB9XG5cbiAgc3RvcHNTdG9yZS5pbnNlcnQoe1xuICAgIGlkLFxuICAgIHBvc2l0aW9uOiBpbnNlcnRQb3NpdGlvbixcbiAgICByZWxhdGl2ZVBvc2l0aW9uOiBjb21wdXRlUmVsYXRpdmVQb3NpdGlvbihcbiAgICAgIGluc2VydFBvc2l0aW9uLFxuICAgICAgc3RvcHNTdG9yZS5jb3VudCArIDFcbiAgICApXG4gIH0pO1xuXG4gIHVwZGF0ZVN0b3JlU29ydGluZyhzdG9wc1N0b3JlKTtcbiAgcmV0dXJuIHN0b3BzU3RvcmUuZ2V0KGlkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVN0b3BGcm9tU3RvcmUoc3RvcHNTdG9yZTogU3RvcHNTdG9yZSwgc3RvcDogU3RvcCkge1xuICBzdG9wc1N0b3JlLmRlbGV0ZShzdG9wKTtcbiAgY29tcHV0ZVN0b3BzUG9zaXRpb24oc3RvcHNTdG9yZSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgc3R5bGUgZm9yIHRoZSBkaXJlY3Rpb25zIHN0b3BzIGFuZCByb3V0ZXNcbiAqIEBwYXJhbSBmZWF0dXJlIE9sRmVhdHVyZVxuICogQHJldHVybnMgT0wgc3R5bGUgZnVuY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpcmVjdGlvbnNTdHlsZShcbiAgZmVhdHVyZTogb2xGZWF0dXJlPE9sR2VvbWV0cnk+LFxuICByZXNvbHV0aW9uOiBudW1iZXJcbik6IG9sU3R5bGUuU3R5bGUgfCBvbFN0eWxlLlN0eWxlW10ge1xuICBjb25zdCB2ZXJ0ZXhTdHlsZSA9IFtcbiAgICBuZXcgb2xTdHlsZS5TdHlsZSh7XG4gICAgICBnZW9tZXRyeTogZmVhdHVyZS5nZXRHZW9tZXRyeSgpLFxuICAgICAgaW1hZ2U6IG5ldyBvbFN0eWxlLkNpcmNsZSh7XG4gICAgICAgIHJhZGl1czogNyxcbiAgICAgICAgc3Ryb2tlOiBuZXcgb2xTdHlsZS5TdHJva2UoeyBjb2xvcjogJyNGRjAwMDAnLCB3aWR0aDogMyB9KVxuICAgICAgfSlcbiAgICB9KVxuICBdO1xuXG4gIGNvbnN0IHN0b3BTdHlsZSA9IGNyZWF0ZU92ZXJsYXlNYXJrZXJTdHlsZSh7XG4gICAgdGV4dDogZmVhdHVyZS5nZXQoJ3N0b3BUZXh0JyksXG4gICAgb3BhY2l0eTogZmVhdHVyZS5nZXQoJ3N0b3BPcGFjaXR5JyksXG4gICAgbWFya2VyQ29sb3I6IGZlYXR1cmUuZ2V0KCdzdG9wQ29sb3InKSxcbiAgICBtYXJrZXJPdXRsaW5lQ29sb3I6IFsyNTUsIDI1NSwgMjU1XVxuICB9KTtcblxuICBjb25zdCByb3V0ZVN0eWxlID0gW1xuICAgIG5ldyBvbFN0eWxlLlN0eWxlKHtcbiAgICAgIHN0cm9rZTogbmV3IG9sU3R5bGUuU3Ryb2tlKHtcbiAgICAgICAgY29sb3I6IGByZ2JhKDEwNiwgMTIxLCAxMzAsICR7ZmVhdHVyZS5nZXQoJ2FjdGl2ZScpID8gMC43NSA6IDB9KWAsXG4gICAgICAgIHdpZHRoOiAxMFxuICAgICAgfSlcbiAgICB9KSxcbiAgICBuZXcgb2xTdHlsZS5TdHlsZSh7XG4gICAgICBzdHJva2U6IG5ldyBvbFN0eWxlLlN0cm9rZSh7XG4gICAgICAgIGNvbG9yOiBgcmdiYSg3OSwgMTY5LCAyMjEsICR7ZmVhdHVyZS5nZXQoJ2FjdGl2ZScpID8gMC43NSA6IDB9KWAsXG4gICAgICAgIHdpZHRoOiA2XG4gICAgICB9KVxuICAgIH0pXG4gIF07XG5cbiAgaWYgKGZlYXR1cmUuZ2V0KCd0eXBlJykgPT09IERpcmVjdGlvblR5cGUuU3RvcCkge1xuICAgIHJldHVybiBzdG9wU3R5bGU7XG4gIH1cbiAgaWYgKGZlYXR1cmUuZ2V0KCd0eXBlJykgPT09ICd2ZXJ0ZXgnKSB7XG4gICAgcmV0dXJuIHZlcnRleFN0eWxlO1xuICB9XG4gIGlmIChmZWF0dXJlLmdldCgndHlwZScpID09PSBEaXJlY3Rpb25UeXBlLlJvdXRlKSB7XG4gICAgcmV0dXJuIHJvdXRlU3R5bGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRTdG9wc0ZlYXR1cmVTdG9yZShcbiAgc3RvcHNGZWF0dXJlU3RvcmU6IFN0b3BzRmVhdHVyZVN0b3JlLFxuICBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZVxuKSB7XG4gIGNvbnN0IGxvYWRpbmdTdHJhdGVneSA9IG5ldyBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3koe1xuICAgIG1vdGlvbjogRmVhdHVyZU1vdGlvbi5Ob25lXG4gIH0pO1xuXG4gIGNvbnN0IHN0b3BzTGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcbiAgICBpZDogJ2lnby1kaXJlY3Rpb24tc3RvcHMtbGF5ZXInLFxuICAgIHRpdGxlOiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5zdG9wTGF5ZXInXG4gICAgKSxcbiAgICB6SW5kZXg6IDkxMSxcbiAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxuICAgIHNob3dJbkxheWVyTGlzdDogdHJ1ZSxcbiAgICB3b3Jrc3BhY2U6IHtcbiAgICAgIGVuYWJsZWQ6IGZhbHNlXG4gICAgfSxcbiAgICBsaW5rZWRMYXllcnM6IHtcbiAgICAgIGxpbmtJZDogJ2lnby1kaXJlY3Rpb24tc3RvcHMtbGF5ZXInLFxuICAgICAgbGlua3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHN5bmNlZERlbGV0ZTogdHJ1ZSxcbiAgICAgICAgICBsaW5rZWRJZHM6IFsnaWdvLWRpcmVjdGlvbi1yb3V0ZS1sYXllciddLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtdXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIGV4cG9ydGFibGU6IHRydWUsXG4gICAgYnJvd3NhYmxlOiBmYWxzZSxcbiAgICBzdHlsZTogZGlyZWN0aW9uc1N0eWxlXG4gIH0pO1xuICB0cnlCaW5kU3RvcmVMYXllcihzdG9wc0ZlYXR1cmVTdG9yZSwgc3RvcHNMYXllcik7XG4gIHN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLnZpc2libGUgPSB0cnVlO1xuICB0cnlBZGRMb2FkaW5nU3RyYXRlZ3koc3RvcHNGZWF0dXJlU3RvcmUsIGxvYWRpbmdTdHJhdGVneSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0Um91dGVzRmVhdHVyZVN0b3JlKFxuICByb3V0ZXNGZWF0dXJlU3RvcmU6IFJvdXRlc0ZlYXR1cmVTdG9yZSxcbiAgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2Vcbikge1xuICBjb25zdCBsb2FkaW5nU3RyYXRlZ3kgPSBuZXcgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KHtcbiAgICBtb3Rpb246IEZlYXR1cmVNb3Rpb24uTm9uZVxuICB9KTtcblxuICBjb25zdCByb3V0ZUxheWVyID0gbmV3IFZlY3RvckxheWVyKHtcbiAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXG4gICAgaWQ6ICdpZ28tZGlyZWN0aW9uLXJvdXRlLWxheWVyJyxcbiAgICB0aXRsZTogbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ucm91dGVMYXllcidcbiAgICApLFxuICAgIHpJbmRleDogOTEwLFxuICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXG4gICAgc2hvd0luTGF5ZXJMaXN0OiB0cnVlLFxuICAgIHdvcmtzcGFjZToge1xuICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICB9LFxuICAgIGxpbmtlZExheWVyczoge1xuICAgICAgbGlua0lkOiAnaWdvLWRpcmVjdGlvbi1yb3V0ZS1sYXllcidcbiAgICB9LFxuICAgIGV4cG9ydGFibGU6IHRydWUsXG4gICAgYnJvd3NhYmxlOiBmYWxzZSxcbiAgICBzdHlsZTogZGlyZWN0aW9uc1N0eWxlXG4gIH0pO1xuICB0cnlCaW5kU3RvcmVMYXllcihyb3V0ZXNGZWF0dXJlU3RvcmUsIHJvdXRlTGF5ZXIpO1xuICByb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIudmlzaWJsZSA9IHRydWU7XG4gIHRyeUFkZExvYWRpbmdTdHJhdGVneShyb3V0ZXNGZWF0dXJlU3RvcmUsIGxvYWRpbmdTdHJhdGVneSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0U3RlcEZlYXR1cmVTdG9yZShzdGVwRmVhdHVyZVN0b3JlOiBTdGVwRmVhdHVyZVN0b3JlKSB7XG4gIGNvbnN0IGxvYWRpbmdTdHJhdGVneSA9IG5ldyBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3koe1xuICAgIG1vdGlvbjogRmVhdHVyZU1vdGlvbi5Ob25lXG4gIH0pO1xuXG4gIGNvbnN0IHN0ZXBMYXllciA9IG5ldyBWZWN0b3JMYXllcih7XG4gICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxuICAgIGlkOiAnaWdvLWRpcmVjdGlvbi1zdGVwLWxheWVyJyxcbiAgICB0aXRsZTogJycsXG4gICAgekluZGV4OiA5MTAsXG4gICAgc291cmNlOiBuZXcgRmVhdHVyZURhdGFTb3VyY2UoKSxcbiAgICBzaG93SW5MYXllckxpc3Q6IGZhbHNlLFxuICAgIHdvcmtzcGFjZToge1xuICAgICAgZW5hYmxlZDogZmFsc2VcbiAgICB9LFxuICAgIGxpbmtlZExheWVyczoge1xuICAgICAgbGlua0lkOiAnaWdvLWRpcmVjdGlvbi1yb3V0ZS1sYXllcidcbiAgICB9LFxuICAgIGV4cG9ydGFibGU6IGZhbHNlLFxuICAgIGJyb3dzYWJsZTogZmFsc2UsXG4gICAgc3R5bGU6IGRpcmVjdGlvbnNTdHlsZVxuICB9KTtcbiAgdHJ5QmluZFN0b3JlTGF5ZXIoc3RlcEZlYXR1cmVTdG9yZSwgc3RlcExheWVyKTtcbiAgc3RlcEZlYXR1cmVTdG9yZS5sYXllci52aXNpYmxlID0gdHJ1ZTtcbiAgdHJ5QWRkTG9hZGluZ1N0cmF0ZWd5KHN0ZXBGZWF0dXJlU3RvcmUsIGxvYWRpbmdTdHJhdGVneSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRTdG9wVG9TdG9wc0ZlYXR1cmVTdG9yZShcbiAgc3RvcDogU3RvcCxcbiAgc3RvcHNTdG9yZTogU3RvcHNTdG9yZSxcbiAgc3RvcHNGZWF0dXJlU3RvcmU6IFN0b3BzRmVhdHVyZVN0b3JlLFxuICBwcm9qZWN0aW9uOiBzdHJpbmcsXG4gIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlXG4pIHtcbiAgbGV0IHN0b3BDb2xvcjtcbiAgbGV0IHN0b3BUZXh0O1xuXG4gIHN3aXRjaCAoc3RvcC5yZWxhdGl2ZVBvc2l0aW9uKSB7XG4gICAgY2FzZSBEaXJlY3Rpb25SZWxhdGl2ZVBvc2l0aW9uVHlwZS5TdGFydDpcbiAgICAgIHN0b3BDb2xvciA9ICcjMDA4MDAwJztcbiAgICAgIHN0b3BUZXh0ID0gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5zdGFydCdcbiAgICAgICk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIERpcmVjdGlvblJlbGF0aXZlUG9zaXRpb25UeXBlLkVuZDpcbiAgICAgIHN0b3BDb2xvciA9ICcjZjY0MTM5JztcbiAgICAgIHN0b3BUZXh0ID0gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5lbmQnXG4gICAgICApO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHN0b3BDb2xvciA9ICcjZmZkNzAwJztcbiAgICAgIHN0b3BUZXh0ID1cbiAgICAgICAgbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmludGVybWVkaWF0ZSdcbiAgICAgICAgKSArXG4gICAgICAgICcgIycgK1xuICAgICAgICBzdG9wLnBvc2l0aW9uO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBjb25zdCBnZW9tZXRyeSA9IG5ldyBvbEdlb20uUG9pbnQoXG4gICAgb2xQcm9qLnRyYW5zZm9ybShcbiAgICAgIHN0b3AuY29vcmRpbmF0ZXMsXG4gICAgICBwcm9qZWN0aW9uLFxuICAgICAgc3RvcHNGZWF0dXJlU3RvcmUubWFwLnByb2plY3Rpb25cbiAgICApXG4gICk7XG5cbiAgY29uc3QgZ2VvanNvbkdlb20gPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChnZW9tZXRyeSwge1xuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBzdG9wc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvbixcbiAgICBkYXRhUHJvamVjdGlvbjogc3RvcHNGZWF0dXJlU3RvcmUubWFwLnByb2plY3Rpb25cbiAgfSkgYXMgRmVhdHVyZUdlb21ldHJ5O1xuXG4gIGNvbnN0IHByZXZpb3VzU3RvcCA9IHN0b3BzRmVhdHVyZVN0b3JlLmdldChzdG9wLmlkKTtcbiAgY29uc3QgcHJldmlvdXNTdG9wUmV2aXNpb24gPSBwcmV2aW91c1N0b3AgPyBwcmV2aW91c1N0b3AubWV0YS5yZXZpc2lvbiA6IDA7XG5cbiAgY29uc3Qgc3RvcEZlYXR1cmVTdG9yZTogRmVhdHVyZVdpdGhTdG9wID0ge1xuICAgIHR5cGU6IEZFQVRVUkUsXG4gICAgZ2VvbWV0cnk6IGdlb2pzb25HZW9tLFxuICAgIHByb2plY3Rpb246IHN0b3BzRmVhdHVyZVN0b3JlLm1hcC5wcm9qZWN0aW9uLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGlkOiBzdG9wLmlkLFxuICAgICAgdHlwZTogRGlyZWN0aW9uVHlwZS5TdG9wLFxuICAgICAgc3RvcFRleHQsXG4gICAgICBzdG9wQ29sb3IsXG4gICAgICBzdG9wT3BhY2l0eTogMSxcbiAgICAgIHN0b3BcbiAgICB9LFxuICAgIG1ldGE6IHtcbiAgICAgIGlkOiBzdG9wLmlkLFxuICAgICAgcmV2aXNpb246IHByZXZpb3VzU3RvcFJldmlzaW9uICsgMVxuICAgIH0sXG4gICAgb2w6IG5ldyBvbEZlYXR1cmUoeyBnZW9tZXRyeSB9KVxuICB9O1xuICBzdG9wc0ZlYXR1cmVTdG9yZS51cGRhdGUoc3RvcEZlYXR1cmVTdG9yZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGREaXJlY3Rpb25Ub1JvdXRlc0ZlYXR1cmVTdG9yZShcbiAgcm91dGVzRmVhdHVyZVN0b3JlOiBSb3V0ZXNGZWF0dXJlU3RvcmUsXG4gIGRpcmVjdGlvbjogRGlyZWN0aW9uLFxuICBwcm9qZWN0aW9uOiBzdHJpbmcsXG4gIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlLFxuICBtb3ZlVG9FeHRlbnQgPSBmYWxzZVxuKSB7XG4gIGNvbnN0IGdlb20gPSBkaXJlY3Rpb24uZ2VvbWV0cnkuY29vcmRpbmF0ZXM7XG4gIGNvbnN0IGdlb21ldHJ5NDMyNiA9IG5ldyBvbEdlb20uTGluZVN0cmluZyhnZW9tKTtcbiAgY29uc3QgZ2VvbWV0cnkgPSBnZW9tZXRyeTQzMjYudHJhbnNmb3JtKFxuICAgIHByb2plY3Rpb24sXG4gICAgcm91dGVzRmVhdHVyZVN0b3JlLm1hcC5wcm9qZWN0aW9uXG4gICk7XG5cbiAgY29uc3QgZ2VvanNvbkdlb20gPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChnZW9tZXRyeSwge1xuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiByb3V0ZXNGZWF0dXJlU3RvcmUubWFwLnByb2plY3Rpb24sXG4gICAgZGF0YVByb2plY3Rpb246IHJvdXRlc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvblxuICB9KSBhcyBGZWF0dXJlR2VvbWV0cnk7XG5cbiAgY29uc3QgcHJldmlvdXNSb3V0ZSA9IHJvdXRlc0ZlYXR1cmVTdG9yZS5nZXQoZGlyZWN0aW9uLmlkKTtcbiAgY29uc3QgcHJldmlvdXNSb3V0ZVJldmlzaW9uID0gcHJldmlvdXNSb3V0ZSA/IHByZXZpb3VzUm91dGUubWV0YS5yZXZpc2lvbiA6IDA7XG5cbiAgY29uc3Qgcm91dGVGZWF0dXJlU3RvcmU6IEZlYXR1cmVXaXRoRGlyZWN0aW9uID0ge1xuICAgIHR5cGU6IEZFQVRVUkUsXG4gICAgZ2VvbWV0cnk6IGdlb2pzb25HZW9tLFxuICAgIHByb2plY3Rpb246IHJvdXRlc0ZlYXR1cmVTdG9yZS5tYXAucHJvamVjdGlvbixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBpZDogZGlyZWN0aW9uLmlkLFxuICAgICAgdHlwZTogRGlyZWN0aW9uVHlwZS5Sb3V0ZSxcbiAgICAgIGFjdGl2ZSxcbiAgICAgIGRpcmVjdGlvblxuICAgIH0sXG4gICAgbWV0YToge1xuICAgICAgaWQ6IGRpcmVjdGlvbi5pZCxcbiAgICAgIHJldmlzaW9uOiBwcmV2aW91c1JvdXRlUmV2aXNpb24gKyAxXG4gICAgfSxcbiAgICBvbDogbmV3IG9sRmVhdHVyZSh7IGdlb21ldHJ5IH0pXG4gIH07XG4gIHJvdXRlc0ZlYXR1cmVTdG9yZS51cGRhdGUocm91dGVGZWF0dXJlU3RvcmUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGlzdGFuY2UoZGlzdGFuY2U6IG51bWJlcik6IHN0cmluZyB7XG4gIGlmIChkaXN0YW5jZSA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoZGlzdGFuY2UgPj0gMTAwMDAwKSB7XG4gICAgcmV0dXJuIE51bWJlclV0aWxzLnJvdW5kVG9ORGVjaW1hbChNYXRoLnJvdW5kKGRpc3RhbmNlKSAvIDEwMDAsIDEpICsgJyBrbSc7XG4gIH1cbiAgaWYgKGRpc3RhbmNlID49IDEwMDAwKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIE51bWJlclV0aWxzLnJvdW5kVG9ORGVjaW1hbChNYXRoLnJvdW5kKGRpc3RhbmNlKSAvIDEwMCAvIDEwLCAxKSArICcga20nXG4gICAgKTtcbiAgfVxuICBpZiAoZGlzdGFuY2UgPj0gMTAwMCkge1xuICAgIHJldHVybiAoXG4gICAgICBOdW1iZXJVdGlscy5yb3VuZFRvTkRlY2ltYWwoTWF0aC5yb3VuZChkaXN0YW5jZSkgLyAxMDAgLyAxMCwgMSkgKyAnIGttJ1xuICAgICk7XG4gIH1cbiAgcmV0dXJuIE51bWJlclV0aWxzLnJvdW5kVG9ORGVjaW1hbChkaXN0YW5jZSwgMCkgKyAnIG0nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RHVyYXRpb24oZHVyYXRpb246IG51bWJlcik6IHN0cmluZyB7XG4gIGlmIChkdXJhdGlvbiA+PSAzNjAwKSB7XG4gICAgY29uc3QgaG91ciA9IE1hdGguZmxvb3IoZHVyYXRpb24gLyAzNjAwKTtcbiAgICBjb25zdCBtaW51dGUgPSBNYXRoLnJvdW5kKChkdXJhdGlvbiAvIDM2MDAgLSBob3VyKSAqIDYwKTtcbiAgICBpZiAobWludXRlID09PSA2MCkge1xuICAgICAgcmV0dXJuIGhvdXIgKyAxICsgJyBoJztcbiAgICB9XG4gICAgcmV0dXJuIGhvdXIgKyAnIGggJyArIG1pbnV0ZSArICcgbWluJztcbiAgfVxuXG4gIGlmIChkdXJhdGlvbiA+PSA2MCkge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKGR1cmF0aW9uIC8gNjApICsgJyBtaW4nO1xuICB9XG4gIHJldHVybiBkdXJhdGlvbiArICcgcyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRJbnN0cnVjdGlvbihcbiAgdHlwZSxcbiAgbW9kaWZpZXIsXG4gIHJvdXRlLFxuICBkaXJlY3Rpb24sXG4gIHN0ZXBQb3NpdGlvbixcbiAgZXhpdCxcbiAgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gIGxhc3RTdGVwID0gZmFsc2Vcbikge1xuICBjb25zdCB0cmFuc2xhdGUgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xuICBsZXQgZGlyZWN0aXZlO1xuICBsZXQgaW1hZ2UgPSAnYXJyb3dfZm9yd2FyZCc7XG4gIGxldCBjc3NDbGFzcyA9ICdyb3RhdGUtMjcwJztcbiAgY29uc3QgdHJhbnNsYXRlZERpcmVjdGlvbiA9IHRyYW5zbGF0ZUJlYXJpbmcoZGlyZWN0aW9uLCBsYW5ndWFnZVNlcnZpY2UpO1xuICBjb25zdCB0cmFuc2xhdGVkTW9kaWZpZXIgPSB0cmFuc2xhdGVNb2RpZmllcihtb2RpZmllciwgbGFuZ3VhZ2VTZXJ2aWNlKTtcbiAgY29uc3QgcHJlZml4ID1cbiAgICBtb2RpZmllciA9PT0gJ3N0cmFpZ2h0J1xuICAgICAgPyAnJ1xuICAgICAgOiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLm1vZGlmaWVyLnByZWZpeCcpO1xuXG4gIGxldCBhZ2dyZWdhdGVkRGlyZWN0aW9uID0gcHJlZml4ICsgdHJhbnNsYXRlZE1vZGlmaWVyO1xuXG4gIGlmIChtb2RpZmllcj8uc2VhcmNoKCdzbGlnaHQnKSA+PSAwKSB7XG4gICAgYWdncmVnYXRlZERpcmVjdGlvbiA9IHRyYW5zbGF0ZWRNb2RpZmllcjtcbiAgfVxuXG4gIGlmIChtb2RpZmllciA9PT0gJ3V0dXJuJykge1xuICAgIGltYWdlID0gJ2Fycm93X2ZvcndhcmQnO1xuICAgIGNzc0NsYXNzID0gJ3JvdGF0ZS05MCc7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzaGFycCByaWdodCcpIHtcbiAgICBpbWFnZSA9ICdzdWJkaXJlY3RvcnlfYXJyb3dfcmlnaHQnO1xuICAgIGNzc0NsYXNzID0gJ2ljb24tZmxpcHBlZCc7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdyaWdodCcpIHtcbiAgICBpbWFnZSA9ICdzdWJkaXJlY3RvcnlfYXJyb3dfcmlnaHQnO1xuICAgIGNzc0NsYXNzID0gJ2ljb24tZmxpcHBlZCc7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzbGlnaHQgcmlnaHQnKSB7XG4gICAgaW1hZ2UgPSAnYXJyb3dfZm9yd2FyZCc7XG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTI5MCc7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzdHJhaWdodCcpIHtcbiAgICBpbWFnZSA9ICdhcnJvd19mb3J3YXJkJztcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NsaWdodCBsZWZ0Jykge1xuICAgIGltYWdlID0gJ2Fycm93X2ZvcndhcmQnO1xuICAgIGNzc0NsYXNzID0gJ3JvdGF0ZS0yNTAnO1xuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnbGVmdCcpIHtcbiAgICBpbWFnZSA9ICdzdWJkaXJlY3RvcnlfYXJyb3dfbGVmdCc7XG4gICAgY3NzQ2xhc3MgPSAnaWNvbi1mbGlwcGVkJztcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3NoYXJwIGxlZnQnKSB7XG4gICAgaW1hZ2UgPSAnc3ViZGlyZWN0b3J5X2Fycm93X2xlZnQnO1xuICAgIGNzc0NsYXNzID0gJ2ljb24tZmxpcHBlZCc7XG4gIH1cblxuICBpZiAodHlwZSA9PT0gJ3R1cm4nKSB7XG4gICAgaWYgKG1vZGlmaWVyID09PSAnc3RyYWlnaHQnKSB7XG4gICAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnR1cm4uc3RyYWlnaHQnLCB7XG4gICAgICAgIHJvdXRlXG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAndXR1cm4nKSB7XG4gICAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnR1cm4udXR1cm4nLCB7IHJvdXRlIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnR1cm4uZWxzZScsIHtcbiAgICAgICAgcm91dGUsXG4gICAgICAgIGFnZ3JlZ2F0ZWREaXJlY3Rpb24sXG4gICAgICAgIHRyYW5zbGF0ZWRNb2RpZmllclxuICAgICAgfSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICduZXcgbmFtZScpIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLm5ldyBuYW1lJywge1xuICAgICAgcm91dGUsXG4gICAgICB0cmFuc2xhdGVkRGlyZWN0aW9uXG4gICAgfSk7XG4gICAgaW1hZ2UgPSAnZXhwbG9yZSc7XG4gICAgY3NzQ2xhc3MgPSAnJztcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnZGVwYXJ0Jykge1xuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuZGVwYXJ0Jywge1xuICAgICAgcm91dGUsXG4gICAgICB0cmFuc2xhdGVkRGlyZWN0aW9uXG4gICAgfSk7XG4gICAgaW1hZ2UgPSAnZXhwbG9yZSc7XG4gICAgY3NzQ2xhc3MgPSAnJztcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnYXJyaXZlJykge1xuICAgIGlmIChsYXN0U3RlcCkge1xuICAgICAgY29uc3QgY29tYSA9ICF0cmFuc2xhdGVkTW9kaWZpZXIgPyAnJyA6ICcsICc7XG4gICAgICBhZ2dyZWdhdGVkRGlyZWN0aW9uID0gIXRyYW5zbGF0ZWRNb2RpZmllciA/ICcnIDogYWdncmVnYXRlZERpcmVjdGlvbjtcbiAgICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuYXJyaXZlLmxhc3RTdGVwJywge1xuICAgICAgICBjb21hLFxuICAgICAgICBhZ2dyZWdhdGVkRGlyZWN0aW9uXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5hcnJpdmUuaW50ZXJtZWRpYXRlJywge1xuICAgICAgICByb3V0ZVxuICAgICAgfSk7XG4gICAgICBpbWFnZSA9ICdsb2NhdGlvbl9vbic7XG4gICAgICBjc3NDbGFzcyA9ICcnO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlID09PSAnbWVyZ2UnKSB7XG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5tZXJnZScsIHsgcm91dGUgfSk7XG4gICAgaW1hZ2UgPSAnYXJyb3dfZm9yd2FyZCc7XG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTI3MCc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ29uIHJhbXAnKSB7XG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5vbiByYW1wJywge1xuICAgICAgYWdncmVnYXRlZERpcmVjdGlvblxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdvZmYgcmFtcCcpIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLm9mZiByYW1wJywge1xuICAgICAgYWdncmVnYXRlZERpcmVjdGlvblxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdmb3JrJykge1xuICAgIGlmIChtb2RpZmllci5zZWFyY2goJ2xlZnQnKSA+PSAwKSB7XG4gICAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmZvcmsubGVmdCcsIHsgcm91dGUgfSk7XG4gICAgfSBlbHNlIGlmIChtb2RpZmllci5zZWFyY2goJ3JpZ2h0JykgPj0gMCkge1xuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5mb3JrLnJpZ2h0JywgeyByb3V0ZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5mb3JrLmVsc2UnLCB7IHJvdXRlIH0pO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlID09PSAnZW5kIG9mIHJvYWQnKSB7XG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5lbmQgb2Ygcm9hZCcsIHtcbiAgICAgIHRyYW5zbGF0ZWRNb2RpZmllcixcbiAgICAgIHJvdXRlXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3VzZSBsYW5lJykge1xuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMudXNlIGxhbmUnKTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnY29udGludWUnICYmIG1vZGlmaWVyICE9PSAndXR1cm4nKSB7XG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5jb250aW51ZS5ub3RVdHVybicsIHtcbiAgICAgIHJvdXRlXG4gICAgfSk7XG4gICAgaW1hZ2UgPSAnYXJyb3dfZm9yd2FyZCc7XG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTI3MCc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3JvdW5kYWJvdXQnKSB7XG4gICAgY29uc3QgY250U3VmZml4ID1cbiAgICAgIGV4aXQgPT09IDFcbiAgICAgICAgPyB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmNudFN1ZmZpeC5maXJzdCcpXG4gICAgICAgIDogdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5jbnRTdWZmaXguc2Vjb25kQW5kTW9yZScpO1xuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMucm91bmRhYm91dCcsIHtcbiAgICAgIGV4aXQsXG4gICAgICBjbnRTdWZmaXgsXG4gICAgICByb3V0ZVxuICAgIH0pO1xuICAgIGltYWdlID0gJ2RvbnV0X2xhcmdlJztcbiAgICBjc3NDbGFzcyA9ICcnO1xuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdyb3RhcnknKSB7XG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5yb3RhcnknKTtcbiAgICBpbWFnZSA9ICdkb251dF9sYXJnZSc7XG4gICAgY3NzQ2xhc3MgPSAnJztcbiAgfSBlbHNlIGlmICh0eXBlID09PSAncm91bmRhYm91dCB0dXJuJykge1xuICAgIGRpcmVjdGl2ZSA9IHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMucm91bmRhYm91dCB0dXJuJyk7XG4gICAgaW1hZ2UgPSAnZG9udXRfbGFyZ2UnO1xuICAgIGNzc0NsYXNzID0gJyc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2V4aXQgcm91bmRhYm91dCcpIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLmV4aXQgcm91bmRhYm91dCcsIHtcbiAgICAgIHJvdXRlXG4gICAgfSk7XG4gICAgaW1hZ2UgPSAnYXJyb3dfZm9yd2FyZCc7XG4gICAgY3NzQ2xhc3MgPSAncm90YXRlLTI3MCc7XG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ25vdGlmaWNhdGlvbicpIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLm5vdGlmaWNhdGlvbicpO1xuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAndXR1cm4nKSB7XG4gICAgZGlyZWN0aXZlID0gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy51dHVyblRleHQnLCB7XG4gICAgICB0cmFuc2xhdGVkRGlyZWN0aW9uLFxuICAgICAgcm91dGVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBkaXJlY3RpdmUgPSB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnVua25vd24nKTtcbiAgfVxuXG4gIGltYWdlID0gbGFzdFN0ZXAgPyAnZmxhZycgOiBpbWFnZTtcbiAgY3NzQ2xhc3MgPSBsYXN0U3RlcCA/ICcnIDogY3NzQ2xhc3M7XG4gIGltYWdlID0gc3RlcFBvc2l0aW9uID09PSAwID8gJ2V4cGxvcmUnIDogaW1hZ2U7XG4gIGNzc0NsYXNzID0gc3RlcFBvc2l0aW9uID09PSAwID8gJycgOiBjc3NDbGFzcztcblxuICByZXR1cm4geyBpbnN0cnVjdGlvbjogZGlyZWN0aXZlLCBpbWFnZSwgY3NzQ2xhc3MgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZU1vZGlmaWVyKG1vZGlmaWVyLCBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSkge1xuICBjb25zdCB0cmFuc2xhdGUgPSBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlO1xuICBpZiAobW9kaWZpZXIgPT09ICd1dHVybicpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy51dHVybicpO1xuICB9IGVsc2UgaWYgKG1vZGlmaWVyID09PSAnc2hhcnAgcmlnaHQnKSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuc2hhcnAgcmlnaHQnKTtcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3JpZ2h0Jykge1xuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zLnJpZ2h0Jyk7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzbGlnaHQgcmlnaHQnKSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuc2xpZ2h0IHJpZ2h0Jyk7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzaGFycCBsZWZ0Jykge1xuICAgIHJldHVybiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5zaGFycCBsZWZ0Jyk7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdsZWZ0Jykge1xuICAgIHJldHVybiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5sZWZ0Jyk7XG4gIH0gZWxzZSBpZiAobW9kaWZpZXIgPT09ICdzbGlnaHQgbGVmdCcpIHtcbiAgICByZXR1cm4gbGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnMuc2xpZ2h0IGxlZnQnKTtcbiAgfSBlbHNlIGlmIChtb2RpZmllciA9PT0gJ3N0cmFpZ2h0Jykge1xuICAgIHJldHVybiBsYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uZGlyZWN0aW9ucy5zdHJhaWdodCcpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBtb2RpZmllcjtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNsYXRlQmVhcmluZyhcbiAgYmVhcmluZzogbnVtYmVyLFxuICBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZVxuKSB7XG4gIGNvbnN0IHRyYW5zbGF0ZSA9IGxhbmd1YWdlU2VydmljZS50cmFuc2xhdGU7XG4gIGlmIChiZWFyaW5nID49IDMzNyB8fCBiZWFyaW5nIDwgMjMpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uY2FyZGluYWxQb2ludHMubicpO1xuICB9IGVsc2UgaWYgKGJlYXJpbmcgPCA2Nykge1xuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXJkaW5hbFBvaW50cy5uZScpO1xuICB9IGVsc2UgaWYgKGJlYXJpbmcgPCAxMTMpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uY2FyZGluYWxQb2ludHMuZScpO1xuICB9IGVsc2UgaWYgKGJlYXJpbmcgPCAxNTcpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlLmluc3RhbnQoJ2lnby5nZW8uY2FyZGluYWxQb2ludHMuc2UnKTtcbiAgfSBlbHNlIGlmIChiZWFyaW5nIDwgMjAzKSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLnMnKTtcbiAgfSBlbHNlIGlmIChiZWFyaW5nIDwgMjQ3KSB7XG4gICAgcmV0dXJuIHRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmNhcmRpbmFsUG9pbnRzLnN3Jyk7XG4gIH0gZWxzZSBpZiAoYmVhcmluZyA8IDI5Mykge1xuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXJkaW5hbFBvaW50cy53Jyk7XG4gIH0gZWxzZSBpZiAoYmVhcmluZyA8IDMzNykge1xuICAgIHJldHVybiB0cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5jYXJkaW5hbFBvaW50cy5udycpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybjtcbiAgfVxufVxuIl19
|
|
@@ -3,4 +3,4 @@ export * from './directions.enum';
|
|
|
3
3
|
export * from './directions.interface';
|
|
4
4
|
export * from './directions.utils';
|
|
5
5
|
export * from './store';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGlvbnMudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZSc7XG4iXX0=
|
|
@@ -18,4 +18,4 @@ export class RoutesFeatureStore extends FeatureStore {
|
|
|
18
18
|
}
|
|
19
19
|
export class StepFeatureStore extends FeatureStore {
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL3NoYXJlZC9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBUTFEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFXLFNBQVEsV0FBaUI7SUFDeEMsaUJBQWlCLEdBQTZCLElBQUksZUFBZSxDQUN0RSxLQUFLLENBQ04sQ0FBQztJQUVLLFVBQVU7UUFDZixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxZQUE2QjtDQUFHO0FBQ3ZFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxZQUFrQztDQUFHO0FBQzdFLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxZQUE2QjtDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRmVhdHVyZVdpdGhEaXJlY3Rpb24sXG4gIEZlYXR1cmVXaXRoU3RlcCxcbiAgRmVhdHVyZVdpdGhTdG9wLFxuICBTdG9wXG59IGZyb20gJy4vZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFRoZSBjbGFzcyBpcyBhIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYW4gRW50aXR5U3RvcmUgdGhhdCBzdG9yZXNcbiAqIHN0b3BzLlxuICovXG5leHBvcnQgY2xhc3MgU3RvcHNTdG9yZSBleHRlbmRzIEVudGl0eVN0b3JlPFN0b3A+IHtcbiAgcHVibGljIHN0b3JlSW5pdGlhbGl6ZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxuICAgIGZhbHNlXG4gICk7XG5cbiAgcHVibGljIGNsZWFyU3RvcHMoKSB7XG4gICAgdGhpcy5zdG9yZUluaXRpYWxpemVkJC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN0b3BzRmVhdHVyZVN0b3JlIGV4dGVuZHMgRmVhdHVyZVN0b3JlPEZlYXR1cmVXaXRoU3RvcD4ge31cbmV4cG9ydCBjbGFzcyBSb3V0ZXNGZWF0dXJlU3RvcmUgZXh0ZW5kcyBGZWF0dXJlU3RvcmU8RmVhdHVyZVdpdGhEaXJlY3Rpb24+IHt9XG5leHBvcnQgY2xhc3MgU3RlcEZlYXR1cmVTdG9yZSBleHRlbmRzIEZlYXR1cmVTdG9yZTxGZWF0dXJlV2l0aFN0ZXA+IHt9XG4iXX0=
|
|
@@ -41,7 +41,7 @@ export class DownloadButtonComponent {
|
|
|
41
41
|
return this.layer.dataSource.options;
|
|
42
42
|
}
|
|
43
43
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DownloadButtonComponent, deps: [{ token: i1.DownloadService }], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DownloadButtonComponent, isStandalone: true, selector: "igo-download-button", inputs: { layer: "layer", color: "color" }, ngImport: i0, template: "<button\
|
|
44
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DownloadButtonComponent, isStandalone: true, selector: "igo-download-button", inputs: { layer: "layer", color: "color" }, ngImport: i0, template: "<button\n *ngIf=\"\n options &&\n options.download &&\n (options.download['dynamicUrl'] || options.download['url'])\n \"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.download.action' | translate\"\n [color]=\"color\"\n (click)=\"openDownload(layer)\"\n>\n <mat-icon>download</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
45
45
|
}
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DownloadButtonComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
@@ -51,10 +51,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
51
51
|
MatTooltipModule,
|
|
52
52
|
MatIconModule,
|
|
53
53
|
TranslateModule
|
|
54
|
-
], template: "<button\
|
|
54
|
+
], template: "<button\n *ngIf=\"\n options &&\n options.download &&\n (options.download['dynamicUrl'] || options.download['url'])\n \"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.download.action' | translate\"\n [color]=\"color\"\n (click)=\"openDownload(layer)\"\n>\n <mat-icon>download</mat-icon>\n</button>\n" }]
|
|
55
55
|
}], ctorParameters: () => [{ type: i1.DownloadService }], propDecorators: { layer: [{
|
|
56
56
|
type: Input
|
|
57
57
|
}], color: [{
|
|
58
58
|
type: Input
|
|
59
59
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2Rvd25sb2FkL2Rvd25sb2FkLWJ1dHRvbi9kb3dubG9hZC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZG93bmxvYWQvZG93bmxvYWQtYnV0dG9uL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQWdCN0QsTUFBTSxPQUFPLHVCQUF1QjtJQW1CZDtJQWxCcEIsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFDTyxNQUFNLENBQVE7SUFFdEIsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFDTyxNQUFNLEdBQUcsU0FBUyxDQUFDO0lBRTNCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUFHLENBQUM7SUFFeEQsWUFBWSxDQUFDLEtBQVk7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztJQUN2QyxDQUFDO3VHQTlCVSx1QkFBdUI7MkZBQXZCLHVCQUF1QiwySEMxQnBDLHdYQWVBLDBERElJLElBQUksNEZBQ0osZUFBZSwySUFDZixnQkFBZ0IsNFRBQ2hCLGFBQWEsbUxBQ2IsZUFBZTs7MkZBR04sdUJBQXVCO2tCQWRuQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGVBQWU7cUJBQ2hCO29GQUlHLEtBQUs7c0JBRFIsS0FBSztnQkFVRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcbmltcG9ydCB7IERvd25sb2FkRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvZG93bmxvYWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IERvd25sb2FkU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9kb3dubG9hZC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWRvd25sb2FkLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3dubG9hZC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3dubG9hZC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0lmLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRG93bmxvYWRCdXR0b25Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBnZXQgbGF5ZXIoKTogTGF5ZXIge1xuICAgIHJldHVybiB0aGlzLl9sYXllcjtcbiAgfVxuICBzZXQgbGF5ZXIodmFsdWU6IExheWVyKSB7XG4gICAgdGhpcy5fbGF5ZXIgPSB2YWx1ZTtcbiAgfVxuICBwcml2YXRlIF9sYXllcjogTGF5ZXI7XG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgfVxuICBzZXQgY29sb3IodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XG4gIH1cbiAgcHJpdmF0ZSBfY29sb3IgPSAncHJpbWFyeSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkb3dubG9hZFNlcnZpY2U6IERvd25sb2FkU2VydmljZSkge31cblxuICBvcGVuRG93bmxvYWQobGF5ZXI6IExheWVyKSB7XG4gICAgdGhpcy5kb3dubG9hZFNlcnZpY2Uub3BlbihsYXllcik7XG4gIH1cblxuICBnZXQgb3B0aW9ucygpOiBEb3dubG9hZERhdGFTb3VyY2VPcHRpb25zIHtcbiAgICBpZiAoIXRoaXMubGF5ZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gICpuZ0lmPVwiXG4gICAgb3B0aW9ucyAmJlxuICAgIG9wdGlvbnMuZG93bmxvYWQgJiZcbiAgICAob3B0aW9ucy5kb3dubG9hZFsnZHluYW1pY1VybCddIHx8IG9wdGlvbnMuZG93bmxvYWRbJ3VybCddKVxuICBcIlxuICBtYXQtaWNvbi1idXR0b25cbiAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRvd25sb2FkLmFjdGlvbicgfCB0cmFuc2xhdGVcIlxuICBbY29sb3JdPVwiY29sb3JcIlxuICAoY2xpY2spPVwib3BlbkRvd25sb2FkKGxheWVyKVwiXG4+XG4gIDxtYXQtaWNvbj5kb3dubG9hZDwvbWF0LWljb24+XG48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from './download-button.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kb3dubG9hZC9kb3dubG9hZC1idXR0b24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZG93bmxvYWQtYnV0dG9uLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
21
21
|
exports: [DownloadButtonComponent]
|
|
22
22
|
}]
|
|
23
23
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZG93bmxvYWQvZG93bmxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUV0Rjs7R0FFRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtTQUM1QixDQUFDO0lBQ0osQ0FBQzt1R0FMVSxpQkFBaUI7d0dBQWpCLGlCQUFpQixZQUhsQix1QkFBdUIsYUFDdkIsdUJBQXVCO3dHQUV0QixpQkFBaUIsWUFIbEIsdUJBQXVCOzsyRkFHdEIsaUJBQWlCO2tCQUo3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb3dubG9hZEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vZG93bmxvYWQtYnV0dG9uL2Rvd25sb2FkLWJ1dHRvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIGltcG9ydCB0aGUgRG93bmxvYWRCdXR0b25Db21wb25lbnQgZGlyZWN0bHlcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0Rvd25sb2FkQnV0dG9uQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0Rvd25sb2FkQnV0dG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBJZ29Eb3dubG9hZE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SWdvRG93bmxvYWRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IElnb0Rvd25sb2FkTW9kdWxlXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './shared';
|
|
2
2
|
export * from './download-button';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kb3dubG9hZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9kb3dubG9hZC1idXR0b24nO1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZG93bmxvYWQvc2hhcmVkL2Rvd25sb2FkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwb3J0Rm9ybWF0IH0gZnJvbSAnLi4vLi4vaW1wb3J0LWV4cG9ydC9zaGFyZWQvZXhwb3J0LnR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERvd25sb2FkT3B0aW9ucyB7XG4gIHVybDogc3RyaW5nO1xuICBkeW5hbWljVXJsPzogc3RyaW5nO1xuICBleHRlcm4/OiBib29sZWFuO1xuICBhbGxvd2VkRm9ybWF0cz86IEV4cG9ydEZvcm1hdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvd25sb2FkRGF0YVNvdXJjZU9wdGlvbnMge1xuICBkb3dubG9hZD86IERvd25sb2FkT3B0aW9ucztcbn1cbiJdfQ==
|
|
@@ -64,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
64
64
|
providedIn: 'root'
|
|
65
65
|
}]
|
|
66
66
|
}], ctorParameters: () => [{ type: i1.MessageService }] });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2Rvd25sb2FkL3NoYXJlZC9kb3dubG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sWUFBWSxNQUFNLG9CQUFvQixDQUFDO0FBRzlDLE9BQU8sRUFDTCxlQUFlLEVBRWhCLE1BQU0scUJBQXFCLENBQUM7OztBQU03QixNQUFNLE9BQU8sZUFBZTtJQUNOO0lBQXBCLFlBQW9CLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUFHLENBQUM7SUFFdEQsSUFBSSxDQUFDLEtBQVk7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FDekIsd0JBQXdCLEVBQ3hCLHdCQUF3QixDQUN6QixDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQXNCLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQzlELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9DLElBQ0UsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVO2dCQUM3QixTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQ3BDLENBQUM7Z0JBQ0QsSUFBSSxVQUFVLENBQUM7Z0JBQ2YsSUFBSSxXQUFXLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRSxNQUFNLFNBQVMsR0FBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWUsQ0FBQyxTQUFTLENBQUM7Z0JBQzlELElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNuRCxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU87d0JBQzdCLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQy9DLENBQUMsQ0FBQyxXQUFXLENBQUM7b0JBQ2hCLFVBQVUsR0FBSSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWUsQ0FBQyxTQUFTLENBQUM7Z0JBQzNELENBQUM7cUJBQU0sQ0FBQztvQkFDTixVQUFVLEdBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFlLENBQUMsTUFBTSxDQUFDO2dCQUN4RCxDQUFDO2dCQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQzFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUNwQyxJQUFJLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQ2hELFdBQVcsQ0FDWixDQUFDO2dCQUNGLE1BQU0sb0JBQW9CLEdBQ3hCLFVBQVUsQ0FBQyxvQkFBb0IsS0FBSyxTQUFTO29CQUMzQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksS0FBSyxTQUFTO3dCQUNyQyxDQUFDLENBQUMsRUFBRTt3QkFDSixDQUFDLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxZQUFZO29CQUM3QyxDQUFDLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFFeEQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVO3FCQUMxQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxDQUFDO3FCQUNyQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDO3FCQUMvQixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRWpDLE1BQU0sVUFBVSxHQUNkLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FDbEIsQ0FBQyxVQUFVLENBQUM7Z0JBRWIsSUFBSSxpQkFBaUIsQ0FBQztnQkFDdEIsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQyw0QkFBNEIsQ0FDcEUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQ3hCLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLGFBQWlELEVBQ2pELFdBQVcsQ0FDWixDQUFDO2dCQUNGLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUN2QixvREFBb0Q7b0JBQ3BELGlCQUFpQixHQUFHLElBQUksZUFBZSxFQUFFLENBQUMsV0FBVyxDQUNuRCxTQUFTLEVBQ1QsYUFBaUQsRUFDakQsV0FBVyxFQUNYLFVBQVUsQ0FBQyxZQUFZLENBQ3hCLENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLGlCQUFpQixHQUFHLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUN4RSxDQUFDO2dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRyxPQUFPLElBQUksaUJBQWlCLElBQUksb0JBQW9CLEVBQUUsRUFDekQsUUFBUSxDQUNULENBQUM7WUFDSixDQUFDO2lCQUFNLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt1R0ExRVUsZUFBZTsyR0FBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcblxuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IG9sUHJvamVjdGlvbiBmcm9tICdvbC9wcm9qL1Byb2plY3Rpb24nO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIE9nY0ZpbHRlcldyaXRlcixcbiAgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zXG59IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQnO1xuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRG93bmxvYWRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHt9XG5cbiAgb3BlbihsYXllcjogTGF5ZXIpIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAnaWdvLmdlby5kb3dubG9hZC5zdGFydCcsXG4gICAgICAnaWdvLmdlby5kb3dubG9hZC50aXRsZSdcbiAgICApO1xuXG4gICAgY29uc3QgRFNPcHRpb25zOiBEYXRhU291cmNlT3B0aW9ucyA9IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucztcbiAgICBpZiAoT2JqZWN0LmtleXMoRFNPcHRpb25zLmRvd25sb2FkKS5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAoXG4gICAgICAgIERTT3B0aW9ucy5kb3dubG9hZC5keW5hbWljVXJsICYmXG4gICAgICAgIERTT3B0aW9ucy5kb3dubG9hZC51cmwgPT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIGxldCB3ZnNPcHRpb25zO1xuICAgICAgICBsZXQgY3VycmVudFByb2ogPSBuZXcgb2xQcm9qZWN0aW9uKHsgY29kZTogbGF5ZXIubWFwLnByb2plY3Rpb24gfSk7XG4gICAgICAgIGNvbnN0IHBhcmFtc1dGUyA9IChsYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXNXRlM7XG4gICAgICAgIGlmIChwYXJhbXNXRlMgJiYgT2JqZWN0LmtleXMocGFyYW1zV0ZTKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY3VycmVudFByb2ogPSBwYXJhbXNXRlMuc3JzTmFtZVxuICAgICAgICAgICAgPyBuZXcgb2xQcm9qZWN0aW9uKHsgY29kZTogcGFyYW1zV0ZTLnNyc05hbWUgfSlcbiAgICAgICAgICAgIDogY3VycmVudFByb2o7XG4gICAgICAgICAgd2ZzT3B0aW9ucyA9IChsYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXNXRlM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgd2ZzT3B0aW9ucyA9IChsYXllci5kYXRhU291cmNlLm9wdGlvbnMgYXMgYW55KS5wYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50RXh0ZW50ID0gb2xwcm9qLnRyYW5zZm9ybUV4dGVudChcbiAgICAgICAgICBsYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0RXh0ZW50KCksXG4gICAgICAgICAgbmV3IG9sUHJvamVjdGlvbih7IGNvZGU6IGxheWVyLm1hcC5wcm9qZWN0aW9uIH0pLFxuICAgICAgICAgIGN1cnJlbnRQcm9qXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG91dHB1dEZvcm1hdERvd25sb2FkID1cbiAgICAgICAgICB3ZnNPcHRpb25zLm91dHB1dEZvcm1hdERvd25sb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gd2ZzT3B0aW9ucy5vdXRwdXRGb3JtYXQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgIDogJ291dHB1dGZvcm1hdD0nICsgd2ZzT3B0aW9ucy5vdXRwdXRGb3JtYXRcbiAgICAgICAgICAgIDogJ291dHB1dGZvcm1hdD0nICsgd2ZzT3B0aW9ucy5vdXRwdXRGb3JtYXREb3dubG9hZDtcblxuICAgICAgICBjb25zdCBiYXNldXJsID0gRFNPcHRpb25zLmRvd25sb2FkLmR5bmFtaWNVcmxcbiAgICAgICAgICAucmVwbGFjZSgvJj9vdXRwdXRmb3JtYXQ9W14mXSovZ2ksICcnKVxuICAgICAgICAgIC5yZXBsYWNlKC8mP2ZpbHRlcj1bXiZdKi9naSwgJycpXG4gICAgICAgICAgLnJlcGxhY2UoLyY/YmJveD1bXiZdKi9naSwgJycpO1xuXG4gICAgICAgIGNvbnN0IG9nY0ZpbHRlcnMgPSAoXG4gICAgICAgICAgbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9uc1xuICAgICAgICApLm9nY0ZpbHRlcnM7XG5cbiAgICAgICAgbGV0IGZpbHRlclF1ZXJ5U3RyaW5nO1xuICAgICAgICBmaWx0ZXJRdWVyeVN0cmluZyA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKS5oYW5kbGVPZ2NGaWx0ZXJzQXBwbGllZFZhbHVlKFxuICAgICAgICAgIGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucyxcbiAgICAgICAgICBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZSxcbiAgICAgICAgICBjdXJyZW50RXh0ZW50IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICAgIGN1cnJlbnRQcm9qXG4gICAgICAgICk7XG4gICAgICAgIGlmICghZmlsdGVyUXVlcnlTdHJpbmcpIHtcbiAgICAgICAgICAvLyBQcmV2ZW50IGdldHRpbmcgYWxsIHRoZSBmZWF0dXJlcyBmb3IgZW1wdHkgZmlsdGVyXG4gICAgICAgICAgZmlsdGVyUXVlcnlTdHJpbmcgPSBuZXcgT2djRmlsdGVyV3JpdGVyKCkuYnVpbGRGaWx0ZXIoXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBjdXJyZW50RXh0ZW50IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICAgICAgY3VycmVudFByb2osXG4gICAgICAgICAgICBvZ2NGaWx0ZXJzLmdlb21ldHJ5TmFtZVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZmlsdGVyUXVlcnlTdHJpbmcgPSAnZmlsdGVyPScgKyBlbmNvZGVVUklDb21wb25lbnQoZmlsdGVyUXVlcnlTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5vcGVuKFxuICAgICAgICAgIGAke2Jhc2V1cmx9JiR7ZmlsdGVyUXVlcnlTdHJpbmd9JiR7b3V0cHV0Rm9ybWF0RG93bmxvYWR9YCxcbiAgICAgICAgICAnX2JsYW5rJ1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChEU09wdGlvbnMuZG93bmxvYWQpIHtcbiAgICAgICAgd2luZG93Lm9wZW4oRFNPcHRpb25zLmRvd25sb2FkLnVybCwgJ19ibGFuaycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './download.service';
|
|
2
2
|
export * from './download.interface';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kb3dubG9hZC9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kb3dubG9hZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZG93bmxvYWQuaW50ZXJmYWNlJztcbiJdfQ==
|
|
@@ -24,7 +24,7 @@ export class DrawLayerPopupComponent {
|
|
|
24
24
|
this.dialogRef.close(labelString);
|
|
25
25
|
}
|
|
26
26
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DrawLayerPopupComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DrawLayerPopupComponent, isStandalone: true, selector: "igo-draw-popup-component", inputs: { confirmFlag: "confirmFlag" }, ngImport: i0, template: "<div mat-dialog-content>\
|
|
27
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DrawLayerPopupComponent, isStandalone: true, selector: "igo-draw-popup-component", inputs: { confirmFlag: "confirmFlag" }, ngImport: i0, template: "<div mat-dialog-content>\n <p class=\"mat-typography\">\n {{ 'igo.geo.draw.layer.layerDialogInstruction' | translate }}\n </p>\n <mat-form-field class=\"example-full-width\">\n <input\n #input\n matInput\n placeholder=\"{{ 'igo.geo.draw.layer.title' | translate }}\"\n />\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\">\n {{ 'igo.geo.draw.cancel' | translate }}\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"confirm(input.value)\">\n OK\n </button>\n</div>\n", styles: [":host .fields-container{display:flex}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
28
28
|
}
|
|
29
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DrawLayerPopupComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
@@ -35,8 +35,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
35
35
|
MatDialogActions,
|
|
36
36
|
MatButtonModule,
|
|
37
37
|
TranslateModule
|
|
38
|
-
], template: "<div mat-dialog-content>\
|
|
38
|
+
], template: "<div mat-dialog-content>\n <p class=\"mat-typography\">\n {{ 'igo.geo.draw.layer.layerDialogInstruction' | translate }}\n </p>\n <mat-form-field class=\"example-full-width\">\n <input\n #input\n matInput\n placeholder=\"{{ 'igo.geo.draw.layer.title' | translate }}\"\n />\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button mat-raised-button (click)=\"cancelDrawing()\">\n {{ 'igo.geo.draw.cancel' | translate }}\n </button>\n <button mat-raised-button color=\"primary\" (click)=\"confirm(input.value)\">\n OK\n </button>\n</div>\n", styles: [":host .fields-container{display:flex}\n"] }]
|
|
39
39
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }], propDecorators: { confirmFlag: [{
|
|
40
40
|
type: Input
|
|
41
41
|
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhdy1sYXllci1wb3B1cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1sYXllci1wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kcmF3L2RyYXcvZHJhdy1sYXllci1wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNiLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQW9CdEQsTUFBTSxPQUFPLHVCQUF1QjtJQUdmO0lBRlYsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUV0QyxZQUFtQixTQUFnRDtRQUFoRCxjQUFTLEdBQVQsU0FBUyxDQUF1QztJQUFHLENBQUM7SUFFdkUsYUFBYTtRQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sQ0FBQyxXQUFtQjtRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwQyxDQUFDO3VHQVhVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLDRIQzlCcEMsdWtCQW9CQSxpR0RFSSxnQkFBZ0Isd0dBQ2hCLGtCQUFrQix5T0FDbEIsY0FBYywyV0FDZCxnQkFBZ0IsMkhBQ2hCLGVBQWUsMk5BQ2YsZUFBZTs7MkZBR04sdUJBQXVCO2tCQWRuQyxTQUFTOytCQUNFLDBCQUEwQixjQUd4QixJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGVBQWU7cUJBQ2hCO2lGQUdRLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtcbiAgTWF0RGlhbG9nQWN0aW9ucyxcbiAgTWF0RGlhbG9nQ29udGVudCxcbiAgTWF0RGlhbG9nUmVmXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dEYXRhIHtcbiAgbGFiZWw6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWRyYXctcG9wdXAtY29tcG9uZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYXctbGF5ZXItcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcmF3LWxheWVyLXBvcHVwLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXREaWFsb2dDb250ZW50LFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBEcmF3TGF5ZXJQb3B1cENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNvbmZpcm1GbGFnOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPERyYXdMYXllclBvcHVwQ29tcG9uZW50Pikge31cblxuICBjYW5jZWxEcmF3aW5nKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gIH1cbiAgY29uZmlybShsYWJlbFN0cmluZzogc3RyaW5nKSB7XG4gICAgdGhpcy5jb25maXJtRmxhZyA9IHRydWU7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UobGFiZWxTdHJpbmcpO1xuICB9XG59XG4iLCI8ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cbiAgPHAgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPlxuICAgIHt7ICdpZ28uZ2VvLmRyYXcubGF5ZXIubGF5ZXJEaWFsb2dJbnN0cnVjdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgPC9wPlxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJleGFtcGxlLWZ1bGwtd2lkdGhcIj5cbiAgICA8aW5wdXRcbiAgICAgICNpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8uZHJhdy5sYXllci50aXRsZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgIC8+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj5cbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjYW5jZWxEcmF3aW5nKClcIj5cbiAgICB7eyAnaWdvLmdlby5kcmF3LmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbmZpcm0oaW5wdXQudmFsdWUpXCI+XG4gICAgT0tcbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|