@igo2/geo 16.1.1 → 16.3.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.
Files changed (54) hide show
  1. package/esm2022/lib/catalog/index.mjs +1 -1
  2. package/esm2022/lib/catalog/shared/catalog.service.mjs +64 -26
  3. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +7 -1
  4. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +2 -2
  5. package/esm2022/lib/feature/index.mjs +1 -1
  6. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  7. package/esm2022/lib/feature/shared/store.mjs +3 -3
  8. package/esm2022/lib/filter/index.mjs +1 -1
  9. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  10. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +2 -2
  11. package/esm2022/lib/geometry/index.mjs +1 -1
  12. package/esm2022/lib/import-export/index.mjs +1 -1
  13. package/esm2022/lib/layer/index.mjs +1 -1
  14. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -1
  15. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  16. package/esm2022/lib/layer/utils/image-watcher.mjs +1 -1
  17. package/esm2022/lib/layer/utils/tile-watcher.mjs +1 -1
  18. package/esm2022/lib/layer/utils/vector-watcher.mjs +1 -1
  19. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +5 -1
  20. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
  21. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +7 -9
  22. package/esm2022/lib/map/shared/controllers/geolocation.mjs +1 -1
  23. package/esm2022/lib/map/shared/controllers/view.mjs +2 -1
  24. package/esm2022/lib/map/shared/hover-feature.directive.mjs +4 -4
  25. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
  26. package/esm2022/lib/map/shared/map.mjs +1 -1
  27. package/esm2022/lib/measure/index.mjs +1 -1
  28. package/esm2022/lib/metadata/index.mjs +1 -1
  29. package/esm2022/lib/overlay/shared/overlay.mjs +2 -2
  30. package/esm2022/lib/search/index.mjs +1 -1
  31. package/esm2022/lib/search/search-results/search-results.component.mjs +2 -2
  32. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +2 -2
  33. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +1 -1
  34. package/fesm2022/igo2-geo.mjs +90 -44
  35. package/fesm2022/igo2-geo.mjs.map +1 -1
  36. package/lib/datasource/shared/capabilities.interface.d.ts +16 -0
  37. package/lib/feature/shared/feature.interfaces.d.ts +1 -1
  38. package/lib/feature/shared/store.d.ts +2 -2
  39. package/lib/filter/shared/ogc-filter.interface.d.ts +2 -2
  40. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +3 -3
  41. package/lib/layer/shared/layers/layer.d.ts +1 -1
  42. package/lib/layer/shared/layers/layer.interface.d.ts +2 -0
  43. package/lib/layer/utils/image-watcher.d.ts +1 -1
  44. package/lib/layer/utils/tile-watcher.d.ts +2 -2
  45. package/lib/layer/utils/vector-watcher.d.ts +1 -1
  46. package/lib/map/shared/controllers/geolocation.d.ts +1 -1
  47. package/lib/map/shared/linkedLayers.utils.d.ts +1 -1
  48. package/lib/map/shared/map.d.ts +1 -1
  49. package/lib/overlay/shared/overlay.d.ts +2 -2
  50. package/lib/search/search-results/search-results.component.d.ts +2 -2
  51. package/lib/style/shared/vector/vector-style.interface.d.ts +1 -1
  52. package/package.json +6 -5
  53. package/src/_index.scss +2 -0
  54. package/src/lib/search/search-bar/search-bar.theming.scss +0 -9
@@ -81,12 +81,12 @@ export class SearchPointerSummaryDirective {
81
81
  */
82
82
  ngOnInit() {
83
83
  this.listenToMapPointerMove();
84
- this.subscribeToPointerStore();
85
84
  this.map.status$
86
85
  .pipe(first((status) => status === SubjectStatus.Done))
87
86
  .subscribe(() => {
88
87
  this.store = new FeatureStore([], { map: this.map });
89
88
  this.initStore();
89
+ this.subscribeToPointerStore();
90
90
  });
91
91
  // To handle context change without using the contextService.
92
92
  this.layers$$ = this.map.layers$.subscribe((layers) => {
@@ -332,4 +332,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
332
332
  type: HostListener,
333
333
  args: ['mouseleave']
334
334
  }] } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBvaW50ZXItc3VtbWFyeS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NlYXJjaC1wb2ludGVyLXN1bW1hcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxTQUFTLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVwQyxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFbEYsT0FB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NkI7Z0JBQ3RDLGNBQWMsRUFBRSxJQUFJO2FBQ3JCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEVBQUUsRUFBRSxJQUFJLENBQUMsNkJBQTZCO2FBQ3ZDO1lBQ0QsRUFBRSxFQUFFLE9BQU87U0FDWixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO3dHQTdWVSw2QkFBNkI7NEZBQTdCLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFIekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2lCQUN0Qzs7MEJBa0RJLElBQUk7cUlBMUJFLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFLRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIFNlbGZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3RTdGF0dXMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgTWFwQnJvd3NlclBvaW50ZXJFdmVudCBmcm9tICdvbC9NYXBCcm93c2VyRXZlbnQnO1xyXG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XHJcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xyXG5pbXBvcnQgKiBhcyBvbGdlb20gZnJvbSAnb2wvZ2VvbSc7XHJcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ29sL3Byb2onO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyB0cnlCaW5kU3RvcmVMYXllciB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUtc3RvcmUudXRpbHMnO1xyXG5pbXBvcnQgeyBGRUFUVVJFLCBGZWF0dXJlTW90aW9uIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5lbnVtcyc7XHJcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9zdG9yZSc7XHJcbmltcG9ydCB7IFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXInO1xyXG5pbXBvcnQgeyBNYXBCcm93c2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWFwL21hcC1icm93c2VyL21hcC1icm93c2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcclxuaW1wb3J0IHsgcG9pbnRlclBvc2l0aW9uU3VtbWFyeU1hcmtlclN0eWxlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc2hhcmVkL2ZlYXR1cmUvZmVhdHVyZS1zdHlsZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVHZW9tZXRyeSB9IGZyb20gJy4vLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgU2VhcmNoU291cmNlU2VydmljZSB9IGZyb20gJy4vc2VhcmNoLXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzZWFyY2gsIFNlYXJjaFJlc3VsdCB9IGZyb20gJy4vc2VhcmNoLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7IHNvdXJjZUNhblJldmVyc2VTZWFyY2hBc1N1bW1hcnkgfSBmcm9tICcuL3NlYXJjaC51dGlscyc7XHJcblxyXG4vKipcclxuICogVGhpcyBkaXJlY3RpdmUgbWFrZXMgdGhlIG1vdXNlIGNvb3JkaW5hdGUgdHJpZ2dlciBhIHJldmVyc2Ugc2VhcmNoIG9uIGF2YWlsYWJsZSBzZWFyY2ggc291cmNlcy5cclxuICogVGhlIHNlYXJjaCByZXN1bHRzIGFyZSBwbGFjZWQgaW50byBhIGxhYmVsLCBvbiBhIGNyb3NzIGljb24sIHJlcHJlc2VudGluZyB0aGUgbW91c2UgY29vcmRpbmF0ZS5cclxuICogQnkgZGVmYXVsdCwgbm8gc2VhcmNoIHNvdXJjZXMuIENvbmZpZyBpbiBjb25maWcgZmlsZSBtdXN0IGJlIGRlZmluZWQuXHJcbiAqIHRoZSBsYXllciBsZXZlbC5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2lnb1NlYXJjaFBvaW50ZXJTdW1tYXJ5XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaFBvaW50ZXJTdW1tYXJ5RGlyZWN0aXZlXHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50Q2hlY2tlZFxyXG57XHJcbiAgcHVibGljIHN0b3JlOiBGZWF0dXJlU3RvcmU8RmVhdHVyZT47XHJcbiAgcHJpdmF0ZSBsb25MYXQ6IFtudW1iZXIsIG51bWJlcl07XHJcbiAgcHJpdmF0ZSBwb2ludGVyU2VhcmNoU3RvcmU6IEVudGl0eVN0b3JlPFNlYXJjaFJlc3VsdD4gPVxyXG4gICAgbmV3IEVudGl0eVN0b3JlPFNlYXJjaFJlc3VsdD4oW10pO1xyXG4gIHByaXZhdGUgbGFzdFRpbWVvdXRSZXF1ZXN0O1xyXG4gIHByaXZhdGUgc3RvcmUkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbGF5ZXJzJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHJldmVyc2VTZWFyY2gkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIGhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RlbmVyIHRvIHRoZSBwb2ludGVyIG1vdmUgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIHBvaW50ZXJNb3ZlTGlzdGVuZXI7XHJcblxyXG4gIHByaXZhdGUgc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWQ6IHN0cmluZyA9XHJcbiAgICAnc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWQnO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBkZWxheSB3aGVyZSB0aGUgbW91c2UgbXVzdCBiZSBtb3Rpb25sZXNzIGJlZm9yZSB0cmlnZ2VyIHRoZSByZXZlcnNlIHNlYXJjaFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGlnb1NlYXJjaFBvaW50ZXJTdW1tYXJ5RGVsYXk6IG51bWJlciA9IDEwMDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZSB1c2VyIGhhcyBlbmFibGVkIG9yIG5vdCB0aGUgZGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgaWdvU2VhcmNoUG9pbnRlclN1bW1hcnlFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxyXG4gIG1vdXNlbGVhdmUoKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5sYXN0VGltZW91dFJlcXVlc3QpO1xyXG4gICAgdGhpcy5jbGVhckxheWVyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJR08gbWFwXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50Lm1hcDtcclxuICB9XHJcblxyXG4gIGdldCBtYXBQcm9qZWN0aW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHRoaXMuY29tcG9uZW50Lm1hcCBhcyBJZ29NYXApLnByb2plY3Rpb247XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBTZWxmKCkgcHJpdmF0ZSBjb21wb25lbnQ6IE1hcEJyb3dzZXJDb21wb25lbnQsXHJcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlYXJjaFNvdXJjZVNlcnZpY2U6IFNlYXJjaFNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBTdGFydCBsaXN0ZW5pbmcgdG8gcG9pbnRlcm1vdmUgYW5kIHJldmVyc2Ugc2VhcmNoIHJlc3VsdHMuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmxpc3RlblRvTWFwUG9pbnRlck1vdmUoKTtcclxuICAgIHRoaXMuc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKTtcclxuXHJcbiAgICB0aGlzLm1hcC5zdGF0dXMkXHJcbiAgICAgIC5waXBlKGZpcnN0KChzdGF0dXMpID0+IHN0YXR1cyA9PT0gU3ViamVjdFN0YXR1cy5Eb25lKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdG9yZSA9IG5ldyBGZWF0dXJlU3RvcmU8RmVhdHVyZT4oW10sIHsgbWFwOiB0aGlzLm1hcCB9KTtcclxuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAvLyBUbyBoYW5kbGUgY29udGV4dCBjaGFuZ2Ugd2l0aG91dCB1c2luZyB0aGUgY29udGV4dFNlcnZpY2UuXHJcbiAgICB0aGlzLmxheWVycyQkID0gdGhpcy5tYXAubGF5ZXJzJC5zdWJzY3JpYmUoKGxheWVycykgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5zdG9yZSAmJlxyXG4gICAgICAgICFsYXllcnMuZmluZCgobCkgPT4gbC5pZCA9PT0gJ3NlYXJjaFBvaW50ZXJTdW1tYXJ5SWQnKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIHBvaW50ZXIgcG9zaXRpb24gc3RvcmVcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcml2YXRlIGluaXRTdG9yZSgpIHtcclxuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5zdG9yZTtcclxuXHJcbiAgICBjb25zdCBsYXllciA9IG5ldyBWZWN0b3JMYXllcih7XHJcbiAgICAgIGlzSWdvSW50ZXJuYWxMYXllcjogdHJ1ZSxcclxuICAgICAgaWQ6ICdzZWFyY2hQb2ludGVyU3VtbWFyeUlkJyxcclxuICAgICAgdGl0bGU6ICdzZWFyY2hQb2ludGVyU3VtbWFyeScsXHJcbiAgICAgIHpJbmRleDogOTAwLFxyXG4gICAgICBzb3VyY2U6IG5ldyBGZWF0dXJlRGF0YVNvdXJjZSgpLFxyXG4gICAgICBzaG93SW5MYXllckxpc3Q6IGZhbHNlLFxyXG4gICAgICBleHBvcnRhYmxlOiBmYWxzZSxcclxuICAgICAgYnJvd3NhYmxlOiBmYWxzZSxcclxuICAgICAgc3R5bGU6IHBvaW50ZXJQb3NpdGlvblN1bW1hcnlNYXJrZXJTdHlsZVxyXG4gICAgfSk7XHJcbiAgICB0cnlCaW5kU3RvcmVMYXllcihzdG9yZSwgbGF5ZXIpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5zZWFyY2hTb3VyY2VTZXJ2aWNlXHJcbiAgICAgICAgLmdldEVuYWJsZWRTb3VyY2VzKClcclxuICAgICAgICAuZmlsdGVyKHNvdXJjZUNhblJldmVyc2VTZWFyY2hBc1N1bW1hcnkpLmxlbmd0aFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaGFzUG9pbnRlclJldmVyc2VTZWFyY2hTb3VyY2UgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaGFzUG9pbnRlclJldmVyc2VTZWFyY2hTb3VyY2UgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCBsaXN0ZW5pbmcgdG8gcG9pbnRlcm1vdmUgYW5kIHJldmVyc2Ugc2VhcmNoIHJlc3VsdHMuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZVRvUG9pbnRlclN0b3JlKCk7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlUmV2ZXJzZVNlYXJjaCgpO1xyXG4gICAgdGhpcy5sYXllcnMkJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaWJlIHRvIHBvaW50ZXJtb3ZlIHJlc3VsdCBzdG9yZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHN1YnNjcmliZVRvUG9pbnRlclN0b3JlKCkge1xyXG4gICAgdGhpcy5zdG9yZSQkID0gdGhpcy5wb2ludGVyU2VhcmNoU3RvcmUuZW50aXRpZXMkLnN1YnNjcmliZShcclxuICAgICAgKHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbikgPT4ge1xyXG4gICAgICAgIHRoaXMuZW50aXRpZXNUb1BvaW50ZXJPdmVybGF5KHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbik7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWlsZCBhbiBvYmplY3QgYmFzZWQgb24gdGhlIGNsb3Nlc3QgZmVhdHVyZSBieSB0eXBlIChiYXNlIG9uIHR5cGUgYW5kIGRpc3RhbmNlIHByb3BlcnRpZXMgKVxyXG4gICAqIEBwYXJhbSByZXN1bHRzIFNlYXJjaFJlc3VsdFtdXHJcbiAgICogQHJldHVybnMgT0wgc3R5bGUgZnVuY3Rpb25cclxuICAgKi9cclxuICBwcml2YXRlIGNvbXB1dGVTdW1tYXJ5Q2xvc2VzdEZlYXR1cmUocmVzdWx0czogU2VhcmNoUmVzdWx0W10pOiB7fSB7XHJcbiAgICBjb25zdCBjbG9zZXN0UmVzdWx0QnlUeXBlID0ge307XHJcblxyXG4gICAgcmVzdWx0cy5tYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlICYmIHJlc3VsdC5kYXRhLnByb3BlcnRpZXMuZGlzdGFuY2UgPj0gMCkge1xyXG4gICAgICAgIGlmIChjbG9zZXN0UmVzdWx0QnlUeXBlLmhhc093blByb3BlcnR5KHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZSkpIHtcclxuICAgICAgICAgIGNvbnN0IHByZXZEaXN0YW5jZSA9XHJcbiAgICAgICAgICAgIGNsb3Nlc3RSZXN1bHRCeVR5cGVbcmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlXS5kaXN0YW5jZTtcclxuICAgICAgICAgIGlmIChyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLmRpc3RhbmNlIDwgcHJldkRpc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gcmVzdWx0Lm1ldGEucG9pbnRlclN1bW1hcnlUaXRsZSB8fCByZXN1bHQubWV0YS50aXRsZTtcclxuICAgICAgICAgICAgY2xvc2VzdFJlc3VsdEJ5VHlwZVtyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGVdID0ge1xyXG4gICAgICAgICAgICAgIGRpc3RhbmNlOiByZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLmRpc3RhbmNlLFxyXG4gICAgICAgICAgICAgIHRpdGxlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHRpdGxlID0gcmVzdWx0Lm1ldGEucG9pbnRlclN1bW1hcnlUaXRsZSB8fCByZXN1bHQubWV0YS50aXRsZTtcclxuICAgICAgICAgIGNsb3Nlc3RSZXN1bHRCeVR5cGVbcmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlXSA9IHtcclxuICAgICAgICAgICAgZGlzdGFuY2U6IHJlc3VsdC5kYXRhLnByb3BlcnRpZXMuZGlzdGFuY2UsXHJcbiAgICAgICAgICAgIHRpdGxlXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGNsb3Nlc3RSZXN1bHRCeVR5cGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjb252ZXJ0IHN0b3JlIGVudGl0aWVzIHRvIGEgcG9pbnRlciBwb3NpdGlvbiBvdmVybGF5IHdpdGggbGFiZWwgc3VtbWFyeSBvbi5cclxuICAgKiBAcGFyYW0gZXZlbnQgT0wgbWFwIGJyb3dzZXIgcG9pbnRlciBldmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZW50aXRpZXNUb1BvaW50ZXJPdmVybGF5KFxyXG4gICAgcmVzdWx0c1VuZGVyUG9pbnRlclBvc2l0aW9uOiBTZWFyY2hSZXN1bHRbXVxyXG4gICkge1xyXG4gICAgY29uc3QgY2xvc2VzdFJlc3VsdEJ5VHlwZSA9IHRoaXMuY29tcHV0ZVN1bW1hcnlDbG9zZXN0RmVhdHVyZShcclxuICAgICAgcmVzdWx0c1VuZGVyUG9pbnRlclBvc2l0aW9uXHJcbiAgICApO1xyXG4gICAgY29uc3Qgc3VtbWFyaXplZENsb3Nlc3RUeXBlID0gT2JqZWN0LmtleXMoY2xvc2VzdFJlc3VsdEJ5VHlwZSk7XHJcbiAgICBjb25zdCBwcm9jZXNzZWRTdW1tYXJpemVkQ2xvc2VzdFR5cGUgPSBbXTtcclxuICAgIGNvbnN0IHN1bW1hcnkgPSBbXTtcclxuICAgIHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbi5tYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICBjb25zdCB0eXBlSW5kZXggPSBzdW1tYXJpemVkQ2xvc2VzdFR5cGUuaW5kZXhPZihcclxuICAgICAgICByZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGVcclxuICAgICAgKTtcclxuICAgICAgaWYgKHR5cGVJbmRleCAhPT0gLTEpIHtcclxuICAgICAgICBzdW1tYXJ5LnB1c2goY2xvc2VzdFJlc3VsdEJ5VHlwZVtyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGVdLnRpdGxlKTtcclxuICAgICAgICBzdW1tYXJpemVkQ2xvc2VzdFR5cGUuc3BsaWNlKHR5cGVJbmRleCwgMSk7XHJcbiAgICAgICAgcHJvY2Vzc2VkU3VtbWFyaXplZENsb3Nlc3RUeXBlLnB1c2gocmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBwcm9jZXNzZWRTdW1tYXJpemVkQ2xvc2VzdFR5cGUuaW5kZXhPZihcclxuICAgICAgICAgICAgcmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlXHJcbiAgICAgICAgICApID09PSAtMVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgc3VtbWFyeS5wdXNoKHJlc3VsdC5tZXRhLnBvaW50ZXJTdW1tYXJ5VGl0bGUgfHwgcmVzdWx0Lm1ldGEudGl0bGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoc3VtbWFyeS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5hZGRQb2ludGVyT3ZlcmxheShzdW1tYXJ5LmpvaW4oJ1xcbicpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIG1hcCBwb2ludGVybW92ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgbGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpIHtcclxuICAgIHRoaXMucG9pbnRlck1vdmVMaXN0ZW5lciA9IHRoaXMubWFwLm9sLm9uKFxyXG4gICAgICAncG9pbnRlcm1vdmUnLFxyXG4gICAgICAoZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55PikgPT4gdGhpcy5vbk1hcEV2ZW50KGV2ZW50KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc3Vic2NyaWJlIHRvIHBvaW50ZXIgc3RvcmUuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgdW5zdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpIHtcclxuICAgIHRoaXMuc3RvcmUkJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBVbnN1YnNjcmliZSB0byByZXZlcnNlIHNlYXRjaCBzdG9yZS5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICB1bnN1YnNjcmliZVJldmVyc2VTZWFyY2goKSB7XHJcbiAgICB0aGlzLnJldmVyc2VTZWFyY2gkJC5tYXAoKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLnJldmVyc2VTZWFyY2gkJCA9IFtdO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCBsaXN0ZW5pbmcgZm9yIG1hcCBwb2ludGVybW92ZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW5saXN0ZW5Ub01hcFBvaW50ZXJNb3ZlKCkge1xyXG4gICAgdW5CeUtleSh0aGlzLnBvaW50ZXJNb3ZlTGlzdGVuZXIpO1xyXG4gICAgdGhpcy5wb2ludGVyTW92ZUxpc3RlbmVyID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlciByZXZlcnNlIHNlYXJjaCB3aGVuIHRoZSBtb3VzZSBpcyBtb3Rpb25sZXNzIGR1cmluZyB0aGUgZGVmaW5lZCBkZWxheSAocG9pbnRlck1vdmVEZWxheSkuXHJcbiAgICogQHBhcmFtIGV2ZW50IE9MIG1hcCBicm93c2VyIHBvaW50ZXIgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uTWFwRXZlbnQoZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55Pikge1xyXG4gICAgaWYgKFxyXG4gICAgICBldmVudC5kcmFnZ2luZyB8fFxyXG4gICAgICAhdGhpcy5pZ29TZWFyY2hQb2ludGVyU3VtbWFyeUVuYWJsZWQgfHxcclxuICAgICAgIXRoaXMuaGFzUG9pbnRlclJldmVyc2VTZWFyY2hTb3VyY2UgfHxcclxuICAgICAgdGhpcy5tZWRpYVNlcnZpY2UuaXNUb3VjaFNjcmVlbigpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jbGVhckxheWVyKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdGhpcy5sYXN0VGltZW91dFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIC8vIGNhbmNlbCB0aW1lb3V0IHdoZW4gdGhlIG1vdXNlIG1vdmVzXHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuY2xlYXJMYXllcigpO1xyXG4gICAgICB0aGlzLnVuc3Vic2NyaWJlUmV2ZXJzZVNlYXJjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9uTGF0ID0gdHJhbnNmb3JtKFxyXG4gICAgICBldmVudC5jb29yZGluYXRlLFxyXG4gICAgICB0aGlzLm1hcFByb2plY3Rpb24sXHJcbiAgICAgICdFUFNHOjQzMjYnXHJcbiAgICApIGFzIFtudW1iZXIsIG51bWJlcl07XHJcblxyXG4gICAgdGhpcy5sYXN0VGltZW91dFJlcXVlc3QgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5vblNlYXJjaENvb3JkaW5hdGUoKTtcclxuICAgIH0sIHRoaXMuaWdvU2VhcmNoUG9pbnRlclN1bW1hcnlEZWxheSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTb3J0IHRoZSByZXN1bHRzIGJ5IGRpc3BsYXkgb3JkZXIuXHJcbiAgICogQHBhcmFtIHIxIEZpcnN0IHJlc3VsdFxyXG4gICAqIEBwYXJhbSByMiBTZWNvbmQgcmVzdWx0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzb3J0QnlPcmRlcihyMTogU2VhcmNoUmVzdWx0LCByMjogU2VhcmNoUmVzdWx0KSB7XHJcbiAgICByZXR1cm4gcjEuc291cmNlLmRpc3BsYXlPcmRlciAtIHIyLnNvdXJjZS5kaXNwbGF5T3JkZXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uU2VhcmNoQ29vcmRpbmF0ZSgpIHtcclxuICAgIHRoaXMucG9pbnRlclNlYXJjaFN0b3JlLmNsZWFyKCk7XHJcbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnJldmVyc2VTZWFyY2goXHJcbiAgICAgIHRoaXMubG9uTGF0LFxyXG4gICAgICB7IHBhcmFtczogeyBnZW9tZXRyeTogJ2ZhbHNlJywgaWNvbjogJ2ZhbHNlJyB9IH0sXHJcbiAgICAgIHRydWVcclxuICAgICk7XHJcblxyXG4gICAgZm9yIChjb25zdCBpIGluIHJlc3VsdHMpIHtcclxuICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMucmV2ZXJzZVNlYXJjaCQkLnB1c2goXHJcbiAgICAgICAgICByZXN1bHRzW2ldLnJlcXVlc3Quc3Vic2NyaWJlKChfcmVzdWx0czogU2VhcmNoUmVzdWx0PEZlYXR1cmU+W10pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vblNlYXJjaCh7IHJlc2VhcmNoOiByZXN1bHRzW2ldLCByZXN1bHRzOiBfcmVzdWx0cyB9KTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblNlYXJjaChldmVudDogeyByZXNlYXJjaDogUmVzZWFyY2g7IHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdIH0pIHtcclxuICAgIGNvbnN0IHJlc3VsdHMgPSBldmVudC5yZXN1bHRzO1xyXG4gICAgY29uc3QgbmV3UmVzdWx0cyA9IHRoaXMucG9pbnRlclNlYXJjaFN0b3JlXHJcbiAgICAgIC5hbGwoKVxyXG4gICAgICAuZmlsdGVyKChyZXN1bHQ6IFNlYXJjaFJlc3VsdCkgPT4gcmVzdWx0LnNvdXJjZSAhPT0gZXZlbnQucmVzZWFyY2guc291cmNlKVxyXG4gICAgICAuY29uY2F0KHJlc3VsdHMpO1xyXG4gICAgdGhpcy5wb2ludGVyU2VhcmNoU3RvcmUubG9hZChuZXdSZXN1bHRzLnNvcnQodGhpcy5zb3J0QnlPcmRlcikpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgZmVhdHVyZSB0byB0aGUgcG9pbnRlciBzdG9yZVxyXG4gICAqIEBwYXJhbSB0ZXh0IHN0cmluZ1xyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkUG9pbnRlck92ZXJsYXkodGV4dDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcclxuXHJcbiAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBvbGdlb20uUG9pbnQoXHJcbiAgICAgIHRyYW5zZm9ybSh0aGlzLmxvbkxhdCwgJ0VQU0c6NDMyNicsIHRoaXMubWFwUHJvamVjdGlvbilcclxuICAgICk7XHJcbiAgICBjb25zdCBmZWF0dXJlID0gbmV3IG9sRmVhdHVyZSh7IGdlb21ldHJ5IH0pO1xyXG4gICAgY29uc3QgZ2VvanNvbkdlb20gPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChnZW9tZXRyeSwge1xyXG4gICAgICBmZWF0dXJlUHJvamVjdGlvbjogdGhpcy5tYXBQcm9qZWN0aW9uLFxyXG4gICAgICBkYXRhUHJvamVjdGlvbjogdGhpcy5tYXBQcm9qZWN0aW9uXHJcbiAgICB9KSBhcyBGZWF0dXJlR2VvbWV0cnk7XHJcblxyXG4gICAgY29uc3QgZjogRmVhdHVyZSA9IHtcclxuICAgICAgdHlwZTogRkVBVFVSRSxcclxuICAgICAgZ2VvbWV0cnk6IGdlb2pzb25HZW9tLFxyXG4gICAgICBwcm9qZWN0aW9uOiB0aGlzLm1hcFByb2plY3Rpb24sXHJcbiAgICAgIHByb3BlcnRpZXM6IHtcclxuICAgICAgICBpZDogdGhpcy5zZWFyY2hQb2ludGVyU3VtbWFyeUZlYXR1cmVJZCxcclxuICAgICAgICBwb2ludGVyU3VtbWFyeTogdGV4dFxyXG4gICAgICB9LFxyXG4gICAgICBtZXRhOiB7XHJcbiAgICAgICAgaWQ6IHRoaXMuc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWRcclxuICAgICAgfSxcclxuICAgICAgb2w6IGZlYXR1cmVcclxuICAgIH07XHJcbiAgICB0aGlzLnN0b3JlLnNldExheWVyRmVhdHVyZXMoW2ZdLCBGZWF0dXJlTW90aW9uLk5vbmUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgdGhlIHBvaW50ZXIgc3RvcmUgZmVhdHVyZXNcclxuICAgKi9cclxuICBwcml2YXRlIGNsZWFyTGF5ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5zdG9yZSkge1xyXG4gICAgICB0aGlzLnN0b3JlLmNsZWFyTGF5ZXIoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBvaW50ZXItc3VtbWFyeS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NlYXJjaC1wb2ludGVyLXN1bW1hcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxJQUFJLEVBQ0wsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxTQUFTLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVwQyxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFbEYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFN0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFFakU7Ozs7O0dBS0c7QUFJSCxNQUFNLE9BQU8sNkJBQTZCO0lBaUR0QjtJQUNSO0lBQ0E7SUFDQTtJQWpESCxLQUFLLENBQXdCO0lBQzVCLE1BQU0sQ0FBbUI7SUFDekIsa0JBQWtCLEdBQ3hCLElBQUksV0FBVyxDQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLGtCQUFrQixDQUFDO0lBQ25CLE9BQU8sQ0FBZTtJQUN0QixRQUFRLENBQWU7SUFDdkIsZUFBZSxHQUFtQixFQUFFLENBQUM7SUFDckMsNkJBQTZCLEdBQVksS0FBSyxDQUFDO0lBRXZEOztPQUVHO0lBQ0ssbUJBQW1CLENBQUM7SUFFcEIsNkJBQTZCLEdBQ25DLCtCQUErQixDQUFDO0lBQ2xDOztPQUVHO0lBQ00sNEJBQTRCLEdBQVcsSUFBSSxDQUFDO0lBRXJEOztPQUVHO0lBQ00sOEJBQThCLEdBQVksS0FBSyxDQUFDO0lBR3pELFVBQVU7UUFDUixZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFRLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBYyxDQUFDLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsWUFDa0IsU0FBOEIsRUFDdEMsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLFlBQTBCO1FBSGxCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBQ3RDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsaUJBQVksR0FBWixZQUFZLENBQWM7SUFDakMsQ0FBQztJQUVKOzs7T0FHRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5QixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU87YUFDYixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksWUFBWSxDQUFVLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFTCw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwRCxJQUNFLElBQUksQ0FBQyxLQUFLO2dCQUNWLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyx3QkFBd0IsQ0FBQyxFQUN0RDtnQkFDQSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDbEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxTQUFTO1FBQ2YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV6QixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQztZQUM1QixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLEVBQUUsRUFBRSx3QkFBd0I7WUFDNUIsS0FBSyxFQUFFLHNCQUFzQjtZQUM3QixNQUFNLEVBQUUsR0FBRztZQUNYLE1BQU0sRUFBRSxJQUFJLGlCQUFpQixFQUFFO1lBQy9CLGVBQWUsRUFBRSxLQUFLO1lBQ3RCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLEtBQUssRUFBRSxpQ0FBaUM7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFDRSxDQUFDLElBQUksQ0FBQyxtQkFBbUI7YUFDdEIsaUJBQWlCLEVBQUU7YUFDbkIsTUFBTSxDQUFDLCtCQUErQixDQUFDLENBQUMsTUFBTSxFQUNqRDtZQUNBLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxLQUFLLENBQUM7U0FDNUM7YUFBTTtZQUNMLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVztRQUNULElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILHVCQUF1QjtRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUN4RCxDQUFDLDJCQUEyQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLDRCQUE0QixDQUFDLE9BQXVCO1FBQzFELE1BQU0sbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBRS9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFO2dCQUN2RSxJQUFJLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDbkUsTUFBTSxZQUFZLEdBQ2hCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQztvQkFDNUQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsWUFBWSxFQUFFO3dCQUNsRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO3dCQUNuRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRzs0QkFDakQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7NEJBQ3pDLEtBQUs7eUJBQ04sQ0FBQztxQkFDSDtpQkFDRjtxQkFBTTtvQkFDTCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUNuRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRzt3QkFDakQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVE7d0JBQ3pDLEtBQUs7cUJBQ04sQ0FBQztpQkFDSDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRDs7O09BR0c7SUFDSyx3QkFBd0IsQ0FDOUIsMkJBQTJDO1FBRTNDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUMzRCwyQkFBMkIsQ0FDNUIsQ0FBQztRQUNGLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sOEJBQThCLEdBQUcsRUFBRSxDQUFDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQiwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN6QyxNQUFNLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDNUIsQ0FBQztZQUNGLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyRSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbEU7aUJBQU07Z0JBQ0wsSUFDRSw4QkFBOEIsQ0FBQyxPQUFPLENBQ3BDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDNUIsS0FBSyxDQUFDLENBQUMsRUFDUjtvQkFDQSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDcEU7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FDdkMsYUFBYSxFQUNiLENBQUMsS0FBa0MsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FDL0QsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCx5QkFBeUI7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsd0JBQXdCO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssd0JBQXdCO1FBQzlCLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7O09BR0c7SUFDSyxVQUFVLENBQUMsS0FBa0M7UUFDbkQsSUFDRSxLQUFLLENBQUMsUUFBUTtZQUNkLENBQUMsSUFBSSxDQUFDLDhCQUE4QjtZQUNwQyxDQUFDLElBQUksQ0FBQyw2QkFBNkI7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsRUFDakM7WUFDQSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxPQUFPLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxXQUFXLEVBQUU7WUFDbEQsc0NBQXNDO1lBQ3RDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDakM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FDckIsS0FBSyxDQUFDLFVBQVUsRUFDaEIsSUFBSSxDQUFDLGFBQWEsRUFDbEIsV0FBVyxDQUNRLENBQUM7UUFFdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDNUIsQ0FBQyxFQUFFLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssV0FBVyxDQUFDLEVBQWdCLEVBQUUsRUFBZ0I7UUFDcEQsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUN6RCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FDOUMsSUFBSSxDQUFDLE1BQU0sRUFDWCxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQ2hELElBQUksQ0FDTCxDQUFDO1FBRUYsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUU7WUFDdkIsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQ3ZCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBaUMsRUFBRSxFQUFFO29CQUNqRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDN0QsQ0FBQyxDQUFDLENBQ0gsQ0FBQzthQUNIO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQXNEO1FBQ3JFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDOUIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQjthQUN2QyxHQUFHLEVBQUU7YUFDTCxNQUFNLENBQUMsQ0FBQyxNQUFvQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO2FBQ3pFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGlCQUFpQixDQUFDLElBQVk7UUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRWxCLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLEtBQUssQ0FDL0IsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FDeEQsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1QyxNQUFNLFdBQVcsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRTtZQUNoRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNyQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDbkMsQ0FBb0IsQ0FBQztRQUV0QixNQUFNLENBQUMsR0FBWTtZQUNqQixJQUFJLEVBQUUsT0FBTztZQUNiLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUM5QixVQUFVLEVBQUU7Z0JBQ1YsRUFBRSxFQUFFLElBQUksQ0FBQyw2QkFBNkI7Z0JBQ3RDLGNBQWMsRUFBRSxJQUFJO2FBQ3JCO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLEVBQUUsRUFBRSxJQUFJLENBQUMsNkJBQTZCO2FBQ3ZDO1lBQ0QsRUFBRSxFQUFFLE9BQU87U0FDWixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO3dHQTdWVSw2QkFBNkI7NEZBQTdCLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFIekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2lCQUN0Qzs7MEJBa0RJLElBQUk7cUlBMUJFLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFLRyw4QkFBOEI7c0JBQXRDLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIFNlbGZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3RTdGF0dXMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgTWFwQnJvd3NlclBvaW50ZXJFdmVudCBmcm9tICdvbC9NYXBCcm93c2VyRXZlbnQnO1xyXG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XHJcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xyXG5pbXBvcnQgKiBhcyBvbGdlb20gZnJvbSAnb2wvZ2VvbSc7XHJcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ29sL3Byb2onO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyB0cnlCaW5kU3RvcmVMYXllciB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUtc3RvcmUudXRpbHMnO1xyXG5pbXBvcnQgeyBGRUFUVVJFLCBGZWF0dXJlTW90aW9uIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5lbnVtcyc7XHJcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9zdG9yZSc7XHJcbmltcG9ydCB7IFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXInO1xyXG5pbXBvcnQgeyBNYXBCcm93c2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWFwL21hcC1icm93c2VyL21hcC1icm93c2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcclxuaW1wb3J0IHsgcG9pbnRlclBvc2l0aW9uU3VtbWFyeU1hcmtlclN0eWxlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc2hhcmVkL2ZlYXR1cmUvZmVhdHVyZS1zdHlsZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVHZW9tZXRyeSB9IGZyb20gJy4vLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgU2VhcmNoU291cmNlU2VydmljZSB9IGZyb20gJy4vc2VhcmNoLXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzZWFyY2gsIFNlYXJjaFJlc3VsdCB9IGZyb20gJy4vc2VhcmNoLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7IHNvdXJjZUNhblJldmVyc2VTZWFyY2hBc1N1bW1hcnkgfSBmcm9tICcuL3NlYXJjaC51dGlscyc7XHJcblxyXG4vKipcclxuICogVGhpcyBkaXJlY3RpdmUgbWFrZXMgdGhlIG1vdXNlIGNvb3JkaW5hdGUgdHJpZ2dlciBhIHJldmVyc2Ugc2VhcmNoIG9uIGF2YWlsYWJsZSBzZWFyY2ggc291cmNlcy5cclxuICogVGhlIHNlYXJjaCByZXN1bHRzIGFyZSBwbGFjZWQgaW50byBhIGxhYmVsLCBvbiBhIGNyb3NzIGljb24sIHJlcHJlc2VudGluZyB0aGUgbW91c2UgY29vcmRpbmF0ZS5cclxuICogQnkgZGVmYXVsdCwgbm8gc2VhcmNoIHNvdXJjZXMuIENvbmZpZyBpbiBjb25maWcgZmlsZSBtdXN0IGJlIGRlZmluZWQuXHJcbiAqIHRoZSBsYXllciBsZXZlbC5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2lnb1NlYXJjaFBvaW50ZXJTdW1tYXJ5XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlYXJjaFBvaW50ZXJTdW1tYXJ5RGlyZWN0aXZlXHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50Q2hlY2tlZFxyXG57XHJcbiAgcHVibGljIHN0b3JlOiBGZWF0dXJlU3RvcmU8RmVhdHVyZT47XHJcbiAgcHJpdmF0ZSBsb25MYXQ6IFtudW1iZXIsIG51bWJlcl07XHJcbiAgcHJpdmF0ZSBwb2ludGVyU2VhcmNoU3RvcmU6IEVudGl0eVN0b3JlPFNlYXJjaFJlc3VsdD4gPVxyXG4gICAgbmV3IEVudGl0eVN0b3JlPFNlYXJjaFJlc3VsdD4oW10pO1xyXG4gIHByaXZhdGUgbGFzdFRpbWVvdXRSZXF1ZXN0O1xyXG4gIHByaXZhdGUgc3RvcmUkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbGF5ZXJzJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHJldmVyc2VTZWFyY2gkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIGhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RlbmVyIHRvIHRoZSBwb2ludGVyIG1vdmUgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIHBvaW50ZXJNb3ZlTGlzdGVuZXI7XHJcblxyXG4gIHByaXZhdGUgc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWQ6IHN0cmluZyA9XHJcbiAgICAnc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWQnO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBkZWxheSB3aGVyZSB0aGUgbW91c2UgbXVzdCBiZSBtb3Rpb25sZXNzIGJlZm9yZSB0cmlnZ2VyIHRoZSByZXZlcnNlIHNlYXJjaFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGlnb1NlYXJjaFBvaW50ZXJTdW1tYXJ5RGVsYXk6IG51bWJlciA9IDEwMDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZSB1c2VyIGhhcyBlbmFibGVkIG9yIG5vdCB0aGUgZGlyZWN0aXZlXHJcbiAgICovXHJcbiAgQElucHV0KCkgaWdvU2VhcmNoUG9pbnRlclN1bW1hcnlFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxyXG4gIG1vdXNlbGVhdmUoKSB7XHJcbiAgICBjbGVhclRpbWVvdXQodGhpcy5sYXN0VGltZW91dFJlcXVlc3QpO1xyXG4gICAgdGhpcy5jbGVhckxheWVyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJR08gbWFwXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50Lm1hcDtcclxuICB9XHJcblxyXG4gIGdldCBtYXBQcm9qZWN0aW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHRoaXMuY29tcG9uZW50Lm1hcCBhcyBJZ29NYXApLnByb2plY3Rpb247XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBTZWxmKCkgcHJpdmF0ZSBjb21wb25lbnQ6IE1hcEJyb3dzZXJDb21wb25lbnQsXHJcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlYXJjaFNvdXJjZVNlcnZpY2U6IFNlYXJjaFNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBTdGFydCBsaXN0ZW5pbmcgdG8gcG9pbnRlcm1vdmUgYW5kIHJldmVyc2Ugc2VhcmNoIHJlc3VsdHMuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmxpc3RlblRvTWFwUG9pbnRlck1vdmUoKTtcclxuXHJcbiAgICB0aGlzLm1hcC5zdGF0dXMkXHJcbiAgICAgIC5waXBlKGZpcnN0KChzdGF0dXMpID0+IHN0YXR1cyA9PT0gU3ViamVjdFN0YXR1cy5Eb25lKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdG9yZSA9IG5ldyBGZWF0dXJlU3RvcmU8RmVhdHVyZT4oW10sIHsgbWFwOiB0aGlzLm1hcCB9KTtcclxuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgLy8gVG8gaGFuZGxlIGNvbnRleHQgY2hhbmdlIHdpdGhvdXQgdXNpbmcgdGhlIGNvbnRleHRTZXJ2aWNlLlxyXG4gICAgdGhpcy5sYXllcnMkJCA9IHRoaXMubWFwLmxheWVycyQuc3Vic2NyaWJlKChsYXllcnMpID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuc3RvcmUgJiZcclxuICAgICAgICAhbGF5ZXJzLmZpbmQoKGwpID0+IGwuaWQgPT09ICdzZWFyY2hQb2ludGVyU3VtbWFyeUlkJylcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5pbml0U3RvcmUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBwb2ludGVyIHBvc2l0aW9uIHN0b3JlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpbml0U3RvcmUoKSB7XHJcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMuc3RvcmU7XHJcblxyXG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXHJcbiAgICAgIGlkOiAnc2VhcmNoUG9pbnRlclN1bW1hcnlJZCcsXHJcbiAgICAgIHRpdGxlOiAnc2VhcmNoUG9pbnRlclN1bW1hcnknLFxyXG4gICAgICB6SW5kZXg6IDkwMCxcclxuICAgICAgc291cmNlOiBuZXcgRmVhdHVyZURhdGFTb3VyY2UoKSxcclxuICAgICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcclxuICAgICAgZXhwb3J0YWJsZTogZmFsc2UsXHJcbiAgICAgIGJyb3dzYWJsZTogZmFsc2UsXHJcbiAgICAgIHN0eWxlOiBwb2ludGVyUG9zaXRpb25TdW1tYXJ5TWFya2VyU3R5bGVcclxuICAgIH0pO1xyXG4gICAgdHJ5QmluZFN0b3JlTGF5ZXIoc3RvcmUsIGxheWVyKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuc2VhcmNoU291cmNlU2VydmljZVxyXG4gICAgICAgIC5nZXRFbmFibGVkU291cmNlcygpXHJcbiAgICAgICAgLmZpbHRlcihzb3VyY2VDYW5SZXZlcnNlU2VhcmNoQXNTdW1tYXJ5KS5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICB0aGlzLmhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3AgbGlzdGVuaW5nIHRvIHBvaW50ZXJtb3ZlIGFuZCByZXZlcnNlIHNlYXJjaCByZXN1bHRzLlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bmxpc3RlblRvTWFwUG9pbnRlck1vdmUoKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZVJldmVyc2VTZWFyY2goKTtcclxuICAgIHRoaXMubGF5ZXJzJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmliZSB0byBwb2ludGVybW92ZSByZXN1bHQgc3RvcmVcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBzdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpIHtcclxuICAgIHRoaXMuc3RvcmUkJCA9IHRoaXMucG9pbnRlclNlYXJjaFN0b3JlLmVudGl0aWVzJC5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24pID0+IHtcclxuICAgICAgICB0aGlzLmVudGl0aWVzVG9Qb2ludGVyT3ZlcmxheShyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGQgYW4gb2JqZWN0IGJhc2VkIG9uIHRoZSBjbG9zZXN0IGZlYXR1cmUgYnkgdHlwZSAoYmFzZSBvbiB0eXBlIGFuZCBkaXN0YW5jZSBwcm9wZXJ0aWVzIClcclxuICAgKiBAcGFyYW0gcmVzdWx0cyBTZWFyY2hSZXN1bHRbXVxyXG4gICAqIEByZXR1cm5zIE9MIHN0eWxlIGZ1bmN0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjb21wdXRlU3VtbWFyeUNsb3Nlc3RGZWF0dXJlKHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdKToge30ge1xyXG4gICAgY29uc3QgY2xvc2VzdFJlc3VsdEJ5VHlwZSA9IHt9O1xyXG5cclxuICAgIHJlc3VsdHMubWFwKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZSAmJiByZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLmRpc3RhbmNlID49IDApIHtcclxuICAgICAgICBpZiAoY2xvc2VzdFJlc3VsdEJ5VHlwZS5oYXNPd25Qcm9wZXJ0eShyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGUpKSB7XHJcbiAgICAgICAgICBjb25zdCBwcmV2RGlzdGFuY2UgPVxyXG4gICAgICAgICAgICBjbG9zZXN0UmVzdWx0QnlUeXBlW3Jlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZV0uZGlzdGFuY2U7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmRhdGEucHJvcGVydGllcy5kaXN0YW5jZSA8IHByZXZEaXN0YW5jZSkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9IHJlc3VsdC5tZXRhLnBvaW50ZXJTdW1tYXJ5VGl0bGUgfHwgcmVzdWx0Lm1ldGEudGl0bGU7XHJcbiAgICAgICAgICAgIGNsb3Nlc3RSZXN1bHRCeVR5cGVbcmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlXSA9IHtcclxuICAgICAgICAgICAgICBkaXN0YW5jZTogcmVzdWx0LmRhdGEucHJvcGVydGllcy5kaXN0YW5jZSxcclxuICAgICAgICAgICAgICB0aXRsZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCB0aXRsZSA9IHJlc3VsdC5tZXRhLnBvaW50ZXJTdW1tYXJ5VGl0bGUgfHwgcmVzdWx0Lm1ldGEudGl0bGU7XHJcbiAgICAgICAgICBjbG9zZXN0UmVzdWx0QnlUeXBlW3Jlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZV0gPSB7XHJcbiAgICAgICAgICAgIGRpc3RhbmNlOiByZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLmRpc3RhbmNlLFxyXG4gICAgICAgICAgICB0aXRsZVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjbG9zZXN0UmVzdWx0QnlUeXBlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY29udmVydCBzdG9yZSBlbnRpdGllcyB0byBhIHBvaW50ZXIgcG9zaXRpb24gb3ZlcmxheSB3aXRoIGxhYmVsIHN1bW1hcnkgb24uXHJcbiAgICogQHBhcmFtIGV2ZW50IE9MIG1hcCBicm93c2VyIHBvaW50ZXIgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIGVudGl0aWVzVG9Qb2ludGVyT3ZlcmxheShcclxuICAgIHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbjogU2VhcmNoUmVzdWx0W11cclxuICApIHtcclxuICAgIGNvbnN0IGNsb3Nlc3RSZXN1bHRCeVR5cGUgPSB0aGlzLmNvbXB1dGVTdW1tYXJ5Q2xvc2VzdEZlYXR1cmUoXHJcbiAgICAgIHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvblxyXG4gICAgKTtcclxuICAgIGNvbnN0IHN1bW1hcml6ZWRDbG9zZXN0VHlwZSA9IE9iamVjdC5rZXlzKGNsb3Nlc3RSZXN1bHRCeVR5cGUpO1xyXG4gICAgY29uc3QgcHJvY2Vzc2VkU3VtbWFyaXplZENsb3Nlc3RUeXBlID0gW107XHJcbiAgICBjb25zdCBzdW1tYXJ5ID0gW107XHJcbiAgICByZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24ubWFwKChyZXN1bHQpID0+IHtcclxuICAgICAgY29uc3QgdHlwZUluZGV4ID0gc3VtbWFyaXplZENsb3Nlc3RUeXBlLmluZGV4T2YoXHJcbiAgICAgICAgcmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICh0eXBlSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgc3VtbWFyeS5wdXNoKGNsb3Nlc3RSZXN1bHRCeVR5cGVbcmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlXS50aXRsZSk7XHJcbiAgICAgICAgc3VtbWFyaXplZENsb3Nlc3RUeXBlLnNwbGljZSh0eXBlSW5kZXgsIDEpO1xyXG4gICAgICAgIHByb2Nlc3NlZFN1bW1hcml6ZWRDbG9zZXN0VHlwZS5wdXNoKHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgcHJvY2Vzc2VkU3VtbWFyaXplZENsb3Nlc3RUeXBlLmluZGV4T2YoXHJcbiAgICAgICAgICAgIHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZVxyXG4gICAgICAgICAgKSA9PT0gLTFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHN1bW1hcnkucHVzaChyZXN1bHQubWV0YS5wb2ludGVyU3VtbWFyeVRpdGxlIHx8IHJlc3VsdC5tZXRhLnRpdGxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHN1bW1hcnkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYWRkUG9pbnRlck92ZXJsYXkoc3VtbWFyeS5qb2luKCdcXG4nKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBtYXAgcG9pbnRlcm1vdmVcclxuICAgKi9cclxuICBwcml2YXRlIGxpc3RlblRvTWFwUG9pbnRlck1vdmUoKSB7XHJcbiAgICB0aGlzLnBvaW50ZXJNb3ZlTGlzdGVuZXIgPSB0aGlzLm1hcC5vbC5vbihcclxuICAgICAgJ3BvaW50ZXJtb3ZlJyxcclxuICAgICAgKGV2ZW50OiBNYXBCcm93c2VyUG9pbnRlckV2ZW50PGFueT4pID0+IHRoaXMub25NYXBFdmVudChldmVudClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnN1YnNjcmliZSB0byBwb2ludGVyIHN0b3JlLlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHVuc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKSB7XHJcbiAgICB0aGlzLnN0b3JlJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVW5zdWJzY3JpYmUgdG8gcmV2ZXJzZSBzZWF0Y2ggc3RvcmUuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgdW5zdWJzY3JpYmVSZXZlcnNlU2VhcmNoKCkge1xyXG4gICAgdGhpcy5yZXZlcnNlU2VhcmNoJCQubWFwKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy5yZXZlcnNlU2VhcmNoJCQgPSBbXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3AgbGlzdGVuaW5nIGZvciBtYXAgcG9pbnRlcm1vdmVcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcml2YXRlIHVubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpIHtcclxuICAgIHVuQnlLZXkodGhpcy5wb2ludGVyTW92ZUxpc3RlbmVyKTtcclxuICAgIHRoaXMucG9pbnRlck1vdmVMaXN0ZW5lciA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyaWdnZXIgcmV2ZXJzZSBzZWFyY2ggd2hlbiB0aGUgbW91c2UgaXMgbW90aW9ubGVzcyBkdXJpbmcgdGhlIGRlZmluZWQgZGVsYXkgKHBvaW50ZXJNb3ZlRGVsYXkpLlxyXG4gICAqIEBwYXJhbSBldmVudCBPTCBtYXAgYnJvd3NlciBwb2ludGVyIGV2ZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvbk1hcEV2ZW50KGV2ZW50OiBNYXBCcm93c2VyUG9pbnRlckV2ZW50PGFueT4pIHtcclxuICAgIGlmIChcclxuICAgICAgZXZlbnQuZHJhZ2dpbmcgfHxcclxuICAgICAgIXRoaXMuaWdvU2VhcmNoUG9pbnRlclN1bW1hcnlFbmFibGVkIHx8XHJcbiAgICAgICF0aGlzLmhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlIHx8XHJcbiAgICAgIHRoaXMubWVkaWFTZXJ2aWNlLmlzVG91Y2hTY3JlZW4oKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJMYXllcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAvLyBjYW5jZWwgdGltZW91dCB3aGVuIHRoZSBtb3VzZSBtb3Zlc1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5sYXN0VGltZW91dFJlcXVlc3QpO1xyXG4gICAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcclxuICAgICAgdGhpcy51bnN1YnNjcmliZVJldmVyc2VTZWFyY2goKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvbkxhdCA9IHRyYW5zZm9ybShcclxuICAgICAgZXZlbnQuY29vcmRpbmF0ZSxcclxuICAgICAgdGhpcy5tYXBQcm9qZWN0aW9uLFxyXG4gICAgICAnRVBTRzo0MzI2J1xyXG4gICAgKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xyXG5cclxuICAgIHRoaXMubGFzdFRpbWVvdXRSZXF1ZXN0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMub25TZWFyY2hDb29yZGluYXRlKCk7XHJcbiAgICB9LCB0aGlzLmlnb1NlYXJjaFBvaW50ZXJTdW1tYXJ5RGVsYXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29ydCB0aGUgcmVzdWx0cyBieSBkaXNwbGF5IG9yZGVyLlxyXG4gICAqIEBwYXJhbSByMSBGaXJzdCByZXN1bHRcclxuICAgKiBAcGFyYW0gcjIgU2Vjb25kIHJlc3VsdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc29ydEJ5T3JkZXIocjE6IFNlYXJjaFJlc3VsdCwgcjI6IFNlYXJjaFJlc3VsdCkge1xyXG4gICAgcmV0dXJuIHIxLnNvdXJjZS5kaXNwbGF5T3JkZXIgLSByMi5zb3VyY2UuZGlzcGxheU9yZGVyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblNlYXJjaENvb3JkaW5hdGUoKSB7XHJcbiAgICB0aGlzLnBvaW50ZXJTZWFyY2hTdG9yZS5jbGVhcigpO1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IHRoaXMuc2VhcmNoU2VydmljZS5yZXZlcnNlU2VhcmNoKFxyXG4gICAgICB0aGlzLmxvbkxhdCxcclxuICAgICAgeyBwYXJhbXM6IHsgZ2VvbWV0cnk6ICdmYWxzZScsIGljb246ICdmYWxzZScgfSB9LFxyXG4gICAgICB0cnVlXHJcbiAgICApO1xyXG5cclxuICAgIGZvciAoY29uc3QgaSBpbiByZXN1bHRzKSB7XHJcbiAgICAgIGlmIChyZXN1bHRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnJldmVyc2VTZWFyY2gkJC5wdXNoKFxyXG4gICAgICAgICAgcmVzdWx0c1tpXS5yZXF1ZXN0LnN1YnNjcmliZSgoX3Jlc3VsdHM6IFNlYXJjaFJlc3VsdDxGZWF0dXJlPltdKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25TZWFyY2goeyByZXNlYXJjaDogcmVzdWx0c1tpXSwgcmVzdWx0czogX3Jlc3VsdHMgfSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25TZWFyY2goZXZlbnQ6IHsgcmVzZWFyY2g6IFJlc2VhcmNoOyByZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSB9KSB7XHJcbiAgICBjb25zdCByZXN1bHRzID0gZXZlbnQucmVzdWx0cztcclxuICAgIGNvbnN0IG5ld1Jlc3VsdHMgPSB0aGlzLnBvaW50ZXJTZWFyY2hTdG9yZVxyXG4gICAgICAuYWxsKClcclxuICAgICAgLmZpbHRlcigocmVzdWx0OiBTZWFyY2hSZXN1bHQpID0+IHJlc3VsdC5zb3VyY2UgIT09IGV2ZW50LnJlc2VhcmNoLnNvdXJjZSlcclxuICAgICAgLmNvbmNhdChyZXN1bHRzKTtcclxuICAgIHRoaXMucG9pbnRlclNlYXJjaFN0b3JlLmxvYWQobmV3UmVzdWx0cy5zb3J0KHRoaXMuc29ydEJ5T3JkZXIpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIGZlYXR1cmUgdG8gdGhlIHBvaW50ZXIgc3RvcmVcclxuICAgKiBAcGFyYW0gdGV4dCBzdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGFkZFBvaW50ZXJPdmVybGF5KHRleHQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5jbGVhckxheWVyKCk7XHJcblxyXG4gICAgY29uc3QgZ2VvbWV0cnkgPSBuZXcgb2xnZW9tLlBvaW50KFxyXG4gICAgICB0cmFuc2Zvcm0odGhpcy5sb25MYXQsICdFUFNHOjQzMjYnLCB0aGlzLm1hcFByb2plY3Rpb24pXHJcbiAgICApO1xyXG4gICAgY29uc3QgZmVhdHVyZSA9IG5ldyBvbEZlYXR1cmUoeyBnZW9tZXRyeSB9KTtcclxuICAgIGNvbnN0IGdlb2pzb25HZW9tID0gbmV3IE9sR2VvSlNPTigpLndyaXRlR2VvbWV0cnlPYmplY3QoZ2VvbWV0cnksIHtcclxuICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMubWFwUHJvamVjdGlvbixcclxuICAgICAgZGF0YVByb2plY3Rpb246IHRoaXMubWFwUHJvamVjdGlvblxyXG4gICAgfSkgYXMgRmVhdHVyZUdlb21ldHJ5O1xyXG5cclxuICAgIGNvbnN0IGY6IEZlYXR1cmUgPSB7XHJcbiAgICAgIHR5cGU6IEZFQVRVUkUsXHJcbiAgICAgIGdlb21ldHJ5OiBnZW9qc29uR2VvbSxcclxuICAgICAgcHJvamVjdGlvbjogdGhpcy5tYXBQcm9qZWN0aW9uLFxyXG4gICAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgICAgaWQ6IHRoaXMuc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWQsXHJcbiAgICAgICAgcG9pbnRlclN1bW1hcnk6IHRleHRcclxuICAgICAgfSxcclxuICAgICAgbWV0YToge1xyXG4gICAgICAgIGlkOiB0aGlzLnNlYXJjaFBvaW50ZXJTdW1tYXJ5RmVhdHVyZUlkXHJcbiAgICAgIH0sXHJcbiAgICAgIG9sOiBmZWF0dXJlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zdG9yZS5zZXRMYXllckZlYXR1cmVzKFtmXSwgRmVhdHVyZU1vdGlvbi5Ob25lKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBwb2ludGVyIHN0b3JlIGZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjbGVhckxheWVyKCkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmUpIHtcclxuICAgICAgdGhpcy5zdG9yZS5jbGVhckxheWVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLXN0eWxlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3N0eWxlL3NoYXJlZC92ZWN0b3IvdmVjdG9yLXN0eWxlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcclxuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuaW1wb3J0IG9sU3R5bGUgZnJvbSAnb2wvc3R5bGUvU3R5bGUnO1xyXG5cclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVDb21tb25WZWN0b3JTdHlsZU9wdGlvbnNcclxuICBleHRlbmRzIENvbW1vblZlY3RvclN0eWxlT3B0aW9ucyB7XHJcbiAgZmVhdHVyZTogRmVhdHVyZSB8IG9sRmVhdHVyZTxPbEdlb21ldHJ5PjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJZ29TdHlsZSBleHRlbmRzIElnb1N0eWxlQmFzZSB7XHJcbiAgY2x1c3RlckJhc2VTdHlsZT86IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBvbFN0eWxlIHwgb2xTdHlsZVtdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSWdvU3R5bGVCYXNlIHtcclxuICBlZGl0YWJsZT86IGJvb2xlYW47XHJcbiAgaG92ZXJTdHlsZT86IFN0eWxlQnlBdHRyaWJ1dGU7XHJcbiAgaWdvU3R5bGVPYmplY3Q/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG4gIG1hcGJveFN0eWxlPzogTWFwYm94U3R5bGU7XHJcbiAgc3R5bGVCeUF0dHJpYnV0ZT86IFN0eWxlQnlBdHRyaWJ1dGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheVN0eWxlT3B0aW9ucyB7XHJcbiAgYmFzZT86IENvbW1vblZlY3RvclN0eWxlT3B0aW9ucztcclxuICBzZWxlY3Rpb24/OiBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnM7XHJcbiAgZm9jdXM/OiBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnM7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnMge1xyXG4gIG1hcmtlckNvbG9yPzogc3RyaW5nIHwgbnVtYmVyW107IC8vIG1hcmtlciBmaWxsXHJcbiAgbWFya2VyT3BhY2l0eT86IG51bWJlcjsgLy8gbWFya2VyIG9wYWNpdHksIG5vdCBhcHBsaWVkIGlmIGEgcmdiYSBpcyBwcm92aWRlZFxyXG4gIG1hcmtlck91dGxpbmVDb2xvcj86IHN0cmluZyB8IG51bWJlcltdOyAvLyBtYXJrZXIgY29udG91clxyXG4gIGZpbGxDb2xvcj86IHN0cmluZyB8IG51bWJlcltdOyAvLyBwb2x5XHJcbiAgZmlsbE9wYWNpdHk/OiBudW1iZXI7IC8vIHBvbHkgZmlsbCBvcGFjaXR5LCBub3QgYXBwbGllZCBpZiBhIHJnYmEgaXMgcHJvdmlkZWRcclxuICBzdHJva2VDb2xvcj86IHN0cmluZyB8IG51bWJlcltdOyAvLyBsaW5lIGFuZCBwb2x5XHJcbiAgc3Ryb2tlT3BhY2l0eT86IG51bWJlcjsgLy8gbGluZSBhbmQgcG9seSwgbm90IGFwcGxpZWQgaWYgYSByZ2JhIGlzIHByb3ZpZGVkXHJcbiAgc3Ryb2tlV2lkdGg/OiBudW1iZXI7IC8vIGxpbmUgYW5kIHBvbHlcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdHlsZUJ5QXR0cmlidXRlIHtcclxuICBhbmNob3I/OiBBcnJheTxbbnVtYmVyLCBudW1iZXJdPjtcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIGF0dHJpYnV0ZT86IHN0cmluZztcclxuICBkYXRhPzogQXJyYXk8YW55PjtcclxuICBmaWxsPzogQXJyYXk8c3RyaW5nPjtcclxuICBzdHJva2U/OiBBcnJheTxzdHJpbmc+O1xyXG4gIHdpZHRoPzogQXJyYXk8bnVtYmVyPjtcclxuICByYWRpdXM/OiBBcnJheTxudW1iZXI+O1xyXG4gIGljb24/OiBBcnJheTxzdHJpbmc+O1xyXG4gIHNjYWxlPzogQXJyYXk8bnVtYmVyPjtcclxuICBsYWJlbD86IElnb0xhYmVsO1xyXG4gIGJhc2VTdHlsZT86IHsgW2tleTogc3RyaW5nXTogYW55OyBhbGxvPzogc3RyaW5nIH07XHJcbiAgaG92ZXJTdHlsZT86IFN0eWxlQnlBdHRyaWJ1dGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlU3R5bGUge1xyXG4gIGlnb0xhYmVsPzogSWdvTGFiZWw7XHJcbiAgaWdvU3R5bGU/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElnb0xhYmVsIHtcclxuICBhdHRyaWJ1dGU6IHN0cmluZztcclxuICBzdHlsZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgbWluUmVzb2x1dGlvbj86IG51bWJlcjtcclxuICBtYXhSZXNvbHV0aW9uPzogbnVtYmVyO1xyXG4gIG1pblNjYWxlRGVub20/OiBudW1iZXI7XHJcbiAgbWF4U2NhbGVEZW5vbT86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNYXBib3hTdHlsZSB7XHJcbiAgdXJsOiBzdHJpbmc7XHJcbiAgc291cmNlOiBzdHJpbmc7XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLXN0eWxlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3N0eWxlL3NoYXJlZC92ZWN0b3IvdmVjdG9yLXN0eWxlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcclxuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuaW1wb3J0IG9sU3R5bGUgZnJvbSAnb2wvc3R5bGUvU3R5bGUnO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUNvbW1vblZlY3RvclN0eWxlT3B0aW9uc1xyXG4gIGV4dGVuZHMgQ29tbW9uVmVjdG9yU3R5bGVPcHRpb25zIHtcclxuICBmZWF0dXJlOiBGZWF0dXJlIHwgb2xGZWF0dXJlPE9sR2VvbWV0cnk+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElnb1N0eWxlIGV4dGVuZHMgSWdvU3R5bGVCYXNlIHtcclxuICBjbHVzdGVyQmFzZVN0eWxlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG9sU3R5bGUgfCBvbFN0eWxlW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBJZ29TdHlsZUJhc2Uge1xyXG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcclxuICBob3ZlclN0eWxlPzogU3R5bGVCeUF0dHJpYnV0ZTtcclxuICBpZ29TdHlsZU9iamVjdD86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgbWFwYm94U3R5bGU/OiBNYXBib3hTdHlsZTtcclxuICBzdHlsZUJ5QXR0cmlidXRlPzogU3R5bGVCeUF0dHJpYnV0ZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPdmVybGF5U3R5bGVPcHRpb25zIHtcclxuICBiYXNlPzogQ29tbW9uVmVjdG9yU3R5bGVPcHRpb25zO1xyXG4gIHNlbGVjdGlvbj86IENvbW1vblZlY3RvclN0eWxlT3B0aW9ucztcclxuICBmb2N1cz86IENvbW1vblZlY3RvclN0eWxlT3B0aW9ucztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1vblZlY3RvclN0eWxlT3B0aW9ucyB7XHJcbiAgbWFya2VyQ29sb3I/OiBzdHJpbmcgfCBudW1iZXJbXTsgLy8gbWFya2VyIGZpbGxcclxuICBtYXJrZXJPcGFjaXR5PzogbnVtYmVyOyAvLyBtYXJrZXIgb3BhY2l0eSwgbm90IGFwcGxpZWQgaWYgYSByZ2JhIGlzIHByb3ZpZGVkXHJcbiAgbWFya2VyT3V0bGluZUNvbG9yPzogc3RyaW5nIHwgbnVtYmVyW107IC8vIG1hcmtlciBjb250b3VyXHJcbiAgZmlsbENvbG9yPzogc3RyaW5nIHwgbnVtYmVyW107IC8vIHBvbHlcclxuICBmaWxsT3BhY2l0eT86IG51bWJlcjsgLy8gcG9seSBmaWxsIG9wYWNpdHksIG5vdCBhcHBsaWVkIGlmIGEgcmdiYSBpcyBwcm92aWRlZFxyXG4gIHN0cm9rZUNvbG9yPzogc3RyaW5nIHwgbnVtYmVyW107IC8vIGxpbmUgYW5kIHBvbHlcclxuICBzdHJva2VPcGFjaXR5PzogbnVtYmVyOyAvLyBsaW5lIGFuZCBwb2x5LCBub3QgYXBwbGllZCBpZiBhIHJnYmEgaXMgcHJvdmlkZWRcclxuICBzdHJva2VXaWR0aD86IG51bWJlcjsgLy8gbGluZSBhbmQgcG9seVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlQnlBdHRyaWJ1dGUge1xyXG4gIGFuY2hvcj86IEFycmF5PFtudW1iZXIsIG51bWJlcl0+O1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgYXR0cmlidXRlPzogc3RyaW5nO1xyXG4gIGRhdGE/OiBBcnJheTxhbnk+O1xyXG4gIGZpbGw/OiBBcnJheTxzdHJpbmc+O1xyXG4gIHN0cm9rZT86IEFycmF5PHN0cmluZz47XHJcbiAgd2lkdGg/OiBBcnJheTxudW1iZXI+O1xyXG4gIHJhZGl1cz86IEFycmF5PG51bWJlcj47XHJcbiAgaWNvbj86IEFycmF5PHN0cmluZz47XHJcbiAgc2NhbGU/OiBBcnJheTxudW1iZXI+O1xyXG4gIGxhYmVsPzogSWdvTGFiZWw7XHJcbiAgYmFzZVN0eWxlPzogeyBba2V5OiBzdHJpbmddOiBhbnk7IGFsbG8/OiBzdHJpbmcgfTtcclxuICBob3ZlclN0eWxlPzogU3R5bGVCeUF0dHJpYnV0ZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTdHlsZSB7XHJcbiAgaWdvTGFiZWw/OiBJZ29MYWJlbDtcclxuICBpZ29TdHlsZT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSWdvTGFiZWwge1xyXG4gIGF0dHJpYnV0ZTogc3RyaW5nO1xyXG4gIHN0eWxlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxuICBtaW5SZXNvbHV0aW9uPzogbnVtYmVyO1xyXG4gIG1heFJlc29sdXRpb24/OiBudW1iZXI7XHJcbiAgbWluU2NhbGVEZW5vbT86IG51bWJlcjtcclxuICBtYXhTY2FsZURlbm9tPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1hcGJveFN0eWxlIHtcclxuICB1cmw6IHN0cmluZztcclxuICBzb3VyY2U6IHN0cmluZztcclxufVxyXG4iXX0=
@@ -11,7 +11,7 @@ import { MatListModule } from '@angular/material/list';
11
11
  import * as i4 from '@angular/material/tooltip';
12
12
  import { MatTooltipModule } from '@angular/material/tooltip';
13
13
  import * as i9$1 from '@igo2/common';
14
- import { SecureImagePipe, getEntityId, getEntityTitle, getEntityProperty, getEntityRevision, getEntityIcon, EntityStoreWithStrategy, EntityStoreStrategy, EntityStore, IgoListModule, IgoCollapsibleModule, IgoImageModule, IgoPanelModule, IgoMatBadgeIconModule, IgoCustomHtmlModule, EntityStoreWatcher, EntityTableColumnRenderer, IgoEntityTableModule, IgoKeyValueModule, IgoFormModule, IgoFormFieldComponent, DOMService, EntityStoreFilterSelectionStrategy, IgoEntityModule, IgoDOMModule, DragAndDropDirective, IgoSpinnerModule, IgoDrapDropModule, IgoConfirmDialogModule, getEntityTitleHtml, EntityStoreFilterCustomFuncStrategy, IgoStopPropagationModule, ColorPickerFormFieldModule, IgoFlexibleModule, WidgetService, Workspace, ActionStore, IgoWidgetModule } from '@igo2/common';
14
+ import { SecureImagePipe, getEntityId, getEntityTitle, getEntityProperty, getEntityRevision, getEntityIcon, EntityStore, EntityStoreStrategy, IgoListModule, IgoCollapsibleModule, IgoImageModule, IgoPanelModule, IgoMatBadgeIconModule, IgoCustomHtmlModule, EntityStoreWatcher, EntityTableColumnRenderer, IgoEntityTableModule, IgoKeyValueModule, IgoFormModule, IgoFormFieldComponent, DOMService, EntityStoreFilterSelectionStrategy, IgoEntityModule, IgoDOMModule, DragAndDropDirective, IgoSpinnerModule, IgoDrapDropModule, IgoConfirmDialogModule, getEntityTitleHtml, EntityStoreFilterCustomFuncStrategy, IgoStopPropagationModule, ColorPickerFormFieldModule, IgoFlexibleModule, WidgetService, Workspace, ActionStore, IgoWidgetModule } from '@igo2/common';
15
15
  import * as i4$1 from '@angular/material/button';
16
16
  import { MatButtonModule } from '@angular/material/button';
17
17
  import * as i2 from '@igo2/core';
@@ -1547,6 +1547,12 @@ var TypeCapabilities;
1547
1547
  TypeCapabilities["imagearcgisrest"] = "esriJSON";
1548
1548
  TypeCapabilities["tilearcgisrest"] = "esriJSON";
1549
1549
  })(TypeCapabilities || (TypeCapabilities = {}));
1550
+ var ArcGISRestCapabilitiesLayerTypes;
1551
+ (function (ArcGISRestCapabilitiesLayerTypes) {
1552
+ ArcGISRestCapabilitiesLayerTypes["FeatureLayer"] = "Feature Layer";
1553
+ ArcGISRestCapabilitiesLayerTypes["RasterLayer"] = "Raster Layer";
1554
+ ArcGISRestCapabilitiesLayerTypes["GroupLayer"] = "Group Layer";
1555
+ })(ArcGISRestCapabilitiesLayerTypes || (ArcGISRestCapabilitiesLayerTypes = {}));
1550
1556
 
1551
1557
  class CapabilitiesService {
1552
1558
  http;
@@ -5126,7 +5132,7 @@ class CartoDataSource extends DataSource {
5126
5132
  return legend;
5127
5133
  }
5128
5134
  let htmlString = '<table>';
5129
- if (this.options.config.layers[0].legend !== null) {
5135
+ if (this.options.config.layers[0].legend) {
5130
5136
  this.options.config.layers[0].legend.items.forEach((f) => {
5131
5137
  if (f.visible === true) {
5132
5138
  htmlString +=
@@ -5644,7 +5650,7 @@ function tryBindStoreLayer(store, layer) {
5644
5650
  * features and the map layer to display them on. Synchronization
5645
5651
  * between the store and the layer is handled by strategies.
5646
5652
  */
5647
- class FeatureStore extends EntityStoreWithStrategy {
5653
+ class FeatureStore extends EntityStore {
5648
5654
  /**
5649
5655
  * Vector layer to display the features on
5650
5656
  */
@@ -7161,7 +7167,7 @@ class Overlay {
7161
7167
  /**
7162
7168
  * Add a feature to the overlay and, optionally, move to it
7163
7169
  * @param feature Feature
7164
- * @param motion Optional: Apply this motion to the map view
7170
+ * @param motion Optional: Apply this motion to the map view (default on FeatureMotion.Default)
7165
7171
  */
7166
7172
  addFeature(feature, motion = FeatureMotion.Default) {
7167
7173
  this.addFeatures([feature], motion);
@@ -7884,6 +7890,7 @@ class MapViewController extends MapController {
7884
7890
  this.observerKeys.push(this.olMap.getView().on('change:rotation', (evt) => {
7885
7891
  this.rotation$.next(evt.target.getRotation());
7886
7892
  }));
7893
+ this.rotation$.next(this.getRotation());
7887
7894
  }
7888
7895
  /**
7889
7896
  * Teardown any observers
@@ -9068,14 +9075,14 @@ class HoverFeatureDirective {
9068
9075
  * @internal
9069
9076
  */
9070
9077
  ngOnInit() {
9071
- this.listenToMapPointerMove();
9072
- this.subscribeToPointerStore();
9073
- this.listenToMapClick();
9074
9078
  this.map.status$
9075
9079
  .pipe(first((status) => status === SubjectStatus.Done))
9076
9080
  .subscribe(() => {
9077
9081
  this.store = new FeatureStore([], { map: this.map });
9078
9082
  this.initStore();
9083
+ this.listenToMapPointerMove();
9084
+ this.subscribeToPointerStore();
9085
+ this.listenToMapClick();
9079
9086
  });
9080
9087
  // To handle context change without using the contextService.
9081
9088
  this.layers$$ = this.map.layers$.subscribe((layers) => {
@@ -13155,17 +13162,19 @@ class CatalogService {
13155
13162
  })
13156
13163
  .filter((item) => item !== undefined);
13157
13164
  }
13158
- /// ERSI
13159
13165
  getArcGISRESTItems(catalog, capabilities) {
13160
- if (!capabilities) {
13166
+ if (!capabilities || !capabilities.layers) {
13167
+ this.messageService.error('igo.geo.catalog.someUnavailable', 'igo.geo.catalog.unavailableTitle');
13161
13168
  return [];
13162
13169
  }
13170
+ const groups = !capabilities.layers
13171
+ ? []
13172
+ : capabilities.layers.filter((layer) => layer.subLayerIds);
13163
13173
  const layers = !capabilities.layers
13164
13174
  ? []
13165
- : capabilities.layers.filter((layer) => !layer.type || layer.type === 'Feature Layer');
13166
- if (!capabilities.layers) {
13167
- this.messageService.error('igo.geo.catalog.someUnavailable', 'igo.geo.catalog.unavailableTitle');
13168
- }
13175
+ : capabilities.layers.filter((layer) => !layer.type ||
13176
+ layer.type === ArcGISRestCapabilitiesLayerTypes.FeatureLayer ||
13177
+ layer.type === ArcGISRestCapabilitiesLayerTypes.RasterLayer);
13169
13178
  const regexes = (catalog.regFilters || []).map((pattern) => new RegExp(pattern));
13170
13179
  let abstract;
13171
13180
  if (capabilities.serviceDescription &&
@@ -13173,17 +13182,11 @@ class CatalogService {
13173
13182
  const regex = /(<([^>]+)>)/gi;
13174
13183
  abstract = capabilities.serviceDescription.replace(regex, '');
13175
13184
  }
13176
- return layers
13185
+ const items = layers
13177
13186
  .map((layer) => {
13178
13187
  const propertiesToForce = this.computeForcedProperties(layer.name, catalog.forcedProperties);
13179
- let baseAbstract;
13188
+ let baseAbstract = catalog.abstract;
13180
13189
  let extern = true;
13181
- if (layer.Abstract) {
13182
- baseAbstract = layer.Abstract;
13183
- }
13184
- else if (!layer.Abstract && catalog.abstract) {
13185
- baseAbstract = catalog.abstract;
13186
- }
13187
13190
  let metadataUrl = propertiesToForce?.metadataUrl || propertiesToForce?.metadataUrlAll;
13188
13191
  let metadataAbstract = propertiesToForce?.metadataAbstract ||
13189
13192
  propertiesToForce?.metadataAbstractAll ||
@@ -13198,21 +13201,16 @@ class CatalogService {
13198
13201
  propertiesToForce?.metadataUrlAll) {
13199
13202
  extern = false;
13200
13203
  }
13201
- if (this.testLayerRegexes(layer.id, regexes) === false) {
13204
+ if (this.testLayerRegexes(layer.id.toString(), regexes) === false) {
13202
13205
  return undefined;
13203
13206
  }
13204
13207
  const baseSourceOptions = {
13205
13208
  type: TypeCatalog[catalog.type],
13206
13209
  url: catalog.url,
13207
- crossOrigin: catalog.setCrossOriginAnonymous
13208
- ? 'anonymous'
13209
- : undefined,
13210
- layer: layer.id,
13210
+ layer: layer.id.toString(),
13211
13211
  queryable: true,
13212
- queryFormat: 'esrijson',
13213
- matrixSet: catalog.matrixSet,
13214
- optionsFromCapabilities: true,
13215
- style: 'default'
13212
+ queryFormat: QueryFormat.ESRIJSON,
13213
+ optionsFromCapabilities: true
13216
13214
  };
13217
13215
  const sourceOptions = Object.assign({}, baseSourceOptions, catalog.sourceOptions);
13218
13216
  return ObjectUtils.removeUndefined({
@@ -13222,7 +13220,6 @@ class CatalogService {
13222
13220
  ? propertiesToForce.title
13223
13221
  : layer.name,
13224
13222
  externalProvider: catalog.externalProvider,
13225
- address: catalog.id,
13226
13223
  options: {
13227
13224
  sourceOptions,
13228
13225
  minResolution: getResolutionFromScale(layer.maxScale),
@@ -13231,12 +13228,59 @@ class CatalogService {
13231
13228
  url: metadataUrl,
13232
13229
  extern,
13233
13230
  abstract: metadataAbstract,
13234
- type: baseSourceOptions.type
13231
+ type: catalog.type
13235
13232
  }
13236
13233
  }
13237
13234
  });
13238
13235
  })
13239
13236
  .filter((item) => item !== undefined);
13237
+ const groupHandledLayersIds = [];
13238
+ const groupedItems = groups
13239
+ .map((group) => {
13240
+ return {
13241
+ options: undefined,
13242
+ address: `catalog.group.${group.name}`,
13243
+ id: `catalog.group.${group.name}`,
13244
+ type: CatalogItemType.Group,
13245
+ externalProvider: catalog.externalProvider,
13246
+ sortDirection: catalog.sortDirection,
13247
+ title: group.name,
13248
+ items: items
13249
+ .filter((i) => {
13250
+ const subLayerIdsStr = group.subLayerIds.map((r) => r.toString());
13251
+ return subLayerIdsStr.includes(i.options.sourceOptions.layer);
13252
+ })
13253
+ .map((i) => {
13254
+ groupHandledLayersIds.push(i.id);
13255
+ return Object.assign({}, i, {
13256
+ address: `catalog.group.${group.name}`
13257
+ });
13258
+ })
13259
+ };
13260
+ })
13261
+ .filter((g) => g.items.length);
13262
+ if (groups) {
13263
+ const TitleOrId = catalog.title || catalog.id;
13264
+ const nonHandledLayers = items
13265
+ .filter((i) => !groupHandledLayersIds.includes(i.id))
13266
+ .map((i) => Object.assign({}, i, {
13267
+ address: `catalog.group.${TitleOrId}`
13268
+ }));
13269
+ if (nonHandledLayers.length) {
13270
+ const nonHandledGroup = {
13271
+ options: undefined,
13272
+ address: `catalog.group.${TitleOrId}`,
13273
+ id: `catalog.group.${TitleOrId}`,
13274
+ type: CatalogItemType.Group,
13275
+ externalProvider: catalog.externalProvider,
13276
+ sortDirection: catalog.sortDirection,
13277
+ title: TitleOrId,
13278
+ items: nonHandledLayers
13279
+ };
13280
+ groupedItems.push(nonHandledGroup);
13281
+ }
13282
+ }
13283
+ return groups ? groupedItems : items;
13240
13284
  }
13241
13285
  testLayerRegexes(layerName, regexes) {
13242
13286
  if (regexes.length === 0) {
@@ -17200,6 +17244,10 @@ function baseLayersSwitcherSlideInOut() {
17200
17244
  width: '40px',
17201
17245
  overflow: 'hidden'
17202
17246
  })),
17247
+ state('collapseMap', style({
17248
+ height: '80px',
17249
+ overflow: 'hidden'
17250
+ })),
17203
17251
  state('expand', style({
17204
17252
  overflow: 'hidden'
17205
17253
  })),
@@ -17285,19 +17333,17 @@ class MiniBaseMapComponent {
17285
17333
  if (!linkedLayers) {
17286
17334
  return;
17287
17335
  }
17288
- const currentLinkedId = linkedLayers.linkId;
17289
- const currentLinks = linkedLayers.links;
17290
- const isParentLayer = currentLinks ? true : false;
17291
- if (isParentLayer &&
17292
- currentLinkedId === baselayer.options.linkedLayers.linkId) {
17336
+ const links = linkedLayers.links;
17337
+ const isParentLayer = links ? true : false;
17338
+ if (isParentLayer) {
17293
17339
  // search for child layers
17294
- currentLinks.map((link) => {
17340
+ links.map((link) => {
17295
17341
  link.linkedIds.map((linkedId) => {
17296
- const layerToApply = this.map.layers.find((l) => l.options.linkedLayers?.linkId === linkedId);
17342
+ const layerToApply = this.map.layers.find((layer) => layer.options.linkedLayers?.linkId === linkedId);
17297
17343
  if (layerToApply) {
17298
17344
  const linkedLayerOptions = Object.assign(Object.create(layerToApply.options), layerToApply.options, {
17299
17345
  zIndex: 9000,
17300
- visible: true,
17346
+ visible: layerToApply.options.linkedLayers?.showInMiniBaseMap ?? true,
17301
17347
  baseLayer: false
17302
17348
  });
17303
17349
  this.basemap.addLayer(this.layerService.createLayer(linkedLayerOptions));
@@ -17375,11 +17421,11 @@ class BaseLayersSwitcherComponent {
17375
17421
  return blHidden.length + 1 === bl.length ? blHidden : bl;
17376
17422
  }
17377
17423
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseLayersSwitcherComponent, deps: [{ token: i2.MediaService }], target: i0.ɵɵFactoryTarget.Component });
17378
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseLayersSwitcherComponent, selector: "igo-baselayers-switcher", inputs: { map: "map", useStaticIcon: "useStaticIcon" }, ngImport: i0, template: "<div\r\n *ngIf=\"baseLayers.length > 0\"\r\n class=\"igo-baselayers-switcher-container\"\r\n [ngClass]=\"{ 'container-expand': expand }\"\r\n [@baseLayerSwitcherState]=\"\r\n expand ? 'expand' : useStaticIcon ? 'collapseIcon' : ''\r\n \"\r\n (@baseLayerSwitcherState.start)=\"showButton = false\"\r\n (@baseLayerSwitcherState.done)=\"showButton = true\"\r\n (click)=\"collapseOrExpand()\"\r\n>\r\n <div\r\n *ngIf=\"useStaticIcon && !expand && showButton\"\r\n class=\"igo-baselayers-switcher-button-container\"\r\n >\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.geo.mapButtons.baselayerSwitcher' | translate\"\r\n matTooltipPosition=\"right\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"image-multiple\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"basemap-list\">\r\n <igo-mini-basemap\r\n *ngFor=\"let baseLayer of baseLayers; let i = index\"\r\n [map]=\"map\"\r\n [baseLayer]=\"baseLayer\"\r\n [title]=\"\r\n baseLayers.length > 2 && !expand\r\n ? ('igo.geo.baselayersSwitcher.title' | translate)\r\n : baseLayer.title\r\n \"\r\n [display]=\"expand || (i === 0 && !useStaticIcon)\"\r\n [disabled]=\"!expand && baseLayers.length > 1\"\r\n >\r\n </igo-mini-basemap>\r\n </div>\r\n\r\n <div *ngIf=\"hasMoreThanTwo\" class=\"more-baselayers\">\r\n <mat-icon\r\n class=\"material-icons mat-icon\"\r\n color=\"primary\"\r\n svgIcon=\"menu-down\"\r\n ></mat-icon>\r\n </div>\r\n</div>\r\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}.basemap-list igo-mini-basemap{display:block}.basemap-list igo-mini-basemap:not(:first-child){margin-top:4px}.igo-baselayers-switcher-container{height:auto;position:relative}.container-expand{overflow:hidden;border-width:0}.more-baselayers{width:80px;height:20px;background-color:#fff;text-align:center;cursor:pointer}.more-baselayers:hover{background-color:#efefef}.igo-baselayers-switcher-button-container{width:40px;background-color:#fff}.igo-baselayers-switcher-button-container:hover{background-color:#efefef}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: MiniBaseMapComponent, selector: "igo-mini-basemap", inputs: ["map", "disabled", "title", "display", "baseLayer"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], animations: [baseLayersSwitcherSlideInOut()] });
17424
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BaseLayersSwitcherComponent, selector: "igo-baselayers-switcher", inputs: { map: "map", useStaticIcon: "useStaticIcon" }, ngImport: i0, template: "<div\r\n *ngIf=\"baseLayers.length > 0\"\r\n class=\"igo-baselayers-switcher-container\"\r\n [ngClass]=\"{ 'container-expand': expand }\"\r\n [@baseLayerSwitcherState]=\"\r\n expand ? 'expand' : useStaticIcon ? 'collapseIcon' : 'collapseMap'\r\n \"\r\n (@baseLayerSwitcherState.start)=\"showButton = false\"\r\n (@baseLayerSwitcherState.done)=\"showButton = true\"\r\n (click)=\"collapseOrExpand()\"\r\n>\r\n <div\r\n *ngIf=\"useStaticIcon && !expand && showButton\"\r\n class=\"igo-baselayers-switcher-button-container\"\r\n >\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.geo.mapButtons.baselayerSwitcher' | translate\"\r\n matTooltipPosition=\"right\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"image-multiple\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"basemap-list\">\r\n <igo-mini-basemap\r\n *ngFor=\"let baseLayer of baseLayers; let i = index\"\r\n [map]=\"map\"\r\n [baseLayer]=\"baseLayer\"\r\n [title]=\"\r\n baseLayers.length > 2 && !expand\r\n ? ('igo.geo.baselayersSwitcher.title' | translate)\r\n : baseLayer.title\r\n \"\r\n [display]=\"expand || (i === 0 && !useStaticIcon)\"\r\n [disabled]=\"!expand && baseLayers.length > 1\"\r\n >\r\n </igo-mini-basemap>\r\n </div>\r\n\r\n <div *ngIf=\"hasMoreThanTwo\" class=\"more-baselayers\">\r\n <mat-icon\r\n class=\"material-icons mat-icon\"\r\n color=\"primary\"\r\n svgIcon=\"menu-down\"\r\n ></mat-icon>\r\n </div>\r\n</div>\r\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}.basemap-list igo-mini-basemap{display:block}.basemap-list igo-mini-basemap:not(:first-child){margin-top:4px}.igo-baselayers-switcher-container{height:auto;position:relative}.container-expand{overflow:hidden;border-width:0}.more-baselayers{width:80px;height:20px;background-color:#fff;text-align:center;cursor:pointer}.more-baselayers:hover{background-color:#efefef}.igo-baselayers-switcher-button-container{width:40px;background-color:#fff}.igo-baselayers-switcher-button-container:hover{background-color:#efefef}\n"], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: MiniBaseMapComponent, selector: "igo-mini-basemap", inputs: ["map", "disabled", "title", "display", "baseLayer"] }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], animations: [baseLayersSwitcherSlideInOut()] });
17379
17425
  }
17380
17426
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BaseLayersSwitcherComponent, decorators: [{
17381
17427
  type: Component,
17382
- args: [{ selector: 'igo-baselayers-switcher', animations: [baseLayersSwitcherSlideInOut()], template: "<div\r\n *ngIf=\"baseLayers.length > 0\"\r\n class=\"igo-baselayers-switcher-container\"\r\n [ngClass]=\"{ 'container-expand': expand }\"\r\n [@baseLayerSwitcherState]=\"\r\n expand ? 'expand' : useStaticIcon ? 'collapseIcon' : ''\r\n \"\r\n (@baseLayerSwitcherState.start)=\"showButton = false\"\r\n (@baseLayerSwitcherState.done)=\"showButton = true\"\r\n (click)=\"collapseOrExpand()\"\r\n>\r\n <div\r\n *ngIf=\"useStaticIcon && !expand && showButton\"\r\n class=\"igo-baselayers-switcher-button-container\"\r\n >\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.geo.mapButtons.baselayerSwitcher' | translate\"\r\n matTooltipPosition=\"right\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"image-multiple\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"basemap-list\">\r\n <igo-mini-basemap\r\n *ngFor=\"let baseLayer of baseLayers; let i = index\"\r\n [map]=\"map\"\r\n [baseLayer]=\"baseLayer\"\r\n [title]=\"\r\n baseLayers.length > 2 && !expand\r\n ? ('igo.geo.baselayersSwitcher.title' | translate)\r\n : baseLayer.title\r\n \"\r\n [display]=\"expand || (i === 0 && !useStaticIcon)\"\r\n [disabled]=\"!expand && baseLayers.length > 1\"\r\n >\r\n </igo-mini-basemap>\r\n </div>\r\n\r\n <div *ngIf=\"hasMoreThanTwo\" class=\"more-baselayers\">\r\n <mat-icon\r\n class=\"material-icons mat-icon\"\r\n color=\"primary\"\r\n svgIcon=\"menu-down\"\r\n ></mat-icon>\r\n </div>\r\n</div>\r\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}.basemap-list igo-mini-basemap{display:block}.basemap-list igo-mini-basemap:not(:first-child){margin-top:4px}.igo-baselayers-switcher-container{height:auto;position:relative}.container-expand{overflow:hidden;border-width:0}.more-baselayers{width:80px;height:20px;background-color:#fff;text-align:center;cursor:pointer}.more-baselayers:hover{background-color:#efefef}.igo-baselayers-switcher-button-container{width:40px;background-color:#fff}.igo-baselayers-switcher-button-container:hover{background-color:#efefef}\n"] }]
17428
+ args: [{ selector: 'igo-baselayers-switcher', animations: [baseLayersSwitcherSlideInOut()], template: "<div\r\n *ngIf=\"baseLayers.length > 0\"\r\n class=\"igo-baselayers-switcher-container\"\r\n [ngClass]=\"{ 'container-expand': expand }\"\r\n [@baseLayerSwitcherState]=\"\r\n expand ? 'expand' : useStaticIcon ? 'collapseIcon' : 'collapseMap'\r\n \"\r\n (@baseLayerSwitcherState.start)=\"showButton = false\"\r\n (@baseLayerSwitcherState.done)=\"showButton = true\"\r\n (click)=\"collapseOrExpand()\"\r\n>\r\n <div\r\n *ngIf=\"useStaticIcon && !expand && showButton\"\r\n class=\"igo-baselayers-switcher-button-container\"\r\n >\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.geo.mapButtons.baselayerSwitcher' | translate\"\r\n matTooltipPosition=\"right\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"image-multiple\"></mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"basemap-list\">\r\n <igo-mini-basemap\r\n *ngFor=\"let baseLayer of baseLayers; let i = index\"\r\n [map]=\"map\"\r\n [baseLayer]=\"baseLayer\"\r\n [title]=\"\r\n baseLayers.length > 2 && !expand\r\n ? ('igo.geo.baselayersSwitcher.title' | translate)\r\n : baseLayer.title\r\n \"\r\n [display]=\"expand || (i === 0 && !useStaticIcon)\"\r\n [disabled]=\"!expand && baseLayers.length > 1\"\r\n >\r\n </igo-mini-basemap>\r\n </div>\r\n\r\n <div *ngIf=\"hasMoreThanTwo\" class=\"more-baselayers\">\r\n <mat-icon\r\n class=\"material-icons mat-icon\"\r\n color=\"primary\"\r\n svgIcon=\"menu-down\"\r\n ></mat-icon>\r\n </div>\r\n</div>\r\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}.basemap-list igo-mini-basemap{display:block}.basemap-list igo-mini-basemap:not(:first-child){margin-top:4px}.igo-baselayers-switcher-container{height:auto;position:relative}.container-expand{overflow:hidden;border-width:0}.more-baselayers{width:80px;height:20px;background-color:#fff;text-align:center;cursor:pointer}.more-baselayers:hover{background-color:#efefef}.igo-baselayers-switcher-button-container{width:40px;background-color:#fff}.igo-baselayers-switcher-button-container:hover{background-color:#efefef}\n"] }]
17383
17429
  }], ctorParameters: function () { return [{ type: i2.MediaService }]; }, propDecorators: { map: [{
17384
17430
  type: Input
17385
17431
  }], useStaticIcon: [{
@@ -35454,12 +35500,12 @@ class SearchPointerSummaryDirective {
35454
35500
  */
35455
35501
  ngOnInit() {
35456
35502
  this.listenToMapPointerMove();
35457
- this.subscribeToPointerStore();
35458
35503
  this.map.status$
35459
35504
  .pipe(first$1((status) => status === SubjectStatus.Done))
35460
35505
  .subscribe(() => {
35461
35506
  this.store = new FeatureStore([], { map: this.map });
35462
35507
  this.initStore();
35508
+ this.subscribeToPointerStore();
35463
35509
  });
35464
35510
  // To handle context change without using the contextService.
35465
35511
  this.layers$$ = this.map.layers$.subscribe((layers) => {
@@ -41254,5 +41300,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
41254
41300
  * Generated bundle index. Do not edit.
41255
41301
  */
41256
41302
 
41257
- export { AddCatalogDialogComponent, ArcGISRestDataSource, BaseLayersSwitcherComponent, CadastreSearchSource, CapabilitiesService, CartoDataSource, Catalog, CatalogBrowserComponent, CatalogItemType, CatalogLibaryComponent, CatalogService, ClusterDataSource, ConfigFileToGeoDBService, ConfirmationPopupComponent, CoordinatesReverseSearchSource, CoordinatesReverseSearchSourceFactory, CoordinatesSearchResultFormatter, CoordinatesUnit, DDtoDMS, DataService, DataSource, DataSourceService, DirectionRelativePositionType, DirectionType, DirectionsButtonsComponent, DirectionsComponent, DirectionsFormat, DirectionsInputsComponent, DirectionsResultsComponent, DirectionsService, DirectionsSource, DownloadButtonComponent, DownloadService, DrawComponent, DrawControl, DrawIconService, DrawStyleService, DropGeoFileDirective, EditionWorkspace, EditionWorkspaceService, EncodingFormat, EsriStyleGenerator, ExportButtonComponent, ExportError, ExportFormat, ExportInvalidFileError, ExportNothingToExportError, ExportService, FEATURE, FeatureDataSource, FeatureDetailsComponent, FeatureDetailsDirective, FeatureFormComponent, FeatureMotion, FeatureStore, FeatureStoreInMapExtentStrategy, FeatureStoreInMapResolutionStrategy, FeatureStoreLoadingLayerStrategy, FeatureStoreLoadingStrategy, FeatureStoreSearchIndexStrategy, FeatureStoreSelectionStrategy, FeatureWorkspace, FeatureWorkspaceService, FilterableDataSourcePipe, GeoDBService, GeoNetworkService, GeoPropertiesStrategy, GeolocateButtonComponent, GeolocationOverlayType, GeometryFormFieldComponent, GeometryFormFieldInputComponent, GeometrySliceError, GeometrySliceLineStringError, GeometrySliceMultiPolygonError, GeometrySliceTooManyIntersectionError, GeometryType, GoogleLinks, HomeExtentButtonComponent, HoverFeatureDirective, IChercheReverseSearchSource, IChercheSearchResultFormatter, IChercheSearchSource, ILayerSearchResultFormatter, ILayerSearchSource, IgoCatalogBrowserModule, IgoCatalogLibraryModule, IgoCatalogModule, IgoConfirmationPopupModule, IgoDataSourceModule, IgoDirectionsModule, IgoDownloadModule, IgoDrawModule, IgoDrawingToolModule, IgoFeatureDetailsModule, IgoFeatureFormModule, IgoFeatureModule, IgoFilterModule, IgoGeoModule, IgoGeoWorkspaceModule, IgoGeometryFormFieldModule, IgoGeometryModule, IgoHttpParameterCodec, IgoImportExportModule, IgoLayerModule, IgoMap, IgoMapModule, IgoMeasureModule, IgoMeasurerModule, IgoMetadataModule, IgoOgcFilterModule, IgoOverlayModule, IgoPrintModule, IgoQueryModule, IgoSearchBarModule, IgoSearchModule, IgoSearchResultsModule, IgoSearchSelectorModule, IgoSearchSettingsModule, IgoStyleListModule, IgoStyleModule, IgoToastModule, IgoWktModule, IgoWorkspaceSelectorModule, IgoWorkspaceUpdatorModule, ImageArcGISRestDataSource, ImageLayer, ImageWatcher, ImportError, ImportExportComponent, ImportInvalidFileError, ImportNothingToImportError, ImportOgreServerError, ImportSRSError, ImportService, ImportSizeError, ImportUnreadableFileError, InfoSectionComponent, InsertSourceInsertDBEnum, LAYER, LabelType, Layer, LayerDBService, LayerItemComponent, LayerLegendComponent, LayerLegendItemComponent, LayerLegendListBindingDirective, LayerLegendListComponent, LayerListBindingDirective, LayerListComponent, LayerListControlsEnum, LayerListDisplacement, LayerListSelectVisibleEnum, LayerListToolComponent, LayerListToolControlsEnum, LayerListToolService, LayerService, LinkedProperties, MEASURE_UNIT_AUTO, MVTDataSource, MapBase, MapBrowserComponent, MapCenterComponent, MapController, MapGeolocationController, MapOfflineDirective, MapService, MapViewAction, MapViewController, MeasureAreaUnit, MeasureAreaUnitAbbreviation, MeasureFormatPipe, MeasureLengthUnit, MeasureLengthUnitAbbreviation, MeasureType, MeasurerComponent, MenuButtonComponent, MetadataAbstractComponent, MetadataButtonComponent, MetadataService, MiniBaseMapComponent, ModifyControl, NominatimSearchSource, OGCFilterService, OSMDataSource, OfflineButtonComponent, OgcFilterButtonComponent, OgcFilterComponent, OgcFilterFormComponent, OgcFilterOperator, OgcFilterOperatorType, OgcFilterSelectionComponent, OgcFilterTimeComponent, OgcFilterTimeSliderComponent, OgcFilterWidget, OgcFilterWriter, OgcFilterableFormComponent, OgcFilterableItemComponent, OgcFilterableListBindingDirective, OgcFilterableListComponent, OlDragSelectInteraction, OptionsApiService, OptionsService, OsmLinks, OsrmDirectionsSource, Overlay, OverlayAction, OverlayDirective, OverlayService, PointerPositionDirective, PrintComponent, PrintFormComponent, PrintLegendPosition, PrintOrientation, PrintOutputFormat, PrintPaperFormat, PrintResolution, PrintSaveImageFormat, PrintService, ProjectionService, PropertyTypeDetectorService, ProposalType, QueryDirective, QueryFormat, QueryFormatMimeType, QueryHtmlTarget, QuerySearchSource, QueryService, ResponseType, RotationButtonComponent, RoutesFeatureStore, SEARCH_TYPES, STYLELIST_OPTIONS, SearchBarComponent, SearchPointerSummaryDirective, SearchResultAddButtonComponent, SearchResultMode, SearchResultsComponent, SearchResultsItemComponent, SearchSelectorComponent, SearchService, SearchSettingsComponent, SearchSource, SearchSourceService, SliceControl, SourceDirectionsType, SpatialFilterItemComponent, SpatialFilterItemType, SpatialFilterListComponent, SpatialFilterQueryType, SpatialFilterService, SpatialFilterType, SpatialFilterTypeComponent, StepFeatureStore, StopsFeatureStore, StopsStore, StoredQueriesReverseSearchSource, StoredQueriesSearchSource, StyleListService, StyleModalDrawingComponent, StyleModalLayerButtonComponent, StyleModalLayerComponent, StyleService, SwipeControlComponent, TileArcGISRestDataSource, TileDebugDataSource, TileLayer, TileWatcher, TimeFilterButtonComponent, TimeFilterFormComponent, TimeFilterItemComponent, TimeFilterListBindingDirective, TimeFilterListComponent, TimeFilterService, TimeFilterStyle, TimeFilterType, ToastComponent, TooltipType, TrackFeatureButtonComponent, TypeCapabilities, TypeCatalog, VectorLayer, VectorTileLayer, VectorWatcher, WFSDataSource, WFSService, WMSDataSource, WMTSDataSource, WakeLockButtonComponent, WebSocketDataSource, WfsWorkspace, WfsWorkspaceService, WktService, WorkspaceSearchSource, WorkspaceSelectorDirective, WorkspaceUpdatorDirective, XYZDataSource, ZoomButtonComponent, addDirectionToRoutesFeatureStore, addLayerAndFeaturesStyledToMap, addLayerAndFeaturesToMap, addLinearRingToOlPolygon, addOrRemoveLayer, addStopToStopsFeatureStore, addStopToStore, buildUrl, cadastreSearchSourceFactory, checkWfsParams, clearOlGeometryMidpoints, computeBestAreaUnit, computeBestLengthUnit, computeLayerTitleFromFile, computeMVTOptionsOnHover, computeOlFeatureExtent, computeOlFeaturesDiff, computeOlFeaturesExtent, computeProjectionsConstraints, computeRelativePosition, computeStopsPosition, computeTermSimilarity, convertDDToDMS, createDefaultTileGrid, createDrawHoleInteractionStyle, createDrawInteractionStyle, createFilterInMapExtentOrResolutionStrategy, createInteractionStyle, createMeasureInteractionStyle, createMeasureLayerStyle, createOlTooltipAtPoint, createOlTooltipDrawAtPoint, createOverlayDefaultStyle, createOverlayLayer, createOverlayLayerStyle, createOverlayMarkerStyle, createTableTemplate, ctrlKeyDown, defaultCoordinatesSearchResultFormatterFactory, defaultEpsg, defaultFieldNameGeometry, defaultIChercheSearchResultFormatterFactory, defaultMaxFeatures, defaultWfsVersion, directionsStyle, entitiesToRowData, exportToCSV, featureFromOl, featureRandomStyle, featureRandomStyleFunction, featureToOl, featureToSearchResult, featuresAreOutOfView, featuresAreTooDeepInView, findDiff, formatDistance, formatDuration, formatInstruction, formatMeasure, formatScale, formatWFSQueryString, generateArcgisRestIdFromSourceOptions, generateFeatureIdFromSourceOptions, generateId, generateIdFromSourceOptions, generateWMSIdFromSourceOptions, generateWMTSIdFromSourceOptions, generateWfsIdFromSourceOptions, generateXYZIdFromSourceOptions, getAllChildLayersByDeletion, getAllChildLayersByProperty, getCommonVectorSelectedStyle, getCommonVectorStyle, getDirectChildLayersByDeletion, getDirectChildLayersByProperty, getDirectParentLayerByDeletion, getDirectParentLayerByProperty, getFileExtension, getFormatFromOptions, getGeoServiceAction, getIgoLayerByLinkId, getLayersLegends, getLinkedLayersOptions, getMousePositionFromOlGeometryEvent, getOlTooltipAtCenter, getOlTooltipsAtMidpoints, getResolutionFromScale, getRootParentByDeletion, getRootParentByProperty, getRowsInMapExtent, getScaleFromResolution, getSelectedOnly, getTooltipsOfOlGeometry, gmlRegex, handleFileExportError, handleFileExportSuccess, handleFileImportError, handleFileImportSuccess, handleInvalidFileImportError, handleLayerPropertyChange, handleNothingToExportError, handleNothingToImportError, handleOgreServerImportError, handleSRSImportError, handleSizeFileImportError, handleUnreadbleFileImportError, hideOlFeature, hoverFeatureMarkerStyle, ichercheReverseSearchSourceFactory, ichercheSearchSourceFactory, ilayerSearchResultFormatterFactory, ilayerSearchSourceFactory, initLayerSyncFromRootParentLayers, initRoutesFeatureStore, initStepFeatureStore, initStopsFeatureStore, jsonRegex, layerFeatureIsQueryable, layerHasLinkDeletion, layerHasLinkWithProperty, layerIsQueryable, lonLatConversion, mapExtentStrategyActiveToolTip, measureOlGeometry, measureOlGeometryArea, measureOlGeometryLength, metersToFeet, metersToKilometers, metersToMiles, metersToUnit, moveToOlFeatures, mtmZoneFromLonLat, noElementSelected, nominatimSearchSourceFactory, ogcFilterWidgetFactory, olLayerFeatureIsQueryable, olLayerIsQueryable, olStyleToBasicIgoStyle, optionsApiFactory, osrmDirectionsSourcesFactory, pointerPositionSummaryMarkerStyle, provideCadastreSearchSource, provideCoordinatesReverseSearchSource, provideDefaultCoordinatesSearchResultFormatter, provideDefaultIChercheSearchResultFormatter, provideIChercheReverseSearchSource, provideIChercheSearchSource, provideILayerSearchResultFormatter, provideILayerSearchSource, provideNominatimSearchSource, provideOgcFilterWidget, provideOptionsApi, provideOsrmDirectionsSource, provideSearchSourceService, provideStoredQueriesReverseSearchSource, provideStoredQueriesSearchSource, provideStyleListLoader, provideStyleListOptions, provideWorkspaceSearchSource, removeStopFromStore, renderFeatureFromOl, roundCoordTo, roundCoordToString, scaleExtent, searchSourceServiceFactory, setRowsInMapExtent, setSelectedOnly, sliceOlGeometry, sliceOlLineString, sliceOlPolygon, sourceCanReverseSearch, sourceCanReverseSearchAsSummary, sourceCanSearch, squareMetersToAcres, squareMetersToHectares, squareMetersToSquareFeet, squareMetersToSquareKilometers, squareMetersToSquareMiles, squareMetersToUnit, standardizeUrl, storedqueriesReverseSearchSourceFactory, storedqueriesSearchSourceFactory, stringToLonLat, styleListFactory, translateBearing, translateModifier, tryAddLoadingStrategy, tryAddSelectionStrategy, tryBindStoreLayer, updateOlGeometryCenter, updateOlGeometryMidpoints, updateOlTooltipAtCenter, updateOlTooltipDrawAtCenter, updateOlTooltipsAtMidpoints, updateOlTooltipsDrawAtMidpoints, updateStoreSorting, utmZoneFromLonLat, viewStatesAreEqual, workspaceSearchSourceFactory, zoneMtm, zoneUtm };
41303
+ export { AddCatalogDialogComponent, ArcGISRestCapabilitiesLayerTypes, ArcGISRestDataSource, BaseLayersSwitcherComponent, CadastreSearchSource, CapabilitiesService, CartoDataSource, Catalog, CatalogBrowserComponent, CatalogItemType, CatalogLibaryComponent, CatalogService, ClusterDataSource, ConfigFileToGeoDBService, ConfirmationPopupComponent, CoordinatesReverseSearchSource, CoordinatesReverseSearchSourceFactory, CoordinatesSearchResultFormatter, CoordinatesUnit, DDtoDMS, DataService, DataSource, DataSourceService, DirectionRelativePositionType, DirectionType, DirectionsButtonsComponent, DirectionsComponent, DirectionsFormat, DirectionsInputsComponent, DirectionsResultsComponent, DirectionsService, DirectionsSource, DownloadButtonComponent, DownloadService, DrawComponent, DrawControl, DrawIconService, DrawStyleService, DropGeoFileDirective, EditionWorkspace, EditionWorkspaceService, EncodingFormat, EsriStyleGenerator, ExportButtonComponent, ExportError, ExportFormat, ExportInvalidFileError, ExportNothingToExportError, ExportService, FEATURE, FeatureDataSource, FeatureDetailsComponent, FeatureDetailsDirective, FeatureFormComponent, FeatureMotion, FeatureStore, FeatureStoreInMapExtentStrategy, FeatureStoreInMapResolutionStrategy, FeatureStoreLoadingLayerStrategy, FeatureStoreLoadingStrategy, FeatureStoreSearchIndexStrategy, FeatureStoreSelectionStrategy, FeatureWorkspace, FeatureWorkspaceService, FilterableDataSourcePipe, GeoDBService, GeoNetworkService, GeoPropertiesStrategy, GeolocateButtonComponent, GeolocationOverlayType, GeometryFormFieldComponent, GeometryFormFieldInputComponent, GeometrySliceError, GeometrySliceLineStringError, GeometrySliceMultiPolygonError, GeometrySliceTooManyIntersectionError, GeometryType, GoogleLinks, HomeExtentButtonComponent, HoverFeatureDirective, IChercheReverseSearchSource, IChercheSearchResultFormatter, IChercheSearchSource, ILayerSearchResultFormatter, ILayerSearchSource, IgoCatalogBrowserModule, IgoCatalogLibraryModule, IgoCatalogModule, IgoConfirmationPopupModule, IgoDataSourceModule, IgoDirectionsModule, IgoDownloadModule, IgoDrawModule, IgoDrawingToolModule, IgoFeatureDetailsModule, IgoFeatureFormModule, IgoFeatureModule, IgoFilterModule, IgoGeoModule, IgoGeoWorkspaceModule, IgoGeometryFormFieldModule, IgoGeometryModule, IgoHttpParameterCodec, IgoImportExportModule, IgoLayerModule, IgoMap, IgoMapModule, IgoMeasureModule, IgoMeasurerModule, IgoMetadataModule, IgoOgcFilterModule, IgoOverlayModule, IgoPrintModule, IgoQueryModule, IgoSearchBarModule, IgoSearchModule, IgoSearchResultsModule, IgoSearchSelectorModule, IgoSearchSettingsModule, IgoStyleListModule, IgoStyleModule, IgoToastModule, IgoWktModule, IgoWorkspaceSelectorModule, IgoWorkspaceUpdatorModule, ImageArcGISRestDataSource, ImageLayer, ImageWatcher, ImportError, ImportExportComponent, ImportInvalidFileError, ImportNothingToImportError, ImportOgreServerError, ImportSRSError, ImportService, ImportSizeError, ImportUnreadableFileError, InfoSectionComponent, InsertSourceInsertDBEnum, LAYER, LabelType, Layer, LayerDBService, LayerItemComponent, LayerLegendComponent, LayerLegendItemComponent, LayerLegendListBindingDirective, LayerLegendListComponent, LayerListBindingDirective, LayerListComponent, LayerListControlsEnum, LayerListDisplacement, LayerListSelectVisibleEnum, LayerListToolComponent, LayerListToolControlsEnum, LayerListToolService, LayerService, LinkedProperties, MEASURE_UNIT_AUTO, MVTDataSource, MapBase, MapBrowserComponent, MapCenterComponent, MapController, MapGeolocationController, MapOfflineDirective, MapService, MapViewAction, MapViewController, MeasureAreaUnit, MeasureAreaUnitAbbreviation, MeasureFormatPipe, MeasureLengthUnit, MeasureLengthUnitAbbreviation, MeasureType, MeasurerComponent, MenuButtonComponent, MetadataAbstractComponent, MetadataButtonComponent, MetadataService, MiniBaseMapComponent, ModifyControl, NominatimSearchSource, OGCFilterService, OSMDataSource, OfflineButtonComponent, OgcFilterButtonComponent, OgcFilterComponent, OgcFilterFormComponent, OgcFilterOperator, OgcFilterOperatorType, OgcFilterSelectionComponent, OgcFilterTimeComponent, OgcFilterTimeSliderComponent, OgcFilterWidget, OgcFilterWriter, OgcFilterableFormComponent, OgcFilterableItemComponent, OgcFilterableListBindingDirective, OgcFilterableListComponent, OlDragSelectInteraction, OptionsApiService, OptionsService, OsmLinks, OsrmDirectionsSource, Overlay, OverlayAction, OverlayDirective, OverlayService, PointerPositionDirective, PrintComponent, PrintFormComponent, PrintLegendPosition, PrintOrientation, PrintOutputFormat, PrintPaperFormat, PrintResolution, PrintSaveImageFormat, PrintService, ProjectionService, PropertyTypeDetectorService, ProposalType, QueryDirective, QueryFormat, QueryFormatMimeType, QueryHtmlTarget, QuerySearchSource, QueryService, ResponseType, RotationButtonComponent, RoutesFeatureStore, SEARCH_TYPES, STYLELIST_OPTIONS, SearchBarComponent, SearchPointerSummaryDirective, SearchResultAddButtonComponent, SearchResultMode, SearchResultsComponent, SearchResultsItemComponent, SearchSelectorComponent, SearchService, SearchSettingsComponent, SearchSource, SearchSourceService, SliceControl, SourceDirectionsType, SpatialFilterItemComponent, SpatialFilterItemType, SpatialFilterListComponent, SpatialFilterQueryType, SpatialFilterService, SpatialFilterType, SpatialFilterTypeComponent, StepFeatureStore, StopsFeatureStore, StopsStore, StoredQueriesReverseSearchSource, StoredQueriesSearchSource, StyleListService, StyleModalDrawingComponent, StyleModalLayerButtonComponent, StyleModalLayerComponent, StyleService, SwipeControlComponent, TileArcGISRestDataSource, TileDebugDataSource, TileLayer, TileWatcher, TimeFilterButtonComponent, TimeFilterFormComponent, TimeFilterItemComponent, TimeFilterListBindingDirective, TimeFilterListComponent, TimeFilterService, TimeFilterStyle, TimeFilterType, ToastComponent, TooltipType, TrackFeatureButtonComponent, TypeCapabilities, TypeCatalog, VectorLayer, VectorTileLayer, VectorWatcher, WFSDataSource, WFSService, WMSDataSource, WMTSDataSource, WakeLockButtonComponent, WebSocketDataSource, WfsWorkspace, WfsWorkspaceService, WktService, WorkspaceSearchSource, WorkspaceSelectorDirective, WorkspaceUpdatorDirective, XYZDataSource, ZoomButtonComponent, addDirectionToRoutesFeatureStore, addLayerAndFeaturesStyledToMap, addLayerAndFeaturesToMap, addLinearRingToOlPolygon, addOrRemoveLayer, addStopToStopsFeatureStore, addStopToStore, buildUrl, cadastreSearchSourceFactory, checkWfsParams, clearOlGeometryMidpoints, computeBestAreaUnit, computeBestLengthUnit, computeLayerTitleFromFile, computeMVTOptionsOnHover, computeOlFeatureExtent, computeOlFeaturesDiff, computeOlFeaturesExtent, computeProjectionsConstraints, computeRelativePosition, computeStopsPosition, computeTermSimilarity, convertDDToDMS, createDefaultTileGrid, createDrawHoleInteractionStyle, createDrawInteractionStyle, createFilterInMapExtentOrResolutionStrategy, createInteractionStyle, createMeasureInteractionStyle, createMeasureLayerStyle, createOlTooltipAtPoint, createOlTooltipDrawAtPoint, createOverlayDefaultStyle, createOverlayLayer, createOverlayLayerStyle, createOverlayMarkerStyle, createTableTemplate, ctrlKeyDown, defaultCoordinatesSearchResultFormatterFactory, defaultEpsg, defaultFieldNameGeometry, defaultIChercheSearchResultFormatterFactory, defaultMaxFeatures, defaultWfsVersion, directionsStyle, entitiesToRowData, exportToCSV, featureFromOl, featureRandomStyle, featureRandomStyleFunction, featureToOl, featureToSearchResult, featuresAreOutOfView, featuresAreTooDeepInView, findDiff, formatDistance, formatDuration, formatInstruction, formatMeasure, formatScale, formatWFSQueryString, generateArcgisRestIdFromSourceOptions, generateFeatureIdFromSourceOptions, generateId, generateIdFromSourceOptions, generateWMSIdFromSourceOptions, generateWMTSIdFromSourceOptions, generateWfsIdFromSourceOptions, generateXYZIdFromSourceOptions, getAllChildLayersByDeletion, getAllChildLayersByProperty, getCommonVectorSelectedStyle, getCommonVectorStyle, getDirectChildLayersByDeletion, getDirectChildLayersByProperty, getDirectParentLayerByDeletion, getDirectParentLayerByProperty, getFileExtension, getFormatFromOptions, getGeoServiceAction, getIgoLayerByLinkId, getLayersLegends, getLinkedLayersOptions, getMousePositionFromOlGeometryEvent, getOlTooltipAtCenter, getOlTooltipsAtMidpoints, getResolutionFromScale, getRootParentByDeletion, getRootParentByProperty, getRowsInMapExtent, getScaleFromResolution, getSelectedOnly, getTooltipsOfOlGeometry, gmlRegex, handleFileExportError, handleFileExportSuccess, handleFileImportError, handleFileImportSuccess, handleInvalidFileImportError, handleLayerPropertyChange, handleNothingToExportError, handleNothingToImportError, handleOgreServerImportError, handleSRSImportError, handleSizeFileImportError, handleUnreadbleFileImportError, hideOlFeature, hoverFeatureMarkerStyle, ichercheReverseSearchSourceFactory, ichercheSearchSourceFactory, ilayerSearchResultFormatterFactory, ilayerSearchSourceFactory, initLayerSyncFromRootParentLayers, initRoutesFeatureStore, initStepFeatureStore, initStopsFeatureStore, jsonRegex, layerFeatureIsQueryable, layerHasLinkDeletion, layerHasLinkWithProperty, layerIsQueryable, lonLatConversion, mapExtentStrategyActiveToolTip, measureOlGeometry, measureOlGeometryArea, measureOlGeometryLength, metersToFeet, metersToKilometers, metersToMiles, metersToUnit, moveToOlFeatures, mtmZoneFromLonLat, noElementSelected, nominatimSearchSourceFactory, ogcFilterWidgetFactory, olLayerFeatureIsQueryable, olLayerIsQueryable, olStyleToBasicIgoStyle, optionsApiFactory, osrmDirectionsSourcesFactory, pointerPositionSummaryMarkerStyle, provideCadastreSearchSource, provideCoordinatesReverseSearchSource, provideDefaultCoordinatesSearchResultFormatter, provideDefaultIChercheSearchResultFormatter, provideIChercheReverseSearchSource, provideIChercheSearchSource, provideILayerSearchResultFormatter, provideILayerSearchSource, provideNominatimSearchSource, provideOgcFilterWidget, provideOptionsApi, provideOsrmDirectionsSource, provideSearchSourceService, provideStoredQueriesReverseSearchSource, provideStoredQueriesSearchSource, provideStyleListLoader, provideStyleListOptions, provideWorkspaceSearchSource, removeStopFromStore, renderFeatureFromOl, roundCoordTo, roundCoordToString, scaleExtent, searchSourceServiceFactory, setRowsInMapExtent, setSelectedOnly, sliceOlGeometry, sliceOlLineString, sliceOlPolygon, sourceCanReverseSearch, sourceCanReverseSearchAsSummary, sourceCanSearch, squareMetersToAcres, squareMetersToHectares, squareMetersToSquareFeet, squareMetersToSquareKilometers, squareMetersToSquareMiles, squareMetersToUnit, standardizeUrl, storedqueriesReverseSearchSourceFactory, storedqueriesSearchSourceFactory, stringToLonLat, styleListFactory, translateBearing, translateModifier, tryAddLoadingStrategy, tryAddSelectionStrategy, tryBindStoreLayer, updateOlGeometryCenter, updateOlGeometryMidpoints, updateOlTooltipAtCenter, updateOlTooltipDrawAtCenter, updateOlTooltipsAtMidpoints, updateOlTooltipsDrawAtMidpoints, updateStoreSorting, utmZoneFromLonLat, viewStatesAreEqual, workspaceSearchSourceFactory, zoneMtm, zoneUtm };
41258
41304
  //# sourceMappingURL=igo2-geo.mjs.map