@igo2/geo 16.0.2 → 16.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +28 -132
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +22 -86
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +22 -65
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +42 -47
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +13 -129
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +14 -55
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +27 -57
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +46 -54
- package/esm2022/lib/catalog/catalog.module.mjs +28 -29
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +14 -14
- package/esm2022/lib/datasource/datasource.module.mjs +12 -12
- package/esm2022/lib/datasource/shared/capabilities.interface.mjs +9 -0
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +10 -17
- package/esm2022/lib/datasource/shared/datasource.service.mjs +11 -11
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +9 -9
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/index.mjs +2 -1
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +12 -12
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +19 -102
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +21 -122
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +11 -103
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
- package/esm2022/lib/directions/directions.component.mjs +25 -47
- package/esm2022/lib/directions/directions.module.mjs +61 -62
- package/esm2022/lib/directions/shared/directions.service.mjs +15 -14
- package/esm2022/lib/download/download-button/download-button.component.mjs +11 -26
- package/esm2022/lib/download/download.module.mjs +22 -23
- package/esm2022/lib/download/shared/download.service.mjs +9 -9
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +9 -35
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +20 -299
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -40
- package/esm2022/lib/draw/draw/draw.component.mjs +56 -322
- package/esm2022/lib/draw/draw/draw.module.mjs +64 -65
- package/esm2022/lib/draw/drawingTool.module.mjs +12 -13
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +9 -9
- package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2022/lib/environment/environment.interface.mjs +1 -1
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +21 -171
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +17 -19
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +22 -23
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +16 -34
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +12 -13
- package/esm2022/lib/feature/feature.module.mjs +13 -14
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +2 -2
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/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/selection.mjs +2 -2
- package/esm2022/lib/filter/filter.module.mjs +158 -197
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +24 -49
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +32 -397
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +39 -625
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +20 -47
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +44 -340
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +36 -58
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +26 -126
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +11 -11
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +17 -40
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +9 -9
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +6 -6
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +6 -6
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -9
- package/esm2022/lib/filter/shared/time-filter.service.mjs +6 -6
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +73 -386
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +23 -87
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +37 -86
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +24 -49
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +20 -268
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +20 -72
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +11 -11
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +13 -24
- package/esm2022/lib/geo.module.mjs +54 -55
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +36 -39
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +32 -97
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +30 -31
- package/esm2022/lib/geometry/geometry.module.mjs +13 -14
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +11 -24
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +25 -434
- package/esm2022/lib/import-export/import-export.module.mjs +54 -55
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +20 -22
- package/esm2022/lib/import-export/shared/export.service.mjs +10 -10
- package/esm2022/lib/import-export/shared/import.service.mjs +9 -9
- package/esm2022/lib/layer/index.mjs +1 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +47 -127
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +16 -183
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +16 -26
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +11 -11
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +26 -130
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +13 -13
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +50 -272
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +21 -72
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +9 -9
- package/esm2022/lib/layer/layer.module.mjs +94 -114
- package/esm2022/lib/layer/shared/layer.service.mjs +12 -12
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +2 -2
- package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +2 -2
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +2 -2
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +2 -2
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +12 -27
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +18 -60
- package/esm2022/lib/map/baselayers-switcher/index.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +20 -48
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +11 -31
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +17 -26
- package/esm2022/lib/map/index.mjs +1 -1
- package/esm2022/lib/map/info-section/info-section.component.mjs +9 -22
- package/esm2022/lib/map/map-browser/index.mjs +1 -1
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +11 -18
- package/esm2022/lib/map/map-center/map-center.component.mjs +9 -13
- package/esm2022/lib/map/map.module.mjs +88 -96
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +11 -19
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +13 -24
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +13 -39
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +18 -20
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +15 -15
- package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
- package/esm2022/lib/map/shared/map.service.mjs +9 -9
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -9
- package/esm2022/lib/map/shared/projection.service.mjs +9 -9
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +9 -16
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +11 -24
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +11 -28
- package/esm2022/lib/measure/measure.module.mjs +12 -13
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +9 -9
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +13 -166
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +19 -51
- package/esm2022/lib/measure/measurer/measurer.component.mjs +74 -241
- package/esm2022/lib/measure/measurer/measurer.module.mjs +46 -59
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +20 -69
- package/esm2022/lib/metadata/metadata.module.mjs +24 -25
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.service.mjs +9 -9
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +9 -9
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +9 -9
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +9 -9
- package/esm2022/lib/offline/shared/geo-network.service.mjs +9 -9
- package/esm2022/lib/overlay/overlay.module.mjs +12 -13
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +11 -11
- package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.service.mjs +9 -9
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +2 -2
- package/esm2022/lib/print/print/print.component.mjs +21 -27
- package/esm2022/lib/print/print-form/print-form.component.mjs +56 -349
- package/esm2022/lib/print/print.module.mjs +36 -37
- package/esm2022/lib/print/shared/print.service.mjs +14 -14
- package/esm2022/lib/print/shared/print.type.mjs +2 -2
- package/esm2022/lib/query/query.module.mjs +13 -14
- package/esm2022/lib/query/shared/query-search-source.mjs +9 -9
- package/esm2022/lib/query/shared/query.directive.mjs +21 -21
- package/esm2022/lib/query/shared/query.service.mjs +10 -10
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +66 -165
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +38 -39
- package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +13 -13
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +12 -68
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +23 -66
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +18 -74
- package/esm2022/lib/search/search-results/search-results.component.mjs +41 -238
- package/esm2022/lib/search/search-results/search-results.module.mjs +58 -59
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +13 -43
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +30 -31
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +24 -233
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +32 -33
- package/esm2022/lib/search/search.module.mjs +32 -33
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +18 -20
- package/esm2022/lib/search/shared/search.enums.mjs +3 -3
- package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +10 -10
- package/esm2022/lib/search/shared/sources/cadastre.mjs +10 -10
- package/esm2022/lib/search/shared/sources/coordinates.mjs +19 -19
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.mjs +37 -26
- package/esm2022/lib/search/shared/sources/ilayer.mjs +19 -19
- package/esm2022/lib/search/shared/sources/nominatim.mjs +10 -10
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +18 -18
- package/esm2022/lib/search/shared/sources/workspace.mjs +10 -10
- package/esm2022/lib/style/style-list/style-list.module.mjs +12 -12
- package/esm2022/lib/style/style-list/style-list.service.mjs +9 -9
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +12 -121
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +13 -59
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +9 -17
- package/esm2022/lib/style/style-service/draw-style.service.mjs +9 -9
- package/esm2022/lib/style/style-service/style.service.mjs +9 -9
- package/esm2022/lib/style/style.module.mjs +51 -52
- package/esm2022/lib/toast/toast.component.mjs +15 -44
- package/esm2022/lib/toast/toast.module.mjs +24 -25
- package/esm2022/lib/utils/id-generator.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +9 -9
- package/esm2022/lib/wkt/shared/wkt.service.mjs +9 -9
- package/esm2022/lib/wkt/wkt.module.mjs +12 -12
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +10 -27
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +20 -21
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +4 -4
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +10 -10
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +14 -13
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +14 -13
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +12 -12
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +15 -19
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +12 -13
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +21 -21
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +12 -13
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +15 -15
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +12 -13
- package/esm2022/lib/workspace/workspace.module.mjs +35 -36
- package/fesm2022/igo2-geo.mjs +16547 -23425
- 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-library/catalog-library-item.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -2
- package/lib/catalog/shared/catalog.abstract.d.ts +3 -3
- package/lib/catalog/shared/catalog.interface.d.ts +2 -2
- package/lib/catalog/shared/catalog.service.d.ts +1 -1
- package/lib/datasource/shared/capabilities.interface.d.ts +8 -0
- package/lib/datasource/shared/capabilities.service.d.ts +1 -8
- package/lib/datasource/shared/datasources/wms-datasource.d.ts +1 -1
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -1
- package/lib/datasource/shared/index.d.ts +1 -0
- package/lib/directions/shared/directions.service.d.ts +2 -2
- package/lib/download/shared/download.service.d.ts +1 -1
- package/lib/draw/shared/draw.interface.d.ts +1 -1
- package/lib/environment/environment.interface.d.ts +8 -6
- package/lib/feature/shared/feature.interfaces.d.ts +3 -3
- package/lib/feature/shared/feature.utils.d.ts +2 -1
- package/lib/feature/shared/store.d.ts +1 -1
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +1 -1
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -1
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +1 -0
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +1 -1
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +1 -1
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +1 -1
- package/lib/filter/shared/spatial-filter.service.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +1 -1
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +2 -2
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
- 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/shared/geometry.interfaces.d.ts +1 -1
- package/lib/import-export/export-button/export-button.component.d.ts +1 -1
- package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
- package/lib/layer/shared/layers/image-layer.d.ts +1 -1
- package/lib/layer/shared/layers/layer.d.ts +2 -1
- package/lib/layer/shared/layers/tile-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/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
- package/lib/map/shared/map.abstract.d.ts +5 -4
- package/lib/measure/measurer/measurer.component.d.ts +8 -4
- package/lib/measure/shared/measure.interfaces.d.ts +2 -2
- package/lib/metadata/shared/metadata.interface.d.ts +1 -1
- package/lib/overlay/shared/overlay.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +4 -6
- package/lib/print/shared/print.service.d.ts +2 -1
- package/lib/print/shared/print.type.d.ts +2 -6
- package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
- package/lib/search/search-results/search-results-item.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +1 -1
- package/lib/search/shared/search.interfaces.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.d.ts +1 -1
- package/lib/search/shared/sources/coordinates.d.ts +1 -1
- package/lib/search/shared/sources/icherche.d.ts +1 -1
- package/lib/search/shared/sources/icherche.interfaces.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.d.ts +1 -1
- package/lib/search/shared/sources/source.d.ts +1 -1
- package/lib/search/shared/sources/storedqueries.d.ts +1 -1
- package/lib/search/shared/sources/storedqueries.interfaces.d.ts +1 -1
- package/lib/search/shared/sources/workspace.d.ts +1 -1
- package/lib/utils/id-generator.d.ts +1 -1
- package/lib/workspace/shared/edition-workspace.d.ts +3 -3
- package/lib/workspace/shared/edition-workspace.service.d.ts +1 -1
- package/lib/workspace/shared/feature-workspace.d.ts +1 -1
- package/lib/workspace/shared/feature-workspace.service.d.ts +2 -2
- package/lib/workspace/shared/wfs-workspace.d.ts +1 -1
- package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -2
- package/lib/workspace/shared/wms-workspace.service.d.ts +2 -2
- package/lib/workspace/shared/workspace.utils.d.ts +1 -1
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
- package/locale/en.geo.json +5 -3
- package/locale/fr.geo.json +5 -3
- package/package.json +26 -29
- package/{lib → src/lib}/search/search-bar/search-bar.theming.scss +1 -0
- package/src/style/style.scss +1 -0
- /package/{geo-theme.scss → src/geo-theme.scss} +0 -0
- /package/{lib → src/lib}/catalog/catalog-browser/catalog-browser.theming.scss +0 -0
- /package/{lib → src/lib}/catalog/catalog.theming.scss +0 -0
- /package/{lib → src/lib}/directions/directions-results/directions-results.theming.scss +0 -0
- /package/{lib → src/lib}/directions/directions.theming.scss +0 -0
- /package/{lib → src/lib}/draw/draw.theming.scss +0 -0
- /package/{lib → src/lib}/feature/feature-details/feature-details.theming.scss +0 -0
- /package/{lib → src/lib}/feature/feature.theming.scss +0 -0
- /package/{lib → src/lib}/filter/filter.theming.scss +0 -0
- /package/{lib → src/lib}/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +0 -0
- /package/{lib → src/lib}/filter/time-filter-form/time-filter-form.theming.scss +0 -0
- /package/{lib → src/lib}/layer/layer-item/layer-item.theme.scss +0 -0
- /package/{lib → src/lib}/layer/layer-legend/layer-legend.theming.scss +0 -0
- /package/{lib → src/lib}/layer/layer-list-tool/layer-list-tool.theming.scss +0 -0
- /package/{lib → src/lib}/layer/layer.theming.scss +0 -0
- /package/{lib → src/lib}/map/map-browser/map-browser.theming.scss +0 -0
- /package/{lib → src/lib}/map/map.theming.scss +0 -0
- /package/{lib → src/lib}/map/menu-button/menu-button.theming.scss +0 -0
- /package/{lib → src/lib}/map/zoom-button/zoom-button.theming.scss +0 -0
- /package/{lib → src/lib}/measure/measure.theming.scss +0 -0
- /package/{lib → src/lib}/measure/measurer/measurer.theming.scss +0 -0
- /package/{lib → src/lib}/search/search-results/search-results-item.theme.scss +0 -0
- /package/{lib → src/lib}/search/search.theming.scss +0 -0
- /package/{lib → src/lib}/workspace/confirmation-popup/confirmation-popup.theming.scss +0 -0
- /package/{lib → src/lib}/workspace/workspace.theming.scss +0 -0
|
@@ -14,17 +14,10 @@ import { MapService } from '../../map/shared/map.service';
|
|
|
14
14
|
import { getResolutionFromScale } from '../../map/shared/map.utils';
|
|
15
15
|
import { QueryFormat, QueryFormatMimeType } from '../../query/shared/query.enums';
|
|
16
16
|
import { EsriStyleGenerator } from '../../style/shared/datasource/esri-style-generator';
|
|
17
|
+
import { TypeCapabilities } from './capabilities.interface';
|
|
17
18
|
import * as i0 from "@angular/core";
|
|
18
19
|
import * as i1 from "@angular/common/http";
|
|
19
20
|
import * as i2 from "../../map/shared/map.service";
|
|
20
|
-
export var TypeCapabilities;
|
|
21
|
-
(function (TypeCapabilities) {
|
|
22
|
-
TypeCapabilities["wms"] = "wms";
|
|
23
|
-
TypeCapabilities["wmts"] = "wmts";
|
|
24
|
-
TypeCapabilities["arcgisrest"] = "esriJSON";
|
|
25
|
-
TypeCapabilities["imagearcgisrest"] = "esriJSON";
|
|
26
|
-
TypeCapabilities["tilearcgisrest"] = "esriJSON";
|
|
27
|
-
})(TypeCapabilities || (TypeCapabilities = {}));
|
|
28
21
|
export class CapabilitiesService {
|
|
29
22
|
http;
|
|
30
23
|
mapService;
|
|
@@ -404,8 +397,8 @@ export class CapabilitiesService {
|
|
|
404
397
|
};
|
|
405
398
|
return legendOptions;
|
|
406
399
|
}
|
|
407
|
-
static ɵfac =
|
|
408
|
-
static ɵprov =
|
|
400
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CapabilitiesService, deps: [{ token: i1.HttpClient }, { token: i2.MapService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
401
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CapabilitiesService, providedIn: 'root' });
|
|
409
402
|
}
|
|
410
403
|
__decorate([
|
|
411
404
|
Cacheable({
|
|
@@ -439,10 +432,10 @@ __decorate([
|
|
|
439
432
|
__metadata("design:paramtypes", [String, String, String]),
|
|
440
433
|
__metadata("design:returntype", Observable)
|
|
441
434
|
], CapabilitiesService.prototype, "getCapabilities", null);
|
|
442
|
-
(
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGNBQWMsRUFDZixNQUFNLHNDQUFzQyxDQUFDO0FBSzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNwQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7O0FBVXhGLE1B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TSxDQUNMLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdELEtBQUssQ0FDUixDQUFDO1FBRUosTUFBTSxhQUFhLEdBQWtCO1lBQ25DLGVBQWUsRUFBRSxZQUFZO1NBQ2IsQ0FBQztRQUVuQixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDOzZFQWxoQlUsbUJBQW1CO2dFQUFuQixtQkFBbUIsV0FBbkIsbUJBQW1CLG1CQUZsQixNQUFNOztBQW1FbEI7SUFIQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDOzs7b0NBR0MsVUFBVTsyREFZWjtBQUtEO0lBSEMsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7S0FDbEIsQ0FBQzs7O29DQUtDLFVBQVU7Z0VBMkJaO0FBS0Q7SUFIQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDOzs7b0NBR0MsVUFBVTsrREFzQlo7QUFLRDtJQUhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7OztvQ0FLQyxVQUFVOzBEQTZDWjt1RkF0TVUsbUJBQW1CO2NBSC9CLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjtzRkFrRUMsZ0JBQWdCLE1BbUJoQixxQkFBcUIsTUFvQ3JCLG9CQUFvQixNQTZCcEIsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IG9sQXR0cmlidXRpb24gZnJvbSAnb2wvY29udHJvbC9BdHRyaWJ1dGlvbic7XHJcbmltcG9ydCB7IEVzcmlKU09OLCBXTVNDYXBhYmlsaXRpZXMsIFdNVFNDYXBhYmlsaXRpZXMgfSBmcm9tICdvbC9mb3JtYXQnO1xyXG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XHJcbmltcG9ydCB7IG9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzIH0gZnJvbSAnb2wvc291cmNlL1dNVFMuanMnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ2FjaGVhYmxlIH0gZnJvbSAndHMtY2FjaGVhYmxlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgVGltZUZpbHRlclN0eWxlLFxyXG4gIFRpbWVGaWx0ZXJUeXBlXHJcbn0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC90aW1lLWZpbHRlci5lbnVtJztcclxuaW1wb3J0IHtcclxuICBJdGVtU3R5bGVPcHRpb25zLFxyXG4gIExlZ2VuZE9wdGlvbnNcclxufSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xlZ2VuZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBNYXBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAuc2VydmljZSc7XHJcbmltcG9ydCB7IGdldFJlc29sdXRpb25Gcm9tU2NhbGUgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7XHJcbiAgUXVlcnlGb3JtYXQsXHJcbiAgUXVlcnlGb3JtYXRNaW1lVHlwZVxyXG59IGZyb20gJy4uLy4uL3F1ZXJ5L3NoYXJlZC9xdWVyeS5lbnVtcyc7XHJcbmltcG9ydCB7IEVzcmlTdHlsZUdlbmVyYXRvciB9IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC9kYXRhc291cmNlL2Vzcmktc3R5bGUtZ2VuZXJhdG9yJztcclxuaW1wb3J0IHtcclxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQ2FydG9EYXRhU291cmNlT3B0aW9ucyxcclxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFdNVFNEYXRhU291cmNlT3B0aW9uc1xyXG59IGZyb20gJy4vZGF0YXNvdXJjZXMnO1xyXG5cclxuZXhwb3J0IGVudW0gVHlwZUNhcGFiaWxpdGllcyB7XHJcbiAgd21zID0gJ3dtcycsXHJcbiAgd210cyA9ICd3bXRzJyxcclxuICBhcmNnaXNyZXN0ID0gJ2VzcmlKU09OJyxcclxuICBpbWFnZWFyY2dpc3Jlc3QgPSAnZXNyaUpTT04nLFxyXG4gIHRpbGVhcmNnaXNyZXN0ID0gJ2VzcmlKU09OJ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBUeXBlQ2FwYWJpbGl0aWVzU3RyaW5ncyA9IGtleW9mIHR5cGVvZiBUeXBlQ2FwYWJpbGl0aWVzO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FwYWJpbGl0aWVzU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBwYXJzZXJzID0ge1xyXG4gICAgd21zOiBuZXcgV01TQ2FwYWJpbGl0aWVzKCksXHJcbiAgICB3bXRzOiBuZXcgV01UU0NhcGFiaWxpdGllcygpLFxyXG4gICAgZXNyaUpTT046IG5ldyBFc3JpSlNPTigpXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIG1hcFNlcnZpY2U6IE1hcFNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGdldFdNU09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdNU0RhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCB1cmwgPSBiYXNlT3B0aW9ucy51cmw7XHJcbiAgICBjb25zdCB2ZXJzaW9uID0gKGJhc2VPcHRpb25zLnBhcmFtcyBhcyBhbnkpLlZFUlNJT047XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKCd3bXMnLCB1cmwsIHZlcnNpb24pLnBpcGUoXHJcbiAgICAgIG1hcCgoY2FwYWJpbGl0aWVzOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzXHJcbiAgICAgICAgICA/IHRoaXMucGFyc2VXTVNPcHRpb25zKGJhc2VPcHRpb25zLCBjYXBhYmlsaXRpZXMpXHJcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRXTVRTT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdNVFNEYXRhU291cmNlT3B0aW9ucz4ge1xyXG4gICAgY29uc3QgdXJsID0gYmFzZU9wdGlvbnMudXJsO1xyXG4gICAgY29uc3QgdmVyc2lvbiA9IGJhc2VPcHRpb25zLnZlcnNpb247XHJcblxyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKCd3bXRzJywgdXJsLCB2ZXJzaW9uKS5waXBlKFxyXG4gICAgICBtYXAoKGNhcGFiaWxpdGllczogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllc1xyXG4gICAgICAgICAgPyB0aGlzLnBhcnNlV01UU09wdGlvbnMoYmFzZU9wdGlvbnMsIGNhcGFiaWxpdGllcylcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2FydG9PcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPENhcnRvRGF0YVNvdXJjZU9wdGlvbnM+IHtcclxuICAgIGNvbnN0IGJhc2VVcmwgPVxyXG4gICAgICAnaHR0cHM6Ly8nICtcclxuICAgICAgYmFzZU9wdGlvbnMuYWNjb3VudCArXHJcbiAgICAgICcuY2FydG8uY29tL2FwaS92Mi92aXovJyArXHJcbiAgICAgIGJhc2VPcHRpb25zLm1hcElkICtcclxuICAgICAgJy92aXouanNvbic7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuanNvbnAoYmFzZVVybCwgJ2NhbGxiYWNrJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChjYXJ0b09wdGlvbnM6IGFueSkgPT5cclxuICAgICAgICAgIHRoaXMucGFyc2VDYXJ0b09wdGlvbnMoYmFzZU9wdGlvbnMsIGNhcnRvT3B0aW9ucylcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBAQ2FjaGVhYmxlKHtcclxuICAgIG1heENhY2hlQ291bnQ6IDIwXHJcbiAgfSlcclxuICBnZXRBcmNnaXNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8QXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCBiYXNlVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy8nICsgYmFzZU9wdGlvbnMubGF5ZXIgKyAnP2Y9anNvbic7XHJcbiAgICBjb25zdCBzZXJ2aWNlQ2FwYWJpbGl0aWVzID0gdGhpcy5nZXRDYXBhYmlsaXRpZXMoXHJcbiAgICAgICdhcmNnaXNyZXN0JyxcclxuICAgICAgYmFzZU9wdGlvbnMudXJsXHJcbiAgICApO1xyXG4gICAgY29uc3QgYXJjZ2lzT3B0aW9ucyA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW2FyY2dpc09wdGlvbnMsIHNlcnZpY2VDYXBhYmlsaXRpZXNdKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VBcmNnaXNPcHRpb25zKGJhc2VPcHRpb25zLCByZXNbMF0sIHJlc1sxXSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQENhY2hlYWJsZSh7XHJcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxyXG4gIH0pXHJcbiAgZ2V0SW1hZ2VBcmNnaXNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6XHJcbiAgICAgIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxcclxuICAgIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gID4ge1xyXG4gICAgY29uc3QgYmFzZVVybCA9IGJhc2VPcHRpb25zLnVybCArICcvJyArIGJhc2VPcHRpb25zLmxheWVyICsgJz9mPWpzb24nO1xyXG4gICAgY29uc3QgbGVnZW5kVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy9sZWdlbmQ/Zj1qc29uJztcclxuICAgIGNvbnN0IHNlcnZpY2VDYXBhYmlsaXRpZXMgPSB0aGlzLmdldENhcGFiaWxpdGllcyhcclxuICAgICAgJ2ltYWdlYXJjZ2lzcmVzdCcsXHJcbiAgICAgIGJhc2VPcHRpb25zLnVybFxyXG4gICAgKTtcclxuICAgIGNvbnN0IGFyY2dpc09wdGlvbnMgPSB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwpO1xyXG4gICAgY29uc3QgbGVnZW5kID0gdGhpcy5odHRwLmdldChsZWdlbmRVcmwpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHJlcyksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdObyBsZWdlbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgSW1hZ2UgU2VydmljZScpO1xyXG4gICAgICAgIHJldHVybiBvZihlcnIpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihbYXJjZ2lzT3B0aW9ucywgbGVnZW5kLCBzZXJ2aWNlQ2FwYWJpbGl0aWVzXSkucGlwZShcclxuICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlVGlsZU9ySW1hZ2VBcmNnaXNPcHRpb25zKFxyXG4gICAgICAgICAgYmFzZU9wdGlvbnMsXHJcbiAgICAgICAgICByZXNbMF0sXHJcbiAgICAgICAgICByZXNbMV0sXHJcbiAgICAgICAgICByZXNbMl1cclxuICAgICAgICApO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBDYWNoZWFibGUoe1xyXG4gICAgbWF4Q2FjaGVDb3VudDogMjBcclxuICB9KVxyXG4gIGdldFRpbGVBcmNnaXNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFxyXG4gICAgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgPiB7XHJcbiAgICBjb25zdCBiYXNlVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy8nICsgYmFzZU9wdGlvbnMubGF5ZXIgKyAnP2Y9anNvbic7XHJcbiAgICBjb25zdCBsZWdlbmRVcmwgPSBiYXNlT3B0aW9ucy51cmwgKyAnL2xlZ2VuZD9mPWpzb24nO1xyXG4gICAgY29uc3Qgc2VydmljZUNhcGFiaWxpdGllcyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKFxyXG4gICAgICAndGlsZWFyY2dpc3Jlc3QnLFxyXG4gICAgICBiYXNlT3B0aW9ucy51cmxcclxuICAgICk7XHJcbiAgICBjb25zdCBhcmNnaXNPcHRpb25zID0gdGhpcy5odHRwLmdldChiYXNlVXJsKTtcclxuICAgIGNvbnN0IGxlZ2VuZEluZm8gPSB0aGlzLmh0dHAuZ2V0KGxlZ2VuZFVybCkucGlwZShcclxuICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzKSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ05vIGxlZ2VuZCBhc3NvY2lhdGVkIHdpdGggdGhpcyBUaWxlIFNlcnZpY2UnKTtcclxuICAgICAgICByZXR1cm4gb2YoZXJyKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW2FyY2dpc09wdGlvbnMsIGxlZ2VuZEluZm8sIHNlcnZpY2VDYXBhYmlsaXRpZXNdKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PlxyXG4gICAgICAgIHRoaXMucGFyc2VUaWxlT3JJbWFnZUFyY2dpc09wdGlvbnMoYmFzZU9wdGlvbnMsIHJlc1swXSwgcmVzWzFdLCByZXNbMl0pXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAQ2FjaGVhYmxlKHtcclxuICAgIG1heENhY2hlQ291bnQ6IDIwXHJcbiAgfSlcclxuICBnZXRDYXBhYmlsaXRpZXMoXHJcbiAgICBzZXJ2aWNlOiBUeXBlQ2FwYWJpbGl0aWVzU3RyaW5ncyxcclxuICAgIGJhc2VVcmw6IHN0cmluZyxcclxuICAgIHZlcnNpb24/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgcmVxdWVzdDogJ0dldENhcGFiaWxpdGllcycsXHJcbiAgICAgICAgc2VydmljZTogc2VydmljZS50b1VwcGVyQ2FzZSgpLFxyXG4gICAgICAgIHZlcnNpb246IHZlcnNpb24gfHwgJzEuMy4wJyxcclxuICAgICAgICBfaTogJ3RydWUnXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGxldCByZXF1ZXN0O1xyXG4gICAgaWYgKFR5cGVDYXBhYmlsaXRpZXNbc2VydmljZV0gPT09ICdlc3JpSlNPTicpIHtcclxuICAgICAgcmVxdWVzdCA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCArICc/Zj1qc29uJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0ID0gdGhpcy5odHRwLmdldChiYXNlVXJsLCB7XHJcbiAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXF1ZXN0LnBpcGUoXHJcbiAgICAgIG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKFR5cGVDYXBhYmlsaXRpZXNbc2VydmljZV0gPT09ICdlc3JpSlNPTicpIHtcclxuICAgICAgICAgIHJldHVybiByZXMgYXMgb2JqZWN0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBTdHJpbmcocmVzKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdzZXJ2aWNlZXhjZXB0aW9uJykgJiZcclxuICAgICAgICAgIFN0cmluZyhyZXMpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2FjY2VzcyBkZW5pZWQnKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhyb3cge1xyXG4gICAgICAgICAgICBlcnJvcjoge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdTZXJ2aWNlIGVycm9yIGdldENhcGFiaWxpdGllczogQWNjZXNzIGlzIGRlbmllZCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2Vyc1tzZXJ2aWNlXS5yZWFkKHJlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2YgZS5lcnJvciAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgIGUuZXJyb3IuY2F1Z2h0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhyb3cgZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlV01TT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGNhcGFiaWxpdGllczogYW55XHJcbiAgKTogV01TRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgbGF5ZXJzID0gKGJhc2VPcHRpb25zLnBhcmFtcyBhcyBhbnkpLkxBWUVSUztcclxuICAgIGNvbnN0IGxheWVyID0gdGhpcy5maW5kRGF0YVNvdXJjZUluQ2FwYWJpbGl0aWVzKFxyXG4gICAgICBjYXBhYmlsaXRpZXMuQ2FwYWJpbGl0eS5MYXllcixcclxuICAgICAgbGF5ZXJzXHJcbiAgICApO1xyXG5cclxuICAgIGlmICghbGF5ZXIpIHtcclxuICAgICAgdGhyb3cge1xyXG4gICAgICAgIGVycm9yOiB7XHJcbiAgICAgICAgICBtZXNzYWdlOiAnTGF5ZXIgbm90IGZvdW5kJ1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1ldGFkYXRhID0gbGF5ZXIuRGF0YVVSTCA/IGxheWVyLkRhdGFVUkxbMF0gOiB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBhYnN0cmFjdCA9IGxheWVyLkFic3RyYWN0ID8gbGF5ZXIuQWJzdHJhY3QgOiB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBrZXl3b3JkTGlzdCA9IGxheWVyLktleXdvcmRMaXN0ID8gbGF5ZXIuS2V5d29yZExpc3QgOiB1bmRlZmluZWQ7XHJcbiAgICBsZXQgcXVlcnlhYmxlID0gbGF5ZXIucXVlcnlhYmxlO1xyXG4gICAgY29uc3QgdGltZUZpbHRlciA9IHRoaXMuZ2V0VGltZUZpbHRlcihsYXllcik7XHJcbiAgICBjb25zdCB0aW1lRmlsdGVyYWJsZSA9IHRpbWVGaWx0ZXIgJiYgT2JqZWN0LmtleXModGltZUZpbHRlcikubGVuZ3RoID4gMDtcclxuICAgIGNvbnN0IGxlZ2VuZE9wdGlvbnMgPSBsYXllci5TdHlsZSA/IHRoaXMuZ2V0U3R5bGUobGF5ZXIuU3R5bGUpIDogdW5kZWZpbmVkO1xyXG4gICAgbGV0IGlzRXh0ZW50SW5HZW9ncmFwaGljID0gdHJ1ZTtcclxuICAgIGlmIChsYXllci5FWF9HZW9ncmFwaGljQm91bmRpbmdCb3gpIHtcclxuICAgICAgbGF5ZXIuRVhfR2VvZ3JhcGhpY0JvdW5kaW5nQm94LmZvckVhY2goKGNvb3JkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChpbmRleCA8IDIgJiYgKGNvb3JkID4gMTgwIHx8IGNvb3JkIDwgLTE4MCkpIHtcclxuICAgICAgICAgIGlzRXh0ZW50SW5HZW9ncmFwaGljID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmRleCA+PSAyICYmIChjb29yZCA+IDkwIHx8IGNvb3JkIDwgLTkwKSkge1xyXG4gICAgICAgICAgaXNFeHRlbnRJbkdlb2dyYXBoaWMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXNFeHRlbnRJbkdlb2dyYXBoaWMgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBleHRlbnQgPSBpc0V4dGVudEluR2VvZ3JhcGhpY1xyXG4gICAgICA/IG9scHJvai50cmFuc2Zvcm1FeHRlbnQoXHJcbiAgICAgICAgICBsYXllci5FWF9HZW9ncmFwaGljQm91bmRpbmdCb3gsXHJcbiAgICAgICAgICAnRVBTRzo0MzI2JyxcclxuICAgICAgICAgIHRoaXMubWFwU2VydmljZS5nZXRNYXAoKS5wcm9qZWN0aW9uXHJcbiAgICAgICAgKVxyXG4gICAgICA6IHVuZGVmaW5lZDtcclxuXHJcbiAgICBsZXQgcXVlcnlGb3JtYXQ6IFF1ZXJ5Rm9ybWF0O1xyXG4gICAgY29uc3QgcXVlcnlGb3JtYXRNaW1lVHlwZVByaW9yaXR5ID0gW1xyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkdFT0pTT04sXHJcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuR0VPSlNPTjIsXHJcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuR01MMyxcclxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5HTUwyLFxyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkpTT04sXHJcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuSFRNTFxyXG4gICAgXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IG1pbWVUeXBlIG9mIHF1ZXJ5Rm9ybWF0TWltZVR5cGVQcmlvcml0eSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgY2FwYWJpbGl0aWVzLkNhcGFiaWxpdHkuUmVxdWVzdC5HZXRGZWF0dXJlSW5mby5Gb3JtYXQuaW5kZXhPZihcclxuICAgICAgICAgIG1pbWVUeXBlXHJcbiAgICAgICAgKSAhPT0gLTFcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3Qga2V5RW51bSA9IE9iamVjdC5rZXlzKFF1ZXJ5Rm9ybWF0TWltZVR5cGUpLmZpbmQoXHJcbiAgICAgICAgICAoa2V5KSA9PiBRdWVyeUZvcm1hdE1pbWVUeXBlW2tleV0gPT09IG1pbWVUeXBlXHJcbiAgICAgICAgKTtcclxuICAgICAgICBxdWVyeUZvcm1hdCA9IFF1ZXJ5Rm9ybWF0W2tleUVudW1dO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXF1ZXJ5Rm9ybWF0KSB7XHJcbiAgICAgIHF1ZXJ5YWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcclxuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcclxuICAgICAgICB0aXRsZTogbGF5ZXIuVGl0bGUsXHJcbiAgICAgICAgbWF4UmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShsYXllci5NYXhTY2FsZURlbm9taW5hdG9yKSxcclxuICAgICAgICBtaW5SZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGxheWVyLk1pblNjYWxlRGVub21pbmF0b3IpLFxyXG4gICAgICAgIGV4dGVudCxcclxuICAgICAgICBtZXRhZGF0YToge1xyXG4gICAgICAgICAgdXJsOiBtZXRhZGF0YSA/IG1ldGFkYXRhLk9ubGluZVJlc291cmNlIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgZXh0ZXJuOiBtZXRhZGF0YSA/IHRydWUgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICBhYnN0cmFjdCxcclxuICAgICAgICAgIGtleXdvcmRMaXN0XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsZWdlbmRPcHRpb25zXHJcbiAgICAgIH0sXHJcbiAgICAgIHF1ZXJ5YWJsZSxcclxuICAgICAgcXVlcnlGb3JtYXQsXHJcbiAgICAgIHRpbWVGaWx0ZXI6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlciA6IHVuZGVmaW5lZCxcclxuICAgICAgdGltZUZpbHRlcmFibGU6IHRpbWVGaWx0ZXJhYmxlID8gdHJ1ZSA6IHVuZGVmaW5lZCxcclxuICAgICAgbWluRGF0ZTogdGltZUZpbHRlcmFibGUgPyB0aW1lRmlsdGVyLm1pbiA6IHVuZGVmaW5lZCxcclxuICAgICAgbWF4RGF0ZTogdGltZUZpbHRlcmFibGUgPyB0aW1lRmlsdGVyLm1heCA6IHVuZGVmaW5lZCxcclxuICAgICAgc3RlcERhdGU6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlci5zdGVwIDogdW5kZWZpbmVkXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VXTVRTT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBjYXBhYmlsaXRpZXM6IGFueVxyXG4gICk6IFdNVFNEYXRhU291cmNlT3B0aW9ucyB7XHJcbiAgICAvLyBQdXQgVGl0bGUgc291cmNlIGluIF9sYXllck9wdGlvbnNGcm9tU291cmNlLiAoRm9yIHNvdXJjZSAmIGNhdGFsb2cgaW4gX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UsIGlmIG5vdCBhbHJlYWR5IG9uIGNvbmZpZylcclxuICAgIGNvbnN0IGxheWVyID0gY2FwYWJpbGl0aWVzLkNvbnRlbnRzLkxheWVyLmZpbmQoXHJcbiAgICAgIChlbCkgPT4gZWwuSWRlbnRpZmllciA9PT0gYmFzZU9wdGlvbnMubGF5ZXJcclxuICAgICk7XHJcblxyXG4gICAgY29uc3Qgb3B0aW9ucyA9IG9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzKGNhcGFiaWxpdGllcywgYmFzZU9wdGlvbnMpO1xyXG5cclxuICAgIGNvbnN0IG91cHV0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24ob3B0aW9ucywgYmFzZU9wdGlvbnMpO1xyXG4gICAgY29uc3Qgc291cmNlT3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgIF9sYXllck9wdGlvbnNGcm9tU291cmNlOiB7XHJcbiAgICAgICAgdGl0bGU6IGxheWVyLlRpdGxlXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBPYmplY3RVdGlscy5tZXJnZURlZXAoc291cmNlT3B0aW9ucywgb3VwdXRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VDYXJ0b09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogQ2FydG9EYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGNhcnRvT3B0aW9uczogYW55XHJcbiAgKTogQ2FydG9EYXRhU291cmNlT3B0aW9ucyB7XHJcbiAgICBjb25zdCBsYXllcnMgPSBbXTtcclxuICAgIGNvbnN0IHBhcmFtcyA9IGNhcnRvT3B0aW9ucy5sYXllcnNbMV0ub3B0aW9ucy5sYXllcl9kZWZpbml0aW9uO1xyXG4gICAgcGFyYW1zLmxheWVycy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGxheWVycy5wdXNoKHtcclxuICAgICAgICB0eXBlOiBlbGVtZW50LnR5cGUudG9Mb3dlckNhc2UoKSxcclxuICAgICAgICBvcHRpb25zOiBlbGVtZW50Lm9wdGlvbnMsXHJcbiAgICAgICAgbGVnZW5kOiBlbGVtZW50LmxlZ2VuZFxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgIGNvbmZpZzoge1xyXG4gICAgICAgIHZlcnNpb246IHBhcmFtcy52ZXJzaW9uLFxyXG4gICAgICAgIGxheWVyc1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBPYmplY3RVdGlscy5tZXJnZURlZXAob3B0aW9ucywgYmFzZU9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZUFyY2dpc09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgYXJjZ2lzT3B0aW9uczogYW55LFxyXG4gICAgc2VydmljZUNhcGFiaWxpdGllczogYW55XHJcbiAgKTogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIHtcclxuICAgIGNvbnN0IHRpdGxlID0gYXJjZ2lzT3B0aW9ucy5uYW1lO1xyXG4gICAgbGV0IGxlZ2VuZEluZm86IGFueTtcclxuXHJcbiAgICBpZiAoYXJjZ2lzT3B0aW9ucy5kcmF3aW5nSW5mbz8ucmVuZGVyZXIpIHtcclxuICAgICAgbGVnZW5kSW5mbyA9IGFyY2dpc09wdGlvbnMuZHJhd2luZ0luZm8ucmVuZGVyZXI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZWdlbmRJbmZvID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzdHlsZTtcclxuICAgIGlmIChhcmNnaXNPcHRpb25zLmRyYXdpbmdJbmZvKSB7XHJcbiAgICAgIGNvbnN0IHN0eWxlR2VuZXJhdG9yID0gbmV3IEVzcmlTdHlsZUdlbmVyYXRvcigpO1xyXG4gICAgICBjb25zdCB1bml0cyA9IGFyY2dpc09wdGlvbnMudW5pdHMgPT09ICdlc3JpTWV0ZXJzJyA/ICdtJyA6ICdkZWdyZWVzJztcclxuICAgICAgc3R5bGUgPSBzdHlsZUdlbmVyYXRvci5nZW5lcmF0ZVN0eWxlKGFyY2dpc09wdGlvbnMsIHVuaXRzKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGF0dHJpYnV0aW9ucyA9IG5ldyBvbEF0dHJpYnV0aW9uKHtcclxuICAgICAgdGFyZ2V0OiBhcmNnaXNPcHRpb25zLmNvcHlyaWdodFRleHRcclxuICAgIH0pO1xyXG4gICAgbGV0IHRpbWVFeHRlbnQ7XHJcbiAgICBsZXQgdGltZUZpbHRlcjtcclxuICAgIGlmIChhcmNnaXNPcHRpb25zLnRpbWVJbmZvKSB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSBhcmNnaXNPcHRpb25zLnRpbWVJbmZvLnRpbWVFeHRlbnQ7XHJcbiAgICAgIHRpbWVFeHRlbnQgPSB0aW1lWzBdICsgJywnICsgdGltZVsxXTtcclxuICAgICAgY29uc3QgbWluID0gbmV3IERhdGUoKTtcclxuICAgICAgbWluLnNldFRpbWUodGltZVswXSk7XHJcbiAgICAgIGNvbnN0IG1heCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIG1heC5zZXRUaW1lKHRpbWVbMV0pO1xyXG4gICAgICB0aW1lRmlsdGVyID0ge1xyXG4gICAgICAgIG1pbjogbWluLnRvVVRDU3RyaW5nKCksXHJcbiAgICAgICAgbWF4OiBtYXgudG9VVENTdHJpbmcoKSxcclxuICAgICAgICByYW5nZTogdHJ1ZSxcclxuICAgICAgICB0eXBlOiBUaW1lRmlsdGVyVHlwZS5EQVRFVElNRSxcclxuICAgICAgICBzdHlsZTogVGltZUZpbHRlclN0eWxlLkNBTEVOREFSXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICB7fSxcclxuICAgICAge1xyXG4gICAgICAgIHN0eWxlLFxyXG4gICAgICAgIExBWUVSUzogYmFzZU9wdGlvbnMubGF5ZXIgPyAnc2hvdzonICsgYmFzZU9wdGlvbnMubGF5ZXIgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgdGltZTogdGltZUV4dGVudFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcclxuICAgICAgICB0aXRsZSxcclxuICAgICAgICBtaW5SZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGFyY2dpc09wdGlvbnMubWF4U2NhbGUpLFxyXG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5taW5TY2FsZSksXHJcbiAgICAgICAgbWV0YWRhdGE6IHtcclxuICAgICAgICAgIGV4dGVybjogZmFsc2UsXHJcbiAgICAgICAgICBhYnN0cmFjdDpcclxuICAgICAgICAgICAgYXJjZ2lzT3B0aW9ucy5kZXNjcmlwdGlvbiB8fCBzZXJ2aWNlQ2FwYWJpbGl0aWVzLnNlcnZpY2VEZXNjcmlwdGlvblxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgbGVnZW5kSW5mbyxcclxuICAgICAgdGltZUZpbHRlcixcclxuICAgICAgc291cmNlRmllbGRzOiBhcmNnaXNPcHRpb25zLmZpZWxkcyxcclxuICAgICAgcXVlcnlUaXRsZTogYXJjZ2lzT3B0aW9ucy5kaXNwbGF5RmllbGRcclxuICAgIH0pO1xyXG4gICAgb3B0aW9ucy5hdHRyaWJ1dGlvbnMgPSBhdHRyaWJ1dGlvbnM7XHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VUaWxlT3JJbWFnZUFyY2dpc09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczpcclxuICAgICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBhcmNnaXNPcHRpb25zOiBhbnksXHJcbiAgICBsZWdlbmQ6IGFueSxcclxuICAgIHNlcnZpY2VDYXBhYmlsaXRpZXM6IGFueVxyXG4gICk6IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB7XHJcbiAgICBjb25zdCB0aXRsZSA9IGFyY2dpc09wdGlvbnMubmFtZTtcclxuICAgIGNvbnN0IGxlZ2VuZEluZm8gPSBsZWdlbmQubGF5ZXJzXHJcbiAgICAgID8gbGVnZW5kLmxheWVycy5maW5kKCh4KSA9PiB4LmxheWVyTmFtZSA9PT0gdGl0bGUpXHJcbiAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgYXR0cmlidXRpb25zID0gbmV3IG9sQXR0cmlidXRpb24oe1xyXG4gICAgICB0YXJnZXQ6IGFyY2dpc09wdGlvbnMuY29weXJpZ2h0VGV4dFxyXG4gICAgfSk7XHJcbiAgICBsZXQgdGltZUV4dGVudDtcclxuICAgIGxldCB0aW1lRmlsdGVyO1xyXG4gICAgaWYgKGFyY2dpc09wdGlvbnMudGltZUluZm8pIHtcclxuICAgICAgY29uc3QgdGltZSA9IGFyY2dpc09wdGlvbnMudGltZUluZm8udGltZUV4dGVudDtcclxuICAgICAgdGltZUV4dGVudCA9IHRpbWVbMF0gKyAnLCcgKyB0aW1lWzFdO1xyXG4gICAgICBjb25zdCBtaW4gPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBtaW4uc2V0VGltZSh0aW1lWzBdKTtcclxuICAgICAgY29uc3QgbWF4ID0gbmV3IERhdGUoKTtcclxuICAgICAgbWF4LnNldFRpbWUodGltZVsxXSk7XHJcbiAgICAgIHRpbWVGaWx0ZXIgPSB7XHJcbiAgICAgICAgbWluOiBtaW4udG9VVENTdHJpbmcoKSxcclxuICAgICAgICBtYXg6IG1heC50b1VUQ1N0cmluZygpLFxyXG4gICAgICAgIHJhbmdlOiB0cnVlLFxyXG4gICAgICAgIHR5cGU6IFRpbWVGaWx0ZXJUeXBlLkRBVEVUSU1FLFxyXG4gICAgICAgIHN0eWxlOiBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVJcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgIHt9LFxyXG4gICAgICB7XHJcbiAgICAgICAgTEFZRVJTOiBiYXNlT3B0aW9ucy5sYXllciA/ICdzaG93OicgKyBiYXNlT3B0aW9ucy5sYXllciA6IHVuZGVmaW5lZCxcclxuICAgICAgICB0aW1lOiB0aW1lRXh0ZW50XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcclxuICAgICAgcGFyYW1zLFxyXG4gICAgICBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZToge1xyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIG1pblJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5tYXhTY2FsZSksXHJcbiAgICAgICAgbWF4UmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShhcmNnaXNPcHRpb25zLm1pblNjYWxlKSxcclxuICAgICAgICBtZXRhZGF0YToge1xyXG4gICAgICAgICAgZXh0ZXJuOiBmYWxzZSxcclxuICAgICAgICAgIGFic3RyYWN0OlxyXG4gICAgICAgICAgICBhcmNnaXNPcHRpb25zLmRlc2NyaXB0aW9uIHx8IHNlcnZpY2VDYXBhYmlsaXRpZXMuc2VydmljZURlc2NyaXB0aW9uXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBsZWdlbmRJbmZvLFxyXG4gICAgICB0aW1lRmlsdGVyLFxyXG4gICAgICBzb3VyY2VGaWVsZHM6IGFyY2dpc09wdGlvbnMuZmllbGRzLFxyXG4gICAgICBxdWVyeVRpdGxlOiBhcmNnaXNPcHRpb25zLmRpc3BsYXlGaWVsZFxyXG4gICAgfSk7XHJcbiAgICBvcHRpb25zLmF0dHJpYnV0aW9ucyA9IGF0dHJpYnV0aW9ucztcclxuICAgIHJldHVybiBPYmplY3RVdGlscy5tZXJnZURlZXAob3B0aW9ucywgYmFzZU9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRGF0YVNvdXJjZUluQ2FwYWJpbGl0aWVzKGxheWVyQXJyYXksIG5hbWUpOiBhbnkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkobGF5ZXJBcnJheSkpIHtcclxuICAgICAgbGV0IGxheWVyO1xyXG4gICAgICBsYXllckFycmF5LmZpbmQoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgbGF5ZXIgPSB0aGlzLmZpbmREYXRhU291cmNlSW5DYXBhYmlsaXRpZXModmFsdWUsIG5hbWUpO1xyXG4gICAgICAgIHJldHVybiBsYXllciAhPT0gdW5kZWZpbmVkO1xyXG4gICAgICB9LCB0aGlzKTtcclxuXHJcbiAgICAgIHJldHVybiBsYXllcjtcclxuICAgIH0gZWxzZSBpZiAobGF5ZXJBcnJheS5MYXllcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5maW5kRGF0YVNvdXJjZUluQ2FwYWJpbGl0aWVzKGxheWVyQXJyYXkuTGF5ZXIsIG5hbWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGxheWVyQXJyYXkuTmFtZSAmJiBsYXllckFycmF5Lk5hbWUgPT09IG5hbWUpIHtcclxuICAgICAgICByZXR1cm4gbGF5ZXJBcnJheTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VGltZUZpbHRlcihsYXllcikge1xyXG4gICAgbGV0IGRpbWVuc2lvbjtcclxuXHJcbiAgICBpZiAobGF5ZXIuRGltZW5zaW9uKSB7XHJcbiAgICAgIGNvbnN0IHRpbWVGaWx0ZXI6IGFueSA9IHt9O1xyXG4gICAgICBkaW1lbnNpb24gPSBsYXllci5EaW1lbnNpb25bMF07XHJcblxyXG4gICAgICBpZiAoZGltZW5zaW9uLnZhbHVlcykge1xyXG4gICAgICAgIGNvbnN0IG1pbk1heERpbSA9IGRpbWVuc2lvbi52YWx1ZXMuc3BsaXQoJy8nKTtcclxuICAgICAgICB0aW1lRmlsdGVyLm1pbiA9IG1pbk1heERpbVswXSAhPT0gdW5kZWZpbmVkID8gbWluTWF4RGltWzBdIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIHRpbWVGaWx0ZXIubWF4ID0gbWluTWF4RGltWzFdICE9PSB1bmRlZmluZWQgPyBtaW5NYXhEaW1bMV0gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGltZUZpbHRlci5zdGVwID0gbWluTWF4RGltWzJdICE9PSB1bmRlZmluZWQgPyBtaW5NYXhEaW1bMl0gOiB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChkaW1lbnNpb24uZGVmYXVsdCkge1xyXG4gICAgICAgIHRpbWVGaWx0ZXIudmFsdWUgPSBkaW1lbnNpb24uZGVmYXVsdDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGltZUZpbHRlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFN0eWxlKFN0eWxlKTogTGVnZW5kT3B0aW9ucyB7XHJcbiAgICBjb25zdCBzdHlsZU9wdGlvbnM6IEl0ZW1TdHlsZU9wdGlvbnNbXSA9IFN0eWxlLm1hcCgoc3R5bGUpID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBzdHlsZS5OYW1lLFxyXG4gICAgICAgIHRpdGxlOiBzdHlsZS5UaXRsZVxyXG4gICAgICB9O1xyXG4gICAgfSlcclxuICAgICAgLy8gSGFuZGxlIHJlcGVhdCB0aGUgc3R5bGUgXCJkZWZhdWx0XCIgaW4gb3V0cHV0ICAoTWFwU2VydmVyIG9yIE9wZW5MYXllcilcclxuICAgICAgLmZpbHRlcihcclxuICAgICAgICAoaXRlbSwgaW5kZXgsIHNlbGYpID0+XHJcbiAgICAgICAgICBzZWxmLmZpbmRJbmRleCgoaTogSXRlbVN0eWxlT3B0aW9ucykgPT4gaS5uYW1lID09PSBpdGVtLm5hbWUpID09PVxyXG4gICAgICAgICAgaW5kZXhcclxuICAgICAgKTtcclxuXHJcbiAgICBjb25zdCBsZWdlbmRPcHRpb25zOiBMZWdlbmRPcHRpb25zID0ge1xyXG4gICAgICBzdHlsZXNBdmFpbGFibGU6IHN0eWxlT3B0aW9uc1xyXG4gICAgfSBhcyBMZWdlbmRPcHRpb25zO1xyXG5cclxuICAgIHJldHVybiBsZWdlbmRPcHRpb25zO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
435
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CapabilitiesService, decorators: [{
|
|
436
|
+
type: Injectable,
|
|
437
|
+
args: [{
|
|
438
|
+
providedIn: 'root'
|
|
439
|
+
}]
|
|
440
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.MapService }]; }, propDecorators: { getArcgisOptions: [], getImageArcgisOptions: [], getTileArcgisOptions: [], getCapabilities: [] } });
|
|
441
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGNBQWMsRUFDZixNQUFNLHNDQUFzQyxDQUFDO0FBSzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNwQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hGLE9BQU8s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QUFDLElBQUksQ0FBQztZQUM3RCxLQUFLLENBQ1IsQ0FBQztRQUVKLE1BQU0sYUFBYSxHQUFrQjtZQUNuQyxlQUFlLEVBQUUsWUFBWTtTQUNiLENBQUM7UUFFbkIsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQzt3R0FsaEJVLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07O0FBbUVsQjtJQUhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7OztvQ0FHQyxVQUFVOzJEQVlaO0FBS0Q7SUFIQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDOzs7b0NBS0MsVUFBVTtnRUEyQlo7QUFLRDtJQUhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7OztvQ0FHQyxVQUFVOytEQXNCWjtBQUtEO0lBSEMsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7S0FDbEIsQ0FBQzs7O29DQUtDLFVBQVU7MERBNkNaOzRGQXRNVSxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzBIQWtFQyxnQkFBZ0IsTUFtQmhCLHFCQUFxQixNQW9DckIsb0JBQW9CLE1BNkJwQixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgb2xBdHRyaWJ1dGlvbiBmcm9tICdvbC9jb250cm9sL0F0dHJpYnV0aW9uJztcclxuaW1wb3J0IHsgRXNyaUpTT04sIFdNU0NhcGFiaWxpdGllcywgV01UU0NhcGFiaWxpdGllcyB9IGZyb20gJ29sL2Zvcm1hdCc7XHJcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcclxuaW1wb3J0IHsgb3B0aW9uc0Zyb21DYXBhYmlsaXRpZXMgfSBmcm9tICdvbC9zb3VyY2UvV01UUy5qcyc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDYWNoZWFibGUgfSBmcm9tICd0cy1jYWNoZWFibGUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBUaW1lRmlsdGVyU3R5bGUsXHJcbiAgVGltZUZpbHRlclR5cGVcclxufSBmcm9tICcuLi8uLi9maWx0ZXIvc2hhcmVkL3RpbWUtZmlsdGVyLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIEl0ZW1TdHlsZU9wdGlvbnMsXHJcbiAgTGVnZW5kT3B0aW9uc1xyXG59IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGVnZW5kLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZ2V0UmVzb2x1dGlvbkZyb21TY2FsZSB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwLnV0aWxzJztcclxuaW1wb3J0IHtcclxuICBRdWVyeUZvcm1hdCxcclxuICBRdWVyeUZvcm1hdE1pbWVUeXBlXHJcbn0gZnJvbSAnLi4vLi4vcXVlcnkvc2hhcmVkL3F1ZXJ5LmVudW1zJztcclxuaW1wb3J0IHsgRXNyaVN0eWxlR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vc3R5bGUvc2hhcmVkL2RhdGFzb3VyY2UvZXNyaS1zdHlsZS1nZW5lcmF0b3InO1xyXG5pbXBvcnQge1xyXG4gIFR5cGVDYXBhYmlsaXRpZXMsXHJcbiAgVHlwZUNhcGFiaWxpdGllc1N0cmluZ3NcclxufSBmcm9tICcuL2NhcGFiaWxpdGllcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcclxuICBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV01UU0RhdGFTb3VyY2VPcHRpb25zXHJcbn0gZnJvbSAnLi9kYXRhc291cmNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXBhYmlsaXRpZXNTZXJ2aWNlIHtcclxuICBwcml2YXRlIHBhcnNlcnMgPSB7XHJcbiAgICB3bXM6IG5ldyBXTVNDYXBhYmlsaXRpZXMoKSxcclxuICAgIHdtdHM6IG5ldyBXTVRTQ2FwYWJpbGl0aWVzKCksXHJcbiAgICBlc3JpSlNPTjogbmV3IEVzcmlKU09OKClcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgbWFwU2VydmljZTogTWFwU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgZ2V0V01TT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8V01TRGF0YVNvdXJjZU9wdGlvbnM+IHtcclxuICAgIGNvbnN0IHVybCA9IGJhc2VPcHRpb25zLnVybDtcclxuICAgIGNvbnN0IHZlcnNpb24gPSAoYmFzZU9wdGlvbnMucGFyYW1zIGFzIGFueSkuVkVSU0lPTjtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5nZXRDYXBhYmlsaXRpZXMoJ3dtcycsIHVybCwgdmVyc2lvbikucGlwZShcclxuICAgICAgbWFwKChjYXBhYmlsaXRpZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBjYXBhYmlsaXRpZXNcclxuICAgICAgICAgID8gdGhpcy5wYXJzZVdNU09wdGlvbnMoYmFzZU9wdGlvbnMsIGNhcGFiaWxpdGllcylcclxuICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFdNVFNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8V01UU0RhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCB1cmwgPSBiYXNlT3B0aW9ucy51cmw7XHJcbiAgICBjb25zdCB2ZXJzaW9uID0gYmFzZU9wdGlvbnMudmVyc2lvbjtcclxuXHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5nZXRDYXBhYmlsaXRpZXMoJ3dtdHMnLCB1cmwsIHZlcnNpb24pLnBpcGUoXHJcbiAgICAgIG1hcCgoY2FwYWJpbGl0aWVzOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzXHJcbiAgICAgICAgICA/IHRoaXMucGFyc2VXTVRTT3B0aW9ucyhiYXNlT3B0aW9ucywgY2FwYWJpbGl0aWVzKVxyXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIG9wdGlvbnM7XHJcbiAgfVxyXG5cclxuICBnZXRDYXJ0b09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogQ2FydG9EYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8Q2FydG9EYXRhU291cmNlT3B0aW9ucz4ge1xyXG4gICAgY29uc3QgYmFzZVVybCA9XHJcbiAgICAgICdodHRwczovLycgK1xyXG4gICAgICBiYXNlT3B0aW9ucy5hY2NvdW50ICtcclxuICAgICAgJy5jYXJ0by5jb20vYXBpL3YyL3Zpei8nICtcclxuICAgICAgYmFzZU9wdGlvbnMubWFwSWQgK1xyXG4gICAgICAnL3Zpei5qc29uJztcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5qc29ucChiYXNlVXJsLCAnY2FsbGJhY2snKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKGNhcnRvT3B0aW9uczogYW55KSA9PlxyXG4gICAgICAgICAgdGhpcy5wYXJzZUNhcnRvT3B0aW9ucyhiYXNlT3B0aW9ucywgY2FydG9PcHRpb25zKVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIEBDYWNoZWFibGUoe1xyXG4gICAgbWF4Q2FjaGVDb3VudDogMjBcclxuICB9KVxyXG4gIGdldEFyY2dpc09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM+IHtcclxuICAgIGNvbnN0IGJhc2VVcmwgPSBiYXNlT3B0aW9ucy51cmwgKyAnLycgKyBiYXNlT3B0aW9ucy5sYXllciArICc/Zj1qc29uJztcclxuICAgIGNvbnN0IHNlcnZpY2VDYXBhYmlsaXRpZXMgPSB0aGlzLmdldENhcGFiaWxpdGllcyhcclxuICAgICAgJ2FyY2dpc3Jlc3QnLFxyXG4gICAgICBiYXNlT3B0aW9ucy51cmxcclxuICAgICk7XHJcbiAgICBjb25zdCBhcmNnaXNPcHRpb25zID0gdGhpcy5odHRwLmdldChiYXNlVXJsKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihbYXJjZ2lzT3B0aW9ucywgc2VydmljZUNhcGFiaWxpdGllc10pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUFyY2dpc09wdGlvbnMoYmFzZU9wdGlvbnMsIHJlc1swXSwgcmVzWzFdKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAQ2FjaGVhYmxlKHtcclxuICAgIG1heENhY2hlQ291bnQ6IDIwXHJcbiAgfSlcclxuICBnZXRJbWFnZUFyY2dpc09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczpcclxuICAgICAgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFxyXG4gICAgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgPiB7XHJcbiAgICBjb25zdCBiYXNlVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy8nICsgYmFzZU9wdGlvbnMubGF5ZXIgKyAnP2Y9anNvbic7XHJcbiAgICBjb25zdCBsZWdlbmRVcmwgPSBiYXNlT3B0aW9ucy51cmwgKyAnL2xlZ2VuZD9mPWpzb24nO1xyXG4gICAgY29uc3Qgc2VydmljZUNhcGFiaWxpdGllcyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKFxyXG4gICAgICAnaW1hZ2VhcmNnaXNyZXN0JyxcclxuICAgICAgYmFzZU9wdGlvbnMudXJsXHJcbiAgICApO1xyXG4gICAgY29uc3QgYXJjZ2lzT3B0aW9ucyA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCk7XHJcbiAgICBjb25zdCBsZWdlbmQgPSB0aGlzLmh0dHAuZ2V0KGxlZ2VuZFVybCkucGlwZShcclxuICAgICAgbWFwKChyZXM6IGFueSkgPT4gcmVzKSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ05vIGxlZ2VuZCBhc3NvY2lhdGVkIHdpdGggdGhpcyBJbWFnZSBTZXJ2aWNlJyk7XHJcbiAgICAgICAgcmV0dXJuIG9mKGVycik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKFthcmNnaXNPcHRpb25zLCBsZWdlbmQsIHNlcnZpY2VDYXBhYmlsaXRpZXNdKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2VUaWxlT3JJbWFnZUFyY2dpc09wdGlvbnMoXHJcbiAgICAgICAgICBiYXNlT3B0aW9ucyxcclxuICAgICAgICAgIHJlc1swXSxcclxuICAgICAgICAgIHJlc1sxXSxcclxuICAgICAgICAgIHJlc1syXVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQENhY2hlYWJsZSh7XHJcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxyXG4gIH0pXHJcbiAgZ2V0VGlsZUFyY2dpc09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8XHJcbiAgICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxuICA+IHtcclxuICAgIGNvbnN0IGJhc2VVcmwgPSBiYXNlT3B0aW9ucy51cmwgKyAnLycgKyBiYXNlT3B0aW9ucy5sYXllciArICc/Zj1qc29uJztcclxuICAgIGNvbnN0IGxlZ2VuZFVybCA9IGJhc2VPcHRpb25zLnVybCArICcvbGVnZW5kP2Y9anNvbic7XHJcbiAgICBjb25zdCBzZXJ2aWNlQ2FwYWJpbGl0aWVzID0gdGhpcy5nZXRDYXBhYmlsaXRpZXMoXHJcbiAgICAgICd0aWxlYXJjZ2lzcmVzdCcsXHJcbiAgICAgIGJhc2VPcHRpb25zLnVybFxyXG4gICAgKTtcclxuICAgIGNvbnN0IGFyY2dpc09wdGlvbnMgPSB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwpO1xyXG4gICAgY29uc3QgbGVnZW5kSW5mbyA9IHRoaXMuaHR0cC5nZXQobGVnZW5kVXJsKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiByZXMpLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnTm8gbGVnZW5kIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFRpbGUgU2VydmljZScpO1xyXG4gICAgICAgIHJldHVybiBvZihlcnIpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihbYXJjZ2lzT3B0aW9ucywgbGVnZW5kSW5mbywgc2VydmljZUNhcGFiaWxpdGllc10pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+XHJcbiAgICAgICAgdGhpcy5wYXJzZVRpbGVPckltYWdlQXJjZ2lzT3B0aW9ucyhiYXNlT3B0aW9ucywgcmVzWzBdLCByZXNbMV0sIHJlc1syXSlcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBDYWNoZWFibGUoe1xyXG4gICAgbWF4Q2FjaGVDb3VudDogMjBcclxuICB9KVxyXG4gIGdldENhcGFiaWxpdGllcyhcclxuICAgIHNlcnZpY2U6IFR5cGVDYXBhYmlsaXRpZXNTdHJpbmdzLFxyXG4gICAgYmFzZVVybDogc3RyaW5nLFxyXG4gICAgdmVyc2lvbj86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICByZXF1ZXN0OiAnR2V0Q2FwYWJpbGl0aWVzJyxcclxuICAgICAgICBzZXJ2aWNlOiBzZXJ2aWNlLnRvVXBwZXJDYXNlKCksXHJcbiAgICAgICAgdmVyc2lvbjogdmVyc2lvbiB8fCAnMS4zLjAnLFxyXG4gICAgICAgIF9pOiAndHJ1ZSdcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IHJlcXVlc3Q7XHJcbiAgICBpZiAoVHlwZUNhcGFiaWxpdGllc1tzZXJ2aWNlXSA9PT0gJ2VzcmlKU09OJykge1xyXG4gICAgICByZXF1ZXN0ID0gdGhpcy5odHRwLmdldChiYXNlVXJsICsgJz9mPWpzb24nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwsIHtcclxuICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCdcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlcXVlc3QucGlwZShcclxuICAgICAgbWFwKChyZXMpID0+IHtcclxuICAgICAgICBpZiAoVHlwZUNhcGFiaWxpdGllc1tzZXJ2aWNlXSA9PT0gJ2VzcmlKU09OJykge1xyXG4gICAgICAgICAgcmV0dXJuIHJlcyBhcyBvYmplY3Q7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIFN0cmluZyhyZXMpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3NlcnZpY2VleGNlcHRpb24nKSAmJlxyXG4gICAgICAgICAgU3RyaW5nKHJlcykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnYWNjZXNzIGRlbmllZCcpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aHJvdyB7XHJcbiAgICAgICAgICAgIGVycm9yOiB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1NlcnZpY2UgZXJyb3IgZ2V0Q2FwYWJpbGl0aWVzOiBBY2Nlc3MgaXMgZGVuaWVkJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZXJzW3NlcnZpY2VdLnJlYWQocmVzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBlLmVycm9yICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgZS5lcnJvci5jYXVnaHQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aHJvdyBlO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VXTVNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgY2FwYWJpbGl0aWVzOiBhbnlcclxuICApOiBXTVNEYXRhU291cmNlT3B0aW9ucyB7XHJcbiAgICBjb25zdCBsYXllcnMgPSAoYmFzZU9wdGlvbnMucGFyYW1zIGFzIGFueSkuTEFZRVJTO1xyXG4gICAgY29uc3QgbGF5ZXIgPSB0aGlzLmZpbmREYXRhU291cmNlSW5DYXBhYmlsaXRpZXMoXHJcbiAgICAgIGNhcGFiaWxpdGllcy5DYXBhYmlsaXR5LkxheWVyLFxyXG4gICAgICBsYXllcnNcclxuICAgICk7XHJcblxyXG4gICAgaWYgKCFsYXllcikge1xyXG4gICAgICB0aHJvdyB7XHJcbiAgICAgICAgZXJyb3I6IHtcclxuICAgICAgICAgIG1lc3NhZ2U6ICdMYXllciBub3QgZm91bmQnXHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgbWV0YWRhdGEgPSBsYXllci5EYXRhVVJMID8gbGF5ZXIuRGF0YVVSTFswXSA6IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IGFic3RyYWN0ID0gbGF5ZXIuQWJzdHJhY3QgPyBsYXllci5BYnN0cmFjdCA6IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IGtleXdvcmRMaXN0ID0gbGF5ZXIuS2V5d29yZExpc3QgPyBsYXllci5LZXl3b3JkTGlzdCA6IHVuZGVmaW5lZDtcclxuICAgIGxldCBxdWVyeWFibGUgPSBsYXllci5xdWVyeWFibGU7XHJcbiAgICBjb25zdCB0aW1lRmlsdGVyID0gdGhpcy5nZXRUaW1lRmlsdGVyKGxheWVyKTtcclxuICAgIGNvbnN0IHRpbWVGaWx0ZXJhYmxlID0gdGltZUZpbHRlciAmJiBPYmplY3Qua2V5cyh0aW1lRmlsdGVyKS5sZW5ndGggPiAwO1xyXG4gICAgY29uc3QgbGVnZW5kT3B0aW9ucyA9IGxheWVyLlN0eWxlID8gdGhpcy5nZXRTdHlsZShsYXllci5TdHlsZSkgOiB1bmRlZmluZWQ7XHJcbiAgICBsZXQgaXNFeHRlbnRJbkdlb2dyYXBoaWMgPSB0cnVlO1xyXG4gICAgaWYgKGxheWVyLkVYX0dlb2dyYXBoaWNCb3VuZGluZ0JveCkge1xyXG4gICAgICBsYXllci5FWF9HZW9ncmFwaGljQm91bmRpbmdCb3guZm9yRWFjaCgoY29vcmQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgMiAmJiAoY29vcmQgPiAxODAgfHwgY29vcmQgPCAtMTgwKSkge1xyXG4gICAgICAgICAgaXNFeHRlbnRJbkdlb2dyYXBoaWMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZGV4ID49IDIgJiYgKGNvb3JkID4gOTAgfHwgY29vcmQgPCAtOTApKSB7XHJcbiAgICAgICAgICBpc0V4dGVudEluR2VvZ3JhcGhpYyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpc0V4dGVudEluR2VvZ3JhcGhpYyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGV4dGVudCA9IGlzRXh0ZW50SW5HZW9ncmFwaGljXHJcbiAgICAgID8gb2xwcm9qLnRyYW5zZm9ybUV4dGVudChcclxuICAgICAgICAgIGxheWVyLkVYX0dlb2dyYXBoaWNCb3VuZGluZ0JveCxcclxuICAgICAgICAgICdFUFNHOjQzMjYnLFxyXG4gICAgICAgICAgdGhpcy5tYXBTZXJ2aWNlLmdldE1hcCgpLnByb2plY3Rpb25cclxuICAgICAgICApXHJcbiAgICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICAgIGxldCBxdWVyeUZvcm1hdDogUXVlcnlGb3JtYXQ7XHJcbiAgICBjb25zdCBxdWVyeUZvcm1hdE1pbWVUeXBlUHJpb3JpdHkgPSBbXHJcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuR0VPSlNPTixcclxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5HRU9KU09OMixcclxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5HTUwzLFxyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkdNTDIsXHJcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuSlNPTixcclxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5IVE1MXHJcbiAgICBdO1xyXG5cclxuICAgIGZvciAoY29uc3QgbWltZVR5cGUgb2YgcXVlcnlGb3JtYXRNaW1lVHlwZVByaW9yaXR5KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBjYXBhYmlsaXRpZXMuQ2FwYWJpbGl0eS5SZXF1ZXN0LkdldEZlYXR1cmVJbmZvLkZvcm1hdC5pbmRleE9mKFxyXG4gICAgICAgICAgbWltZVR5cGVcclxuICAgICAgICApICE9PSAtMVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBrZXlFbnVtID0gT2JqZWN0LmtleXMoUXVlcnlGb3JtYXRNaW1lVHlwZSkuZmluZChcclxuICAgICAgICAgIChrZXkpID0+IFF1ZXJ5Rm9ybWF0TWltZVR5cGVba2V5XSA9PT0gbWltZVR5cGVcclxuICAgICAgICApO1xyXG4gICAgICAgIHF1ZXJ5Rm9ybWF0ID0gUXVlcnlGb3JtYXRba2V5RW51bV07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghcXVlcnlGb3JtYXQpIHtcclxuICAgICAgcXVlcnlhYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgb3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZToge1xyXG4gICAgICAgIHRpdGxlOiBsYXllci5UaXRsZSxcclxuICAgICAgICBtYXhSZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGxheWVyLk1heFNjYWxlRGVub21pbmF0b3IpLFxyXG4gICAgICAgIG1pblJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUobGF5ZXIuTWluU2NhbGVEZW5vbWluYXRvciksXHJcbiAgICAgICAgZXh0ZW50LFxyXG4gICAgICAgIG1ldGFkYXRhOiB7XHJcbiAgICAgICAgICB1cmw6IG1ldGFkYXRhID8gbWV0YWRhdGEuT25saW5lUmVzb3VyY2UgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICBleHRlcm46IG1ldGFkYXRhID8gdHJ1ZSA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGFic3RyYWN0LFxyXG4gICAgICAgICAga2V5d29yZExpc3RcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxlZ2VuZE9wdGlvbnNcclxuICAgICAgfSxcclxuICAgICAgcXVlcnlhYmxlLFxyXG4gICAgICBxdWVyeUZvcm1hdCxcclxuICAgICAgdGltZUZpbHRlcjogdGltZUZpbHRlcmFibGUgPyB0aW1lRmlsdGVyIDogdW5kZWZpbmVkLFxyXG4gICAgICB0aW1lRmlsdGVyYWJsZTogdGltZUZpbHRlcmFibGUgPyB0cnVlIDogdW5kZWZpbmVkLFxyXG4gICAgICBtaW5EYXRlOiB0aW1lRmlsdGVyYWJsZSA/IHRpbWVGaWx0ZXIubWluIDogdW5kZWZpbmVkLFxyXG4gICAgICBtYXhEYXRlOiB0aW1lRmlsdGVyYWJsZSA/IHRpbWVGaWx0ZXIubWF4IDogdW5kZWZpbmVkLFxyXG4gICAgICBzdGVwRGF0ZTogdGltZUZpbHRlcmFibGUgPyB0aW1lRmlsdGVyLnN0ZXAgOiB1bmRlZmluZWRcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBPYmplY3RVdGlscy5tZXJnZURlZXAob3B0aW9ucywgYmFzZU9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZVdNVFNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGNhcGFiaWxpdGllczogYW55XHJcbiAgKTogV01UU0RhdGFTb3VyY2VPcHRpb25zIHtcclxuICAgIC8vIFB1dCBUaXRsZSBzb3VyY2UgaW4gX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UuIChGb3Igc291cmNlICYgY2F0YWxvZyBpbiBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZSwgaWYgbm90IGFscmVhZHkgb24gY29uZmlnKVxyXG4gICAgY29uc3QgbGF5ZXIgPSBjYXBhYmlsaXRpZXMuQ29udGVudHMuTGF5ZXIuZmluZChcclxuICAgICAgKGVsKSA9PiBlbC5JZGVudGlmaWVyID09PSBiYXNlT3B0aW9ucy5sYXllclxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBvcHRpb25zID0gb3B0aW9uc0Zyb21DYXBhYmlsaXRpZXMoY2FwYWJpbGl0aWVzLCBiYXNlT3B0aW9ucyk7XHJcblxyXG4gICAgY29uc3Qgb3VwdXRPcHRpb25zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLCBiYXNlT3B0aW9ucyk7XHJcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcclxuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcclxuICAgICAgICB0aXRsZTogbGF5ZXIuVGl0bGVcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChzb3VyY2VPcHRpb25zLCBvdXB1dE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZUNhcnRvT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgY2FydG9PcHRpb25zOiBhbnlcclxuICApOiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zIHtcclxuICAgIGNvbnN0IGxheWVycyA9IFtdO1xyXG4gICAgY29uc3QgcGFyYW1zID0gY2FydG9PcHRpb25zLmxheWVyc1sxXS5vcHRpb25zLmxheWVyX2RlZmluaXRpb247XHJcbiAgICBwYXJhbXMubGF5ZXJzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgbGF5ZXJzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6IGVsZW1lbnQudHlwZS50b0xvd2VyQ2FzZSgpLFxyXG4gICAgICAgIG9wdGlvbnM6IGVsZW1lbnQub3B0aW9ucyxcclxuICAgICAgICBsZWdlbmQ6IGVsZW1lbnQubGVnZW5kXHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcclxuICAgICAgY29uZmlnOiB7XHJcbiAgICAgICAgdmVyc2lvbjogcGFyYW1zLnZlcnNpb24sXHJcbiAgICAgICAgbGF5ZXJzXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlQXJjZ2lzT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBhcmNnaXNPcHRpb25zOiBhbnksXHJcbiAgICBzZXJ2aWNlQ2FwYWJpbGl0aWVzOiBhbnlcclxuICApOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgdGl0bGUgPSBhcmNnaXNPcHRpb25zLm5hbWU7XHJcbiAgICBsZXQgbGVnZW5kSW5mbzogYW55O1xyXG5cclxuICAgIGlmIChhcmNnaXNPcHRpb25zLmRyYXdpbmdJbmZvPy5yZW5kZXJlcikge1xyXG4gICAgICBsZWdlbmRJbmZvID0gYXJjZ2lzT3B0aW9ucy5kcmF3aW5nSW5mby5yZW5kZXJlcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxlZ2VuZEluZm8gPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHN0eWxlO1xyXG4gICAgaWYgKGFyY2dpc09wdGlvbnMuZHJhd2luZ0luZm8pIHtcclxuICAgICAgY29uc3Qgc3R5bGVHZW5lcmF0b3IgPSBuZXcgRXNyaVN0eWxlR2VuZXJhdG9yKCk7XHJcbiAgICAgIGNvbnN0IHVuaXRzID0gYXJjZ2lzT3B0aW9ucy51bml0cyA9PT0gJ2VzcmlNZXRlcnMnID8gJ20nIDogJ2RlZ3JlZXMnO1xyXG4gICAgICBzdHlsZSA9IHN0eWxlR2VuZXJhdG9yLmdlbmVyYXRlU3R5bGUoYXJjZ2lzT3B0aW9ucywgdW5pdHMpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYXR0cmlidXRpb25zID0gbmV3IG9sQXR0cmlidXRpb24oe1xyXG4gICAgICB0YXJnZXQ6IGFyY2dpc09wdGlvbnMuY29weXJpZ2h0VGV4dFxyXG4gICAgfSk7XHJcbiAgICBsZXQgdGltZUV4dGVudDtcclxuICAgIGxldCB0aW1lRmlsdGVyO1xyXG4gICAgaWYgKGFyY2dpc09wdGlvbnMudGltZUluZm8pIHtcclxuICAgICAgY29uc3QgdGltZSA9IGFyY2dpc09wdGlvbnMudGltZUluZm8udGltZUV4dGVudDtcclxuICAgICAgdGltZUV4dGVudCA9IHRpbWVbMF0gKyAnLCcgKyB0aW1lWzFdO1xyXG4gICAgICBjb25zdCBtaW4gPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBtaW4uc2V0VGltZSh0aW1lWzBdKTtcclxuICAgICAgY29uc3QgbWF4ID0gbmV3IERhdGUoKTtcclxuICAgICAgbWF4LnNldFRpbWUodGltZVsxXSk7XHJcbiAgICAgIHRpbWVGaWx0ZXIgPSB7XHJcbiAgICAgICAgbWluOiBtaW4udG9VVENTdHJpbmcoKSxcclxuICAgICAgICBtYXg6IG1heC50b1VUQ1N0cmluZygpLFxyXG4gICAgICAgIHJhbmdlOiB0cnVlLFxyXG4gICAgICAgIHR5cGU6IFRpbWVGaWx0ZXJUeXBlLkRBVEVUSU1FLFxyXG4gICAgICAgIHN0eWxlOiBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVJcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oXHJcbiAgICAgIHt9LFxyXG4gICAgICB7XHJcbiAgICAgICAgc3R5bGUsXHJcbiAgICAgICAgTEFZRVJTOiBiYXNlT3B0aW9ucy5sYXllciA/ICdzaG93OicgKyBiYXNlT3B0aW9ucy5sYXllciA6IHVuZGVmaW5lZCxcclxuICAgICAgICB0aW1lOiB0aW1lRXh0ZW50XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcclxuICAgICAgcGFyYW1zLFxyXG4gICAgICBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZToge1xyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIG1pblJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5tYXhTY2FsZSksXHJcbiAgICAgICAgbWF4UmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShhcmNnaXNPcHRpb25zLm1pblNjYWxlKSxcclxuICAgICAgICBtZXRhZGF0YToge1xyXG4gICAgICAgICAgZXh0ZXJuOiBmYWxzZSxcclxuICAgICAgICAgIGFic3RyYWN0OlxyXG4gICAgICAgICAgICBhcmNnaXNPcHRpb25zLmRlc2NyaXB0aW9uIHx8IHNlcnZpY2VDYXBhYmlsaXRpZXMuc2VydmljZURlc2NyaXB0aW9uXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBsZWdlbmRJbmZvLFxyXG4gICAgICB0aW1lRmlsdGVyLFxyXG4gICAgICBzb3VyY2VGaWVsZHM6IGFyY2dpc09wdGlvbnMuZmllbGRzLFxyXG4gICAgICBxdWVyeVRpdGxlOiBhcmNnaXNPcHRpb25zLmRpc3BsYXlGaWVsZFxyXG4gICAgfSk7XHJcbiAgICBvcHRpb25zLmF0dHJpYnV0aW9ucyA9IGF0dHJpYnV0aW9ucztcclxuICAgIHJldHVybiBPYmplY3RVdGlscy5tZXJnZURlZXAob3B0aW9ucywgYmFzZU9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZVRpbGVPckltYWdlQXJjZ2lzT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOlxyXG4gICAgICB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGFyY2dpc09wdGlvbnM6IGFueSxcclxuICAgIGxlZ2VuZDogYW55LFxyXG4gICAgc2VydmljZUNhcGFiaWxpdGllczogYW55XHJcbiAgKTogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHtcclxuICAgIGNvbnN0IHRpdGxlID0gYXJjZ2lzT3B0aW9ucy5uYW1lO1xyXG4gICAgY29uc3QgbGVnZW5kSW5mbyA9IGxlZ2VuZC5sYXllcnNcclxuICAgICAgPyBsZWdlbmQubGF5ZXJzLmZpbmQoKHgpID0+IHgubGF5ZXJOYW1lID09PSB0aXRsZSlcclxuICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBhdHRyaWJ1dGlvbnMgPSBuZXcgb2xBdHRyaWJ1dGlvbih7XHJcbiAgICAgIHRhcmdldDogYXJjZ2lzT3B0aW9ucy5jb3B5cmlnaHRUZXh0XHJcbiAgICB9KTtcclxuICAgIGxldCB0aW1lRXh0ZW50O1xyXG4gICAgbGV0IHRpbWVGaWx0ZXI7XHJcbiAgICBpZiAoYXJjZ2lzT3B0aW9ucy50aW1lSW5mbykge1xyXG4gICAgICBjb25zdCB0aW1lID0gYXJjZ2lzT3B0aW9ucy50aW1lSW5mby50aW1lRXh0ZW50O1xyXG4gICAgICB0aW1lRXh0ZW50ID0gdGltZVswXSArICcsJyArIHRpbWVbMV07XHJcbiAgICAgIGNvbnN0IG1pbiA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIG1pbi5zZXRUaW1lKHRpbWVbMF0pO1xyXG4gICAgICBjb25zdCBtYXggPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBtYXguc2V0VGltZSh0aW1lWzFdKTtcclxuICAgICAgdGltZUZpbHRlciA9IHtcclxuICAgICAgICBtaW46IG1pbi50b1VUQ1N0cmluZygpLFxyXG4gICAgICAgIG1heDogbWF4LnRvVVRDU3RyaW5nKCksXHJcbiAgICAgICAgcmFuZ2U6IHRydWUsXHJcbiAgICAgICAgdHlwZTogVGltZUZpbHRlclR5cGUuREFURVRJTUUsXHJcbiAgICAgICAgc3R5bGU6IFRpbWVGaWx0ZXJTdHlsZS5DQUxFTkRBUlxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAge30sXHJcbiAgICAgIHtcclxuICAgICAgICBMQVlFUlM6IGJhc2VPcHRpb25zLmxheWVyID8gJ3Nob3c6JyArIGJhc2VPcHRpb25zLmxheWVyIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHRpbWU6IHRpbWVFeHRlbnRcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgIF9sYXllck9wdGlvbnNGcm9tU291cmNlOiB7XHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgbWluUmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShhcmNnaXNPcHRpb25zLm1heFNjYWxlKSxcclxuICAgICAgICBtYXhSZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGFyY2dpc09wdGlvbnMubWluU2NhbGUpLFxyXG4gICAgICAgIG1ldGFkYXRhOiB7XHJcbiAgICAgICAgICBleHRlcm46IGZhbHNlLFxyXG4gICAgICAgICAgYWJzdHJhY3Q6XHJcbiAgICAgICAgICAgIGFyY2dpc09wdGlvbnMuZGVzY3JpcHRpb24gfHwgc2VydmljZUNhcGFiaWxpdGllcy5zZXJ2aWNlRGVzY3JpcHRpb25cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGxlZ2VuZEluZm8sXHJcbiAgICAgIHRpbWVGaWx0ZXIsXHJcbiAgICAgIHNvdXJjZUZpZWxkczogYXJjZ2lzT3B0aW9ucy5maWVsZHMsXHJcbiAgICAgIHF1ZXJ5VGl0bGU6IGFyY2dpc09wdGlvbnMuZGlzcGxheUZpZWxkXHJcbiAgICB9KTtcclxuICAgIG9wdGlvbnMuYXR0cmlidXRpb25zID0gYXR0cmlidXRpb25zO1xyXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmREYXRhU291cmNlSW5DYXBhYmlsaXRpZXMobGF5ZXJBcnJheSwgbmFtZSk6IGFueSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShsYXllckFycmF5KSkge1xyXG4gICAgICBsZXQgbGF5ZXI7XHJcbiAgICAgIGxheWVyQXJyYXkuZmluZCgodmFsdWUpID0+IHtcclxuICAgICAgICBsYXllciA9IHRoaXMuZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyh2YWx1ZSwgbmFtZSk7XHJcbiAgICAgICAgcmV0dXJuIGxheWVyICE9PSB1bmRlZmluZWQ7XHJcbiAgICAgIH0sIHRoaXMpO1xyXG5cclxuICAgICAgcmV0dXJuIGxheWVyO1xyXG4gICAgfSBlbHNlIGlmIChsYXllckFycmF5LkxheWVyKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZpbmREYXRhU291cmNlSW5DYXBhYmlsaXRpZXMobGF5ZXJBcnJheS5MYXllciwgbmFtZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAobGF5ZXJBcnJheS5OYW1lICYmIGxheWVyQXJyYXkuTmFtZSA9PT0gbmFtZSkge1xyXG4gICAgICAgIHJldHVybiBsYXllckFycmF5O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUaW1lRmlsdGVyKGxheWVyKSB7XHJcbiAgICBsZXQgZGltZW5zaW9uO1xyXG5cclxuICAgIGlmIChsYXllci5EaW1lbnNpb24pIHtcclxuICAgICAgY29uc3QgdGltZUZpbHRlcjogYW55ID0ge307XHJcbiAgICAgIGRpbWVuc2lvbiA9IGxheWVyLkRpbWVuc2lvblswXTtcclxuXHJcbiAgICAgIGlmIChkaW1lbnNpb24udmFsdWVzKSB7XHJcbiAgICAgICAgY29uc3QgbWluTWF4RGltID0gZGltZW5zaW9uLnZhbHVlcy5zcGxpdCgnLycpO1xyXG4gICAgICAgIHRpbWVGaWx0ZXIubWluID0gbWluTWF4RGltWzBdICE9PSB1bmRlZmluZWQgPyBtaW5NYXhEaW1bMF0gOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGltZUZpbHRlci5tYXggPSBtaW5NYXhEaW1bMV0gIT09IHVuZGVmaW5lZCA/IG1pbk1heERpbVsxXSA6IHVuZGVmaW5lZDtcclxuICAgICAgICB0aW1lRmlsdGVyLnN0ZXAgPSBtaW5NYXhEaW1bMl0gIT09IHVuZGVmaW5lZCA/IG1pbk1heERpbVsyXSA6IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGRpbWVuc2lvbi5kZWZhdWx0KSB7XHJcbiAgICAgICAgdGltZUZpbHRlci52YWx1ZSA9IGRpbWVuc2lvbi5kZWZhdWx0O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aW1lRmlsdGVyO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U3R5bGUoU3R5bGUpOiBMZWdlbmRPcHRpb25zIHtcclxuICAgIGNvbnN0IHN0eWxlT3B0aW9uczogSXRlbVN0eWxlT3B0aW9uc1tdID0gU3R5bGUubWFwKChzdHlsZSkgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIG5hbWU6IHN0eWxlLk5hbWUsXHJcbiAgICAgICAgdGl0bGU6IHN0eWxlLlRpdGxlXHJcbiAgICAgIH07XHJcbiAgICB9KVxyXG4gICAgICAvLyBIYW5kbGUgcmVwZWF0IHRoZSBzdHlsZSBcImRlZmF1bHRcIiBpbiBvdXRwdXQgIChNYXBTZXJ2ZXIgb3IgT3BlbkxheWVyKVxyXG4gICAgICAuZmlsdGVyKFxyXG4gICAgICAgIChpdGVtLCBpbmRleCwgc2VsZikgPT5cclxuICAgICAgICAgIHNlbGYuZmluZEluZGV4KChpOiBJdGVtU3R5bGVPcHRpb25zKSA9PiBpLm5hbWUgPT09IGl0ZW0ubmFtZSkgPT09XHJcbiAgICAgICAgICBpbmRleFxyXG4gICAgICApO1xyXG5cclxuICAgIGNvbnN0IGxlZ2VuZE9wdGlvbnM6IExlZ2VuZE9wdGlvbnMgPSB7XHJcbiAgICAgIHN0eWxlc0F2YWlsYWJsZTogc3R5bGVPcHRpb25zXHJcbiAgICB9IGFzIExlZ2VuZE9wdGlvbnM7XHJcblxyXG4gICAgcmV0dXJuIGxlZ2VuZE9wdGlvbnM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -245,15 +245,15 @@ export class DataSourceService {
|
|
|
245
245
|
createClusterDataSource(context) {
|
|
246
246
|
return new Observable((d) => d.next(new ClusterDataSource(context)));
|
|
247
247
|
}
|
|
248
|
-
static ɵfac =
|
|
249
|
-
static ɵprov =
|
|
248
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, deps: [{ token: i1.CapabilitiesService }, { token: i2.OptionsService, optional: true }, { token: i3.WFSService }, { token: i4.LanguageService }, { token: i4.MessageService }, { token: i5.ProjectionService }, { token: i6.AuthInterceptor }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
249
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, providedIn: 'root' });
|
|
250
250
|
}
|
|
251
|
-
(
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUVMLG9CQUFvQixFQUdwQixlQUFlLEVBRWYsaUJBQWlCLEVBR2pCLGlCQUFpQixFQUVqQix5QkFBeUIsRUFDekIsYUFBYSxFQUViLGFBQWEsRUFFYix3QkFBd0IsRUFFeEIsbUJBQW1CLEVBRW5CLGFBQWEsRUFFYixhQUFhLEVBRWIsY0FBYyxFQUVkLG1CQUFtQixFQUNuQixhQUFhLEVBRWQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFLM0QsTUFBTSxPQUFPLGlCQUFpQjtJQUlsQjtJQUNZO0lBQ1o7SUFD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QUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5QixPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLE9BQW1DLEVBQUUsRUFBRTtZQUMxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQzVDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDO1lBQ0YsT0FBTyxJQUFJLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQixDQUN6QixPQUE2QjtRQUU3QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sdUJBQXVCLENBQzdCLE9BQWlDO1FBRWpDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQzsyRUE5WlUsaUJBQWlCO2dFQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCLG1CQUZoQixNQUFNOzt1RkFFUCxpQkFBaUI7Y0FIN0IsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFNSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEF1dGhJbnRlcmNlcHRvciB9IGZyb20gJ0BpZ28yL2F1dGgnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgUHJvamVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL3Byb2plY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENhcGFiaWxpdGllc1NlcnZpY2UgfSBmcm9tICcuL2NhcGFiaWxpdGllcy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBbnlEYXRhU291cmNlT3B0aW9ucyxcclxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZSxcclxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQ2FydG9EYXRhU291cmNlLFxyXG4gIENhcnRvRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQ2x1c3RlckRhdGFTb3VyY2UsXHJcbiAgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zLFxyXG4gIERhdGFTb3VyY2UsXHJcbiAgRmVhdHVyZURhdGFTb3VyY2UsXHJcbiAgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2UsXHJcbiAgTVZURGF0YVNvdXJjZSxcclxuICBNVlREYXRhU291cmNlT3B0aW9ucyxcclxuICBPU01EYXRhU291cmNlLFxyXG4gIE9TTURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZSxcclxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFRpbGVEZWJ1Z0RhdGFTb3VyY2UsXHJcbiAgVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV0ZTRGF0YVNvdXJjZSxcclxuICBXRlNEYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVNEYXRhU291cmNlLFxyXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFdNVFNEYXRhU291cmNlLFxyXG4gIFdNVFNEYXRhU291cmNlT3B0aW9ucyxcclxuICBXZWJTb2NrZXREYXRhU291cmNlLFxyXG4gIFhZWkRhdGFTb3VyY2UsXHJcbiAgWFlaRGF0YVNvdXJjZU9wdGlvbnNcclxufSBmcm9tICcuL2RhdGFzb3VyY2VzJztcclxuaW1wb3J0IHsgV0ZTU2VydmljZSB9IGZyb20gJy4vZGF0YXNvdXJjZXMvd2ZzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4vb3B0aW9ucy9vcHRpb25zLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZVNlcnZpY2Uge1xyXG4gIHB1YmxpYyBkYXRhc291cmNlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGFTb3VyY2VbXT4oW10pO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2FwYWJpbGl0aWVzU2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3ZnNEYXRhU291cmNlU2VydmljZTogV0ZTU2VydmljZSxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgcHJvamVjdGlvblNlcnZpY2U6IFByb2plY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoSW50ZXJjZXB0b3I/OiBBdXRoSW50ZXJjZXB0b3JcclxuICApIHt9XHJcblxyXG4gIGNyZWF0ZUFzeW5jRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IEFueURhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxEYXRhU291cmNlPiB7XHJcbiAgICBpZiAoIWNvbnRleHQudHlwZSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGNvbnRleHQpO1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFzb3VyY2UgbmVlZHMgYSB0eXBlJyk7XHJcbiAgICB9XHJcbiAgICBsZXQgZGF0YVNvdXJjZTtcclxuICAgIHN3aXRjaCAoY29udGV4dC50eXBlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSAnb3NtJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVPU01EYXRhU291cmNlKGNvbnRleHQgYXMgT1NNRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd2ZWN0b3InOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUZlYXR1cmVEYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3ZnMnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVdGU0RhdGFTb3VyY2UoY29udGV4dCBhcyBXRlNEYXRhU291cmNlT3B0aW9ucyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dtcyc6XHJcbiAgICAgICAgY29uc3Qgd21zQ29udGV4dCA9IGNvbnRleHQgYXMgV01TRGF0YVNvdXJjZU9wdGlvbnM7XHJcbiAgICAgICAgT2JqZWN0VXRpbHMucmVtb3ZlRHVwbGljYXRlQ2FzZUluc2Vuc2l0aXZlKHdtc0NvbnRleHQucGFyYW1zKTtcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXTVNEYXRhU291cmNlKHdtc0NvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dtdHMnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVdNVFNEYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd4eXonOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVhZWkRhdGFTb3VyY2UoY29udGV4dCBhcyBYWVpEYXRhU291cmNlT3B0aW9ucyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RpbGVkZWJ1Zyc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlVGlsZURlYnVnRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgVGlsZURlYnVnRGF0YVNvdXJjZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NhcnRvJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVDYXJ0b0RhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIENhcnRvRGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdhcmNnaXNyZXN0JzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgICAgICAgZGV0YWlsZWRDb250ZXh0VXJpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaW1hZ2VhcmNnaXNyZXN0JzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcclxuICAgICAgICAgIGRldGFpbGVkQ29udGV4dFVyaVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dlYnNvY2tldCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlV2ViU29ja2V0RGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbXZ0JzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVNVlREYXRhU291cmNlKGNvbnRleHQgYXMgTVZURGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0aWxlYXJjZ2lzcmVzdCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgICAgICAgZGV0YWlsZWRDb250ZXh0VXJpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2x1c3Rlcic6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQ2x1c3RlckRhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIENsdXN0ZXJEYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihjb250ZXh0KTtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YXNvdXJjZSB0eXBlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhc291cmNlcyQubmV4dCh0aGlzLmRhdGFzb3VyY2VzJC52YWx1ZS5jb25jYXQoW2RhdGFTb3VyY2VdKSk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZU9TTURhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBPU01EYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8T1NNRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IE9TTURhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRmVhdHVyZURhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPEZlYXR1cmVEYXRhU291cmNlPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgRmVhdHVyZURhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlV2ViU29ja2V0RGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8V2ViU29ja2V0RGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IFdlYlNvY2tldERhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlV0ZTRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFdGU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxXRlNEYXRhU291cmNlPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+XHJcbiAgICAgIGQubmV4dChcclxuICAgICAgICBuZXcgV0ZTRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQsXHJcbiAgICAgICAgICB0aGlzLndmc0RhdGFTb3VyY2VTZXJ2aWNlLFxyXG4gICAgICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3JcclxuICAgICAgICApXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdNU0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xyXG4gICAgaWYgKGNvbnRleHQub3B0aW9uc0Zyb21DYXBhYmlsaXRpZXMgJiYgd2luZG93Lm5hdmlnYXRvci5vbkxpbmUpIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0V01TT3B0aW9ucyhjb250ZXh0KS5waXBlKFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZScsXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQucGFyYW1zLkxBWUVSUyB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcclxuICAgICAgY29udGV4dC5vcHRpb25zRnJvbUFwaSAmJlxyXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxyXG4gICAgKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZS5nZXRXTVNPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICBlLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBlLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9ic2VydmFibGVzLnB1c2gob2YoY29udGV4dCkpO1xyXG5cclxuICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShcclxuICAgICAgbWFwKChvcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9uc1tdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxyXG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gbmV3IFdNU0RhdGFTb3VyY2Uob3B0aW9uc01lcmdlZCwgdGhpcy53ZnNEYXRhU291cmNlU2VydmljZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdNVFNEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogV01UU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxXTVRTRGF0YVNvdXJjZT4ge1xyXG4gICAgaWYgKGNvbnRleHQub3B0aW9uc0Zyb21DYXBhYmlsaXRpZXMgJiYgd2luZG93Lm5hdmlnYXRvci5vbkxpbmUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRXTVRTT3B0aW9ucyhjb250ZXh0KS5waXBlKFxyXG4gICAgICAgIG1hcCgob3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb3B0aW9ucyA/IG5ldyBXTVRTRGF0YVNvdXJjZShvcHRpb25zKSA6IHVuZGVmaW5lZDtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxyXG4gICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQubGF5ZXIgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IFdNVFNEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVhZWkRhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBYWVpEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8WFlaRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IFhZWkRhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlVGlsZURlYnVnRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFRpbGVEZWJ1Z0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxUaWxlRGVidWdEYXRhU291cmNlPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgVGlsZURlYnVnRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDYXJ0b0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxDYXJ0b0RhdGFTb3VyY2U+IHtcclxuICAgIGlmIChjb250ZXh0Lm1hcElkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2VcclxuICAgICAgICAuZ2V0Q2FydG9PcHRpb25zKGNvbnRleHQpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKG9wdGlvbnM6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnMpID0+IG5ldyBDYXJ0b0RhdGFTb3VyY2Uob3B0aW9ucykpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBDYXJ0b0RhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQXJjR0lTUmVzdERhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEFyY0dJU1Jlc3REYXRhU291cmNlPiB7XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xyXG4gICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldEFyY2dpc09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LmxheWVyIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlICYmXHJcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcclxuICAgICAgd2luZG93Lm5hdmlnYXRvci5vbkxpbmVcclxuICAgICkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2VcclxuICAgICAgICAgIC5nZXRBcmNnaXNSZXN0T3B0aW9ucyhjb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBlLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBlLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2Uub3B0aW9uc0FwaVVuYXZhaWxhYmxlJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIG9ic2VydmFibGVzLnB1c2gob2YoY29udGV4dCkpO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKFxyXG4gICAgICBtYXAoKG9wdGlvbnM6IEFyY0dJU1Jlc3REYXRhU291cmNlW10pID0+IHtcclxuICAgICAgICBjb25zdCBvcHRpb25zTWVyZ2VkID0gb3B0aW9ucy5yZWR1Y2UoKGEsIGIpID0+XHJcbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBuZXcgQXJjR0lTUmVzdERhdGFTb3VyY2Uob3B0aW9uc01lcmdlZCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8QXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnM+IHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzID0gW107XHJcblxyXG4gICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldEltYWdlQXJjZ2lzT3B0aW9ucyhjb250ZXh0KS5waXBlKFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZScsXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQucGFyYW1zLkxBWUVSUyB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vcHRpb25zU2VydmljZSAmJlxyXG4gICAgICBjb250ZXh0Lm9wdGlvbnNGcm9tQXBpICYmXHJcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXHJcbiAgICApIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0QXJjZ2lzUmVzdE9wdGlvbnMoY29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgICBlLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBvYnNlcnZhYmxlcy5wdXNoKG9mKGNvbnRleHQpKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShcclxuICAgICAgbWFwKChvcHRpb25zOiBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlW10pID0+IHtcclxuICAgICAgICBjb25zdCBvcHRpb25zTWVyZ2VkID0gb3B0aW9ucy5yZWR1Y2UoKGEsIGIpID0+XHJcbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBuZXcgSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZShvcHRpb25zTWVyZ2VkKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8VGlsZUFyY0dJU1Jlc3REYXRhU291cmNlPiB7XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xyXG4gICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldEltYWdlQXJjZ2lzT3B0aW9ucyhjb250ZXh0KS5waXBlKFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZScsXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQucGFyYW1zLkxBWUVSUyB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vcHRpb25zU2VydmljZSAmJlxyXG4gICAgICBjb250ZXh0Lm9wdGlvbnNGcm9tQXBpICYmXHJcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXHJcbiAgICApIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0QXJjZ2lzUmVzdE9wdGlvbnMoY29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgICBlLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBvYnNlcnZhYmxlcy5wdXNoKG9mKGNvbnRleHQpKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShcclxuICAgICAgbWFwKChvcHRpb25zOiBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnNNZXJnZWQgPSBvcHRpb25zLnJlZHVjZSgoYSwgYikgPT5cclxuICAgICAgICAgIE9iamVjdFV0aWxzLm1lcmdlRGVlcChhLCBiKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2Uob3B0aW9uc01lcmdlZCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZU1WVERhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBNVlREYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8TVZURGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IE1WVERhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ2x1c3RlckRhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPENsdXN0ZXJEYXRhU291cmNlPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgQ2x1c3RlckRhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataSourceService, decorators: [{
|
|
252
|
+
type: Injectable,
|
|
253
|
+
args: [{
|
|
254
|
+
providedIn: 'root'
|
|
255
|
+
}]
|
|
256
|
+
}], ctorParameters: function () { return [{ type: i1.CapabilitiesService }, { type: i2.OptionsService, decorators: [{
|
|
257
|
+
type: Optional
|
|
258
|
+
}] }, { type: i3.WFSService }, { type: i4.LanguageService }, { type: i4.MessageService }, { type: i5.ProjectionService }, { type: i6.AuthInterceptor }]; } });
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUVMLG9CQUFvQixFQUdwQixlQUFlLEVBRWYsaUJBQWlCLEVBR2pCLGlCQUFpQixFQUVqQix5QkFBeUIsRUFDekIsYUFBYSxFQUViLGFBQWEsRUFFYix3QkFBd0IsRUFFeEIsbUJBQW1CLEVBRW5CLGFBQWEsRUFFYixhQUFhLEVBRWIsY0FBYyxFQUVkLG1CQUFtQixFQUNuQixhQUFhLEVBRWQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFLM0QsTUFBTSxPQUFPLGlCQUFpQjtJQUlsQjtJQUNZO0lBQ1o7SUFD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QUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5QixPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLE9BQW1DLEVBQUUsRUFBRTtZQUMxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQzVDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDO1lBQ0YsT0FBTyxJQUFJLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLG1CQUFtQixDQUN6QixPQUE2QjtRQUU3QixPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sdUJBQXVCLENBQzdCLE9BQWlDO1FBRWpDLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQzt3R0E5WlUsaUJBQWlCOzRHQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7NEZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBTUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlLCBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IFByb2plY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9wcm9qZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXBhYmlsaXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi9jYXBhYmlsaXRpZXMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQW55RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2UsXHJcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIENhcnRvRGF0YVNvdXJjZSxcclxuICBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIENsdXN0ZXJEYXRhU291cmNlLFxyXG4gIENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucyxcclxuICBEYXRhU291cmNlLFxyXG4gIEZlYXR1cmVEYXRhU291cmNlLFxyXG4gIEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyxcclxuICBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlLFxyXG4gIE1WVERhdGFTb3VyY2UsXHJcbiAgTVZURGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgT1NNRGF0YVNvdXJjZSxcclxuICBPU01EYXRhU291cmNlT3B0aW9ucyxcclxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2UsXHJcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICBUaWxlRGVidWdEYXRhU291cmNlLFxyXG4gIFRpbGVEZWJ1Z0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFdGU0RhdGFTb3VyY2UsXHJcbiAgV0ZTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV01TRGF0YVNvdXJjZSxcclxuICBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVRTRGF0YVNvdXJjZSxcclxuICBXTVRTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV2ViU29ja2V0RGF0YVNvdXJjZSxcclxuICBYWVpEYXRhU291cmNlLFxyXG4gIFhZWkRhdGFTb3VyY2VPcHRpb25zXHJcbn0gZnJvbSAnLi9kYXRhc291cmNlcyc7XHJcbmltcG9ydCB7IFdGU1NlcnZpY2UgfSBmcm9tICcuL2RhdGFzb3VyY2VzL3dmcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL29wdGlvbnMvb3B0aW9ucy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VTZXJ2aWNlIHtcclxuICBwdWJsaWMgZGF0YXNvdXJjZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhU291cmNlW10+KFtdKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIG9wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgd2ZzRGF0YVNvdXJjZVNlcnZpY2U6IFdGU1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHByb2plY3Rpb25TZXJ2aWNlOiBQcm9qZWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgYXV0aEludGVyY2VwdG9yPzogQXV0aEludGVyY2VwdG9yXHJcbiAgKSB7fVxyXG5cclxuICBjcmVhdGVBc3luY0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBBbnlEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8RGF0YVNvdXJjZT4ge1xyXG4gICAgaWYgKCFjb250ZXh0LnR5cGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihjb250ZXh0KTtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhc291cmNlIG5lZWRzIGEgdHlwZScpO1xyXG4gICAgfVxyXG4gICAgbGV0IGRhdGFTb3VyY2U7XHJcbiAgICBzd2l0Y2ggKGNvbnRleHQudHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgIGNhc2UgJ29zbSc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlT1NNRGF0YVNvdXJjZShjb250ZXh0IGFzIE9TTURhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndmVjdG9yJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVGZWF0dXJlRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnd2ZzJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXRlNEYXRhU291cmNlKGNvbnRleHQgYXMgV0ZTRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3bXMnOlxyXG4gICAgICAgIGNvbnN0IHdtc0NvbnRleHQgPSBjb250ZXh0IGFzIFdNU0RhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICAgIE9iamVjdFV0aWxzLnJlbW92ZUR1cGxpY2F0ZUNhc2VJbnNlbnNpdGl2ZSh3bXNDb250ZXh0LnBhcmFtcyk7XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlV01TRGF0YVNvdXJjZSh3bXNDb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3bXRzJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXTVRTRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgV01UU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAneHl6JzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVYWVpEYXRhU291cmNlKGNvbnRleHQgYXMgWFlaRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0aWxlZGVidWcnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIFRpbGVEZWJ1Z0RhdGFTb3VyY2VcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjYXJ0byc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQ2FydG9EYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYXJjZ2lzcmVzdCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQXJjR0lTUmVzdERhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICAgICAgICAgIGRldGFpbGVkQ29udGV4dFVyaVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2ltYWdlYXJjZ2lzcmVzdCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgICBkZXRhaWxlZENvbnRleHRVcmlcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd3ZWJzb2NrZXQnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVdlYlNvY2tldERhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ212dCc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlTVZURGF0YVNvdXJjZShjb250ZXh0IGFzIE1WVERhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndGlsZWFyY2dpc3Jlc3QnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICAgICAgICAgIGRldGFpbGVkQ29udGV4dFVyaVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2NsdXN0ZXInOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUNsdXN0ZXJEYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY29udGV4dCk7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGFzb3VyY2UgdHlwZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGF0YXNvdXJjZXMkLm5leHQodGhpcy5kYXRhc291cmNlcyQudmFsdWUuY29uY2F0KFtkYXRhU291cmNlXSkpO1xyXG5cclxuICAgIHJldHVybiBkYXRhU291cmNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVPU01EYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogT1NNRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPE9TTURhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBPU01EYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUZlYXR1cmVEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxGZWF0dXJlRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IEZlYXR1cmVEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdlYlNvY2tldERhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdlYlNvY2tldERhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBXZWJTb2NrZXREYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdGU0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBXRlNEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8V0ZTRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PlxyXG4gICAgICBkLm5leHQoXHJcbiAgICAgICAgbmV3IFdGU0RhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0LFxyXG4gICAgICAgICAgdGhpcy53ZnNEYXRhU291cmNlU2VydmljZSxcclxuICAgICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXTVNEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGlmIChjb250ZXh0Lm9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzICYmIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldFdNU09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LnBhcmFtcy5MQVlFUlMgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlICYmXHJcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcclxuICAgICAgd2luZG93Lm5hdmlnYXRvci5vbkxpbmVcclxuICAgICkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0V01TT3B0aW9ucyhjb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgIGUuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgZS5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZS5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvYnNlcnZhYmxlcy5wdXNoKG9mKGNvbnRleHQpKTtcclxuXHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnNbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnNNZXJnZWQgPSBvcHRpb25zLnJlZHVjZSgoYSwgYikgPT5cclxuICAgICAgICAgIE9iamVjdFV0aWxzLm1lcmdlRGVlcChhLCBiKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBXTVNEYXRhU291cmNlKG9wdGlvbnNNZXJnZWQsIHRoaXMud2ZzRGF0YVNvdXJjZVNlcnZpY2UpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXTVRTRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFdNVFNEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8V01UU0RhdGFTb3VyY2U+IHtcclxuICAgIGlmIChjb250ZXh0Lm9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzICYmIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0V01UU09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICBtYXAoKG9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9wdGlvbnMgPyBuZXcgV01UU0RhdGFTb3VyY2Uob3B0aW9ucykgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LmxheWVyIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBXTVRTRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVYWVpEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogWFlaRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFhZWkRhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBYWVpEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBUaWxlRGVidWdEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8VGlsZURlYnVnRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IFRpbGVEZWJ1Z0RhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ2FydG9EYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQ2FydG9EYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8Q2FydG9EYXRhU291cmNlPiB7XHJcbiAgICBpZiAoY29udGV4dC5tYXBJZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlXHJcbiAgICAgICAgLmdldENhcnRvT3B0aW9ucyhjb250ZXh0KVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKChvcHRpb25zOiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zKSA9PiBuZXcgQ2FydG9EYXRhU291cmNlKG9wdGlvbnMpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgQ2FydG9EYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUFyY0dJU1Jlc3REYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0RGF0YVNvdXJjZT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRBcmNnaXNPcHRpb25zKGNvbnRleHQpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC5sYXllciB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRocm93IGU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vcHRpb25zU2VydmljZSAmJlxyXG4gICAgICBjb250ZXh0Lm9wdGlvbnNGcm9tQXBpICYmXHJcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXHJcbiAgICApIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlXHJcbiAgICAgICAgICAuZ2V0QXJjZ2lzUmVzdE9wdGlvbnMoY29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgICBlLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBvYnNlcnZhYmxlcy5wdXNoKG9mKGNvbnRleHQpKTtcclxuICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShcclxuICAgICAgbWFwKChvcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxyXG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gbmV3IEFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xyXG5cclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRJbWFnZUFyY2dpc09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LnBhcmFtcy5MQVlFUlMgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcclxuICAgICAgY29udGV4dC5vcHRpb25zRnJvbUFwaSAmJlxyXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxyXG4gICAgKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZVxyXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxyXG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gbmV3IEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2Uob3B0aW9uc01lcmdlZCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZT4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRJbWFnZUFyY2dpc09wdGlvbnMoY29udGV4dCkucGlwZShcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxyXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LnBhcmFtcy5MQVlFUlMgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcclxuICAgICAgY29udGV4dC5vcHRpb25zRnJvbUFwaSAmJlxyXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxyXG4gICAgKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZVxyXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlW10pID0+IHtcclxuICAgICAgICBjb25zdCBvcHRpb25zTWVyZ2VkID0gb3B0aW9ucy5yZWR1Y2UoKGEsIGIpID0+XHJcbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBuZXcgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVNVlREYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogTVZURGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPE1WVERhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBNVlREYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUNsdXN0ZXJEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxDbHVzdGVyRGF0YVNvdXJjZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IENsdXN0ZXJEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -157,13 +157,13 @@ export class WFSService extends DataService {
|
|
|
157
157
|
});
|
|
158
158
|
return sourceFields;
|
|
159
159
|
}
|
|
160
|
-
static ɵfac =
|
|
161
|
-
static ɵprov =
|
|
160
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WFSService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
161
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WFSService, providedIn: 'root' });
|
|
162
162
|
}
|
|
163
|
-
(
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ZzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93ZnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLFFBQVEsRUFDVCxNQUFNLGlCQUFpQixDQUFDOzs7QUFLekIsTUFBTSxPQUFPLFVBQVcsU0FBUSxXQUFXO0lBQ3JCO0lBQXBCLFlBQW9CLElBQWdCO1FBQ2xDLEtBQUssRUFBRSxDQUFDO1FBRFUsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUVwQyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUNoRCxPQUFPLGtDQUFrQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxzQkFBc0IsQ0FDM0IsaUJBQThEO1FBRTlELElBQ0UsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZO1lBQy9CLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUMzQztZQUNBLGlCQUFpQixDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUMxRCxD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Q0FBQztvRUExTlUsVUFBVTtnRUFBVixVQUFVLFdBQVYsVUFBVSxtQkFGVCxNQUFNOzt1RkFFUCxVQUFVO2NBSHRCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCBvbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjb25jYXRNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4vZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3dmcy1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93bXMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIGRlZmF1bHRFcHNnLFxyXG4gIGRlZmF1bHRNYXhGZWF0dXJlcyxcclxuICBmb3JtYXRXRlNRdWVyeVN0cmluZyxcclxuICBnZXRGb3JtYXRGcm9tT3B0aW9ucyxcclxuICBnbWxSZWdleFxyXG59IGZyb20gJy4vd21zLXdmcy51dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXRlNTZXJ2aWNlIGV4dGVuZHMgRGF0YVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGdldERhdGEoKSB7XHJcbiAgICBjb25zb2xlLmxvZygnVGhpcyBpcyBkZWZpbmluZyBhIGRhdGEgc2VydmljZS4nKTtcclxuICAgIHJldHVybiAnVGhpcyBpcyBkZWZpbmluZyBhIGRhdGEgc2VydmljZS4nO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNvdXJjZUZpZWxkc0Zyb21XRlMoXHJcbiAgICBkYXRhU291cmNlT3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG4gICkge1xyXG4gICAgaWYgKFxyXG4gICAgICAhZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzIHx8XHJcbiAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcy5sZW5ndGggPT09IDBcclxuICAgICkge1xyXG4gICAgICBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHMgPSBbXTtcclxuICAgICAgdGhpcy5kZWZpbmVGaWVsZEFuZFZhbHVlZnJvbVdGUyhkYXRhU291cmNlT3B0aW9ucykuc3Vic2NyaWJlKFxyXG4gICAgICAgIChnZXRmZWF0dXJlU291cmNlRmllbGQpID0+IHtcclxuICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcyA9IGdldGZlYXR1cmVTb3VyY2VGaWVsZDtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRlZmluZUZpZWxkQW5kVmFsdWVmcm9tV0ZTKGRhdGFTb3VyY2VPcHRpb25zKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGdldGZlYXR1cmVTb3VyY2VGaWVsZCkgPT4ge1xyXG4gICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzLmZvckVhY2goKHNvdXJjZWZpZWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChzb3VyY2VmaWVsZC5hbGlhcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgc291cmNlZmllbGQuYWxpYXMgPSBzb3VyY2VmaWVsZC5uYW1lOyAvLyB0byBhbGxvdyBvbmx5IGEgbGlzdCBvZiBzb3VyY2VmaWVsZCB3aXRoIG5hbWVzXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgIHNvdXJjZWZpZWxkLnZhbHVlcyA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgICAgICAgc291cmNlZmllbGQudmFsdWVzLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBzb3VyY2VmaWVsZC52YWx1ZXMgPSBnZXRmZWF0dXJlU291cmNlRmllbGQuZmluZChcclxuICAgICAgICAgICAgICAgIChzZikgPT4gc2YubmFtZSA9PT0gc291cmNlZmllbGQubmFtZVxyXG4gICAgICAgICAgICAgICkudmFsdWVzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHdmc0dldEZlYXR1cmUoXHJcbiAgICBkYXRhU291cmNlT3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIG5iOiBudW1iZXIgPSBkZWZhdWx0TWF4RmVhdHVyZXMsXHJcbiAgICBlcHNnQ29kZTogc3RyaW5nID0gZGVmYXVsdEVwc2csXHJcbiAgICBwcm9wZXJ0eU5hbWU/OiBzdHJpbmcsXHJcbiAgICBzdGFydEluZGV4OiBudW1iZXIgPSAwLFxyXG4gICAgZm9yY2VEZWZhdWx0T3V0cHV0Rm9ybWF0OiBib29sZWFuID0gZmFsc2VcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmdWYWx1ZXMgPSBmb3JtYXRXRlNRdWVyeVN0cmluZyhcclxuICAgICAgZGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgIG5iLFxyXG4gICAgICBlcHNnQ29kZSxcclxuICAgICAgcHJvcGVydHlOYW1lLFxyXG4gICAgICBzdGFydEluZGV4LFxyXG4gICAgICBmb3JjZURlZmF1bHRPdXRwdXRGb3JtYXRcclxuICAgICk7XHJcbiAgICBjb25zdCBiYXNlVXJsID0gcXVlcnlTdHJpbmdWYWx1ZXMuZmluZChcclxuICAgICAgKGYpID0+IGYubmFtZSA9PT0gJ2dldGZlYXR1cmUnXHJcbiAgICApLnZhbHVlO1xyXG4gICAgY29uc3Qgb3V0cHV0Rm9ybWF0ID0gZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTLm91dHB1dEZvcm1hdDtcclxuICAgIGlmIChcclxuICAgICAgZm9yY2VEZWZhdWx0T3V0cHV0Rm9ybWF0IHx8XHJcbiAgICAgIGdtbFJlZ2V4LnRlc3Qob3V0cHV0Rm9ybWF0KSB8fFxyXG4gICAgICAhb3V0cHV0Rm9ybWF0XHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYmFzZVVybCwgeyByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVmaW5lRmllbGRBbmRWYWx1ZWZyb21XRlMoXHJcbiAgICBkYXRhU291cmNlT3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IHtcclxuICAgICAgY29uc3Qgc291cmNlRmllbGRzID0gW107XHJcbiAgICAgIGxldCBmaWVsZExpc3Q7XHJcbiAgICAgIGxldCBmaWVsZExpc3RXb0dlb207XHJcbiAgICAgIGxldCBmaWVsZExpc3RXb0dlb21TdHI7XHJcbiAgICAgIGxldCBvbEZvcm1hdHM7XHJcbiAgICAgIGxldCBlZmZlY3RpdmVPbEZvcm1hdHM7XHJcblxyXG4gICAgICBvbEZvcm1hdHMgPSBnZXRGb3JtYXRGcm9tT3B0aW9ucyhkYXRhU291cmNlT3B0aW9ucyk7XHJcbiAgICAgIGNvbnN0IGdtbERhdGFTb3VyY2VPcHRpb25zOiBXRlNEYXRhU291cmNlT3B0aW9ucyB8IFdNU0RhdGFTb3VyY2VPcHRpb25zID1cclxuICAgICAgICBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGFTb3VyY2VPcHRpb25zKSk7XHJcbiAgICAgIGRlbGV0ZSBnbWxEYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMub3V0cHV0Rm9ybWF0O1xyXG4gICAgICBkZWxldGUgKGdtbERhdGFTb3VyY2VPcHRpb25zIGFzIFdGU0RhdGFTb3VyY2VPcHRpb25zKS5mb3JtYXRPcHRpb25zO1xyXG5cclxuICAgICAgZWZmZWN0aXZlT2xGb3JtYXRzID0gZ2V0Rm9ybWF0RnJvbU9wdGlvbnMoZ21sRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICBsZXQgc291cmNlRmllbGRzVG9SZXRyaWV2ZVZhbHVlcyA9IGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkc1xyXG4gICAgICAgID8uZmlsdGVyKChmKSA9PiAhZi52YWx1ZXMpXHJcbiAgICAgICAgLm1hcCgoZikgPT4gZi5uYW1lKTtcclxuXHJcbiAgICAgIC8vIFZhbGlkYXRlIGlmIHRoZSBzZXJ2aWNlIG1hbmFnZSBubyBvdXRwdXRmb3JtYXQgKHdmcyAxLjAuMCBhbmQgR01MIGlzIHRoZSBkZWZhdWx0IHJldHVybilcclxuICAgICAgdGhpcy53ZnNHZXRGZWF0dXJlKGRhdGFTb3VyY2VPcHRpb25zLCAxLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgMCwgdHJ1ZSlcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGNvbmNhdE1hcCgocmVzKSA9PlxyXG4gICAgICAgICAgICBTdHJpbmcocmVzKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdleGNlcHRpb24nKVxyXG4gICAgICAgICAgICAgID8gb2YoZmFsc2UpXHJcbiAgICAgICAgICAgICAgOiBvZih0cnVlKVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICAgIGNvbmNhdE1hcCgoYWxsb3dHbWwpID0+IHtcclxuICAgICAgICAgICAgLy8gSWYgdGhlIHNlcnZpY2UgcmV0dXJuIEdNTCAocmV0dXJuIG5vIGV4Y2VwdGlvbilcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMud2ZzR2V0RmVhdHVyZShkYXRhU291cmNlT3B0aW9ucywgMSkucGlwZShcclxuICAgICAgICAgICAgICBjb25jYXRNYXAoKGZpcnN0RmVhdHVyZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBvbEZvcm1hdHMucmVhZEZlYXR1cmVzKGZpcnN0RmVhdHVyZSk7XHJcbiAgICAgICAgICAgICAgICBmaWVsZExpc3QgPSBmZWF0dXJlc1swXS5nZXRLZXlzKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcyB8fFxyXG4gICAgICAgICAgICAgICAgICBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHMubGVuZ3RoID09PSAwXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgc291cmNlRmllbGRzVG9SZXRyaWV2ZVZhbHVlcyA9IGZpZWxkTGlzdDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZpZWxkTGlzdFdvR2VvbSA9IGZpZWxkTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgIChmaWVsZCkgPT5cclxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VGaWVsZHNUb1JldHJpZXZlVmFsdWVzLmluY2x1ZGVzKGZpZWxkKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkICE9PSBmZWF0dXJlc1swXS5nZXRHZW9tZXRyeU5hbWUoKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICFmaWVsZC5tYXRjaCgvYm91bmRlZGJ5L2dpKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGZpZWxkTGlzdFdvR2VvbVN0ciA9IGZpZWxkTGlzdFdvR2VvbS5qb2luKCcsJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9jZXNzaW5nQXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgIGxldCBzdGFydEluZGV4ID0gMDtcclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzZXJ2aWNlIGRvIG5vdCBhbGxvdyBnbWwgcmV0dXJuLCBkaWNlIHRoZSBjYWxsIGluIG11bHRpcGxlXHJcbiAgICAgICAgICAgICAgICAvLyBjYWxscyBieSBpbmNyZW1lbnQgb2YgY2h1bmtTaXplIHdpdGggdGhlIG9yaWdpbmFsIG91dHB1dEZvcm1hdFxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAhYWxsb3dHbWwgJiZcclxuICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTLnZlcnNpb24gPT09ICcyLjAuMCcgJiZcclxuICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTLm1heEZlYXR1cmVzID4gZGVmYXVsdE1heEZlYXR1cmVzXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgY2h1bmtTaXplID0gMTAwMDtcclxuICAgICAgICAgICAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBkYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMubWF4RmVhdHVyZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzaW5nQXJyYXkucHVzaChcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2ZzR2V0RmVhdHVyZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rU2l6ZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTLnNyc05hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkTGlzdFdvR2VvbVN0cixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSBjaHVua1NpemU7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgZWZmZWN0aXZlT2xGb3JtYXRzID0gb2xGb3JtYXRzO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZ0FycmF5LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZnNHZXRGZWF0dXJlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMubWF4RmVhdHVyZXMgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1heEZlYXR1cmVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTLnNyc05hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWVsZExpc3RXb0dlb21TdHIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHByb2Nlc3NpbmdBcnJheSk7XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHMpID0+IHtcclxuICAgICAgICAgIGxldCBtZmVhdHVyZXM6IG9sRmVhdHVyZTxPbEdlb21ldHJ5PltdID0gW107XHJcbiAgICAgICAgICByZXN1bHRzLm1hcCgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvb3BGZWF0dXJlcyA9IGVmZmVjdGl2ZU9sRm9ybWF0cy5yZWFkRmVhdHVyZXMocmVzdWx0KTtcclxuICAgICAgICAgICAgbWZlYXR1cmVzID0gbWZlYXR1cmVzLmNvbmNhdChsb29wRmVhdHVyZXMpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmJ1aWx0X3Byb3BlcnRpZXNfdmFsdWUobWZlYXR1cmVzKS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHNvdXJjZUZpZWxkcy5wdXNoKGVsZW1lbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBkLm5leHQoc291cmNlRmllbGRzKTtcclxuICAgICAgICAgIGQuY29tcGxldGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsdF9wcm9wZXJ0aWVzX3ZhbHVlKGZlYXR1cmVzOiBvbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSk6IHN0cmluZ1tdIHtcclxuICAgIGlmIChmZWF0dXJlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgY29uc3Qga3YgPSBPYmplY3QuYXNzaWduKHt9LCBmZWF0dXJlc1swXS5nZXRQcm9wZXJ0aWVzKCkpO1xyXG4gICAgZGVsZXRlIGt2W2ZlYXR1cmVzWzBdLmdldEdlb21ldHJ5TmFtZSgpXTtcclxuICAgIGRlbGV0ZSBrdi5ib3VuZGVkQnk7XHJcbiAgICBjb25zdCBzb3VyY2VGaWVsZHMgPSBbXTtcclxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4ga3YpIHtcclxuICAgICAgaWYgKGt2Lmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkVHlwZSA9XHJcbiAgICAgICAgICB0eXBlb2YgZmVhdHVyZXNbMF0uZ2V0KHByb3BlcnR5KSA9PT0gJ29iamVjdCdcclxuICAgICAgICAgICAgPyB1bmRlZmluZWRcclxuICAgICAgICAgICAgOiB0eXBlb2YgZmVhdHVyZXNbMF0uZ2V0KHByb3BlcnR5KTtcclxuICAgICAgICBzb3VyY2VGaWVsZHMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiBwcm9wZXJ0eSxcclxuICAgICAgICAgIGFsaWFzOiBwcm9wZXJ0eSxcclxuICAgICAgICAgIHR5cGU6IGZpZWxkVHlwZSxcclxuICAgICAgICAgIHZhbHVlczogW2t2W3Byb3BlcnR5XV1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZmVhdHVyZXMuZXZlcnkoKGVsZW1lbnQpID0+IHtcclxuICAgICAgY29uc3QgZmVhdHVyZVByb3BlcnRpZXMgPSBlbGVtZW50LmdldFByb3BlcnRpZXMoKTtcclxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZmVhdHVyZVByb3BlcnRpZXMpIHtcclxuICAgICAgICBpZiAoZmVhdHVyZVByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBrZXkgaW4ga3YpIHtcclxuICAgICAgICAgIHNvdXJjZUZpZWxkc1xyXG4gICAgICAgICAgICAuZmlsdGVyKChmKSA9PiBmLm5hbWUgPT09IGtleSlcclxuICAgICAgICAgICAgLmZvckVhY2goKHYpID0+IHtcclxuICAgICAgICAgICAgICBpZiAodi52YWx1ZXMuaW5kZXhPZihmZWF0dXJlUHJvcGVydGllc1trZXldKSA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHYudmFsdWVzLnB1c2goZmVhdHVyZVByb3BlcnRpZXNba2V5XSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBzb3VyY2VGaWVsZHM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
163
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WFSService, decorators: [{
|
|
164
|
+
type: Injectable,
|
|
165
|
+
args: [{
|
|
166
|
+
providedIn: 'root'
|
|
167
|
+
}]
|
|
168
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ZzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93ZnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQ0wsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLFFBQVEsRUFDVCxNQUFNLGlCQUFpQixDQUFDOzs7QUFLekIsTUFBTSxPQUFPLFVBQVcsU0FBUSxXQUFXO0lBQ3JCO0lBQXBCLFlBQW9CLElBQWdCO1FBQ2xDLEtBQUssRUFBRSxDQUFDO1FBRFUsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUVwQyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUNoRCxPQUFPLGtDQUFrQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxzQkFBc0IsQ0FDM0IsaUJBQThEO1FBRTlELElBQ0UsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZO1lBQy9CLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUMzQztZQUNBLGlCQUFpQixDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUMxRCxD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Q0FBQzt3R0ExTlUsVUFBVTs0R0FBVixVQUFVLGNBRlQsTUFBTTs7NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY29uY2F0TWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93ZnMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBkZWZhdWx0RXBzZyxcclxuICBkZWZhdWx0TWF4RmVhdHVyZXMsXHJcbiAgZm9ybWF0V0ZTUXVlcnlTdHJpbmcsXHJcbiAgZ2V0Rm9ybWF0RnJvbU9wdGlvbnMsXHJcbiAgZ21sUmVnZXhcclxufSBmcm9tICcuL3dtcy13ZnMudXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV0ZTU2VydmljZSBleHRlbmRzIERhdGFTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgY29uc29sZS5sb2coJ1RoaXMgaXMgZGVmaW5pbmcgYSBkYXRhIHNlcnZpY2UuJyk7XHJcbiAgICByZXR1cm4gJ1RoaXMgaXMgZGVmaW5pbmcgYSBkYXRhIHNlcnZpY2UuJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTb3VyY2VGaWVsZHNGcm9tV0ZTKFxyXG4gICAgZGF0YVNvdXJjZU9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zIHwgV01TRGF0YVNvdXJjZU9wdGlvbnNcclxuICApIHtcclxuICAgIGlmIChcclxuICAgICAgIWRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcyB8fFxyXG4gICAgICBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHMubGVuZ3RoID09PSAwXHJcbiAgICApIHtcclxuICAgICAgZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzID0gW107XHJcbiAgICAgIHRoaXMuZGVmaW5lRmllbGRBbmRWYWx1ZWZyb21XRlMoZGF0YVNvdXJjZU9wdGlvbnMpLnN1YnNjcmliZShcclxuICAgICAgICAoZ2V0ZmVhdHVyZVNvdXJjZUZpZWxkKSA9PiB7XHJcbiAgICAgICAgICBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHMgPSBnZXRmZWF0dXJlU291cmNlRmllbGQ7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kZWZpbmVGaWVsZEFuZFZhbHVlZnJvbVdGUyhkYXRhU291cmNlT3B0aW9ucykuc3Vic2NyaWJlKFxyXG4gICAgICAgIChnZXRmZWF0dXJlU291cmNlRmllbGQpID0+IHtcclxuICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcy5mb3JFYWNoKChzb3VyY2VmaWVsZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoc291cmNlZmllbGQuYWxpYXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIHNvdXJjZWZpZWxkLmFsaWFzID0gc291cmNlZmllbGQubmFtZTsgLy8gdG8gYWxsb3cgb25seSBhIGxpc3Qgb2Ygc291cmNlZmllbGQgd2l0aCBuYW1lc1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICBzb3VyY2VmaWVsZC52YWx1ZXMgPT09IHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICAgIHNvdXJjZWZpZWxkLnZhbHVlcy5sZW5ndGggPT09IDBcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgc291cmNlZmllbGQudmFsdWVzID0gZ2V0ZmVhdHVyZVNvdXJjZUZpZWxkLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAoc2YpID0+IHNmLm5hbWUgPT09IHNvdXJjZWZpZWxkLm5hbWVcclxuICAgICAgICAgICAgICApLnZhbHVlcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB3ZnNHZXRGZWF0dXJlKFxyXG4gICAgZGF0YVNvdXJjZU9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zIHwgV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBuYjogbnVtYmVyID0gZGVmYXVsdE1heEZlYXR1cmVzLFxyXG4gICAgZXBzZ0NvZGU6IHN0cmluZyA9IGRlZmF1bHRFcHNnLFxyXG4gICAgcHJvcGVydHlOYW1lPzogc3RyaW5nLFxyXG4gICAgc3RhcnRJbmRleDogbnVtYmVyID0gMCxcclxuICAgIGZvcmNlRGVmYXVsdE91dHB1dEZvcm1hdDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nVmFsdWVzID0gZm9ybWF0V0ZTUXVlcnlTdHJpbmcoXHJcbiAgICAgIGRhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgICBuYixcclxuICAgICAgZXBzZ0NvZGUsXHJcbiAgICAgIHByb3BlcnR5TmFtZSxcclxuICAgICAgc3RhcnRJbmRleCxcclxuICAgICAgZm9yY2VEZWZhdWx0T3V0cHV0Rm9ybWF0XHJcbiAgICApO1xyXG4gICAgY29uc3QgYmFzZVVybCA9IHF1ZXJ5U3RyaW5nVmFsdWVzLmZpbmQoXHJcbiAgICAgIChmKSA9PiBmLm5hbWUgPT09ICdnZXRmZWF0dXJlJ1xyXG4gICAgKS52YWx1ZTtcclxuICAgIGNvbnN0IG91dHB1dEZvcm1hdCA9IGRhdGFTb3VyY2VPcHRpb25zLnBhcmFtc1dGUy5vdXRwdXRGb3JtYXQ7XHJcbiAgICBpZiAoXHJcbiAgICAgIGZvcmNlRGVmYXVsdE91dHB1dEZvcm1hdCB8fFxyXG4gICAgICBnbWxSZWdleC50ZXN0KG91dHB1dEZvcm1hdCkgfHxcclxuICAgICAgIW91dHB1dEZvcm1hdFxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldChiYXNlVXJsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRlZmluZUZpZWxkQW5kVmFsdWVmcm9tV0ZTKFxyXG4gICAgZGF0YVNvdXJjZU9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zIHwgV01TRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiB7XHJcbiAgICAgIGNvbnN0IHNvdXJjZUZpZWxkcyA9IFtdO1xyXG4gICAgICBsZXQgZmllbGRMaXN0O1xyXG4gICAgICBsZXQgZmllbGRMaXN0V29HZW9tO1xyXG4gICAgICBsZXQgZmllbGRMaXN0V29HZW9tU3RyO1xyXG4gICAgICBsZXQgb2xGb3JtYXRzO1xyXG4gICAgICBsZXQgZWZmZWN0aXZlT2xGb3JtYXRzO1xyXG5cclxuICAgICAgb2xGb3JtYXRzID0gZ2V0Rm9ybWF0RnJvbU9wdGlvbnMoZGF0YVNvdXJjZU9wdGlvbnMpO1xyXG4gICAgICBjb25zdCBnbWxEYXRhU291cmNlT3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9ucyA9XHJcbiAgICAgICAgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhU291cmNlT3B0aW9ucykpO1xyXG4gICAgICBkZWxldGUgZ21sRGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTLm91dHB1dEZvcm1hdDtcclxuICAgICAgZGVsZXRlIChnbWxEYXRhU291cmNlT3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9ucykuZm9ybWF0T3B0aW9ucztcclxuXHJcbiAgICAgIGVmZmVjdGl2ZU9sRm9ybWF0cyA9IGdldEZvcm1hdEZyb21PcHRpb25zKGdtbERhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgICAgbGV0IHNvdXJjZUZpZWxkc1RvUmV0cmlldmVWYWx1ZXMgPSBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHNcclxuICAgICAgICA/LmZpbHRlcigoZikgPT4gIWYudmFsdWVzKVxyXG4gICAgICAgIC5tYXAoKGYpID0+IGYubmFtZSk7XHJcblxyXG4gICAgICAvLyBWYWxpZGF0ZSBpZiB0aGUgc2VydmljZSBtYW5hZ2Ugbm8gb3V0cHV0Zm9ybWF0ICh3ZnMgMS4wLjAgYW5kIEdNTCBpcyB0aGUgZGVmYXVsdCByZXR1cm4pXHJcbiAgICAgIHRoaXMud2ZzR2V0RmVhdHVyZShkYXRhU291cmNlT3B0aW9ucywgMSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDAsIHRydWUpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBjb25jYXRNYXAoKHJlcykgPT5cclxuICAgICAgICAgICAgU3RyaW5nKHJlcykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZXhjZXB0aW9uJylcclxuICAgICAgICAgICAgICA/IG9mKGZhbHNlKVxyXG4gICAgICAgICAgICAgIDogb2YodHJ1ZSlcclxuICAgICAgICAgICksXHJcbiAgICAgICAgICBjb25jYXRNYXAoKGFsbG93R21sKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBzZXJ2aWNlIHJldHVybiBHTUwgKHJldHVybiBubyBleGNlcHRpb24pXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndmc0dldEZlYXR1cmUoZGF0YVNvdXJjZU9wdGlvbnMsIDEpLnBpcGUoXHJcbiAgICAgICAgICAgICAgY29uY2F0TWFwKChmaXJzdEZlYXR1cmUpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVzID0gb2xGb3JtYXRzLnJlYWRGZWF0dXJlcyhmaXJzdEZlYXR1cmUpO1xyXG4gICAgICAgICAgICAgICAgZmllbGRMaXN0ID0gZmVhdHVyZXNbMF0uZ2V0S2V5cygpO1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHMgfHxcclxuICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIHNvdXJjZUZpZWxkc1RvUmV0cmlldmVWYWx1ZXMgPSBmaWVsZExpc3Q7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBmaWVsZExpc3RXb0dlb20gPSBmaWVsZExpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAoZmllbGQpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgc291cmNlRmllbGRzVG9SZXRyaWV2ZVZhbHVlcy5pbmNsdWRlcyhmaWVsZCkgJiZcclxuICAgICAgICAgICAgICAgICAgICBmaWVsZCAhPT0gZmVhdHVyZXNbMF0uZ2V0R2VvbWV0cnlOYW1lKCkgJiZcclxuICAgICAgICAgICAgICAgICAgICAhZmllbGQubWF0Y2goL2JvdW5kZWRieS9naSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBmaWVsZExpc3RXb0dlb21TdHIgPSBmaWVsZExpc3RXb0dlb20uam9pbignLCcpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2luZ0FycmF5ID0gW107XHJcbiAgICAgICAgICAgICAgICBsZXQgc3RhcnRJbmRleCA9IDA7XHJcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgc2VydmljZSBkbyBub3QgYWxsb3cgZ21sIHJldHVybiwgZGljZSB0aGUgY2FsbCBpbiBtdWx0aXBsZVxyXG4gICAgICAgICAgICAgICAgLy8gY2FsbHMgYnkgaW5jcmVtZW50IG9mIGNodW5rU2l6ZSB3aXRoIHRoZSBvcmlnaW5hbCBvdXRwdXRGb3JtYXRcclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgIWFsbG93R21sICYmXHJcbiAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnBhcmFtc1dGUy52ZXJzaW9uID09PSAnMi4wLjAnICYmXHJcbiAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnBhcmFtc1dGUy5tYXhGZWF0dXJlcyA+IGRlZmF1bHRNYXhGZWF0dXJlc1xyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IDEwMDA7XHJcbiAgICAgICAgICAgICAgICAgIHdoaWxlIChzdGFydEluZGV4IDwgZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTLm1heEZlYXR1cmVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZ0FycmF5LnB1c2goXHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLndmc0dldEZlYXR1cmUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjaHVua1NpemUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnBhcmFtc1dGUy5zcnNOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZExpc3RXb0dlb21TdHIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXhcclxuICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0SW5kZXggKz0gY2h1bmtTaXplO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGVmZmVjdGl2ZU9sRm9ybWF0cyA9IG9sRm9ybWF0cztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb2Nlc3NpbmdBcnJheS5wdXNoKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2ZzR2V0RmVhdHVyZShcclxuICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTLm1heEZlYXR1cmVzIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRNYXhGZWF0dXJlcyxcclxuICAgICAgICAgICAgICAgICAgICAgIGRhdGFTb3VyY2VPcHRpb25zLnBhcmFtc1dGUy5zcnNOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGRMaXN0V29HZW9tU3RyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgICAgICAgICAgIHRydWVcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChwcm9jZXNzaW5nQXJyYXkpO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHRzKSA9PiB7XHJcbiAgICAgICAgICBsZXQgbWZlYXR1cmVzOiBvbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSA9IFtdO1xyXG4gICAgICAgICAgcmVzdWx0cy5tYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBsb29wRmVhdHVyZXMgPSBlZmZlY3RpdmVPbEZvcm1hdHMucmVhZEZlYXR1cmVzKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIG1mZWF0dXJlcyA9IG1mZWF0dXJlcy5jb25jYXQobG9vcEZlYXR1cmVzKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5idWlsdF9wcm9wZXJ0aWVzX3ZhbHVlKG1mZWF0dXJlcykuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICBzb3VyY2VGaWVsZHMucHVzaChlbGVtZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZC5uZXh0KHNvdXJjZUZpZWxkcyk7XHJcbiAgICAgICAgICBkLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbHRfcHJvcGVydGllc192YWx1ZShmZWF0dXJlczogb2xGZWF0dXJlPE9sR2VvbWV0cnk+W10pOiBzdHJpbmdbXSB7XHJcbiAgICBpZiAoZmVhdHVyZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIGNvbnN0IGt2ID0gT2JqZWN0LmFzc2lnbih7fSwgZmVhdHVyZXNbMF0uZ2V0UHJvcGVydGllcygpKTtcclxuICAgIGRlbGV0ZSBrdltmZWF0dXJlc1swXS5nZXRHZW9tZXRyeU5hbWUoKV07XHJcbiAgICBkZWxldGUga3YuYm91bmRlZEJ5O1xyXG4gICAgY29uc3Qgc291cmNlRmllbGRzID0gW107XHJcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIGt2KSB7XHJcbiAgICAgIGlmIChrdi5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSkpIHtcclxuICAgICAgICBjb25zdCBmaWVsZFR5cGUgPVxyXG4gICAgICAgICAgdHlwZW9mIGZlYXR1cmVzWzBdLmdldChwcm9wZXJ0eSkgPT09ICdvYmplY3QnXHJcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIDogdHlwZW9mIGZlYXR1cmVzWzBdLmdldChwcm9wZXJ0eSk7XHJcbiAgICAgICAgc291cmNlRmllbGRzLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogcHJvcGVydHksXHJcbiAgICAgICAgICBhbGlhczogcHJvcGVydHksXHJcbiAgICAgICAgICB0eXBlOiBmaWVsZFR5cGUsXHJcbiAgICAgICAgICB2YWx1ZXM6IFtrdltwcm9wZXJ0eV1dXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZlYXR1cmVzLmV2ZXJ5KChlbGVtZW50KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZlYXR1cmVQcm9wZXJ0aWVzID0gZWxlbWVudC5nZXRQcm9wZXJ0aWVzKCk7XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGZlYXR1cmVQcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgaWYgKGZlYXR1cmVQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGtleSkgJiYga2V5IGluIGt2KSB7XHJcbiAgICAgICAgICBzb3VyY2VGaWVsZHNcclxuICAgICAgICAgICAgLmZpbHRlcigoZikgPT4gZi5uYW1lID09PSBrZXkpXHJcbiAgICAgICAgICAgIC5mb3JFYWNoKCh2KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHYudmFsdWVzLmluZGV4T2YoZmVhdHVyZVByb3BlcnRpZXNba2V5XSkgPT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICB2LnZhbHVlcy5wdXNoKGZlYXR1cmVQcm9wZXJ0aWVzW2tleV0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gc291cmNlRmllbGRzO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xyXG5pbXBvcnQgb2xTb3VyY2UgZnJvbSAnb2wvc291cmNlL1NvdXJjZSc7XHJcbmltcG9ydCBvbFNvdXJjZVZlY3RvciBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcclxuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJUeXBlIH0gZnJvbSAnb2wvc291cmNlL3dtcyc7XHJcblxyXG5pbXBvcnQgeyBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvdGltZS1maWx0ZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV0ZTRGF0YVNvdXJjZU9wdGlvbnNQYXJhbXMgfSBmcm9tICcuL3dmcy1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdNU0RhdGFTb3VyY2VPcHRpb25zIGV4dGVuZHMgRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gIC8vIHR5cGU/OiAnd21zJztcclxuICBwYXJhbXNXRlM/OiBXRlNEYXRhU291cmNlT3B0aW9uc1BhcmFtczsgLy8gZm9yIHdtcyBsaW5rZWQgd2l0aCB3ZnNcclxuICB1cmxXZnM/OiBzdHJpbmc7IC8vIGlmIHVybCBmb3IgbGlua2VkIHdmcyBkaWZmZXIgZnJvbSB0aGUgdXJsIGZvciB3bXMuXHJcbiAgdXJsOiBzdHJpbmc7XHJcbiAgcGFyYW1zOiBXTVNEYXRhU291cmNlT3B0aW9uc1BhcmFtcztcclxuICBjcm9zc09yaWdpbj86IHN0cmluZztcclxuICBwcm9qZWN0aW9uPzogc3RyaW5nO1xyXG4gIHJlc29sdXRpb25zPzogbnVtYmVyW107XHJcbiAgc2VydmVyVHlwZT86IFNlcnZlclR5cGU7XHJcbiAgcmF0aW8/OiBudW1iZXI7XHJcbiAgb2w/OiBvbFNvdXJjZVZlY3RvcjxPbEdlb21ldHJ5PiB8IG9sU291cmNlO1xyXG4gIHJlZnJlc2hJbnRlcnZhbFNlYz86IG51bWJlcjtcclxuICBjb250ZW50RGVwZW5kZW50TGVnZW5kPzogYm9vbGVhbjtcclxuICBleGNsdWRlQXR0cmlidXRlPzogQXJyYXk8c3RyaW5nPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXTVNEYXRhU291cmNlT3B0aW9uc1BhcmFtcyB7XHJcbiAgTEFZRVJTOiBzdHJpbmc7XHJcbiAgVkVSU0lPTj86IHN0cmluZztcclxuICBUSU1FPzogc3RyaW5nO1xyXG4gIEZFQVRVUkVfQ09VTlQ/OiBudW1iZXI7XHJcbiAgRklMVEVSPzogc3RyaW5nO1xyXG4gIElORk9fRk9STUFUPzogc3RyaW5nO1xyXG4gIERQST86IG51bWJlcjtcclxuICBNQVBfUkVTT0xVVElPTj86IG51bWJlcjtcclxuICBGT1JNQVRfT1BUSU9OUz86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUaW1lRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zIGV4dGVuZHMgV01TRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gIHRpbWVGaWx0ZXJhYmxlPzogYm9vbGVhbjtcclxuICB0aW1lRmlsdGVyPzogVGltZUZpbHRlck9wdGlvbnM7XHJcbn1cclxuIl19
|