@igo2/geo 16.3.0 → 17.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +30 -14
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +35 -17
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +18 -11
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +8 -62
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +49 -20
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +22 -10
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +32 -16
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +8 -71
- package/esm2022/lib/catalog/catalog-library/index.mjs +9 -0
- package/esm2022/lib/catalog/catalog.module.mjs +9 -37
- package/esm2022/lib/catalog/index.mjs +7 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +16 -9
- package/esm2022/lib/catalog/shared/index.mjs +1 -1
- package/esm2022/lib/datasource/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +5 -5
- package/esm2022/lib/datasource/shared/datasource.service.mjs +11 -13
- package/esm2022/lib/datasource/shared/datasources/any-datasource.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.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/data.service.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +5 -5
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +2 -2
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +6 -6
- package/esm2022/lib/datasource/shared/options/options.service.mjs +1 -1
- package/esm2022/lib/datasource/utils/tilegrid.mjs +1 -1
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +28 -13
- package/esm2022/lib/directions/directions-buttons/index.mjs +1 -1
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +44 -19
- package/esm2022/lib/directions/directions-inputs/index.mjs +1 -1
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +36 -16
- package/esm2022/lib/directions/directions-results/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +2 -2
- package/esm2022/lib/directions/directions-sources/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +7 -7
- package/esm2022/lib/directions/directions.component.mjs +20 -12
- package/esm2022/lib/directions/directions.module.mjs +17 -70
- 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.service.mjs +13 -9
- package/esm2022/lib/directions/shared/directions.utils.mjs +1 -1
- package/esm2022/lib/directions/shared/index.mjs +1 -1
- package/esm2022/lib/download/download-button/download-button.component.mjs +21 -11
- package/esm2022/lib/download/download-button/index.mjs +1 -1
- package/esm2022/lib/download/download.module.mjs +10 -27
- 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 +7 -7
- package/esm2022/lib/download/shared/index.mjs +1 -1
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +21 -10
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +41 -18
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +19 -9
- package/esm2022/lib/draw/draw/draw.component.mjs +54 -24
- package/esm2022/lib/draw/draw/draw.module.mjs +7 -104
- package/esm2022/lib/draw/drawingTool.module.mjs +8 -7
- package/esm2022/lib/draw/index.mjs +1 -1
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +7 -7
- package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
- package/esm2022/lib/draw/shared/index.mjs +1 -1
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +28 -13
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +8 -7
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +8 -27
- package/esm2022/lib/feature/feature-details/index.mjs +9 -0
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +8 -8
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +8 -11
- package/esm2022/lib/feature/feature.module.mjs +9 -10
- package/esm2022/lib/feature/index.mjs +8 -2
- 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.utils.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 +4 -4
- 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 +47 -177
- package/esm2022/lib/filter/index.mjs +36 -1
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +29 -15
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +46 -20
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +54 -23
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +13 -10
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +45 -18
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +18 -12
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +42 -18
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +8 -7
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +21 -12
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +6 -5
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +5 -5
- package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +5 -5
- package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +1 -1
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -7
- package/esm2022/lib/filter/shared/time-filter.enum.mjs +1 -1
- package/esm2022/lib/filter/shared/time-filter.interface.mjs +1 -1
- package/esm2022/lib/filter/shared/time-filter.service.mjs +5 -5
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +66 -28
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +34 -17
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +34 -15
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +28 -14
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +47 -20
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +31 -13
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +8 -7
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +16 -10
- package/esm2022/lib/geo.module.mjs +5 -43
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +7 -7
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +33 -16
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +8 -43
- package/esm2022/lib/geometry/geometry-form-field/index.mjs +9 -0
- package/esm2022/lib/geometry/geometry.module.mjs +9 -10
- package/esm2022/lib/geometry/index.mjs +2 -3
- 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.utils.mjs +1 -1
- package/esm2022/lib/geometry/shared/index.mjs +1 -1
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +20 -10
- package/esm2022/lib/import-export/export-button/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +56 -22
- package/esm2022/lib/import-export/import-export/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export.module.mjs +10 -81
- package/esm2022/lib/import-export/index.mjs +9 -1
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +13 -10
- package/esm2022/lib/import-export/shared/export.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.service.mjs +7 -7
- package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.service.mjs +7 -7
- 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 +19 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +35 -16
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +43 -17
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +13 -11
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +8 -7
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +28 -13
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +10 -9
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +48 -18
- package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +1 -1
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +33 -14
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +5 -5
- package/esm2022/lib/layer/layer.module.mjs +16 -93
- package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
- package/esm2022/lib/layer/shared/layer.service.mjs +8 -8
- package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/any-layer.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/tile-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.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 +21 -11
- package/esm2022/lib/layer/utils/image-watcher.mjs +1 -1
- package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
- package/esm2022/lib/layer/utils/outputLegend.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.component.mjs +27 -14
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +8 -8
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +24 -13
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +15 -11
- package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +1 -1
- package/esm2022/lib/map/home-extent-button/index.mjs +1 -1
- package/esm2022/lib/map/index.mjs +32 -1
- package/esm2022/lib/map/info-section/info-section.component.mjs +7 -7
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +8 -8
- package/esm2022/lib/map/map-center/map-center.component.mjs +6 -6
- package/esm2022/lib/map/map.module.mjs +36 -66
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +23 -13
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +21 -11
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +23 -11
- package/esm2022/lib/map/shared/controllers/controller.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/index.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/view.mjs +1 -1
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +10 -9
- package/esm2022/lib/map/shared/index.mjs +1 -1
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +10 -9
- package/esm2022/lib/map/shared/map.interface.mjs +1 -1
- package/esm2022/lib/map/shared/map.mjs +1 -1
- package/esm2022/lib/map/shared/map.service.mjs +5 -5
- package/esm2022/lib/map/shared/map.utils.mjs +1 -1
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +11 -8
- package/esm2022/lib/map/shared/projection.interfaces.mjs +1 -1
- package/esm2022/lib/map/shared/projection.service.mjs +7 -7
- package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +6 -6
- package/esm2022/lib/map/utils/layer-watcher.mjs +1 -1
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +23 -13
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +13 -9
- package/esm2022/lib/measure/index.mjs +2 -3
- package/esm2022/lib/measure/measure.module.mjs +8 -5
- package/esm2022/lib/measure/measurer/index.mjs +6 -0
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +6 -5
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +18 -11
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +27 -13
- package/esm2022/lib/measure/measurer/measurer.component.mjs +40 -20
- package/esm2022/lib/measure/measurer/measurer.module.mjs +7 -69
- package/esm2022/lib/measure/shared/index.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
- package/esm2022/lib/metadata/index.mjs +6 -1
- package/esm2022/lib/metadata/metadata-button/index.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +35 -18
- package/esm2022/lib/metadata/metadata.module.mjs +10 -31
- package/esm2022/lib/metadata/shared/index.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.service.mjs +5 -5
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +7 -7
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +8 -10
- package/esm2022/lib/offline/geoDB/index.mjs +1 -1
- package/esm2022/lib/offline/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +5 -5
- package/esm2022/lib/offline/shared/geo-network.service.mjs +7 -7
- package/esm2022/lib/offline/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/index.mjs +1 -1
- package/esm2022/lib/overlay/overlay.module.mjs +10 -8
- package/esm2022/lib/overlay/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +8 -7
- package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.service.mjs +5 -5
- package/esm2022/lib/print/index.mjs +1 -1
- package/esm2022/lib/print/print/print.component.mjs +7 -7
- package/esm2022/lib/print/print-form/index.mjs +1 -1
- package/esm2022/lib/print/print-form/print-form.component.mjs +36 -16
- package/esm2022/lib/print/print.module.mjs +10 -54
- package/esm2022/lib/print/shared/index.mjs +1 -1
- package/esm2022/lib/print/shared/print.service.mjs +18 -12
- package/esm2022/lib/query/index.mjs +1 -1
- package/esm2022/lib/query/query.module.mjs +7 -8
- package/esm2022/lib/query/shared/index.mjs +1 -1
- package/esm2022/lib/query/shared/query-search-source.mjs +6 -6
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +2 -2
- package/esm2022/lib/query/shared/query.directive.mjs +8 -7
- package/esm2022/lib/query/shared/query.enums.mjs +1 -1
- package/esm2022/lib/query/shared/query.service.mjs +8 -10
- package/esm2022/lib/search/index.mjs +14 -5
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +38 -18
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +8 -61
- package/esm2022/lib/search/search-results/index.mjs +10 -0
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +44 -19
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +30 -16
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +22 -12
- package/esm2022/lib/search/search-results/search-results.component.mjs +26 -14
- package/esm2022/lib/search/search-results/search-results.module.mjs +8 -91
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +27 -12
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +8 -44
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +40 -15
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +7 -47
- package/esm2022/lib/search/search.module.mjs +10 -13
- package/esm2022/lib/search/shared/index.mjs +1 -1
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +10 -9
- package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +7 -7
- package/esm2022/lib/search/shared/search.utils.mjs +1 -1
- package/esm2022/lib/search/shared/sources/cadastre.mjs +12 -9
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/coordinates.mjs +15 -13
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/icherche.mjs +20 -18
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/ilayer.mjs +14 -12
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.mjs +8 -8
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +3 -2
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +15 -13
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/workspace.mjs +11 -10
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +4 -2
- 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/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/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 +5 -5
- package/esm2022/lib/style/style-list/style-list.service.mjs +5 -5
- package/esm2022/lib/style/style-modal/drawing/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +40 -17
- 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 +28 -14
- 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 +13 -9
- package/esm2022/lib/style/style-modal/shared/index.mjs +1 -1
- package/esm2022/lib/style/style-service/draw-style.service.mjs +5 -5
- package/esm2022/lib/style/style-service/index.mjs +1 -1
- package/esm2022/lib/style/style-service/style.service.mjs +4 -4
- package/esm2022/lib/style/style.module.mjs +12 -57
- package/esm2022/lib/toast/index.mjs +1 -1
- package/esm2022/lib/toast/toast.component.mjs +19 -11
- package/esm2022/lib/toast/toast.module.mjs +10 -30
- package/esm2022/lib/utils/id-generator.mjs +1 -1
- package/esm2022/lib/utils/index.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/index.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +7 -7
- 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 +5 -5
- package/esm2022/lib/wkt/wkt.module.mjs +8 -5
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +11 -10
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +8 -24
- 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 +15 -11
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +12 -10
- 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 +12 -10
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +10 -8
- 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 +7 -7
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +8 -13
- package/esm2022/lib/workspace/widgets/widgets.mjs +1 -1
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +7 -6
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +8 -10
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +7 -6
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +8 -10
- package/esm2022/lib/workspace/workspace.module.mjs +10 -35
- package/esm2022/public_api.mjs +11 -12
- package/fesm2022/igo2-geo.mjs +34474 -34608
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +2 -14
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +3 -2
- package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +3 -2
- package/lib/catalog/catalog-library/catalog-library.module.d.ts +3 -18
- package/lib/catalog/catalog-library/index.d.ts +5 -0
- package/lib/catalog/catalog.module.d.ts +6 -9
- package/lib/catalog/index.d.ts +2 -0
- package/lib/catalog/shared/catalog.service.d.ts +3 -1
- package/lib/datasource/shared/datasource.service.d.ts +4 -5
- package/lib/datasource/shared/options/options-api.providers.d.ts +1 -1
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +4 -2
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +2 -2
- package/lib/directions/directions-results/directions-results.component.d.ts +2 -2
- package/lib/directions/directions-sources/directions-source.provider.d.ts +1 -1
- package/lib/directions/directions-sources/osrm-directions-source.d.ts +1 -1
- package/lib/directions/directions.component.d.ts +2 -2
- package/lib/directions/directions.module.d.ts +9 -20
- package/lib/directions/shared/directions.service.d.ts +3 -1
- package/lib/directions/shared/directions.utils.d.ts +1 -1
- package/lib/download/download-button/download-button.component.d.ts +1 -1
- package/lib/download/download.module.d.ts +4 -6
- package/lib/download/shared/download.service.d.ts +1 -1
- package/lib/draw/draw/draw-layer-popup.component.d.ts +1 -1
- package/lib/draw/draw/draw-popup.component.d.ts +5 -5
- package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
- package/lib/draw/draw/draw.component.d.ts +2 -2
- package/lib/draw/draw/draw.module.d.ts +2 -25
- package/lib/draw/drawingTool.module.d.ts +3 -0
- package/lib/draw/shared/draw-icon.service.d.ts +1 -1
- package/lib/feature/feature-details/feature-details.component.d.ts +7 -4
- package/lib/feature/feature-details/feature-details.directive.d.ts +1 -1
- package/lib/feature/feature-details/feature-details.module.d.ts +2 -6
- package/lib/feature/feature-details/index.d.ts +5 -0
- package/lib/feature/feature-form/feature-form.component.d.ts +2 -2
- package/lib/feature/feature-form/feature-form.module.d.ts +2 -4
- package/lib/feature/feature.module.d.ts +6 -4
- package/lib/feature/index.d.ts +3 -1
- package/lib/filter/filter.module.d.ts +4 -28
- package/lib/filter/index.d.ts +16 -0
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +3 -3
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +3 -3
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +4 -4
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +2 -2
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +3 -3
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +3 -3
- package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +3 -3
- package/lib/filter/shared/filterable-datasource.pipe.d.ts +1 -1
- package/lib/filter/shared/spatial-filter.service.d.ts +2 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +6 -5
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +2 -2
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +1 -1
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +3 -3
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
- package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
- package/lib/filter/time-filter-list/time-filter-list.component.d.ts +1 -1
- package/lib/geo.module.d.ts +14 -24
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +2 -10
- package/lib/geometry/geometry-form-field/index.d.ts +5 -0
- package/lib/geometry/geometry.module.d.ts +5 -3
- package/lib/geometry/index.d.ts +1 -2
- package/lib/import-export/export-button/export-button.component.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +5 -2
- package/lib/import-export/import-export.module.d.ts +4 -15
- package/lib/import-export/index.d.ts +4 -0
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +3 -2
- package/lib/import-export/shared/export.service.d.ts +1 -1
- package/lib/import-export/shared/export.utils.d.ts +1 -1
- package/lib/import-export/shared/import.service.d.ts +1 -1
- package/lib/import-export/shared/import.utils.d.ts +1 -1
- package/lib/layer/index.d.ts +8 -0
- package/lib/layer/layer-item/layer-item.component.d.ts +2 -2
- package/lib/layer/layer-legend/layer-legend.component.d.ts +3 -2
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +2 -2
- package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +2 -2
- package/lib/layer/layer-list/layer-list.component.d.ts +1 -1
- package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
- package/lib/layer/layer.module.d.ts +4 -18
- package/lib/layer/shared/layer.service.d.ts +1 -1
- package/lib/layer/shared/layers/image-layer.d.ts +1 -1
- package/lib/layer/shared/layers/layer.d.ts +1 -1
- package/lib/layer/shared/layers/layer.interface.d.ts +1 -1
- package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
- package/lib/layer/shared/layers/vector-layer.d.ts +1 -1
- package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
- package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
- package/lib/layer/utils/image-watcher.d.ts +1 -1
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +2 -2
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +2 -2
- package/lib/map/home-extent-button/home-extent-button.component.d.ts +2 -2
- package/lib/map/index.d.ts +14 -0
- package/lib/map/info-section/info-section.component.d.ts +1 -1
- package/lib/map/map-browser/map-browser.component.d.ts +2 -2
- package/lib/map/map-center/map-center.component.d.ts +1 -1
- package/lib/map/map.module.d.ts +4 -7
- package/lib/map/menu-button/menu-button.component.d.ts +2 -2
- package/lib/map/offline-button/offline-button.component.d.ts +2 -2
- package/lib/map/rotation-button/rotation-button.component.d.ts +1 -1
- package/lib/map/shared/controllers/geolocation.d.ts +2 -1
- package/lib/map/shared/hover-feature.directive.d.ts +2 -2
- package/lib/map/shared/map-pointer-position.directive.d.ts +2 -2
- package/lib/map/shared/map.d.ts +2 -1
- package/lib/map/shared/mapOffline.directive.d.ts +3 -2
- package/lib/map/shared/projection.service.d.ts +1 -1
- package/lib/map/swipe-control/swipe-control.component.d.ts +1 -1
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +2 -2
- package/lib/map/zoom-button/zoom-button.component.d.ts +1 -1
- package/lib/measure/index.d.ts +1 -2
- package/lib/measure/measure.module.d.ts +3 -0
- package/lib/measure/measurer/index.d.ts +5 -0
- package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
- package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
- package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
- package/lib/measure/measurer/measurer.component.d.ts +4 -4
- package/lib/measure/measurer/measurer.module.d.ts +3 -18
- package/lib/measure/shared/measure.utils.d.ts +1 -1
- package/lib/metadata/index.d.ts +2 -0
- package/lib/metadata/metadata-button/metadata-button.component.d.ts +2 -2
- package/lib/metadata/metadata.module.d.ts +4 -7
- package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +1 -1
- package/lib/offline/geoDB/geoDB.service.d.ts +2 -3
- package/lib/offline/shared/geo-network.service.d.ts +1 -1
- package/lib/overlay/overlay.module.d.ts +4 -1
- package/lib/overlay/shared/overlay.directive.d.ts +1 -1
- package/lib/print/print/print.component.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +2 -2
- package/lib/print/print.module.d.ts +4 -12
- package/lib/print/shared/print.service.d.ts +4 -1
- package/lib/query/query.module.d.ts +4 -4
- package/lib/query/shared/query-search-source.providers.d.ts +1 -1
- package/lib/query/shared/query.directive.d.ts +1 -1
- package/lib/query/shared/query.service.d.ts +2 -3
- package/lib/search/index.d.ts +6 -4
- package/lib/search/search-bar/search-bar.component.d.ts +2 -2
- package/lib/search/search-bar/search-bar.module.d.ts +2 -16
- package/lib/search/search-results/index.d.ts +6 -0
- package/lib/search/search-results/save-feature-dialog.component.d.ts +2 -2
- package/lib/search/search-results/search-results-add-button.component.d.ts +2 -2
- package/lib/search/search-results/search-results-item.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +2 -2
- package/lib/search/search-results/search-results.module.d.ts +3 -21
- package/lib/search/search-selector/search-selector.component.d.ts +1 -1
- package/lib/search/search-selector/search-selector.module.d.ts +2 -11
- package/lib/search/search-settings/search-settings.component.d.ts +3 -2
- package/lib/search/search-settings/search-settings.module.d.ts +2 -12
- package/lib/search/search.module.d.ts +6 -7
- package/lib/search/shared/search-pointer-summary.directive.d.ts +2 -2
- package/lib/search/shared/search.service.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.d.ts +2 -1
- package/lib/search/shared/sources/cadastre.providers.d.ts +4 -2
- package/lib/search/shared/sources/coordinates.d.ts +2 -1
- package/lib/search/shared/sources/coordinates.providers.d.ts +4 -2
- package/lib/search/shared/sources/icherche.d.ts +2 -1
- package/lib/search/shared/sources/icherche.providers.d.ts +5 -3
- package/lib/search/shared/sources/ilayer.d.ts +2 -1
- package/lib/search/shared/sources/ilayer.providers.d.ts +4 -2
- package/lib/search/shared/sources/nominatim.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.providers.d.ts +3 -2
- package/lib/search/shared/sources/source.d.ts +1 -1
- package/lib/search/shared/sources/storedqueries.d.ts +2 -1
- package/lib/search/shared/sources/storedqueries.providers.d.ts +5 -3
- package/lib/search/shared/sources/workspace.d.ts +2 -1
- package/lib/search/shared/sources/workspace.providers.d.ts +4 -2
- package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +1 -1
- package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +1 -1
- package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +1 -1
- package/lib/style/style.module.d.ts +5 -16
- package/lib/toast/toast.component.d.ts +1 -1
- package/lib/toast/toast.module.d.ts +4 -6
- package/lib/utils/propertyTypeDetector/propertyTypeDetector.service.d.ts +1 -1
- package/lib/wkt/wkt.module.d.ts +3 -0
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +2 -2
- package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +2 -6
- package/lib/workspace/shared/edition-workspace.d.ts +1 -1
- package/lib/workspace/shared/edition-workspace.service.d.ts +3 -1
- package/lib/workspace/shared/feature-workspace.service.d.ts +2 -1
- package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -1
- package/lib/workspace/shared/wms-workspace.service.d.ts +2 -1
- package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
- package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +2 -6
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
- package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +2 -3
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
- package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +2 -3
- package/lib/workspace/workspace.module.d.ts +5 -9
- package/locale/en.geo.json +3 -3
- package/locale/fr.geo.json +3 -3
- package/package.json +14 -12
- package/public_api.d.ts +10 -11
- package/src/geo-theme.scss +23 -23
- package/src/lib/filter/filter.theming.scss +13 -13
- package/src/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -18
- package/src/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -5
- package/src/lib/layer/layer-item/layer-item.theme.scss +33 -33
- package/src/lib/layer/layer-legend/layer-legend.theming.scss +10 -10
- package/src/lib/layer/layer-list-tool/layer-list-tool.theming.scss +34 -34
- package/src/lib/layer/layer.theming.scss +10 -10
- package/src/lib/map/map-browser/map-browser.theming.scss +46 -46
- package/src/lib/map/map.theming.scss +9 -9
- package/src/lib/map/menu-button/menu-button.theming.scss +20 -20
- package/src/lib/map/zoom-button/zoom-button.theming.scss +32 -32
- package/src/style/style.scss +1 -1
- package/esm2022/lib/datasource/datasource.module.mjs +0 -22
- package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +0 -40
- package/lib/datasource/datasource.module.d.ts +0 -8
- package/lib/search/search-bar/search-url-param.directive.d.ts +0 -13
|
@@ -200,4 +200,4 @@ export function getFileExtension(file) {
|
|
|
200
200
|
export function computeLayerTitleFromFile(file) {
|
|
201
201
|
return file.name.substr(0, file.name.lastIndexOf('.'));
|
|
202
202
|
}
|
|
203
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvaW1wb3J0LWV4cG9ydC9zaGFyZWQvaW1wb3J0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFHM0YsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2pCLE1BQU0sb0NBQW9DLENBQUM7QUFHNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBR3JFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzNCLE1BQU0sMENBQTBDLENBQUM7QUFLbEQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxRQUFtQixFQUNuQixHQUFXLEVBQ1gsVUFBa0IsRUFDbEIsVUFBa0IsRUFDbEIsWUFBMEIsRUFDMUIsYUFBc0IsS0FBSztJQUUzQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQ25ELFdBQVcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUNyQyxDQUFDO0lBRUYsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDbEIsTUFBTSxhQUFhLEdBQTBEO1FBQzNFLEVBQUU7UUFDRixJQUFJLEVBQUUsUUFBUTtRQUNkLFNBQVMsRUFBRSxJQUFJO0tBQ2hCLENBQUM7SUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixDQUFDLGFBQWEsQ0FB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LElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxJQUFVO0lBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpcm1EaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgdXVpZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IGZpcnN0LCBvZiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ2x1c3RlckRhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jbHVzdGVyLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jbHVzdGVyLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgY29tcHV0ZU9sRmVhdHVyZXNFeHRlbnQsXHJcbiAgZmVhdHVyZVRvT2wsXHJcbiAgbW92ZVRvT2xGZWF0dXJlc1xyXG59IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUudXRpbHMnO1xyXG5pbXBvcnQgeyBDbHVzdGVyUGFyYW0gfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvY2x1c3RlclBhcmFtJztcclxuaW1wb3J0IHsgTGF5ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWZWN0b3JMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9yLWxheWVyJztcclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xyXG5pbXBvcnQgeyBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3F1ZXJ5L3NoYXJlZC9xdWVyeS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICBmZWF0dXJlUmFuZG9tU3R5bGUsXHJcbiAgZmVhdHVyZVJhbmRvbVN0eWxlRnVuY3Rpb25cclxufSBmcm9tICcuLi8uLi9zdHlsZS9zaGFyZWQvZmVhdHVyZS9mZWF0dXJlLXN0eWxlJztcclxuaW1wb3J0IHsgU3R5bGVCeUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC92ZWN0b3IvdmVjdG9yLXN0eWxlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFN0eWxlTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdHlsZS9zdHlsZS1saXN0L3N0eWxlLWxpc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFN0eWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3N0eWxlL3N0eWxlLXNlcnZpY2Uvc3R5bGUuc2VydmljZSc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkTGF5ZXJBbmRGZWF0dXJlc1RvTWFwKFxyXG4gIGZlYXR1cmVzOiBGZWF0dXJlW10sXHJcbiAgbWFwOiBJZ29NYXAsXHJcbiAgY29udGV4dFVyaTogc3RyaW5nLFxyXG4gIGxheWVyVGl0bGU6IHN0cmluZyxcclxuICBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcclxuICBzdG9yZVRvSWRiOiBib29sZWFuID0gZmFsc2VcclxuKTogVmVjdG9yTGF5ZXIge1xyXG4gIGNvbnN0IG9sRmVhdHVyZXMgPSBmZWF0dXJlcy5tYXAoKGZlYXR1cmU6IEZlYXR1cmUpID0+XHJcbiAgICBmZWF0dXJlVG9PbChmZWF0dXJlLCBtYXAucHJvamVjdGlvbilcclxuICApO1xyXG5cclxuICBjb25zdCBpZCA9IHV1aWQoKTtcclxuICBjb25zdCBzb3VyY2VPcHRpb25zOiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMgJiBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyA9IHtcclxuICAgIGlkLFxyXG4gICAgdHlwZTogJ3ZlY3RvcicsXHJcbiAgICBxdWVyeWFibGU6IHRydWVcclxuICB9O1xyXG4gIGNvbnN0IHNvdXJjZSA9IG5ldyBGZWF0dXJlRGF0YVNvdXJjZShzb3VyY2VPcHRpb25zKTtcclxuICBzb3VyY2Uub2wuYWRkRmVhdHVyZXMob2xGZWF0dXJlcyk7XHJcbiAgbGV0IHJhbmRvbVN0eWxlO1xyXG4gIGxldCBlZGl0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGlmIChcclxuICAgIG9sRmVhdHVyZXNbMF0uZ2V0S2V5cygpLmluY2x1ZGVzKCdfc3R5bGUnKSB8fFxyXG4gICAgb2xGZWF0dXJlc1swXS5nZXRLZXlzKCkuaW5jbHVkZXMoJ19tYXBUaXRsZScpXHJcbiAgKSB7XHJcbiAgICByYW5kb21TdHlsZSA9IGZlYXR1cmVSYW5kb21TdHlsZUZ1bmN0aW9uKCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJhbmRvbVN0eWxlID0gZmVhdHVyZVJhbmRvbVN0eWxlKCk7XHJcbiAgICBlZGl0YWJsZSA9IHRydWU7XHJcbiAgfVxyXG4gIGNvbnN0IGxheWVyID0gbGF5ZXJTZXJ2aWNlLmNyZWF0ZUxheWVyKHtcclxuICAgIGlkLFxyXG4gICAgdGl0bGU6IGxheWVyVGl0bGUsXHJcbiAgICB3b3Jrc3BhY2U6IHsgZW5hYmxlZDogdHJ1ZSwgc2VhcmNoSW5kZXhFbmFibGVkOiB0cnVlIH0sXHJcbiAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXHJcbiAgICBzb3VyY2UsXHJcbiAgICBpZ29TdHlsZTogeyBlZGl0YWJsZSB9LFxyXG4gICAgaWRiSW5mbzogeyBmaXJzdExvYWQ6IHRydWUsIHN0b3JlVG9JZGIsIGNvbnRleHRVcmk6IGNvbnRleHRVcmkgfHwgJyonIH0sXHJcbiAgICBzdHlsZTogcmFuZG9tU3R5bGVcclxuICB9KSBhcyBWZWN0b3JMYXllcjtcclxuICBsYXllci5zZXRFeHRlbnQoY29tcHV0ZU9sRmVhdHVyZXNFeHRlbnQob2xGZWF0dXJlcywgbWFwLnZpZXdQcm9qZWN0aW9uKSk7XHJcbiAgbWFwLmFkZExheWVyKGxheWVyKTtcclxuICBtb3ZlVG9PbEZlYXR1cmVzKG1hcC52aWV3Q29udHJvbGxlciwgb2xGZWF0dXJlcyk7XHJcblxyXG4gIHJldHVybiBsYXllcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZExheWVyQW5kRmVhdHVyZXNTdHlsZWRUb01hcChcclxuICBmZWF0dXJlczogRmVhdHVyZVtdLFxyXG4gIG1hcDogSWdvTWFwLFxyXG4gIGxheWVyVGl0bGU6IHN0cmluZyxcclxuICBzdHlsZUxpc3RTZXJ2aWNlOiBTdHlsZUxpc3RTZXJ2aWNlLFxyXG4gIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlLFxyXG4gIGxheWVySWQ/OiBzdHJpbmcsXHJcbiAgaW1wb3NlZFNvdXJjZU9wdGlvbnM/LFxyXG4gIGltcG9zZWRMYXllck9wdGlvbnM/LFxyXG4gIHpvb21UbzogYm9vbGVhbiA9IHRydWVcclxuKTogVmVjdG9yTGF5ZXIge1xyXG4gIGNvbnN0IG9sRmVhdHVyZXMgPSBmZWF0dXJlcy5tYXAoKGZlYXR1cmU6IEZlYXR1cmUpID0+XHJcbiAgICBmZWF0dXJlVG9PbChmZWF0dXJlLCBtYXAucHJvamVjdGlvbilcclxuICApO1xyXG4gIGxldCBzdHlsZTtcclxuICBsZXQgZGlzdGFuY2U6IG51bWJlcjtcclxuXHJcbiAgaWYgKFxyXG4gICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5zdHlsZUJ5QXR0cmlidXRlJylcclxuICApIHtcclxuICAgIGNvbnN0IHN0eWxlQnlBdHRyaWJ1dGU6IFN0eWxlQnlBdHRyaWJ1dGUgPSBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChcclxuICAgICAgbGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5zdHlsZUJ5QXR0cmlidXRlJ1xyXG4gICAgKTtcclxuXHJcbiAgICBzdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGVCeUF0dHJpYnV0ZShcclxuICAgICAgICBmZWF0dXJlLFxyXG4gICAgICAgIHN0eWxlQnlBdHRyaWJ1dGUsXHJcbiAgICAgICAgcmVzb2x1dGlvblxyXG4gICAgICApO1xyXG4gICAgfTtcclxuICB9IGVsc2UgaWYgKFxyXG4gICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5jbHVzdGVyU3R5bGUnKVxyXG4gICkge1xyXG4gICAgY29uc3QgY2x1c3RlclBhcmFtOiBDbHVzdGVyUGFyYW0gPSBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChcclxuICAgICAgbGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5jbHVzdGVyUGFyYW0nXHJcbiAgICApO1xyXG4gICAgZGlzdGFuY2UgPSBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChcclxuICAgICAgbGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5kaXN0YW5jZSdcclxuICAgICk7XHJcblxyXG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xyXG4gICAgICBjb25zdCBiYXNlU3R5bGUgPSBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGUoXHJcbiAgICAgICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5jbHVzdGVyU3R5bGUnKSxcclxuICAgICAgICBmZWF0dXJlLFxyXG4gICAgICAgIHJlc29sdXRpb25cclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIHN0eWxlU2VydmljZS5jcmVhdGVDbHVzdGVyU3R5bGUoXHJcbiAgICAgICAgZmVhdHVyZSxcclxuICAgICAgICByZXNvbHV0aW9uLFxyXG4gICAgICAgIGNsdXN0ZXJQYXJhbSxcclxuICAgICAgICBiYXNlU3R5bGVcclxuICAgICAgKTtcclxuICAgIH07XHJcbiAgfSBlbHNlIGlmIChzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLnN0eWxlJykpIHtcclxuICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+XHJcbiAgICAgIHN0eWxlU2VydmljZS5jcmVhdGVTdHlsZShcclxuICAgICAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLnN0eWxlJyksXHJcbiAgICAgICAgZmVhdHVyZSxcclxuICAgICAgICByZXNvbHV0aW9uXHJcbiAgICAgICk7XHJcbiAgfSBlbHNlIGlmIChcclxuICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KCdkZWZhdWx0LmNsdXN0ZXJTdHlsZScpICYmXHJcbiAgICBmZWF0dXJlc1swXS5nZW9tZXRyeS50eXBlID09PSAnUG9pbnQnXHJcbiAgKSB7XHJcbiAgICBjb25zdCBjbHVzdGVyUGFyYW06IENsdXN0ZXJQYXJhbSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KFxyXG4gICAgICAnZGVmYXVsdC5jbHVzdGVyUGFyYW0nXHJcbiAgICApO1xyXG4gICAgZGlzdGFuY2UgPSBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdCgnZGVmYXVsdC5kaXN0YW5jZScpO1xyXG5cclxuICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IHtcclxuICAgICAgY29uc3QgYmFzZVN0eWxlID0gc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKFxyXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KCdkZWZhdWx0LmNsdXN0ZXJTdHlsZScpLFxyXG4gICAgICAgIGZlYXR1cmUsXHJcbiAgICAgICAgcmVzb2x1dGlvblxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gc3R5bGVTZXJ2aWNlLmNyZWF0ZUNsdXN0ZXJTdHlsZShcclxuICAgICAgICBmZWF0dXJlLFxyXG4gICAgICAgIHJlc29sdXRpb24sXHJcbiAgICAgICAgY2x1c3RlclBhcmFtLFxyXG4gICAgICAgIGJhc2VTdHlsZVxyXG4gICAgICApO1xyXG4gICAgfTtcclxuICB9IGVsc2Uge1xyXG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT5cclxuICAgICAgc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKFxyXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KCdkZWZhdWx0LnN0eWxlJyksXHJcbiAgICAgICAgZmVhdHVyZSxcclxuICAgICAgICByZXNvbHV0aW9uXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBsZXQgc291cmNlO1xyXG4gIGlmIChzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLmNsdXN0ZXJTdHlsZScpKSB7XHJcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zOiBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMgJiBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyA9XHJcbiAgICAgIHtcclxuICAgICAgICBkaXN0YW5jZSxcclxuICAgICAgICB0eXBlOiAnY2x1c3RlcicsXHJcbiAgICAgICAgcXVlcnlhYmxlOiB0cnVlXHJcbiAgICAgIH07XHJcbiAgICBzb3VyY2UgPSBuZXcgQ2x1c3RlckRhdGFTb3VyY2UoXHJcbiAgICAgIE9iamVjdC5hc3NpZ24oc291cmNlT3B0aW9ucywgaW1wb3NlZFNvdXJjZU9wdGlvbnMpXHJcbiAgICApO1xyXG4gICAgc291cmNlLm9sLnNvdXJjZS5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcclxuICB9IGVsc2UgaWYgKHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSkpIHtcclxuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnM6IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID1cclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6ICd2ZWN0b3InLFxyXG4gICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZVxyXG4gICAgICB9O1xyXG4gICAgc291cmNlID0gbmV3IEZlYXR1cmVEYXRhU291cmNlKFxyXG4gICAgICBPYmplY3QuYXNzaWduKHNvdXJjZU9wdGlvbnMsIGltcG9zZWRTb3VyY2VPcHRpb25zKVxyXG4gICAgKTtcclxuICAgIHNvdXJjZS5vbC5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcclxuICB9IGVsc2UgaWYgKFxyXG4gICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoJ2RlZmF1bHQuY2x1c3RlclN0eWxlJykgJiZcclxuICAgIGZlYXR1cmVzWzBdLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCdcclxuICApIHtcclxuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnM6IENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID1cclxuICAgICAge1xyXG4gICAgICAgIGRpc3RhbmNlLFxyXG4gICAgICAgIHR5cGU6ICdjbHVzdGVyJyxcclxuICAgICAgICBxdWVyeWFibGU6IHRydWVcclxuICAgICAgfTtcclxuICAgIHNvdXJjZSA9IG5ldyBDbHVzdGVyRGF0YVNvdXJjZShcclxuICAgICAgT2JqZWN0LmFzc2lnbihzb3VyY2VPcHRpb25zLCBpbXBvc2VkU291cmNlT3B0aW9ucylcclxuICAgICk7XHJcbiAgICBzb3VyY2Uub2wuc291cmNlLmFkZEZlYXR1cmVzKG9sRmVhdHVyZXMpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zOiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMgJiBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyA9XHJcbiAgICAgIHtcclxuICAgICAgICB0eXBlOiAndmVjdG9yJyxcclxuICAgICAgICBxdWVyeWFibGU6IHRydWVcclxuICAgICAgfTtcclxuICAgIHNvdXJjZSA9IG5ldyBGZWF0dXJlRGF0YVNvdXJjZShcclxuICAgICAgT2JqZWN0LmFzc2lnbihzb3VyY2VPcHRpb25zLCBpbXBvc2VkU291cmNlT3B0aW9ucylcclxuICAgICk7XHJcbiAgICBzb3VyY2Uub2wuYWRkRmVhdHVyZXMob2xGZWF0dXJlcyk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBsYXllciA9IG5ldyBWZWN0b3JMYXllcihcclxuICAgIE9iamVjdC5hc3NpZ24oXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogbGF5ZXJUaXRsZSxcclxuICAgICAgICBpZDogbGF5ZXJJZCB8fCB1dWlkKCksXHJcbiAgICAgICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxyXG4gICAgICAgIHNvdXJjZSxcclxuICAgICAgICBzdHlsZVxyXG4gICAgICB9LFxyXG4gICAgICBpbXBvc2VkTGF5ZXJPcHRpb25zXHJcbiAgICApXHJcbiAgKTtcclxuICBtYXAuYWRkTGF5ZXIobGF5ZXIpO1xyXG4gIGlmICh6b29tVG8pIHtcclxuICAgIG1vdmVUb09sRmVhdHVyZXMobWFwLnZpZXdDb250cm9sbGVyLCBvbEZlYXR1cmVzKTtcclxuICB9XHJcbiAgcmV0dXJuIGxheWVyO1xyXG59XHJcblxyXG5mdW5jdGlvbiBwYWRUbzJEaWdpdHMobnVtKSB7XHJcbiAgcmV0dXJuIG51bS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVGaWxlSW1wb3J0U3VjY2VzcyhcclxuICBmaWxlOiBGaWxlLFxyXG4gIGZlYXR1cmVzOiBGZWF0dXJlW10sXHJcbiAgbWFwOiBJZ29NYXAsXHJcbiAgY29udGV4dFVyaTogc3RyaW5nLFxyXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcclxuICBjb25maXJtRGlhbG9nU2VydmljZT86IENvbmZpcm1EaWFsb2dTZXJ2aWNlLFxyXG4gIHN0eWxlTGlzdFNlcnZpY2U/OiBTdHlsZUxpc3RTZXJ2aWNlLFxyXG4gIHN0eWxlU2VydmljZT86IFN0eWxlU2VydmljZVxyXG4pIHtcclxuICBpZiAoZmVhdHVyZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICBoYW5kbGVOb3RoaW5nVG9JbXBvcnRFcnJvcihmaWxlLCBtZXNzYWdlU2VydmljZSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBsZXQgbGF5ZXJUaXRsZSA9IGNvbXB1dGVMYXllclRpdGxlRnJvbUZpbGUoZmlsZSk7XHJcblxyXG4gIGNvbnN0IG9icyQgPSBjb25maXJtRGlhbG9nU2VydmljZVxyXG4gICAgPyBjb25maXJtRGlhbG9nU2VydmljZS5vcGVuKCdpZ28uZ2VvLmltcG9ydC5wcm9tcHRTdG9yZVRvSWRiJylcclxuICAgIDogb2YoZmFsc2UpO1xyXG5cclxuICBvYnMkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKChjb25maXJtKSA9PiB7XHJcbiAgICBjb25zdCBkID0gbmV3IERhdGUoKTtcclxuICAgIGNvbnN0IGRmb3JtYXQgPVxyXG4gICAgICBbXHJcbiAgICAgICAgZC5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIHBhZFRvMkRpZ2l0cyhkLmdldE1vbnRoKCkgKyAxKSxcclxuICAgICAgICBwYWRUbzJEaWdpdHMoZC5nZXREYXRlKCkpXHJcbiAgICAgIF0uam9pbignLycpICtcclxuICAgICAgJyAnICtcclxuICAgICAgW3BhZFRvMkRpZ2l0cyhkLmdldEhvdXJzKCkpLCBwYWRUbzJEaWdpdHMoZC5nZXRNaW51dGVzKCkpXS5qb2luKCc6Jyk7XHJcblxyXG4gICAgbGF5ZXJUaXRsZSA9IGNvbmZpcm0gPyBgJHtsYXllclRpdGxlfSAoJHtkZm9ybWF0fSlgIDogbGF5ZXJUaXRsZTtcclxuICAgIGlmICghc3R5bGVMaXN0U2VydmljZSkge1xyXG4gICAgICBhZGRMYXllckFuZEZlYXR1cmVzVG9NYXAoXHJcbiAgICAgICAgZmVhdHVyZXMsXHJcbiAgICAgICAgbWFwLFxyXG4gICAgICAgIGNvbnRleHRVcmksXHJcbiAgICAgICAgbGF5ZXJUaXRsZSxcclxuICAgICAgICBsYXllclNlcnZpY2UsXHJcbiAgICAgICAgY29uZmlybVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYWRkTGF5ZXJBbmRGZWF0dXJlc1N0eWxlZFRvTWFwKFxyXG4gICAgICAgIGZlYXR1cmVzLFxyXG4gICAgICAgIG1hcCxcclxuICAgICAgICBsYXllclRpdGxlLFxyXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UsXHJcbiAgICAgICAgc3R5bGVTZXJ2aWNlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcclxuICAgICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuc3VjY2Vzcy50ZXh0JyxcclxuICAgICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuc3VjY2Vzcy50aXRsZScsXHJcbiAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgeyB2YWx1ZTogbGF5ZXJUaXRsZSB9XHJcbiAgICApO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRmlsZUltcG9ydEVycm9yKFxyXG4gIGZpbGU6IEZpbGUsXHJcbiAgZXJyb3I6IEVycm9yLFxyXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICBzaXplTWI/OiBudW1iZXJcclxuKSB7XHJcbiAgc2l6ZU1iID0gc2l6ZU1iID8gc2l6ZU1iIDogMzA7XHJcbiAgY29uc3QgZXJyTWFwcGluZyA9IHtcclxuICAgICdJbnZhbGlkIGZpbGUnOiBoYW5kbGVJbnZhbGlkRmlsZUltcG9ydEVycm9yLFxyXG4gICAgJ0ZpbGUgaXMgdG9vIGxhcmdlJzogaGFuZGxlU2l6ZUZpbGVJbXBvcnRFcnJvcixcclxuICAgICdGYWlsZWQgdG8gcmVhZCBmaWxlJzogaGFuZGxlVW5yZWFkYmxlRmlsZUltcG9ydEVycm9yLFxyXG4gICAgJ0ludmFsaWQgU1JTIGRlZmluaXRpb24nOiBoYW5kbGVTUlNJbXBvcnRFcnJvcixcclxuICAgICdFcnJvciA1MDAgd2l0aCBPR1JFJzogaGFuZGxlT2dyZVNlcnZlckltcG9ydEVycm9yXHJcbiAgfTtcclxuICBlcnJNYXBwaW5nW2Vycm9yLm1lc3NhZ2VdKGZpbGUsIGVycm9yLCBtZXNzYWdlU2VydmljZSwgc2l6ZU1iKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUludmFsaWRGaWxlSW1wb3J0RXJyb3IoXHJcbiAgZmlsZTogRmlsZSxcclxuICBlcnJvcjogRXJyb3IsXHJcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXHJcbikge1xyXG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuaW52YWxpZC50ZXh0JyxcclxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLmludmFsaWQudGl0bGUnLFxyXG4gICAgdW5kZWZpbmVkLFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogZmlsZS5uYW1lLFxyXG4gICAgICBtaW1lVHlwZTogZmlsZS50eXBlXHJcbiAgICB9XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVVucmVhZGJsZUZpbGVJbXBvcnRFcnJvcihcclxuICBmaWxlOiBGaWxlLFxyXG4gIGVycm9yOiBFcnJvcixcclxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuKSB7XHJcbiAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS51bnJlYWRhYmxlLnRleHQnLFxyXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUudW5yZWFkYWJsZS50aXRsZScsXHJcbiAgICB1bmRlZmluZWQsXHJcbiAgICB7IHZhbHVlOiBmaWxlLm5hbWUgfVxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTaXplRmlsZUltcG9ydEVycm9yKFxyXG4gIGZpbGU6IEZpbGUsXHJcbiAgZXJyb3I6IEVycm9yLFxyXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICBzaXplTWI6IG51bWJlclxyXG4pIHtcclxuICBtZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLnRvb0xhcmdlLnRleHQnLFxyXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUudG9vTGFyZ2UudGl0bGUnLFxyXG4gICAgdW5kZWZpbmVkLFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogZmlsZS5uYW1lLFxyXG4gICAgICBzaXplOiBzaXplTWJcclxuICAgIH1cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlTm90aGluZ1RvSW1wb3J0RXJyb3IoXHJcbiAgZmlsZTogRmlsZSxcclxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuKSB7XHJcbiAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5lbXB0eS50ZXh0JyxcclxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLmVtcHR5LnRpdGxlJyxcclxuICAgIHVuZGVmaW5lZCxcclxuICAgIHtcclxuICAgICAgdmFsdWU6IGZpbGUubmFtZSxcclxuICAgICAgbWltZVR5cGU6IGZpbGUudHlwZVxyXG4gICAgfVxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTUlNJbXBvcnRFcnJvcihcclxuICBmaWxlOiBGaWxlLFxyXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxyXG4pIHtcclxuICBtZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLmludmFsaWRTUlMudGV4dCcsXHJcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5pbnZhbGlkU1JTLnRpdGxlJyxcclxuICAgIHVuZGVmaW5lZCxcclxuICAgIHtcclxuICAgICAgdmFsdWU6IGZpbGUubmFtZSxcclxuICAgICAgbWltZVR5cGU6IGZpbGUudHlwZVxyXG4gICAgfVxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVPZ3JlU2VydmVySW1wb3J0RXJyb3IoXHJcbiAgZmlsZTogRmlsZSxcclxuICBlcnJvcjogRXJyb3IsXHJcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXHJcbikge1xyXG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUub2dyZVNlcnZlci50ZXh0JyxcclxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLm9ncmVTZXJ2ZXIudGl0bGUnXHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVFeHRlbnNpb24oZmlsZTogRmlsZSk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGZpbGUubmFtZS5zcGxpdCgnLicpLnBvcCgpLnRvTG93ZXJDYXNlKCk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlTGF5ZXJUaXRsZUZyb21GaWxlKGZpbGU6IEZpbGUpOiBzdHJpbmcge1xyXG4gIHJldHVybiBmaWxlLm5hbWUuc3Vic3RyKDAsIGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKTtcclxufVxyXG4iXX0=
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvaW1wb3J0LWV4cG9ydC9zaGFyZWQvaW1wb3J0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFHM0YsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2pCLE1BQU0sb0NBQW9DLENBQUM7QUFHNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBR3JFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzNCLE1BQU0sMENBQTBDLENBQUM7QUFLbEQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxRQUFtQixFQUNuQixHQUFXLEVBQ1gsVUFBa0IsRUFDbEIsVUFBa0IsRUFDbEIsWUFBMEIsRUFDMUIsYUFBc0IsS0FBSztJQUUzQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQ25ELFdBQVcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUNyQyxDQUFDO0lBRUYsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDbEIsTUFBTSxhQUFhLEdBQTBEO1FBQzNFLEVBQUU7UUFDRixJQUFJLEVBQUUsUUFBUTtRQUNkLFNBQVMsRUFBRSxJQUFJO0tBQ2hCLENBQUM7SUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixDQUFDLGFBQWEsQ0FB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Q3pDLElBQVUsRUFDVixLQUFZLEVBQ1osY0FBOEI7SUFFOUIsY0FBYyxDQUFDLEtBQUssQ0FDbEIscUNBQXFDLEVBQ3JDLHNDQUFzQyxDQUN2QyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFVO0lBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxJQUFVO0lBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpcm1EaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xyXG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgZmlyc3QsIG9mIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBDbHVzdGVyRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2NsdXN0ZXItZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2NsdXN0ZXItZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICBjb21wdXRlT2xGZWF0dXJlc0V4dGVudCxcclxuICBmZWF0dXJlVG9PbCxcclxuICBtb3ZlVG9PbEZlYXR1cmVzXHJcbn0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS51dGlscyc7XHJcbmltcG9ydCB7IENsdXN0ZXJQYXJhbSB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9jbHVzdGVyUGFyYW0nO1xyXG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXInO1xyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcCc7XHJcbmltcG9ydCB7IFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vcXVlcnkvc2hhcmVkL3F1ZXJ5LmludGVyZmFjZXMnO1xyXG5pbXBvcnQge1xyXG4gIGZlYXR1cmVSYW5kb21TdHlsZSxcclxuICBmZWF0dXJlUmFuZG9tU3R5bGVGdW5jdGlvblxyXG59IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC9mZWF0dXJlL2ZlYXR1cmUtc3R5bGUnO1xyXG5pbXBvcnQgeyBTdHlsZUJ5QXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc2hhcmVkL3ZlY3Rvci92ZWN0b3Itc3R5bGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgU3R5bGVMaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3N0eWxlL3N0eWxlLWxpc3Qvc3R5bGUtbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc3R5bGUtc2VydmljZS9zdHlsZS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRMYXllckFuZEZlYXR1cmVzVG9NYXAoXHJcbiAgZmVhdHVyZXM6IEZlYXR1cmVbXSxcclxuICBtYXA6IElnb01hcCxcclxuICBjb250ZXh0VXJpOiBzdHJpbmcsXHJcbiAgbGF5ZXJUaXRsZTogc3RyaW5nLFxyXG4gIGxheWVyU2VydmljZTogTGF5ZXJTZXJ2aWNlLFxyXG4gIHN0b3JlVG9JZGI6IGJvb2xlYW4gPSBmYWxzZVxyXG4pOiBWZWN0b3JMYXllciB7XHJcbiAgY29uc3Qgb2xGZWF0dXJlcyA9IGZlYXR1cmVzLm1hcCgoZmVhdHVyZTogRmVhdHVyZSkgPT5cclxuICAgIGZlYXR1cmVUb09sKGZlYXR1cmUsIG1hcC5wcm9qZWN0aW9uKVxyXG4gICk7XHJcblxyXG4gIGNvbnN0IGlkID0gdXVpZCgpO1xyXG4gIGNvbnN0IHNvdXJjZU9wdGlvbnM6IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID0ge1xyXG4gICAgaWQsXHJcbiAgICB0eXBlOiAndmVjdG9yJyxcclxuICAgIHF1ZXJ5YWJsZTogdHJ1ZVxyXG4gIH07XHJcbiAgY29uc3Qgc291cmNlID0gbmV3IEZlYXR1cmVEYXRhU291cmNlKHNvdXJjZU9wdGlvbnMpO1xyXG4gIHNvdXJjZS5vbC5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcclxuICBsZXQgcmFuZG9tU3R5bGU7XHJcbiAgbGV0IGVkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaWYgKFxyXG4gICAgb2xGZWF0dXJlc1swXS5nZXRLZXlzKCkuaW5jbHVkZXMoJ19zdHlsZScpIHx8XHJcbiAgICBvbEZlYXR1cmVzWzBdLmdldEtleXMoKS5pbmNsdWRlcygnX21hcFRpdGxlJylcclxuICApIHtcclxuICAgIHJhbmRvbVN0eWxlID0gZmVhdHVyZVJhbmRvbVN0eWxlRnVuY3Rpb24oKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmFuZG9tU3R5bGUgPSBmZWF0dXJlUmFuZG9tU3R5bGUoKTtcclxuICAgIGVkaXRhYmxlID0gdHJ1ZTtcclxuICB9XHJcbiAgY29uc3QgbGF5ZXIgPSBsYXllclNlcnZpY2UuY3JlYXRlTGF5ZXIoe1xyXG4gICAgaWQsXHJcbiAgICB0aXRsZTogbGF5ZXJUaXRsZSxcclxuICAgIHdvcmtzcGFjZTogeyBlbmFibGVkOiB0cnVlLCBzZWFyY2hJbmRleEVuYWJsZWQ6IHRydWUgfSxcclxuICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcclxuICAgIHNvdXJjZSxcclxuICAgIGlnb1N0eWxlOiB7IGVkaXRhYmxlIH0sXHJcbiAgICBpZGJJbmZvOiB7IGZpcnN0TG9hZDogdHJ1ZSwgc3RvcmVUb0lkYiwgY29udGV4dFVyaTogY29udGV4dFVyaSB8fCAnKicgfSxcclxuICAgIHN0eWxlOiByYW5kb21TdHlsZVxyXG4gIH0pIGFzIFZlY3RvckxheWVyO1xyXG4gIGxheWVyLnNldEV4dGVudChjb21wdXRlT2xGZWF0dXJlc0V4dGVudChvbEZlYXR1cmVzLCBtYXAudmlld1Byb2plY3Rpb24pKTtcclxuICBtYXAuYWRkTGF5ZXIobGF5ZXIpO1xyXG4gIG1vdmVUb09sRmVhdHVyZXMobWFwLnZpZXdDb250cm9sbGVyLCBvbEZlYXR1cmVzKTtcclxuXHJcbiAgcmV0dXJuIGxheWVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkTGF5ZXJBbmRGZWF0dXJlc1N0eWxlZFRvTWFwKFxyXG4gIGZlYXR1cmVzOiBGZWF0dXJlW10sXHJcbiAgbWFwOiBJZ29NYXAsXHJcbiAgbGF5ZXJUaXRsZTogc3RyaW5nLFxyXG4gIHN0eWxlTGlzdFNlcnZpY2U6IFN0eWxlTGlzdFNlcnZpY2UsXHJcbiAgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXHJcbiAgbGF5ZXJJZD86IHN0cmluZyxcclxuICBpbXBvc2VkU291cmNlT3B0aW9ucz8sXHJcbiAgaW1wb3NlZExheWVyT3B0aW9ucz8sXHJcbiAgem9vbVRvOiBib29sZWFuID0gdHJ1ZVxyXG4pOiBWZWN0b3JMYXllciB7XHJcbiAgY29uc3Qgb2xGZWF0dXJlcyA9IGZlYXR1cmVzLm1hcCgoZmVhdHVyZTogRmVhdHVyZSkgPT5cclxuICAgIGZlYXR1cmVUb09sKGZlYXR1cmUsIG1hcC5wcm9qZWN0aW9uKVxyXG4gICk7XHJcbiAgbGV0IHN0eWxlO1xyXG4gIGxldCBkaXN0YW5jZTogbnVtYmVyO1xyXG5cclxuICBpZiAoXHJcbiAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLnN0eWxlQnlBdHRyaWJ1dGUnKVxyXG4gICkge1xyXG4gICAgY29uc3Qgc3R5bGVCeUF0dHJpYnV0ZTogU3R5bGVCeUF0dHJpYnV0ZSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KFxyXG4gICAgICBsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLnN0eWxlQnlBdHRyaWJ1dGUnXHJcbiAgICApO1xyXG5cclxuICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHN0eWxlU2VydmljZS5jcmVhdGVTdHlsZUJ5QXR0cmlidXRlKFxyXG4gICAgICAgIGZlYXR1cmUsXHJcbiAgICAgICAgc3R5bGVCeUF0dHJpYnV0ZSxcclxuICAgICAgICByZXNvbHV0aW9uXHJcbiAgICAgICk7XHJcbiAgICB9O1xyXG4gIH0gZWxzZSBpZiAoXHJcbiAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLmNsdXN0ZXJTdHlsZScpXHJcbiAgKSB7XHJcbiAgICBjb25zdCBjbHVzdGVyUGFyYW06IENsdXN0ZXJQYXJhbSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KFxyXG4gICAgICBsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLmNsdXN0ZXJQYXJhbSdcclxuICAgICk7XHJcbiAgICBkaXN0YW5jZSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KFxyXG4gICAgICBsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLmRpc3RhbmNlJ1xyXG4gICAgKTtcclxuXHJcbiAgICBzdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PiB7XHJcbiAgICAgIGNvbnN0IGJhc2VTdHlsZSA9IHN0eWxlU2VydmljZS5jcmVhdGVTdHlsZShcclxuICAgICAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLmNsdXN0ZXJTdHlsZScpLFxyXG4gICAgICAgIGZlYXR1cmUsXHJcbiAgICAgICAgcmVzb2x1dGlvblxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gc3R5bGVTZXJ2aWNlLmNyZWF0ZUNsdXN0ZXJTdHlsZShcclxuICAgICAgICBmZWF0dXJlLFxyXG4gICAgICAgIHJlc29sdXRpb24sXHJcbiAgICAgICAgY2x1c3RlclBhcmFtLFxyXG4gICAgICAgIGJhc2VTdHlsZVxyXG4gICAgICApO1xyXG4gICAgfTtcclxuICB9IGVsc2UgaWYgKHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuc3R5bGUnKSkge1xyXG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT5cclxuICAgICAgc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKFxyXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuc3R5bGUnKSxcclxuICAgICAgICBmZWF0dXJlLFxyXG4gICAgICAgIHJlc29sdXRpb25cclxuICAgICAgKTtcclxuICB9IGVsc2UgaWYgKFxyXG4gICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoJ2RlZmF1bHQuY2x1c3RlclN0eWxlJykgJiZcclxuICAgIGZlYXR1cmVzWzBdLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCdcclxuICApIHtcclxuICAgIGNvbnN0IGNsdXN0ZXJQYXJhbTogQ2x1c3RlclBhcmFtID0gc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoXHJcbiAgICAgICdkZWZhdWx0LmNsdXN0ZXJQYXJhbSdcclxuICAgICk7XHJcbiAgICBkaXN0YW5jZSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KCdkZWZhdWx0LmRpc3RhbmNlJyk7XHJcblxyXG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xyXG4gICAgICBjb25zdCBiYXNlU3R5bGUgPSBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGUoXHJcbiAgICAgICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoJ2RlZmF1bHQuY2x1c3RlclN0eWxlJyksXHJcbiAgICAgICAgZmVhdHVyZSxcclxuICAgICAgICByZXNvbHV0aW9uXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBzdHlsZVNlcnZpY2UuY3JlYXRlQ2x1c3RlclN0eWxlKFxyXG4gICAgICAgIGZlYXR1cmUsXHJcbiAgICAgICAgcmVzb2x1dGlvbixcclxuICAgICAgICBjbHVzdGVyUGFyYW0sXHJcbiAgICAgICAgYmFzZVN0eWxlXHJcbiAgICAgICk7XHJcbiAgICB9O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBzdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PlxyXG4gICAgICBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGUoXHJcbiAgICAgICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoJ2RlZmF1bHQuc3R5bGUnKSxcclxuICAgICAgICBmZWF0dXJlLFxyXG4gICAgICAgIHJlc29sdXRpb25cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGxldCBzb3VyY2U7XHJcbiAgaWYgKHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuY2x1c3RlclN0eWxlJykpIHtcclxuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnM6IENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID1cclxuICAgICAge1xyXG4gICAgICAgIGRpc3RhbmNlLFxyXG4gICAgICAgIHR5cGU6ICdjbHVzdGVyJyxcclxuICAgICAgICBxdWVyeWFibGU6IHRydWVcclxuICAgICAgfTtcclxuICAgIHNvdXJjZSA9IG5ldyBDbHVzdGVyRGF0YVNvdXJjZShcclxuICAgICAgT2JqZWN0LmFzc2lnbihzb3VyY2VPcHRpb25zLCBpbXBvc2VkU291cmNlT3B0aW9ucylcclxuICAgICk7XHJcbiAgICBzb3VyY2Uub2wuc291cmNlLmFkZEZlYXR1cmVzKG9sRmVhdHVyZXMpO1xyXG4gIH0gZWxzZSBpZiAoc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpKSkge1xyXG4gICAgY29uc3Qgc291cmNlT3B0aW9uczogRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zICYgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgPVxyXG4gICAgICB7XHJcbiAgICAgICAgdHlwZTogJ3ZlY3RvcicsXHJcbiAgICAgICAgcXVlcnlhYmxlOiB0cnVlXHJcbiAgICAgIH07XHJcbiAgICBzb3VyY2UgPSBuZXcgRmVhdHVyZURhdGFTb3VyY2UoXHJcbiAgICAgIE9iamVjdC5hc3NpZ24oc291cmNlT3B0aW9ucywgaW1wb3NlZFNvdXJjZU9wdGlvbnMpXHJcbiAgICApO1xyXG4gICAgc291cmNlLm9sLmFkZEZlYXR1cmVzKG9sRmVhdHVyZXMpO1xyXG4gIH0gZWxzZSBpZiAoXHJcbiAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdCgnZGVmYXVsdC5jbHVzdGVyU3R5bGUnKSAmJlxyXG4gICAgZmVhdHVyZXNbMF0uZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50J1xyXG4gICkge1xyXG4gICAgY29uc3Qgc291cmNlT3B0aW9uczogQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zICYgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgPVxyXG4gICAgICB7XHJcbiAgICAgICAgZGlzdGFuY2UsXHJcbiAgICAgICAgdHlwZTogJ2NsdXN0ZXInLFxyXG4gICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZVxyXG4gICAgICB9O1xyXG4gICAgc291cmNlID0gbmV3IENsdXN0ZXJEYXRhU291cmNlKFxyXG4gICAgICBPYmplY3QuYXNzaWduKHNvdXJjZU9wdGlvbnMsIGltcG9zZWRTb3VyY2VPcHRpb25zKVxyXG4gICAgKTtcclxuICAgIHNvdXJjZS5vbC5zb3VyY2UuYWRkRmVhdHVyZXMob2xGZWF0dXJlcyk7XHJcbiAgfSBlbHNlIHtcclxuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnM6IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID1cclxuICAgICAge1xyXG4gICAgICAgIHR5cGU6ICd2ZWN0b3InLFxyXG4gICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZVxyXG4gICAgICB9O1xyXG4gICAgc291cmNlID0gbmV3IEZlYXR1cmVEYXRhU291cmNlKFxyXG4gICAgICBPYmplY3QuYXNzaWduKHNvdXJjZU9wdGlvbnMsIGltcG9zZWRTb3VyY2VPcHRpb25zKVxyXG4gICAgKTtcclxuICAgIHNvdXJjZS5vbC5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGxheWVyID0gbmV3IFZlY3RvckxheWVyKFxyXG4gICAgT2JqZWN0LmFzc2lnbihcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiBsYXllclRpdGxlLFxyXG4gICAgICAgIGlkOiBsYXllcklkIHx8IHV1aWQoKSxcclxuICAgICAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXHJcbiAgICAgICAgc291cmNlLFxyXG4gICAgICAgIHN0eWxlXHJcbiAgICAgIH0sXHJcbiAgICAgIGltcG9zZWRMYXllck9wdGlvbnNcclxuICAgIClcclxuICApO1xyXG4gIG1hcC5hZGRMYXllcihsYXllcik7XHJcbiAgaWYgKHpvb21Ubykge1xyXG4gICAgbW92ZVRvT2xGZWF0dXJlcyhtYXAudmlld0NvbnRyb2xsZXIsIG9sRmVhdHVyZXMpO1xyXG4gIH1cclxuICByZXR1cm4gbGF5ZXI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHBhZFRvMkRpZ2l0cyhudW0pIHtcclxuICByZXR1cm4gbnVtLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUZpbGVJbXBvcnRTdWNjZXNzKFxyXG4gIGZpbGU6IEZpbGUsXHJcbiAgZmVhdHVyZXM6IEZlYXR1cmVbXSxcclxuICBtYXA6IElnb01hcCxcclxuICBjb250ZXh0VXJpOiBzdHJpbmcsXHJcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gIGxheWVyU2VydmljZTogTGF5ZXJTZXJ2aWNlLFxyXG4gIGNvbmZpcm1EaWFsb2dTZXJ2aWNlPzogQ29uZmlybURpYWxvZ1NlcnZpY2UsXHJcbiAgc3R5bGVMaXN0U2VydmljZT86IFN0eWxlTGlzdFNlcnZpY2UsXHJcbiAgc3R5bGVTZXJ2aWNlPzogU3R5bGVTZXJ2aWNlXHJcbikge1xyXG4gIGlmIChmZWF0dXJlcy5sZW5ndGggPT09IDApIHtcclxuICAgIGhhbmRsZU5vdGhpbmdUb0ltcG9ydEVycm9yKGZpbGUsIG1lc3NhZ2VTZXJ2aWNlKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGxldCBsYXllclRpdGxlID0gY29tcHV0ZUxheWVyVGl0bGVGcm9tRmlsZShmaWxlKTtcclxuXHJcbiAgY29uc3Qgb2JzJCA9IGNvbmZpcm1EaWFsb2dTZXJ2aWNlXHJcbiAgICA/IGNvbmZpcm1EaWFsb2dTZXJ2aWNlLm9wZW4oJ2lnby5nZW8uaW1wb3J0LnByb21wdFN0b3JlVG9JZGInKVxyXG4gICAgOiBvZihmYWxzZSk7XHJcblxyXG4gIG9icyQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKGNvbmZpcm0pID0+IHtcclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZGZvcm1hdCA9XHJcbiAgICAgIFtcclxuICAgICAgICBkLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgcGFkVG8yRGlnaXRzKGQuZ2V0TW9udGgoKSArIDEpLFxyXG4gICAgICAgIHBhZFRvMkRpZ2l0cyhkLmdldERhdGUoKSlcclxuICAgICAgXS5qb2luKCcvJykgK1xyXG4gICAgICAnICcgK1xyXG4gICAgICBbcGFkVG8yRGlnaXRzKGQuZ2V0SG91cnMoKSksIHBhZFRvMkRpZ2l0cyhkLmdldE1pbnV0ZXMoKSldLmpvaW4oJzonKTtcclxuXHJcbiAgICBsYXllclRpdGxlID0gY29uZmlybSA/IGAke2xheWVyVGl0bGV9ICgke2Rmb3JtYXR9KWAgOiBsYXllclRpdGxlO1xyXG4gICAgaWYgKCFzdHlsZUxpc3RTZXJ2aWNlKSB7XHJcbiAgICAgIGFkZExheWVyQW5kRmVhdHVyZXNUb01hcChcclxuICAgICAgICBmZWF0dXJlcyxcclxuICAgICAgICBtYXAsXHJcbiAgICAgICAgY29udGV4dFVyaSxcclxuICAgICAgICBsYXllclRpdGxlLFxyXG4gICAgICAgIGxheWVyU2VydmljZSxcclxuICAgICAgICBjb25maXJtXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhZGRMYXllckFuZEZlYXR1cmVzU3R5bGVkVG9NYXAoXHJcbiAgICAgICAgZmVhdHVyZXMsXHJcbiAgICAgICAgbWFwLFxyXG4gICAgICAgIGxheWVyVGl0bGUsXHJcbiAgICAgICAgc3R5bGVMaXN0U2VydmljZSxcclxuICAgICAgICBzdHlsZVNlcnZpY2VcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBtZXNzYWdlU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5zdWNjZXNzLnRleHQnLFxyXG4gICAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5zdWNjZXNzLnRpdGxlJyxcclxuICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICB7IHZhbHVlOiBsYXllclRpdGxlIH1cclxuICAgICk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVGaWxlSW1wb3J0RXJyb3IoXHJcbiAgZmlsZTogRmlsZSxcclxuICBlcnJvcjogRXJyb3IsXHJcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gIHNpemVNYj86IG51bWJlclxyXG4pIHtcclxuICBzaXplTWIgPSBzaXplTWIgPyBzaXplTWIgOiAzMDtcclxuICBjb25zdCBlcnJNYXBwaW5nID0ge1xyXG4gICAgJ0ludmFsaWQgZmlsZSc6IGhhbmRsZUludmFsaWRGaWxlSW1wb3J0RXJyb3IsXHJcbiAgICAnRmlsZSBpcyB0b28gbGFyZ2UnOiBoYW5kbGVTaXplRmlsZUltcG9ydEVycm9yLFxyXG4gICAgJ0ZhaWxlZCB0byByZWFkIGZpbGUnOiBoYW5kbGVVbnJlYWRibGVGaWxlSW1wb3J0RXJyb3IsXHJcbiAgICAnSW52YWxpZCBTUlMgZGVmaW5pdGlvbic6IGhhbmRsZVNSU0ltcG9ydEVycm9yLFxyXG4gICAgJ0Vycm9yIDUwMCB3aXRoIE9HUkUnOiBoYW5kbGVPZ3JlU2VydmVySW1wb3J0RXJyb3JcclxuICB9O1xyXG4gIGVyck1hcHBpbmdbZXJyb3IubWVzc2FnZV0oZmlsZSwgZXJyb3IsIG1lc3NhZ2VTZXJ2aWNlLCBzaXplTWIpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlSW52YWxpZEZpbGVJbXBvcnRFcnJvcihcclxuICBmaWxlOiBGaWxlLFxyXG4gIGVycm9yOiBFcnJvcixcclxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuKSB7XHJcbiAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5pbnZhbGlkLnRleHQnLFxyXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuaW52YWxpZC50aXRsZScsXHJcbiAgICB1bmRlZmluZWQsXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiBmaWxlLm5hbWUsXHJcbiAgICAgIG1pbWVUeXBlOiBmaWxlLnR5cGVcclxuICAgIH1cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlVW5yZWFkYmxlRmlsZUltcG9ydEVycm9yKFxyXG4gIGZpbGU6IEZpbGUsXHJcbiAgZXJyb3I6IEVycm9yLFxyXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxyXG4pIHtcclxuICBtZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLnVucmVhZGFibGUudGV4dCcsXHJcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS51bnJlYWRhYmxlLnRpdGxlJyxcclxuICAgIHVuZGVmaW5lZCxcclxuICAgIHsgdmFsdWU6IGZpbGUubmFtZSB9XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNpemVGaWxlSW1wb3J0RXJyb3IoXHJcbiAgZmlsZTogRmlsZSxcclxuICBlcnJvcjogRXJyb3IsXHJcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gIHNpemVNYjogbnVtYmVyXHJcbikge1xyXG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUudG9vTGFyZ2UudGV4dCcsXHJcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS50b29MYXJnZS50aXRsZScsXHJcbiAgICB1bmRlZmluZWQsXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiBmaWxlLm5hbWUsXHJcbiAgICAgIHNpemU6IHNpemVNYlxyXG4gICAgfVxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVOb3RoaW5nVG9JbXBvcnRFcnJvcihcclxuICBmaWxlOiBGaWxlLFxyXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxyXG4pIHtcclxuICBtZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLmVtcHR5LnRleHQnLFxyXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuZW1wdHkudGl0bGUnLFxyXG4gICAgdW5kZWZpbmVkLFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogZmlsZS5uYW1lLFxyXG4gICAgICBtaW1lVHlwZTogZmlsZS50eXBlXHJcbiAgICB9XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNSU0ltcG9ydEVycm9yKFxyXG4gIGZpbGU6IEZpbGUsXHJcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXHJcbikge1xyXG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuaW52YWxpZFNSUy50ZXh0JyxcclxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLmludmFsaWRTUlMudGl0bGUnLFxyXG4gICAgdW5kZWZpbmVkLFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogZmlsZS5uYW1lLFxyXG4gICAgICBtaW1lVHlwZTogZmlsZS50eXBlXHJcbiAgICB9XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZU9ncmVTZXJ2ZXJJbXBvcnRFcnJvcihcclxuICBmaWxlOiBGaWxlLFxyXG4gIGVycm9yOiBFcnJvcixcclxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuKSB7XHJcbiAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5vZ3JlU2VydmVyLnRleHQnLFxyXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUub2dyZVNlcnZlci50aXRsZSdcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUV4dGVuc2lvbihmaWxlOiBGaWxlKTogc3RyaW5nIHtcclxuICByZXR1cm4gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkudG9Mb3dlckNhc2UoKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVMYXllclRpdGxlRnJvbUZpbGUoZmlsZTogRmlsZSk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGZpbGUubmFtZS5zdWJzdHIoMCwgZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJykpO1xyXG59XHJcbiJdfQ==
|
|
@@ -8,4 +8,4 @@ export * from './import.errors';
|
|
|
8
8
|
export * from './import.interface';
|
|
9
9
|
export * from './import.service';
|
|
10
10
|
export * from './import.utils';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJvcC1nZW8tZmlsZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2V4cG9ydC5lcnJvcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2V4cG9ydC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2V4cG9ydC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9leHBvcnQudHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXhwb3J0LnV0aWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbXBvcnQuZXJyb3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbXBvcnQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbXBvcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW1wb3J0LnV0aWxzJztcclxuIl19
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { LayerItemComponent } from './layer-item';
|
|
2
|
+
import { LayerLegendComponent } from './layer-legend';
|
|
3
|
+
import { LayerLegendItemComponent } from './layer-legend-item';
|
|
4
|
+
import { LayerLegendListBindingDirective, LayerLegendListComponent } from './layer-legend-list';
|
|
5
|
+
import { LayerListBindingDirective, LayerListComponent } from './layer-list';
|
|
6
|
+
import { LayerListToolComponent } from './layer-list-tool';
|
|
7
|
+
import { TrackFeatureButtonComponent } from './track-feature-button';
|
|
1
8
|
export * from './shared';
|
|
2
9
|
export * from './layer-item';
|
|
3
10
|
export * from './layer-legend';
|
|
@@ -7,4 +14,15 @@ export * from './layer-list';
|
|
|
7
14
|
export * from './layer-list-tool';
|
|
8
15
|
export * from './track-feature-button';
|
|
9
16
|
export * from './utils';
|
|
10
|
-
|
|
17
|
+
export const LAYER_DIRECTIVES = [
|
|
18
|
+
LayerItemComponent,
|
|
19
|
+
LayerLegendItemComponent,
|
|
20
|
+
LayerLegendComponent,
|
|
21
|
+
LayerListComponent,
|
|
22
|
+
LayerListToolComponent,
|
|
23
|
+
LayerLegendListComponent,
|
|
24
|
+
LayerListBindingDirective,
|
|
25
|
+
LayerLegendListBindingDirective,
|
|
26
|
+
TrackFeatureButtonComponent
|
|
27
|
+
];
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUNMLCtCQUErQixFQUMvQix3QkFBd0IsRUFDekIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFckUsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsU0FBUyxDQUFDO0FBRXhCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLGtCQUFrQjtJQUNsQix3QkFBd0I7SUFDeEIsb0JBQW9CO0lBQ3BCLGtCQUFrQjtJQUNsQixzQkFBc0I7SUFDdEIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6QiwrQkFBK0I7SUFDL0IsMkJBQTJCO0NBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXllckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2xheWVyLWl0ZW0nO1xyXG5pbXBvcnQgeyBMYXllckxlZ2VuZENvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItbGVnZW5kJztcclxuaW1wb3J0IHsgTGF5ZXJMZWdlbmRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1sZWdlbmQtaXRlbSc7XHJcbmltcG9ydCB7XHJcbiAgTGF5ZXJMZWdlbmRMaXN0QmluZGluZ0RpcmVjdGl2ZSxcclxuICBMYXllckxlZ2VuZExpc3RDb21wb25lbnRcclxufSBmcm9tICcuL2xheWVyLWxlZ2VuZC1saXN0JztcclxuaW1wb3J0IHsgTGF5ZXJMaXN0QmluZGluZ0RpcmVjdGl2ZSwgTGF5ZXJMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9sYXllci1saXN0JztcclxuaW1wb3J0IHsgTGF5ZXJMaXN0VG9vbENvbXBvbmVudCB9IGZyb20gJy4vbGF5ZXItbGlzdC10b29sJztcclxuaW1wb3J0IHsgVHJhY2tGZWF0dXJlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi90cmFjay1mZWF0dXJlLWJ1dHRvbic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItaXRlbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItbGVnZW5kJztcclxuZXhwb3J0ICogZnJvbSAnLi9sYXllci1sZWdlbmQtaXRlbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGF5ZXItbGVnZW5kLWxpc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xheWVyLWxpc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xheWVyLWxpc3QtdG9vbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdHJhY2stZmVhdHVyZS1idXR0b24nO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBMQVlFUl9ESVJFQ1RJVkVTID0gW1xyXG4gIExheWVySXRlbUNvbXBvbmVudCxcclxuICBMYXllckxlZ2VuZEl0ZW1Db21wb25lbnQsXHJcbiAgTGF5ZXJMZWdlbmRDb21wb25lbnQsXHJcbiAgTGF5ZXJMaXN0Q29tcG9uZW50LFxyXG4gIExheWVyTGlzdFRvb2xDb21wb25lbnQsXHJcbiAgTGF5ZXJMZWdlbmRMaXN0Q29tcG9uZW50LFxyXG4gIExheWVyTGlzdEJpbmRpbmdEaXJlY3RpdmUsXHJcbiAgTGF5ZXJMZWdlbmRMaXN0QmluZGluZ0RpcmVjdGl2ZSxcclxuICBUcmFja0ZlYXR1cmVCdXR0b25Db21wb25lbnRcclxuXSBhcyBjb25zdDtcclxuIl19
|
|
@@ -1,19 +1,26 @@
|
|
|
1
|
+
import { AsyncPipe, NgClass, NgIf } from '@angular/common';
|
|
1
2
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, Renderer2 } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
+
import { MatBadgeModule } from '@angular/material/badge';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
6
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
+
import { MatListModule } from '@angular/material/list';
|
|
8
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
9
|
+
import { NetworkService } from '@igo2/core/network';
|
|
10
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
3
11
|
import { BehaviorSubject } from 'rxjs';
|
|
4
12
|
import { layerIsQueryable } from '../../query/shared/query.utils';
|
|
13
|
+
import { LayerLegendComponent } from '../layer-legend/layer-legend.component';
|
|
5
14
|
import { TooltipType } from '../shared/layers/layer.interface';
|
|
6
15
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@igo2/core";
|
|
8
|
-
import * as i2 from "@angular/
|
|
9
|
-
import * as i3 from "@angular/material/
|
|
10
|
-
import * as i4 from "@angular/material/
|
|
11
|
-
import * as i5 from "@angular/material/
|
|
12
|
-
import * as i6 from "@angular/material/
|
|
16
|
+
import * as i1 from "@igo2/core/network";
|
|
17
|
+
import * as i2 from "@angular/material/list";
|
|
18
|
+
import * as i3 from "@angular/material/checkbox";
|
|
19
|
+
import * as i4 from "@angular/material/tooltip";
|
|
20
|
+
import * as i5 from "@angular/material/button";
|
|
21
|
+
import * as i6 from "@angular/material/icon";
|
|
13
22
|
import * as i7 from "@angular/material/badge";
|
|
14
|
-
import * as i8 from "@
|
|
15
|
-
import * as i9 from "../layer-legend/layer-legend.component";
|
|
16
|
-
import * as i10 from "@ngx-translate/core";
|
|
23
|
+
import * as i8 from "@ngx-translate/core";
|
|
17
24
|
export class LayerItemComponent {
|
|
18
25
|
networkService;
|
|
19
26
|
renderer;
|
|
@@ -204,13 +211,25 @@ export class LayerItemComponent {
|
|
|
204
211
|
this.layerCheck = !this.layerCheck;
|
|
205
212
|
this.checkbox.emit({ layer: this.layer, check: this.layerCheck });
|
|
206
213
|
}
|
|
207
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
208
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
214
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerItemComponent, deps: [{ token: i1.NetworkService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
215
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: LayerItemComponent, isStandalone: true, selector: "igo-layer-item", inputs: { activeLayer: "activeLayer", selectAll: "selectAll", layerCheck: "layerCheck", layer: "layer", toggleLegendOnVisibilityChange: "toggleLegendOnVisibilityChange", expandLegendIfVisible: "expandLegendIfVisible", updateLegendOnResolutionChange: "updateLegendOnResolutionChange", orderable: "orderable", lowerDisabled: "lowerDisabled", raiseDisabled: "raiseDisabled", queryBadge: "queryBadge", selectionMode: "selectionMode", changeDetection: "changeDetection" }, outputs: { action: "action", checkbox: "checkbox" }, ngImport: i0, template: "<mat-list-item class=\"igo-layer-list-item\">\n <mat-checkbox\n *ngIf=\"selectionMode\"\n class=\"layerCheck\"\n matListItemIcon\n (change)=\"check()\"\n [checked]=\"layerCheck\"\n >\n </mat-checkbox>\n <span\n matListItemTitle\n class=\"igo-layer-title\"\n [matTooltip]=\"tooltipText\"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleLegendOnClick()\"\n >\n {{ layer.title }}\n </span>\n\n <div matListItemMeta>\n <button\n *ngIf=\"!selectionMode\"\n mat-icon-button\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"eyeTooltip | translate\"\n (click)=\"toggleVisibility($event)\"\n >\n <mat-icon\n aria-hidden=\"false\"\n matBadge=\"?\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n [svgIcon]=\"(layer.visible$ | async) ? 'eye' : 'eye-off'\"\n >\n </mat-icon>\n </button>\n\n <button\n *ngIf=\"selectionMode\"\n class=\"selection-eye\"\n mat-icon-button\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"toggleVisibility($event)\"\n >\n <mat-icon\n aria-hidden=\"false\"\n matBadge=\"?\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\n >\n </mat-icon>\n </button>\n\n <button\n *ngIf=\"!selectionMode\"\n class=\"actions-button\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.moreOptions' | translate\"\n mat-icon-button\n color=\"primary\"\n (click)=\"toggleLayerTool()\"\n >\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend\n *ngIf=\"showLegend$ | async\"\n [layer]=\"layer\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n >\n </igo-layer-legend>\n</div>\n", styles: [":host{overflow:hidden}:host ::ng-deep .igo-layer-title{display:block;width:100%;cursor:pointer}:host .igo-layer-legend-container{padding-left:18px;width:calc(100% - 18px)}:host mat-icon[matBadge] ::ng-deep .mat-badge-content{font-size:12px}:host .layerCheck{align-self:baseline;width:16px;padding-right:0}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i2.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: LayerLegendComponent, selector: "igo-layer-legend", inputs: ["updateLegendOnResolutionChange", "layer"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
209
216
|
}
|
|
210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: LayerItemComponent, decorators: [{
|
|
211
218
|
type: Component,
|
|
212
|
-
args: [{ selector: 'igo-layer-item', changeDetection: ChangeDetectionStrategy.OnPush,
|
|
213
|
-
|
|
219
|
+
args: [{ selector: 'igo-layer-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
220
|
+
MatListModule,
|
|
221
|
+
NgIf,
|
|
222
|
+
MatCheckboxModule,
|
|
223
|
+
MatTooltipModule,
|
|
224
|
+
MatButtonModule,
|
|
225
|
+
MatIconModule,
|
|
226
|
+
MatBadgeModule,
|
|
227
|
+
NgClass,
|
|
228
|
+
LayerLegendComponent,
|
|
229
|
+
AsyncPipe,
|
|
230
|
+
TranslateModule
|
|
231
|
+
], template: "<mat-list-item class=\"igo-layer-list-item\">\n <mat-checkbox\n *ngIf=\"selectionMode\"\n class=\"layerCheck\"\n matListItemIcon\n (change)=\"check()\"\n [checked]=\"layerCheck\"\n >\n </mat-checkbox>\n <span\n matListItemTitle\n class=\"igo-layer-title\"\n [matTooltip]=\"tooltipText\"\n matTooltipShowDelay=\"500\"\n (click)=\"toggleLegendOnClick()\"\n >\n {{ layer.title }}\n </span>\n\n <div matListItemMeta>\n <button\n *ngIf=\"!selectionMode\"\n mat-icon-button\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"eyeTooltip | translate\"\n (click)=\"toggleVisibility($event)\"\n >\n <mat-icon\n aria-hidden=\"false\"\n matBadge=\"?\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n [svgIcon]=\"(layer.visible$ | async) ? 'eye' : 'eye-off'\"\n >\n </mat-icon>\n </button>\n\n <button\n *ngIf=\"selectionMode\"\n class=\"selection-eye\"\n mat-icon-button\n [color]=\"layer.visible ? 'primary' : 'default'\"\n collapsibleButton\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n layer.visible\n ? ('igo.geo.layer.hideLayer' | translate)\n : ('igo.geo.layer.showLayer' | translate)\n \"\n (click)=\"toggleVisibility($event)\"\n >\n <mat-icon\n aria-hidden=\"false\"\n matBadge=\"?\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n matBadgePosition=\"after\"\n [matBadgeHidden]=\"queryBadgeHidden$ | async\"\n [ngClass]=\"{ disabled: (inResolutionRange$ | async) === false }\"\n [svgIcon]=\"layer.visible ? 'eye' : 'eye-off'\"\n >\n </mat-icon>\n </button>\n\n <button\n *ngIf=\"!selectionMode\"\n class=\"actions-button\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.layer.moreOptions' | translate\"\n mat-icon-button\n color=\"primary\"\n (click)=\"toggleLayerTool()\"\n >\n <mat-icon svgIcon=\"dots-horizontal\"></mat-icon>\n </button>\n </div>\n</mat-list-item>\n\n<div #legend class=\"igo-layer-legend-container\">\n <igo-layer-legend\n *ngIf=\"showLegend$ | async\"\n [layer]=\"layer\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n >\n </igo-layer-legend>\n</div>\n", styles: [":host{overflow:hidden}:host ::ng-deep .igo-layer-title{display:block;width:100%;cursor:pointer}:host .igo-layer-legend-container{padding-left:18px;width:calc(100% - 18px)}:host mat-icon[matBadge] ::ng-deep .mat-badge-content{font-size:12px}:host .layerCheck{align-self:baseline;width:16px;padding-right:0}\n"] }]
|
|
232
|
+
}], ctorParameters: () => [{ type: i1.NetworkService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { activeLayer: [{
|
|
214
233
|
type: Input
|
|
215
234
|
}], selectAll: [{
|
|
216
235
|
type: Input
|
|
@@ -241,4 +260,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
241
260
|
}], checkbox: [{
|
|
242
261
|
type: Output
|
|
243
262
|
}] } });
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9sYXllci1pdGVtL2xheWVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItaXRlbS9sYXllci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBbUIsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBR3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBUS9ELE1BQU0sT0FBTyxrQkFBa0I7SUEwR25CO0lBQ0E7SUFDQTtJQUNBO0lBNUdILFVBQVUsR0FBRyx3QkFBd0IsQ0FBQztJQUU3QyxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQUs7UUFDbkIsSUFDRSxLQUFLO1lBQ0wsSUFBSSxDQUFDLEtBQUs7WUFDVixLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQ25CO1lBQ0EsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ25FO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0lBQ08sWUFBWSxDQUFDO0lBRXJCLFVBQVUsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbEUsV0FBVyxHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVsRSxrQkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekUsaUJBQWlCLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhFLFdBQVcsQ0FBUztJQUVwQixLQUFLLENBQWtCO0lBRXZCLElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsS0FBYztRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBQ08sVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVsQixVQUFVLENBQUM7SUFFWixZQUFZLENBQWU7SUFDM0IsU0FBUyxDQUFlO0lBQ3hCLFFBQVEsQ0FBZTtJQUUvQixPQUFPLEdBQTJCLElBQUksZUFBZSxDQUFRLFNBQVMsQ0FBQyxDQUFDO0lBRXhFLElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSztRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDTyxNQUFNLENBQUM7SUFFTiw4QkFBOEIsR0FBWSxLQUFLLENBQUM7SUFFaEQscUJBQXFCLEdBQVksS0FBSyxDQUFDO0lBRXZDLDhCQUE4QixHQUFZLEtBQUssQ0FBQztJQUVoRCxTQUFTLEdBQVksSUFBSSxDQUFDO0lBRTFCLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFFL0IsYUFBYSxHQUFZLEtBQUssQ0FBQztJQUUvQixVQUFVLEdBQVksS0FBSyxDQUFDO0lBRTVCLGFBQWEsQ0FBQztJQUVkLGVBQWUsQ0FBQztJQUV6QixJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsT0FBZTtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLEVBQUU7WUFDaEQsT0FBTywrQkFBK0IsQ0FBQztTQUN4QzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Z0JBQ3ZCLENBQUMsQ0FBQyx5QkFBeUI7Z0JBQzNCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFUyxNQUFNLEdBQXdCLElBQUksWUFBWSxDQUFRLFNBQVMsQ0FBQyxDQUFDO0lBQ2pFLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFHakMsQ0FBQztJQUVMLFlBQ1UsY0FBOEIsRUFDOUIsUUFBbUIsRUFDbkIsS0FBaUIsRUFDakIsS0FBd0I7UUFIeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUMvQixDQUFDO0lBRUosUUFBUTtRQUNOLElBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO1lBQ2xCLElBQUksQ0FBQyxxQkFBcUI7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxJQUFJLEVBQ3RDO1lBQ0EsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7UUFDOUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXpDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWM7YUFDakMsWUFBWSxFQUFFO2FBQ2QsU0FBUyxDQUFDLENBQUMsS0FBc0IsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNuRTtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUNsRTtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFrQjtRQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBWTtRQUMzQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyw4QkFBOEIsRUFBRTtZQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4QztRQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztTQUN6QjtRQUNELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDMUMsTUFBTSxhQUFhLEdBQUksWUFBcUMsQ0FBQyxRQUFRLENBQUM7UUFDdEUsUUFBUSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUNqQyxLQUFLLFdBQVcsQ0FBQyxLQUFLO2dCQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzFCLEtBQUssV0FBVyxDQUFDLFFBQVE7Z0JBQ3ZCLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUU7b0JBQzNDLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQztpQkFDL0I7cUJBQU07b0JBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztpQkFDekI7WUFDSCxLQUFLLFdBQVcsQ0FBQyxNQUFNO2dCQUNyQixJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFO29CQUNyQyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUM7aUJBQzFCO3FCQUFNO29CQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7aUJBQ3pCO1lBQ0g7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO1FBQzFELElBQ0UsaUJBQWlCLEtBQUssS0FBSztZQUMzQixJQUFJLENBQUMsOEJBQThCLEtBQUssSUFBSSxFQUM1QztZQUNBLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLE1BQU0sR0FDVixJQUFJLENBQUMsVUFBVSxLQUFLLEtBQUs7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSztZQUM1QixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbkU7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN0RTtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7d0dBeE9VLGtCQUFrQjs0RkFBbEIsa0JBQWtCLCtqQkM1Qi9CLDgwRkE4RkE7OzRGRGxFYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07c0xBTTNDLFdBQVc7c0JBRGQsS0FBSztnQkFnQ0YsU0FBUztzQkFEWixLQUFLO2dCQVlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBU0YsS0FBSztzQkFEUixLQUFLO2dCQVVHLDhCQUE4QjtzQkFBdEMsS0FBSztnQkFFRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUcsOEJBQThCO3NCQUF0QyxLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQW1CSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFJlbmRlcmVyMlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ29ubmVjdGlvblN0YXRlLCBOZXR3b3JrU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE1ldGFkYXRhTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvc2hhcmVkL21ldGFkYXRhLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IGxheWVySXNRdWVyeWFibGUgfSBmcm9tICcuLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkudXRpbHMnO1xyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXInO1xyXG5pbXBvcnQgeyBUb29sdGlwVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9sYXllcnMvbGF5ZXIuaW50ZXJmYWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWxheWVyLWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sYXllci1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9sYXllci1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIExheWVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgZm9jdXNlZENscyA9ICdpZ28tbGF5ZXItaXRlbS1mb2N1c2VkJztcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgYWN0aXZlTGF5ZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlTGF5ZXI7XHJcbiAgfVxyXG4gIHNldCBhY3RpdmVMYXllcih2YWx1ZSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB2YWx1ZSAmJlxyXG4gICAgICB0aGlzLmxheWVyICYmXHJcbiAgICAgIHZhbHVlLmlkID09PSB0aGlzLmxheWVyLmlkICYmXHJcbiAgICAgICF0aGlzLnNlbGVjdGlvbk1vZGVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxheWVyVG9vbCQubmV4dCh0cnVlKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfYWN0aXZlTGF5ZXI7XHJcblxyXG4gIGxheWVyVG9vbCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG5cclxuICBzaG93TGVnZW5kJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgaW5SZXNvbHV0aW9uUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRydWUpO1xyXG5cclxuICBxdWVyeUJhZGdlSGlkZGVuJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgdG9vbHRpcFRleHQ6IHN0cmluZztcclxuXHJcbiAgc3RhdGU6IENvbm5lY3Rpb25TdGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgc2VsZWN0QWxsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdEFsbDtcclxuICB9XHJcbiAgc2V0IHNlbGVjdEFsbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fc2VsZWN0QWxsID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5sYXllckNoZWNrID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VsZWN0QWxsID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGxheWVyQ2hlY2s7XHJcblxyXG4gIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBuZXR3b3JrJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGxheWVycyQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGxheWVycyQ6IEJlaGF2aW9yU3ViamVjdDxMYXllcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PExheWVyPih1bmRlZmluZWQpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBsYXllcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9sYXllcjtcclxuICB9XHJcbiAgc2V0IGxheWVyKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9sYXllciA9IHZhbHVlO1xyXG4gICAgdGhpcy5sYXllcnMkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuICBwcml2YXRlIF9sYXllcjtcclxuXHJcbiAgQElucHV0KCkgdG9nZ2xlTGVnZW5kT25WaXNpYmlsaXR5Q2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGV4cGFuZExlZ2VuZElmVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSB1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgb3JkZXJhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgbG93ZXJEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSByYWlzZURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHF1ZXJ5QmFkZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0aW9uTW9kZTtcclxuXHJcbiAgQElucHV0KCkgY2hhbmdlRGV0ZWN0aW9uO1xyXG5cclxuICBnZXQgb3BhY2l0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxheWVyLm9wYWNpdHkgKiAxMDA7XHJcbiAgfVxyXG4gIHNldCBvcGFjaXR5KG9wYWNpdHk6IG51bWJlcikge1xyXG4gICAgdGhpcy5sYXllci5vcGFjaXR5ID0gb3BhY2l0eSAvIDEwMDtcclxuICB9XHJcblxyXG4gIGdldCBleWVUb29sdGlwKCkge1xyXG4gICAgaWYgKHRoaXMuaW5SZXNvbHV0aW9uUmFuZ2UkLmdldFZhbHVlKCkgPT09IGZhbHNlKSB7XHJcbiAgICAgIHJldHVybiAnaWdvLmdlby5sYXllci5ub3RJblJlc29sdXRpb24nO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudmlzaWJsZVxyXG4gICAgICAgID8gJ2lnby5nZW8ubGF5ZXIuaGlkZUxheWVyJ1xyXG4gICAgICAgIDogJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBhY3Rpb246IEV2ZW50RW1pdHRlcjxMYXllcj4gPSBuZXcgRXZlbnRFbWl0dGVyPExheWVyPih1bmRlZmluZWQpO1xyXG4gIEBPdXRwdXQoKSBjaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgbGF5ZXI6IExheWVyO1xyXG4gICAgY2hlY2s6IGJvb2xlYW47XHJcbiAgfT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG5ldHdvcmtTZXJ2aWNlOiBOZXR3b3JrU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMubGF5ZXIudmlzaWJsZSAmJlxyXG4gICAgICB0aGlzLmV4cGFuZExlZ2VuZElmVmlzaWJsZSAmJlxyXG4gICAgICB0aGlzLmxheWVyLmZpcnN0TG9hZENvbXBvbmVudCA9PT0gdHJ1ZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubGF5ZXIuZmlyc3RMb2FkQ29tcG9uZW50ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubGF5ZXIubGVnZW5kQ29sbGFwc2VkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvZ2dsZUxlZ2VuZCh0aGlzLmxheWVyLmxlZ2VuZENvbGxhcHNlZCk7XHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5QmFkZ2UoKTtcclxuXHJcbiAgICBjb25zdCByZXNvbHV0aW9uJCA9IHRoaXMubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kO1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQgPSByZXNvbHV0aW9uJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uUmVzb2x1dGlvbkNoYW5nZSgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRvb2x0aXBUZXh0ID0gdGhpcy5jb21wdXRlVG9vbHRpcCgpO1xyXG5cclxuICAgIHRoaXMubmV0d29yayQkID0gdGhpcy5uZXR3b3JrU2VydmljZVxyXG4gICAgICAuY3VycmVudFN0YXRlKClcclxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IENvbm5lY3Rpb25TdGF0ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICB0aGlzLm9uUmVzb2x1dGlvbkNoYW5nZSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmxheWVycyQkID0gdGhpcy5sYXllcnMkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmxheWVyICYmIHRoaXMubGF5ZXIub3B0aW9ucy5hY3RpdmUpIHtcclxuICAgICAgICB0aGlzLmxheWVyVG9vbCQubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY2hhbmdlRGV0ZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbiQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLm5ldHdvcmskJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5sYXllcnMkJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTGVnZW5kKGNvbGxhcHNlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNob3dMZWdlbmQkLm5leHQoIWNvbGxhcHNlZCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVMZWdlbmRPbkNsaWNrKCkge1xyXG4gICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5zaG93TGVnZW5kJC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVWaXNpYmlsaXR5KGV2ZW50OiBFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmxheWVyLnZpc2libGUgPSAhdGhpcy5sYXllci52aXNpYmxlO1xyXG4gICAgaWYgKHRoaXMudG9nZ2xlTGVnZW5kT25WaXNpYmlsaXR5Q2hhbmdlKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlTGVnZW5kKCF0aGlzLmxheWVyLnZpc2libGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVRdWVyeUJhZGdlKCk7XHJcbiAgfVxyXG5cclxuICBjb21wdXRlVG9vbHRpcCgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGF5ZXJPcHRpb25zID0gdGhpcy5sYXllci5vcHRpb25zO1xyXG4gICAgaWYgKCFsYXllck9wdGlvbnMudG9vbHRpcCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGxheWVyVG9vbHRpcCA9IGxheWVyT3B0aW9ucy50b29sdGlwO1xyXG4gICAgY29uc3QgbGF5ZXJNZXRhZGF0YSA9IChsYXllck9wdGlvbnMgYXMgTWV0YWRhdGFMYXllck9wdGlvbnMpLm1ldGFkYXRhO1xyXG4gICAgc3dpdGNoIChsYXllck9wdGlvbnMudG9vbHRpcC50eXBlKSB7XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuVElUTEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuQUJTVFJBQ1Q6XHJcbiAgICAgICAgaWYgKGxheWVyTWV0YWRhdGEgJiYgbGF5ZXJNZXRhZGF0YS5hYnN0cmFjdCkge1xyXG4gICAgICAgICAgcmV0dXJuIGxheWVyTWV0YWRhdGEuYWJzdHJhY3Q7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xyXG4gICAgICAgIH1cclxuICAgICAgY2FzZSBUb29sdGlwVHlwZS5DVVNUT006XHJcbiAgICAgICAgaWYgKGxheWVyVG9vbHRpcCAmJiBsYXllclRvb2x0aXAudGV4dCkge1xyXG4gICAgICAgICAgcmV0dXJuIGxheWVyVG9vbHRpcC50ZXh0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUmVzb2x1dGlvbkNoYW5nZSgpIHtcclxuICAgIGNvbnN0IGluUmVzb2x1dGlvblJhbmdlID0gdGhpcy5sYXllci5pc0luUmVzb2x1dGlvbnNSYW5nZTtcclxuICAgIGlmIChcclxuICAgICAgaW5SZXNvbHV0aW9uUmFuZ2UgPT09IGZhbHNlICYmXHJcbiAgICAgIHRoaXMudXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlID09PSB0cnVlXHJcbiAgICApIHtcclxuICAgICAgdGhpcy50b2dnbGVMZWdlbmQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5uZXh0KGluUmVzb2x1dGlvblJhbmdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlUXVlcnlCYWRnZSgpIHtcclxuICAgIGNvbnN0IGhpZGRlbiA9XHJcbiAgICAgIHRoaXMucXVlcnlCYWRnZSA9PT0gZmFsc2UgfHxcclxuICAgICAgdGhpcy5sYXllci52aXNpYmxlID09PSBmYWxzZSB8fFxyXG4gICAgICAhbGF5ZXJJc1F1ZXJ5YWJsZSh0aGlzLmxheWVyKTtcclxuICAgIHRoaXMucXVlcnlCYWRnZUhpZGRlbiQubmV4dChoaWRkZW4pO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTGF5ZXJUb29sKCkge1xyXG4gICAgdGhpcy5sYXllclRvb2wkLm5leHQoIXRoaXMubGF5ZXJUb29sJC5nZXRWYWx1ZSgpKTtcclxuICAgIGlmICh0aGlzLmxheWVyVG9vbCQuZ2V0VmFsdWUoKSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmZvY3VzZWRDbHMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3Rpb24uZW1pdCh0aGlzLmxheWVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVjaygpIHtcclxuICAgIHRoaXMubGF5ZXJDaGVjayA9ICF0aGlzLmxheWVyQ2hlY2s7XHJcbiAgICB0aGlzLmNoZWNrYm94LmVtaXQoeyBsYXllcjogdGhpcy5sYXllciwgY2hlY2s6IHRoaXMubGF5ZXJDaGVjayB9KTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC1saXN0LWl0ZW0gY2xhc3M9XCJpZ28tbGF5ZXItbGlzdC1pdGVtXCI+XHJcbiAgPG1hdC1jaGVja2JveFxyXG4gICAgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlXCJcclxuICAgIGNsYXNzPVwibGF5ZXJDaGVja1wiXHJcbiAgICBtYXRMaXN0SXRlbUljb25cclxuICAgIChjaGFuZ2UpPVwiY2hlY2soKVwiXHJcbiAgICBbY2hlY2tlZF09XCJsYXllckNoZWNrXCJcclxuICA+XHJcbiAgPC9tYXQtY2hlY2tib3g+XHJcbiAgPHNwYW5cclxuICAgIG1hdExpc3RJdGVtVGl0bGVcclxuICAgIGNsYXNzPVwiaWdvLWxheWVyLXRpdGxlXCJcclxuICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBUZXh0XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgKGNsaWNrKT1cInRvZ2dsZUxlZ2VuZE9uQ2xpY2soKVwiXHJcbiAgPlxyXG4gICAge3sgbGF5ZXIudGl0bGUgfX1cclxuICA8L3NwYW4+XHJcblxyXG4gIDxkaXYgbWF0TGlzdEl0ZW1NZXRhPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cIiFzZWxlY3Rpb25Nb2RlXCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIFtjb2xvcl09XCJsYXllci52aXNpYmxlID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcclxuICAgICAgY29sbGFwc2libGVCdXR0b25cclxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAgIFttYXRUb29sdGlwXT1cImV5ZVRvb2x0aXAgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAoY2xpY2spPVwidG9nZ2xlVmlzaWJpbGl0eSgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uXHJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJmYWxzZVwiXHJcbiAgICAgICAgbWF0QmFkZ2U9XCI/XCJcclxuICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICBtYXRCYWRnZVNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgbWF0QmFkZ2VQb3NpdGlvbj1cImFmdGVyXCJcclxuICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwicXVlcnlCYWRnZUhpZGRlbiQgfCBhc3luY1wiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogKGluUmVzb2x1dGlvblJhbmdlJCB8IGFzeW5jKSA9PT0gZmFsc2UgfVwiXHJcbiAgICAgICAgW3N2Z0ljb25dPVwiKGxheWVyLnZpc2libGUkIHwgYXN5bmMpID8gJ2V5ZScgOiAnZXllLW9mZidcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZVwiXHJcbiAgICAgIGNsYXNzPVwic2VsZWN0aW9uLWV5ZVwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBbY29sb3JdPVwibGF5ZXIudmlzaWJsZSA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXHJcbiAgICAgIGNvbGxhcHNpYmxlQnV0dG9uXHJcbiAgICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgICBbbWF0VG9vbHRpcF09XCJcclxuICAgICAgICBsYXllci52aXNpYmxlXHJcbiAgICAgICAgICA/ICgnaWdvLmdlby5sYXllci5oaWRlTGF5ZXInIHwgdHJhbnNsYXRlKVxyXG4gICAgICAgICAgOiAoJ2lnby5nZW8ubGF5ZXIuc2hvd0xheWVyJyB8IHRyYW5zbGF0ZSlcclxuICAgICAgXCJcclxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVZpc2liaWxpdHkoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxyXG4gICAgICAgIG1hdEJhZGdlPVwiP1wiXHJcbiAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxyXG4gICAgICAgIG1hdEJhZGdlUG9zaXRpb249XCJhZnRlclwiXHJcbiAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cInF1ZXJ5QmFkZ2VIaWRkZW4kIHwgYXN5bmNcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IChpblJlc29sdXRpb25SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlIH1cIlxyXG4gICAgICAgIFtzdmdJY29uXT1cImxheWVyLnZpc2libGUgPyAnZXllJyA6ICdleWUtb2ZmJ1wiXHJcbiAgICAgID5cclxuICAgICAgPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxidXR0b25cclxuICAgICAgKm5nSWY9XCIhc2VsZWN0aW9uTW9kZVwiXHJcbiAgICAgIGNsYXNzPVwiYWN0aW9ucy1idXR0b25cIlxyXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8ubGF5ZXIubW9yZU9wdGlvbnMnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVMYXllclRvb2woKVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZG90cy1ob3Jpem9udGFsXCI+PC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L21hdC1saXN0LWl0ZW0+XHJcblxyXG48ZGl2ICNsZWdlbmQgY2xhc3M9XCJpZ28tbGF5ZXItbGVnZW5kLWNvbnRhaW5lclwiPlxyXG4gIDxpZ28tbGF5ZXItbGVnZW5kXHJcbiAgICAqbmdJZj1cInNob3dMZWdlbmQkIHwgYXN5bmNcIlxyXG4gICAgW2xheWVyXT1cImxheWVyXCJcclxuICAgIFt1cGRhdGVMZWdlbmRPblJlc29sdXRpb25DaGFuZ2VdPVwidXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlXCJcclxuICA+XHJcbiAgPC9pZ28tbGF5ZXItbGVnZW5kPlxyXG48L2Rpdj5cclxuIl19
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9sYXllci1pdGVtL2xheWVyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvbGF5ZXItaXRlbS9sYXllci1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUdyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7QUFzQi9ELE1BQU0sT0FBTyxrQkFBa0I7SUEwR25CO0lBQ0E7SUFDQTtJQUNBO0lBNUdILFVBQVUsR0FBRyx3QkFBd0IsQ0FBQztJQUU3QyxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQUs7UUFDbkIsSUFDRSxLQUFLO1lBQ0wsSUFBSSxDQUFDLEtBQUs7WUFDVixLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQ25CLENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUM7SUFDTyxZQUFZLENBQUM7SUFFckIsVUFBVSxHQUE2QixJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVsRSxXQUFXLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWxFLGtCQUFrQixHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6RSxpQkFBaUIsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFeEUsV0FBVyxDQUFTO0lBRXBCLEtBQUssQ0FBa0I7SUFFdkIsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBQ08sVUFBVSxHQUFHLEtBQUssQ0FBQztJQUVsQixVQUFVLENBQUM7SUFFWixZQUFZLENBQWU7SUFDM0IsU0FBUyxDQUFlO0lBQ3hCLFFBQVEsQ0FBZTtJQUUvQixPQUFPLEdBQTJCLElBQUksZUFBZSxDQUFRLFNBQVMsQ0FBQyxDQUFDO0lBRXhFLElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSztRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDTyxNQUFNLENBQUM7SUFFTiw4QkFBOEIsR0FBWSxLQUFLLENBQUM7SUFFaEQscUJBQXFCLEdBQVksS0FBSyxDQUFDO0lBRXZDLDhCQUE4QixHQUFZLEtBQUssQ0FBQztJQUVoRCxTQUFTLEdBQVksSUFBSSxDQUFDO0lBRTFCLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFFL0IsYUFBYSxHQUFZLEtBQUssQ0FBQztJQUUvQixVQUFVLEdBQVksS0FBSyxDQUFDO0lBRTVCLGFBQWEsQ0FBQztJQUVkLGVBQWUsQ0FBQztJQUV6QixJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsT0FBZTtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNqRCxPQUFPLCtCQUErQixDQUFDO1FBQ3pDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87Z0JBQ3ZCLENBQUMsQ0FBQyx5QkFBeUI7Z0JBQzNCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVTLE1BQU0sR0FBd0IsSUFBSSxZQUFZLENBQVEsU0FBUyxDQUFDLENBQUM7SUFDakUsUUFBUSxHQUFHLElBQUksWUFBWSxFQUdqQyxDQUFDO0lBRUwsWUFDVSxjQUE4QixFQUM5QixRQUFtQixFQUNuQixLQUFpQixFQUNqQixLQUF3QjtRQUh4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQW1CO0lBQy9CLENBQUM7SUFFSixRQUFRO1FBQ04sSUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDbEIsSUFBSSxDQUFDLHFCQUFxQjtZQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixLQUFLLElBQUksRUFDdEMsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7UUFDOUQsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM3QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXpDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWM7YUFDakMsWUFBWSxFQUFFO2FBQ2QsU0FBUyxDQUFDLENBQUMsS0FBc0IsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWtCO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFZO1FBQzNCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFCLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFJLFlBQXFDLENBQUMsUUFBUSxDQUFDO1FBQ3RFLFFBQVEsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxLQUFLLFdBQVcsQ0FBQyxLQUFLO2dCQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzFCLEtBQUssV0FBVyxDQUFDLFFBQVE7Z0JBQ3ZCLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDNUMsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDO2dCQUNoQyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsQ0FBQztZQUNILEtBQUssV0FBVyxDQUFDLE1BQU07Z0JBQ3JCLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDdEMsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDO2dCQUMzQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsQ0FBQztZQUNIO2dCQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO1FBQzFELElBQ0UsaUJBQWlCLEtBQUssS0FBSztZQUMzQixJQUFJLENBQUMsOEJBQThCLEtBQUssSUFBSSxFQUM1QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLEtBQUs7WUFDNUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkUsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7dUdBeE9VLGtCQUFrQjsyRkFBbEIsa0JBQWtCLG1sQkNuRC9CLGtwRkE4RkEsNFdEeERJLGFBQWEsb2JBQ2IsSUFBSSw0RkFDSixpQkFBaUIsNldBQ2pCLGdCQUFnQiw0VEFDaEIsZUFBZSwySUFDZixhQUFhLG1MQUNiLGNBQWMsNFBBQ2QsT0FBTyxvRkFDUCxvQkFBb0IsNkdBQ3BCLFNBQVMsNkNBQ1QsZUFBZTs7MkZBR04sa0JBQWtCO2tCQXBCOUIsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsYUFBYTt3QkFDYixJQUFJO3dCQUNKLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsU0FBUzt3QkFDVCxlQUFlO3FCQUNoQjtvS0FNRyxXQUFXO3NCQURkLEtBQUs7Z0JBZ0NGLFNBQVM7c0JBRFosS0FBSztnQkFZRyxVQUFVO3NCQUFsQixLQUFLO2dCQVNGLEtBQUs7c0JBRFIsS0FBSztnQkFVRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQUVHLDhCQUE4QjtzQkFBdEMsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFtQkksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5cclxuaW1wb3J0IHsgQ29ubmVjdGlvblN0YXRlLCBOZXR3b3JrU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbmV0d29yayc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE1ldGFkYXRhTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vbWV0YWRhdGEvc2hhcmVkL21ldGFkYXRhLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IGxheWVySXNRdWVyeWFibGUgfSBmcm9tICcuLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkudXRpbHMnO1xyXG5pbXBvcnQgeyBMYXllckxlZ2VuZENvbXBvbmVudCB9IGZyb20gJy4uL2xheWVyLWxlZ2VuZC9sYXllci1sZWdlbmQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2xheWVyJztcclxuaW1wb3J0IHsgVG9vbHRpcFR5cGUgfSBmcm9tICcuLi9zaGFyZWQvbGF5ZXJzL2xheWVyLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1sYXllci1pdGVtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGF5ZXItaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGF5ZXItaXRlbS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE5nSWYsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QmFkZ2VNb2R1bGUsXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTGF5ZXJMZWdlbmRDb21wb25lbnQsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXllckl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGZvY3VzZWRDbHMgPSAnaWdvLWxheWVyLWl0ZW0tZm9jdXNlZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGFjdGl2ZUxheWVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUxheWVyO1xyXG4gIH1cclxuICBzZXQgYWN0aXZlTGF5ZXIodmFsdWUpIHtcclxuICAgIGlmIChcclxuICAgICAgdmFsdWUgJiZcclxuICAgICAgdGhpcy5sYXllciAmJlxyXG4gICAgICB2YWx1ZS5pZCA9PT0gdGhpcy5sYXllci5pZCAmJlxyXG4gICAgICAhdGhpcy5zZWxlY3Rpb25Nb2RlXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sYXllclRvb2wkLm5leHQodHJ1ZSk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmZvY3VzZWRDbHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FjdGl2ZUxheWVyO1xyXG5cclxuICBsYXllclRvb2wkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgc2hvd0xlZ2VuZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XHJcblxyXG4gIGluUmVzb2x1dGlvblJhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcclxuXHJcbiAgcXVlcnlCYWRnZUhpZGRlbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XHJcblxyXG4gIHRvb2x0aXBUZXh0OiBzdHJpbmc7XHJcblxyXG4gIHN0YXRlOiBDb25uZWN0aW9uU3RhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNlbGVjdEFsbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RBbGw7XHJcbiAgfVxyXG4gIHNldCBzZWxlY3RBbGwodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3NlbGVjdEFsbCA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMubGF5ZXJDaGVjayA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX3NlbGVjdEFsbCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBsYXllckNoZWNrO1xyXG5cclxuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbmV0d29yayQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBsYXllcnMkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBsYXllcnMkOiBCZWhhdmlvclN1YmplY3Q8TGF5ZXI+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMYXllcj4odW5kZWZpbmVkKTtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgbGF5ZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGF5ZXI7XHJcbiAgfVxyXG4gIHNldCBsYXllcih2YWx1ZSkge1xyXG4gICAgdGhpcy5fbGF5ZXIgPSB2YWx1ZTtcclxuICAgIHRoaXMubGF5ZXJzJC5uZXh0KHZhbHVlKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbGF5ZXI7XHJcblxyXG4gIEBJbnB1dCgpIHRvZ2dsZUxlZ2VuZE9uVmlzaWJpbGl0eUNoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBleHBhbmRMZWdlbmRJZlZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgdXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIG9yZGVyYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGxvd2VyRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcmFpc2VEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBxdWVyeUJhZGdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHNlbGVjdGlvbk1vZGU7XHJcblxyXG4gIEBJbnB1dCgpIGNoYW5nZURldGVjdGlvbjtcclxuXHJcbiAgZ2V0IG9wYWNpdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sYXllci5vcGFjaXR5ICogMTAwO1xyXG4gIH1cclxuICBzZXQgb3BhY2l0eShvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgIHRoaXMubGF5ZXIub3BhY2l0eSA9IG9wYWNpdHkgLyAxMDA7XHJcbiAgfVxyXG5cclxuICBnZXQgZXllVG9vbHRpcCgpIHtcclxuICAgIGlmICh0aGlzLmluUmVzb2x1dGlvblJhbmdlJC5nZXRWYWx1ZSgpID09PSBmYWxzZSkge1xyXG4gICAgICByZXR1cm4gJ2lnby5nZW8ubGF5ZXIubm90SW5SZXNvbHV0aW9uJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxheWVyLnZpc2libGVcclxuICAgICAgICA/ICdpZ28uZ2VvLmxheWVyLmhpZGVMYXllcidcclxuICAgICAgICA6ICdpZ28uZ2VvLmxheWVyLnNob3dMYXllcic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgYWN0aW9uOiBFdmVudEVtaXR0ZXI8TGF5ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxMYXllcj4odW5kZWZpbmVkKTtcclxuICBAT3V0cHV0KCkgY2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGxheWVyOiBMYXllcjtcclxuICAgIGNoZWNrOiBib29sZWFuO1xyXG4gIH0+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuZXR3b3JrU2VydmljZTogTmV0d29ya1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmxheWVyLnZpc2libGUgJiZcclxuICAgICAgdGhpcy5leHBhbmRMZWdlbmRJZlZpc2libGUgJiZcclxuICAgICAgdGhpcy5sYXllci5maXJzdExvYWRDb21wb25lbnQgPT09IHRydWVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxheWVyLmZpcnN0TG9hZENvbXBvbmVudCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmxheWVyLmxlZ2VuZENvbGxhcHNlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy50b2dnbGVMZWdlbmQodGhpcy5sYXllci5sZWdlbmRDb2xsYXBzZWQpO1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeUJhZGdlKCk7XHJcblxyXG4gICAgY29uc3QgcmVzb2x1dGlvbiQgPSB0aGlzLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJDtcclxuICAgIHRoaXMucmVzb2x1dGlvbiQkID0gcmVzb2x1dGlvbiQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5vblJlc29sdXRpb25DaGFuZ2UoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50b29sdGlwVGV4dCA9IHRoaXMuY29tcHV0ZVRvb2x0aXAoKTtcclxuXHJcbiAgICB0aGlzLm5ldHdvcmskJCA9IHRoaXMubmV0d29ya1NlcnZpY2VcclxuICAgICAgLmN1cnJlbnRTdGF0ZSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBDb25uZWN0aW9uU3RhdGUpID0+IHtcclxuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XHJcbiAgICAgICAgdGhpcy5vblJlc29sdXRpb25DaGFuZ2UoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5sYXllcnMkJCA9IHRoaXMubGF5ZXJzJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5sYXllciAmJiB0aGlzLmxheWVyLm9wdGlvbnMuYWN0aXZlKSB7XHJcbiAgICAgICAgdGhpcy5sYXllclRvb2wkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLmNoYW5nZURldGVjdGlvbikge1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnJlc29sdXRpb24kJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5uZXR3b3JrJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUxlZ2VuZChjb2xsYXBzZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubGF5ZXIubGVnZW5kQ29sbGFwc2VkID0gY29sbGFwc2VkO1xyXG4gICAgdGhpcy5zaG93TGVnZW5kJC5uZXh0KCFjb2xsYXBzZWQpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTGVnZW5kT25DbGljaygpIHtcclxuICAgIHRoaXMudG9nZ2xlTGVnZW5kKHRoaXMuc2hvd0xlZ2VuZCQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlVmlzaWJpbGl0eShldmVudDogRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5sYXllci52aXNpYmxlID0gIXRoaXMubGF5ZXIudmlzaWJsZTtcclxuICAgIGlmICh0aGlzLnRvZ2dsZUxlZ2VuZE9uVmlzaWJpbGl0eUNoYW5nZSkge1xyXG4gICAgICB0aGlzLnRvZ2dsZUxlZ2VuZCghdGhpcy5sYXllci52aXNpYmxlKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlUXVlcnlCYWRnZSgpO1xyXG4gIH1cclxuXHJcbiAgY29tcHV0ZVRvb2x0aXAoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGxheWVyT3B0aW9ucyA9IHRoaXMubGF5ZXIub3B0aW9ucztcclxuICAgIGlmICghbGF5ZXJPcHRpb25zLnRvb2x0aXApIHtcclxuICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBsYXllclRvb2x0aXAgPSBsYXllck9wdGlvbnMudG9vbHRpcDtcclxuICAgIGNvbnN0IGxheWVyTWV0YWRhdGEgPSAobGF5ZXJPcHRpb25zIGFzIE1ldGFkYXRhTGF5ZXJPcHRpb25zKS5tZXRhZGF0YTtcclxuICAgIHN3aXRjaCAobGF5ZXJPcHRpb25zLnRvb2x0aXAudHlwZSkge1xyXG4gICAgICBjYXNlIFRvb2x0aXBUeXBlLlRJVExFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xyXG4gICAgICBjYXNlIFRvb2x0aXBUeXBlLkFCU1RSQUNUOlxyXG4gICAgICAgIGlmIChsYXllck1ldGFkYXRhICYmIGxheWVyTWV0YWRhdGEuYWJzdHJhY3QpIHtcclxuICAgICAgICAgIHJldHVybiBsYXllck1ldGFkYXRhLmFic3RyYWN0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5sYXllci50aXRsZTtcclxuICAgICAgICB9XHJcbiAgICAgIGNhc2UgVG9vbHRpcFR5cGUuQ1VTVE9NOlxyXG4gICAgICAgIGlmIChsYXllclRvb2x0aXAgJiYgbGF5ZXJUb29sdGlwLnRleHQpIHtcclxuICAgICAgICAgIHJldHVybiBsYXllclRvb2x0aXAudGV4dDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXIudGl0bGU7XHJcbiAgICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0aGlzLmxheWVyLnRpdGxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblJlc29sdXRpb25DaGFuZ2UoKSB7XHJcbiAgICBjb25zdCBpblJlc29sdXRpb25SYW5nZSA9IHRoaXMubGF5ZXIuaXNJblJlc29sdXRpb25zUmFuZ2U7XHJcbiAgICBpZiAoXHJcbiAgICAgIGluUmVzb2x1dGlvblJhbmdlID09PSBmYWxzZSAmJlxyXG4gICAgICB0aGlzLnVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZSA9PT0gdHJ1ZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlTGVnZW5kKHRydWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pblJlc29sdXRpb25SYW5nZSQubmV4dChpblJlc29sdXRpb25SYW5nZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVF1ZXJ5QmFkZ2UoKSB7XHJcbiAgICBjb25zdCBoaWRkZW4gPVxyXG4gICAgICB0aGlzLnF1ZXJ5QmFkZ2UgPT09IGZhbHNlIHx8XHJcbiAgICAgIHRoaXMubGF5ZXIudmlzaWJsZSA9PT0gZmFsc2UgfHxcclxuICAgICAgIWxheWVySXNRdWVyeWFibGUodGhpcy5sYXllcik7XHJcbiAgICB0aGlzLnF1ZXJ5QmFkZ2VIaWRkZW4kLm5leHQoaGlkZGVuKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZUxheWVyVG9vbCgpIHtcclxuICAgIHRoaXMubGF5ZXJUb29sJC5uZXh0KCF0aGlzLmxheWVyVG9vbCQuZ2V0VmFsdWUoKSk7XHJcbiAgICBpZiAodGhpcy5sYXllclRvb2wkLmdldFZhbHVlKCkgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZm9jdXNlZENscyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5mb2N1c2VkQ2xzKTtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aW9uLmVtaXQodGhpcy5sYXllcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2soKSB7XHJcbiAgICB0aGlzLmxheWVyQ2hlY2sgPSAhdGhpcy5sYXllckNoZWNrO1xyXG4gICAgdGhpcy5jaGVja2JveC5lbWl0KHsgbGF5ZXI6IHRoaXMubGF5ZXIsIGNoZWNrOiB0aGlzLmxheWVyQ2hlY2sgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtbGlzdC1pdGVtIGNsYXNzPVwiaWdvLWxheWVyLWxpc3QtaXRlbVwiPlxuICA8bWF0LWNoZWNrYm94XG4gICAgKm5nSWY9XCJzZWxlY3Rpb25Nb2RlXCJcbiAgICBjbGFzcz1cImxheWVyQ2hlY2tcIlxuICAgIG1hdExpc3RJdGVtSWNvblxuICAgIChjaGFuZ2UpPVwiY2hlY2soKVwiXG4gICAgW2NoZWNrZWRdPVwibGF5ZXJDaGVja1wiXG4gID5cbiAgPC9tYXQtY2hlY2tib3g+XG4gIDxzcGFuXG4gICAgbWF0TGlzdEl0ZW1UaXRsZVxuICAgIGNsYXNzPVwiaWdvLWxheWVyLXRpdGxlXCJcbiAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwVGV4dFwiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZUxlZ2VuZE9uQ2xpY2soKVwiXG4gID5cbiAgICB7eyBsYXllci50aXRsZSB9fVxuICA8L3NwYW4+XG5cbiAgPGRpdiBtYXRMaXN0SXRlbU1ldGE+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nSWY9XCIhc2VsZWN0aW9uTW9kZVwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFtjb2xvcl09XCJsYXllci52aXNpYmxlID8gJ3ByaW1hcnknIDogJ2RlZmF1bHQnXCJcbiAgICAgIGNvbGxhcHNpYmxlQnV0dG9uXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJleWVUb29sdGlwIHwgdHJhbnNsYXRlXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVWaXNpYmlsaXR5KCRldmVudClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvblxuICAgICAgICBhcmlhLWhpZGRlbj1cImZhbHNlXCJcbiAgICAgICAgbWF0QmFkZ2U9XCI/XCJcbiAgICAgICAgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiXG4gICAgICAgIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCJcbiAgICAgICAgbWF0QmFkZ2VQb3NpdGlvbj1cImFmdGVyXCJcbiAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cInF1ZXJ5QmFkZ2VIaWRkZW4kIHwgYXN5bmNcIlxuICAgICAgICBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiAoaW5SZXNvbHV0aW9uUmFuZ2UkIHwgYXN5bmMpID09PSBmYWxzZSB9XCJcbiAgICAgICAgW3N2Z0ljb25dPVwiKGxheWVyLnZpc2libGUkIHwgYXN5bmMpID8gJ2V5ZScgOiAnZXllLW9mZidcIlxuICAgICAgPlxuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwic2VsZWN0aW9uTW9kZVwiXG4gICAgICBjbGFzcz1cInNlbGVjdGlvbi1leWVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBbY29sb3JdPVwibGF5ZXIudmlzaWJsZSA/ICdwcmltYXJ5JyA6ICdkZWZhdWx0J1wiXG4gICAgICBjb2xsYXBzaWJsZUJ1dHRvblxuICAgICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgW21hdFRvb2x0aXBdPVwiXG4gICAgICAgIGxheWVyLnZpc2libGVcbiAgICAgICAgICA/ICgnaWdvLmdlby5sYXllci5oaWRlTGF5ZXInIHwgdHJhbnNsYXRlKVxuICAgICAgICAgIDogKCdpZ28uZ2VvLmxheWVyLnNob3dMYXllcicgfCB0cmFuc2xhdGUpXG4gICAgICBcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVZpc2liaWxpdHkoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uXG4gICAgICAgIGFyaWEtaGlkZGVuPVwiZmFsc2VcIlxuICAgICAgICBtYXRCYWRnZT1cIj9cIlxuICAgICAgICBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgbWF0QmFkZ2VTaXplPVwic21hbGxcIlxuICAgICAgICBtYXRCYWRnZVBvc2l0aW9uPVwiYWZ0ZXJcIlxuICAgICAgICBbbWF0QmFkZ2VIaWRkZW5dPVwicXVlcnlCYWRnZUhpZGRlbiQgfCBhc3luY1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgZGlzYWJsZWQ6IChpblJlc29sdXRpb25SYW5nZSQgfCBhc3luYykgPT09IGZhbHNlIH1cIlxuICAgICAgICBbc3ZnSWNvbl09XCJsYXllci52aXNpYmxlID8gJ2V5ZScgOiAnZXllLW9mZidcIlxuICAgICAgPlxuICAgICAgPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwiIXNlbGVjdGlvbk1vZGVcIlxuICAgICAgY2xhc3M9XCJhY3Rpb25zLWJ1dHRvblwiXG4gICAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5sYXllci5tb3JlT3B0aW9ucycgfCB0cmFuc2xhdGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUxheWVyVG9vbCgpXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImRvdHMtaG9yaXpvbnRhbFwiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9tYXQtbGlzdC1pdGVtPlxuXG48ZGl2ICNsZWdlbmQgY2xhc3M9XCJpZ28tbGF5ZXItbGVnZW5kLWNvbnRhaW5lclwiPlxuICA8aWdvLWxheWVyLWxlZ2VuZFxuICAgICpuZ0lmPVwic2hvd0xlZ2VuZCQgfCBhc3luY1wiXG4gICAgW2xheWVyXT1cImxheWVyXCJcbiAgICBbdXBkYXRlTGVnZW5kT25SZXNvbHV0aW9uQ2hhbmdlXT1cInVwZGF0ZUxlZ2VuZE9uUmVzb2x1dGlvbkNoYW5nZVwiXG4gID5cbiAgPC9pZ28tbGF5ZXItbGVnZW5kPlxuPC9kaXY+XG4iXX0=
|