@igo2/geo 1.13.3 → 1.14.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 (58) hide show
  1. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +4 -1
  2. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +1 -1
  3. package/esm2020/lib/draw/draw/draw-popup.component.mjs +562 -32
  4. package/esm2020/lib/draw/draw/draw.component.mjs +358 -130
  5. package/esm2020/lib/draw/draw/draw.module.mjs +12 -4
  6. package/esm2020/lib/draw/shared/draw-style.service.mjs +2 -2
  7. package/esm2020/lib/draw/shared/draw.enum.mjs +14 -1
  8. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  9. package/esm2020/lib/draw/shared/draw.utils.mjs +19 -1
  10. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +21 -8
  11. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +12 -2
  12. package/esm2020/lib/geometry/shared/controls/draw.mjs +53 -10
  13. package/esm2020/lib/import-export/shared/export.service.mjs +2 -2
  14. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  15. package/esm2020/lib/import-export/shared/import.service.mjs +26 -6
  16. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
  17. package/esm2020/lib/map/shared/hover-feature.directive.mjs +2 -2
  18. package/esm2020/lib/map/shared/map.utils.mjs +4 -1
  19. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +33 -4
  20. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  21. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +12 -12
  22. package/esm2020/lib/print/shared/geopdf.mjs +58 -0
  23. package/esm2020/lib/print/shared/index.mjs +2 -1
  24. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  25. package/esm2020/lib/print/shared/print.service.mjs +118 -64
  26. package/esm2020/lib/query/shared/query.service.mjs +3 -3
  27. package/esm2020/lib/search/shared/sources/index.mjs +1 -3
  28. package/fesm2015/igo2-geo.mjs +1320 -409
  29. package/fesm2015/igo2-geo.mjs.map +1 -1
  30. package/fesm2020/igo2-geo.mjs +1272 -405
  31. package/fesm2020/igo2-geo.mjs.map +1 -1
  32. package/lib/catalog/shared/catalog.abstract.d.ts +1 -0
  33. package/lib/draw/draw/draw-popup.component.d.ts +52 -5
  34. package/lib/draw/draw/draw.component.d.ts +34 -4
  35. package/lib/draw/draw/draw.module.d.ts +3 -1
  36. package/lib/draw/shared/draw.enum.d.ts +11 -0
  37. package/lib/draw/shared/draw.interface.d.ts +4 -0
  38. package/lib/draw/shared/draw.utils.d.ts +2 -0
  39. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +2 -1
  40. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +7 -1
  41. package/lib/geometry/shared/controls/draw.d.ts +18 -0
  42. package/lib/import-export/shared/import.interface.d.ts +2 -1
  43. package/lib/import-export/shared/import.service.d.ts +7 -0
  44. package/lib/layer/shared/layers/layer.interface.d.ts +4 -0
  45. package/lib/map/shared/map.utils.d.ts +1 -0
  46. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +1 -0
  47. package/lib/offline/geoDB/geoDB.interface.d.ts +1 -0
  48. package/lib/offline/geoDB/geoDB.service.d.ts +3 -3
  49. package/lib/print/shared/geopdf.d.ts +1 -0
  50. package/lib/print/shared/index.d.ts +1 -0
  51. package/lib/print/shared/print.interface.d.ts +5 -0
  52. package/lib/print/shared/print.service.d.ts +17 -8
  53. package/lib/search/shared/sources/index.d.ts +0 -2
  54. package/package.json +4 -4
  55. package/esm2020/lib/search/shared/sources/cadastre.mjs +0 -126
  56. package/esm2020/lib/search/shared/sources/cadastre.providers.mjs +0 -23
  57. package/lib/search/shared/sources/cadastre.d.ts +0 -33
  58. package/lib/search/shared/sources/cadastre.providers.d.ts +0 -18
@@ -137,6 +137,9 @@ export class CatalogBrowserComponent {
137
137
  if (!layer.options.sourceOptions.optionsFromApi) {
138
138
  layer.options.sourceOptions.optionsFromApi = true;
139
139
  }
140
+ if (this.catalog.profils?.length) {
141
+ layer.options.security = { profils: this.catalog.profils };
142
+ }
140
143
  return this.layerService.createAsyncLayer(layer.options);
141
144
  });
142
145
  zip(...layers$).subscribe((oLayers) => {
@@ -241,4 +244,4 @@ CatalogBrowserComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Cat
241
244
  }], toggleCollapsedGroup: [{
242
245
  type: Input
243
246
  }] }); })();
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1icm93c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1icm93c2VyL2NhdGFsb2ctYnJvd3Nlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctYnJvd3Nlci9jYXRhbG9nLWJyb3dzZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsdUJBQXVCLEVBSXhCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFBZSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUsvRCxPQUFPLEVBTUwsZUFBZSxFQUNoQixNQUFNLFdBQVcsQ0FBQzs7Ozs7SUNyQmYsNkJBQW9DO0lBQ2xDLG9EQVNrRDtJQURoRCxpT0FBZSxlQUFBLGlDQUEwQixDQUFBLElBQUMsOE5BQ3RCLGVBQUEsaUNBQTBCLENBQUEsSUFESjs7SUFFNUMsaUJBQTRCO0lBQzlCLDBCQUFlOzs7O0lBVlgsZUFBbUI7SUFBbkIsd0NBQW1CLGtCQUFBLDZCQUFBLHdEQUFBLGlEQUFBLHNEQUFBLGdEQUFBOzs7O0lBWXZCLDZCQUFvQztJQUNsQyxvREFNNkM7SUFBM0MsaU9BQWUsZUFBQSxpQ0FBMEIsQ0FBQSxJQUFDOztJQUM1QyxpQkFBNEI7SUFDOUIsMEJBQWU7Ozs7SUFOWCxlQUFjO0lBQWQsK0JBQWMsd0RBQUEsaURBQUEsZ0RBQUE7OztJQWpCbEIsd0dBWWU7SUFFZix3R0FTZTs7OztJQXZCQSw4Q0FBbUI7SUFjbkIsZUFBbUI7SUFBbkIsOENBQW1COztBRFN0Qzs7R0FFRztBQU1ILE1BQU0sT0FBTyx1QkFBdUI7SUFn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SyxrQkFBa0IsQ0FBQyxLQUF1QjtRQUNoRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRTtZQUN0RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztZQUN4RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUE0QixDQUFDLENBQUM7SUFDekQsQ0FBQzs7OEZBbE5VLHVCQUF1QjswRUFBdkIsdUJBQXVCO1FDakNwQyxtQ0FBbUQ7UUFDakQsd0ZBeUJjOztRQUNoQixpQkFBVzs7UUEzQkQsa0NBQW9CLG9CQUFBO1FBQ0EsZUFBcUM7UUFBckMscUVBQXFDOzt1RkRnQ3RELHVCQUF1QjtjQUxuQyxTQUFTOzJCQUNFLHFCQUFxQixtQkFFZCx1QkFBdUIsQ0FBQyxNQUFNOytGQVl0QyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFLRyxPQUFPO2tCQUFmLEtBQUs7WUFLRyxLQUFLO2tCQUFiLEtBQUs7WUFLRyxHQUFHO2tCQUFYLEtBQUs7WUFLRyxvQkFBb0I7a0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyB6aXAsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRW50aXR5U3RvcmUsIEVudGl0eVN0b3JlV2F0Y2hlciB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XHJcbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ2F0YWxvZyxcclxuICBDYXRhbG9nSXRlbSxcclxuICBDYXRhbG9nSXRlbUxheWVyLFxyXG4gIENhdGFsb2dJdGVtR3JvdXAsXHJcbiAgQ2F0YWxvZ0l0ZW1TdGF0ZSxcclxuICBDYXRhbG9nSXRlbVR5cGVcclxufSBmcm9tICcuLi9zaGFyZWQnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCB0byBicm93c2UgYSBjYXRhbG9nJ3MgZ3JvdXBzIGFuZCBsYXllcnMgYW5kIGRpc3BsYXkgdGhlbSBvbiBhIG1hcC5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWNhdGFsb2ctYnJvd3NlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NhdGFsb2ctYnJvd3Nlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIENhdGFsb2dCcm93c2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8qKlxyXG4gICAqIENhdGFsb2cgaXRlbXMgc3RvcmUgd2F0Y2hlclxyXG4gICAqL1xyXG4gIHByaXZhdGUgd2F0Y2hlcjogRW50aXR5U3RvcmVXYXRjaGVyPENhdGFsb2dJdGVtPjtcclxuXHJcbiAvLyBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBnZXQgcmVzb2x1dGlvbiQoKTogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4geyByZXR1cm4gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQ7IH1cclxuXHJcbiAgQElucHV0KCkgY2F0YWxvZ0FsbG93TGVnZW5kID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIENhdGFsb2dcclxuICAgKi9cclxuICBASW5wdXQoKSBjYXRhbG9nOiBDYXRhbG9nO1xyXG5cclxuICAvKipcclxuICAgKiBTdG9yZSBob2xkaW5nIHRoZSBjYXRhbG9nJ3MgaXRlbXNcclxuICAgKi9cclxuICBASW5wdXQoKSBzdG9yZTogRW50aXR5U3RvcmU8Q2F0YWxvZ0l0ZW0sIENhdGFsb2dJdGVtU3RhdGU+O1xyXG5cclxuICAvKipcclxuICAgKiBNYXAgdG8gYWRkIHRoZSBjYXRhbG9nIGl0ZW1zIHRvXHJcbiAgICovXHJcbiAgQElucHV0KCkgbWFwOiBJZ29NYXA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgYSBncm91cCBjYW4gYmUgdG9nZ2xlZCB3aGVuIGl0J3MgY29sbGFwc2VkXHJcbiAgICovXHJcbiAgQElucHV0KCkgdG9nZ2xlQ29sbGFwc2VkR3JvdXA6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbGF5ZXJTZXJ2aWNlOiBMYXllclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBjdXJyZW50SXRlbXMgPSB0aGlzLm1hcC5sYXllcnMubWFwKChsYXllcjogTGF5ZXIpID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBpZDogbGF5ZXIub3B0aW9ucy5zb3VyY2UuaWQsXHJcbiAgICAgICAgdGl0bGU6IGxheWVyLnRpdGxlLFxyXG4gICAgICAgIHR5cGU6IENhdGFsb2dJdGVtVHlwZS5MYXllclxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnN0b3JlLnN0YXRlLnVwZGF0ZU1hbnkoY3VycmVudEl0ZW1zLCB7IGFkZGVkOiB0cnVlIH0sIHRydWUpO1xyXG4gICAgaWYgKHRoaXMuY2F0YWxvZyAmJiB0aGlzLmNhdGFsb2cuc29ydERpcmVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc3RvcmUudmlldy5zb3J0KHtcclxuICAgICAgICBkaXJlY3Rpb246IHRoaXMuY2F0YWxvZy5zb3J0RGlyZWN0aW9uLFxyXG4gICAgICAgIHZhbHVlQWNjZXNzb3I6IChpdGVtOiBDYXRhbG9nSXRlbSkgPT4gaXRlbS50aXRsZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjYXRhbG9nU2hvd0xlZ2VuZCA9IHRoaXMuY2F0YWxvZyA/IHRoaXMuY2F0YWxvZy5zaG93TGVnZW5kIDogZmFsc2U7XHJcbiAgICB0aGlzLmNhdGFsb2dBbGxvd0xlZ2VuZCA9IGNhdGFsb2dTaG93TGVnZW5kID8gY2F0YWxvZ1Nob3dMZWdlbmQgOiB0aGlzLmNhdGFsb2dBbGxvd0xlZ2VuZDtcclxuXHJcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgRW50aXR5U3RvcmVXYXRjaGVyKHRoaXMuc3RvcmUsIHRoaXMuY2RSZWYpO1xyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy53YXRjaGVyLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGlzR3JvdXAoaXRlbTogQ2F0YWxvZ0l0ZW0pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpdGVtLnR5cGUgPT09IENhdGFsb2dJdGVtVHlwZS5Hcm91cDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGlzTGF5ZXIoaXRlbTogQ2F0YWxvZ0l0ZW0pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpdGVtLnR5cGUgPT09IENhdGFsb2dJdGVtVHlwZS5MYXllcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gYSBsYXllciBpcyBhZGRlZCBvciByZW1vdmVkLCBhZGQgb3IgcmVtb3ZlIGl0IGZyb20gdGhlIG1hcFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqIEBwYXJhbSBldmVudCBMYXllciBhZGRlZCBldmVudFxyXG4gICAqL1xyXG4gIG9uTGF5ZXJBZGRlZENoYW5nZShldmVudDogeyBhZGRlZDogYm9vbGVhbjsgbGF5ZXI6IENhdGFsb2dJdGVtTGF5ZXIgfSkge1xyXG4gICAgY29uc3QgbGF5ZXIgPSBldmVudC5sYXllcjtcclxuICAgIHRoaXMuc3RvcmUuc3RhdGUudXBkYXRlKGxheWVyLCB7IGFkZGVkOiBldmVudC5hZGRlZCB9LCBmYWxzZSk7XHJcbiAgICBldmVudC5hZGRlZCA/IHRoaXMuYWRkTGF5ZXJUb01hcChsYXllcikgOiB0aGlzLnJlbW92ZUxheWVyRnJvbU1hcChsYXllcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIGEgZnJvdXAgaXMgYWRkZWQgb3IgcmVtb3ZlZCwgYWRkIG9yIHJlbW92ZSBpdCBmcm9tIHRoZSBtYXBcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKiBAcGFyYW0gZXZlbnQgR3JvdXAgYWRkZWQgZXZlbnRcclxuICAgKi9cclxuICBvbkdyb3VwQWRkZWRDaGFuZ2UoZXZlbnQ6IHsgYWRkZWQ6IGJvb2xlYW47IGdyb3VwOiBDYXRhbG9nSXRlbUdyb3VwIH0pIHtcclxuICAgIGNvbnN0IGdyb3VwID0gZXZlbnQuZ3JvdXA7XHJcbiAgICB0aGlzLnN0b3JlLnN0YXRlLnVwZGF0ZShncm91cCwgeyBhZGRlZDogZXZlbnQuYWRkZWQgfSwgZmFsc2UpO1xyXG4gICAgZXZlbnQuYWRkZWQgPyB0aGlzLmFkZEdyb3VwVG9NYXAoZ3JvdXApIDogdGhpcy5yZW1vdmVHcm91cEZyb21NYXAoZ3JvdXApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGxheWVyIHRvIG1hcFxyXG4gICAqIEBwYXJhbSBsYXllciBDYXRhbG9nIGxheWVyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRMYXllclRvTWFwKGxheWVyOiBDYXRhbG9nSXRlbUxheWVyKSB7XHJcbiAgICB0aGlzLmFkZExheWVyc1RvTWFwKFtsYXllcl0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGxheWVyIGZyb20gbWFwXHJcbiAgICogQHBhcmFtIGxheWVyIENhdGFsb2cgbGF5ZXJcclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZUxheWVyRnJvbU1hcChsYXllcjogQ2F0YWxvZ0l0ZW1MYXllcikge1xyXG4gICAgdGhpcy5yZW1vdmVMYXllcnNGcm9tTWFwKFtsYXllcl0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIG11bHRpcGxlIGxheWVycyB0byBtYXBcclxuICAgKiBAcGFyYW0gbGF5ZXJzIENhdGFsb2cgbGF5ZXJzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRMYXllcnNUb01hcChsYXllcnM6IENhdGFsb2dJdGVtTGF5ZXJbXSkge1xyXG4gICAgY29uc3QgbGF5ZXJzJCA9IGxheWVycy5tYXAoKGxheWVyOiBDYXRhbG9nSXRlbUxheWVyKSA9PiB7XHJcbiAgICAgIGlmICghbGF5ZXIub3B0aW9ucy5zb3VyY2VPcHRpb25zLm9wdGlvbnNGcm9tQXBpKSB7XHJcbiAgICAgICAgbGF5ZXIub3B0aW9ucy5zb3VyY2VPcHRpb25zLm9wdGlvbnNGcm9tQXBpID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5sYXllclNlcnZpY2UuY3JlYXRlQXN5bmNMYXllcihsYXllci5vcHRpb25zKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHppcCguLi5sYXllcnMkKS5zdWJzY3JpYmUoKG9MYXllcnM6IExheWVyW10pID0+IHtcclxuICAgICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGVNYW55KGxheWVycywgeyBhZGRlZDogdHJ1ZSB9KTtcclxuICAgICAgdGhpcy5tYXAuYWRkTGF5ZXJzKG9MYXllcnMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgbXVsdGlwbGUgbGF5ZXJzIGZyb20gbWFwXHJcbiAgICogQHBhcmFtIGxheWVycyBDYXRhbG9nIGxheWVyc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlTGF5ZXJzRnJvbU1hcChsYXllcnM6IENhdGFsb2dJdGVtTGF5ZXJbXSkge1xyXG4gICAgbGF5ZXJzLmZvckVhY2goKGxheWVyOiBDYXRhbG9nSXRlbUxheWVyKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RvcmUuc3RhdGUudXBkYXRlKGxheWVyLCB7IGFkZGVkOiBmYWxzZSB9KTtcclxuICAgICAgaWYgKGxheWVyLm9wdGlvbnMuYmFzZUxheWVyID09PSB0cnVlKSB7XHJcbiAgICAgICAgY29uc3Qgb0xheWVyID0gdGhpcy5tYXAuZ2V0TGF5ZXJCeUlkKGxheWVyLm9wdGlvbnMuaWQpO1xyXG4gICAgICAgIGlmIChvTGF5ZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIob0xheWVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3Qgb0xheWVyID0gdGhpcy5tYXAuZ2V0TGF5ZXJCeUlkKGxheWVyLmlkKTtcclxuICAgICAgICBpZiAob0xheWVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKG9MYXllcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvcnQgdGhlIGxheWVycyBieSB0aXRsZS4gYXNjIG9yIGRlc2MuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzb3J0Q2F0YWxvZ0l0ZW1zQnlUaXRsZShpdGVtczogQ2F0YWxvZ0l0ZW1bXSwgZGlyZWN0aW9uKSB7XHJcbiAgICBjb25zdCByZXR1cm5JdGVtID0gaXRlbXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBjb25zdCB0aXRsZUEgPSBhLnRpdGxlLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xyXG4gICAgICBjb25zdCB0aXRsZUIgPSBiLnRpdGxlLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xyXG5cclxuICAgICAgaWYgKHRpdGxlQSA8IHRpdGxlQikge1xyXG4gICAgICAgIHJldHVybiAtMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGl0bGVBID4gdGl0bGVCKSB7XHJcbiAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9KTtcclxuICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ2FzYyc6XHJcbiAgICAgICAgcmV0dXJuIHJldHVybkl0ZW07XHJcbiAgICAgIGNhc2UgJ2Rlc2MnOlxyXG4gICAgICAgIHJldHVybiByZXR1cm5JdGVtLnJldmVyc2UoKTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYWxsIHRoZSBsYXllcnMgb2YgYSBncm91cCB0byBtYXBcclxuICAgKiBAcGFyYW0gZ3JvdXAgQ2F0YWxvZyBncm91cFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkR3JvdXBUb01hcChncm91cDogQ2F0YWxvZ0l0ZW1Hcm91cCkge1xyXG4gICAgbGV0IGxheWVycyA9IGdyb3VwLml0ZW1zLmZpbHRlcigoaXRlbTogQ2F0YWxvZ0l0ZW0pID0+IHtcclxuICAgICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0b3JlLnN0YXRlLmdldChpdGVtKS5hZGRlZCB8fCBmYWxzZTtcclxuICAgICAgcmV0dXJuIHRoaXMuaXNMYXllcihpdGVtKSAmJiBhZGRlZCA9PT0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIGlmIChncm91cC5zb3J0RGlyZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbGF5ZXJzID0gdGhpcy5zb3J0Q2F0YWxvZ0l0ZW1zQnlUaXRsZShsYXllcnMsIGdyb3VwLnNvcnREaXJlY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hZGRMYXllcnNUb01hcChsYXllcnMucmV2ZXJzZSgpIGFzIENhdGFsb2dJdGVtTGF5ZXJbXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYWxsIHRoZSBsYXllcnMgb2YgYSBncm91cCBmcm9tIG1hcFxyXG4gICAqIEBwYXJhbSBncm91cCBDYXRhbG9nIGdyb3VwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVHcm91cEZyb21NYXAoZ3JvdXA6IENhdGFsb2dJdGVtR3JvdXApIHtcclxuICAgIGNvbnN0IGxheWVycyA9IGdyb3VwLml0ZW1zLmZpbHRlcigoaXRlbTogQ2F0YWxvZ0l0ZW0pID0+IHtcclxuICAgICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0b3JlLnN0YXRlLmdldChpdGVtKS5hZGRlZCB8fCBmYWxzZTtcclxuICAgICAgcmV0dXJuIHRoaXMuaXNMYXllcihpdGVtKSAmJiBhZGRlZCA9PT0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZW1vdmVMYXllcnNGcm9tTWFwKGxheWVycyBhcyBDYXRhbG9nSXRlbUxheWVyW10pO1xyXG4gIH1cclxufVxyXG4iLCI8aWdvLWxpc3QgW25hdmlnYXRpb25dPVwiZmFsc2VcIiBbc2VsZWN0aW9uXT1cImZhbHNlXCI+XHJcbiAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1pdGVtIFtuZ0Zvck9mXT1cInN0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmNcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0dyb3VwKGl0ZW0pXCI+XHJcbiAgICAgIDxpZ28tY2F0YWxvZy1icm93c2VyLWdyb3VwXHJcbiAgICAgICAgW2NhdGFsb2ddPVwiY2F0YWxvZ1wiXHJcbiAgICAgICAgW2dyb3VwXT1cIml0ZW1cIlxyXG4gICAgICAgIFtzdGF0ZV09XCJzdG9yZS5zdGF0ZVwiXHJcbiAgICAgICAgW3Jlc29sdXRpb25dPVwicmVzb2x1dGlvbiQgfCBhc3luY1wiXHJcbiAgICAgICAgW2NhdGFsb2dBbGxvd0xlZ2VuZF09XCJjYXRhbG9nQWxsb3dMZWdlbmRcIlxyXG4gICAgICAgIFtjb2xsYXBzZWRdPVwiKHN0b3JlLmNvdW50ID09PSAxKSA/IGZhbHNlIDogdHJ1ZVwiXHJcbiAgICAgICAgW3RvZ2dsZUNvbGxhcHNlZF09XCJ0b2dnbGVDb2xsYXBzZWRHcm91cFwiXHJcbiAgICAgICAgKGFkZGVkQ2hhbmdlKT1cIm9uR3JvdXBBZGRlZENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAobGF5ZXJBZGRlZENoYW5nZSk9XCJvbkxheWVyQWRkZWRDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L2lnby1jYXRhbG9nLWJyb3dzZXItZ3JvdXA+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMYXllcihpdGVtKVwiPlxyXG4gICAgICA8aWdvLWNhdGFsb2ctYnJvd3Nlci1sYXllclxyXG4gICAgICAgIGlnb0xpc3RJdGVtXHJcbiAgICAgICAgW2xheWVyXT1cIml0ZW1cIlxyXG4gICAgICAgIFtyZXNvbHV0aW9uXT1cInJlc29sdXRpb24kIHwgYXN5bmNcIlxyXG4gICAgICAgIFtjYXRhbG9nQWxsb3dMZWdlbmRdPVwiY2F0YWxvZ0FsbG93TGVnZW5kXCJcclxuICAgICAgICBbYWRkZWRdPVwic3RvcmUuc3RhdGUuZ2V0KGl0ZW0pLmFkZGVkXCJcclxuICAgICAgICAoYWRkZWRDaGFuZ2UpPVwib25MYXllckFkZGVkQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPC9pZ28tY2F0YWxvZy1icm93c2VyLWxheWVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9pZ28tbGlzdD5cclxuIl19
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1icm93c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvY2F0YWxvZy1icm93c2VyL2NhdGFsb2ctYnJvd3Nlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9jYXRhbG9nL2NhdGFsb2ctYnJvd3Nlci9jYXRhbG9nLWJyb3dzZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsdUJBQXVCLEVBSXhCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQW1CLE1BQU0sTUFBTSxDQUFDO0FBRTVDLE9BQU8sRUFBZSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUsvRCxPQUFPLEVBTUwsZUFBZSxFQUNoQixNQUFNLFdBQVcsQ0FBQzs7Ozs7SUNyQmYsNkJBQW9DO0lBQ2xDLG9EQVNrRDtJQURoRCxpT0FBZSxlQUFBLGlDQUEwQixDQUFBLElBQUMsOE5BQ3RCLGVBQUEsaUNBQTBCLENBQUEsSUFESjs7SUFFNUMsaUJBQTRCO0lBQzlCLDBCQUFlOzs7O0lBVlgsZUFBbUI7SUFBbkIsd0NBQW1CLGtCQUFBLDZCQUFBLHdEQUFBLGlEQUFBLHNEQUFBLGdEQUFBOzs7O0lBWXZCLDZCQUFvQztJQUNsQyxvREFNNkM7SUFBM0MsaU9BQWUsZUFBQSxpQ0FBMEIsQ0FBQSxJQUFDOztJQUM1QyxpQkFBNEI7SUFDOUIsMEJBQWU7Ozs7SUFOWCxlQUFjO0lBQWQsK0JBQWMsd0RBQUEsaURBQUEsZ0RBQUE7OztJQWpCbEIsd0dBWWU7SUFFZix3R0FTZTs7OztJQXZCQSw4Q0FBbUI7SUFjbkIsZUFBbUI7SUFBbkIsOENBQW1COztBRFN0Qzs7R0FFRztBQU1ILE1BQU0sT0FBTyx1QkFBdUI7SUFn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QUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUF3QixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGtCQUFrQixDQUFDLEtBQXVCO1FBQ2hELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBaUIsRUFBRSxFQUFFO1lBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO1lBQ3hELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQTRCLENBQUMsQ0FBQztJQUN6RCxDQUFDOzs4RkFyTlUsdUJBQXVCOzBFQUF2Qix1QkFBdUI7UUNqQ3BDLG1DQUFtRDtRQUNqRCx3RkF5QmM7O1FBQ2hCLGlCQUFXOztRQTNCRCxrQ0FBb0Isb0JBQUE7UUFDQSxlQUFxQztRQUFyQyxxRUFBcUM7O3VGRGdDdEQsdUJBQXVCO2NBTG5DLFNBQVM7MkJBQ0UscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE1BQU07K0ZBWXRDLGtCQUFrQjtrQkFBMUIsS0FBSztZQUtHLE9BQU87a0JBQWYsS0FBSztZQUtHLEtBQUs7a0JBQWIsS0FBSztZQUtHLEdBQUc7a0JBQVgsS0FBSztZQUtHLG9CQUFvQjtrQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IHppcCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBFbnRpdHlTdG9yZSwgRW50aXR5U3RvcmVXYXRjaGVyIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyJztcclxuaW1wb3J0IHsgTGF5ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAnO1xyXG5cclxuaW1wb3J0IHtcclxuICBDYXRhbG9nLFxyXG4gIENhdGFsb2dJdGVtLFxyXG4gIENhdGFsb2dJdGVtTGF5ZXIsXHJcbiAgQ2F0YWxvZ0l0ZW1Hcm91cCxcclxuICBDYXRhbG9nSXRlbVN0YXRlLFxyXG4gIENhdGFsb2dJdGVtVHlwZVxyXG59IGZyb20gJy4uL3NoYXJlZCc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IHRvIGJyb3dzZSBhIGNhdGFsb2cncyBncm91cHMgYW5kIGxheWVycyBhbmQgZGlzcGxheSB0aGVtIG9uIGEgbWFwLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tY2F0YWxvZy1icm93c2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2F0YWxvZy1icm93c2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2F0YWxvZ0Jyb3dzZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqXHJcbiAgICogQ2F0YWxvZyBpdGVtcyBzdG9yZSB3YXRjaGVyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3YXRjaGVyOiBFbnRpdHlTdG9yZVdhdGNoZXI8Q2F0YWxvZ0l0ZW0+O1xyXG5cclxuIC8vIHByaXZhdGUgcmVzb2x1dGlvbiQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGdldCByZXNvbHV0aW9uJCgpOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiB7IHJldHVybiB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5yZXNvbHV0aW9uJDsgfVxyXG5cclxuICBASW5wdXQoKSBjYXRhbG9nQWxsb3dMZWdlbmQgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2F0YWxvZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNhdGFsb2c6IENhdGFsb2c7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3JlIGhvbGRpbmcgdGhlIGNhdGFsb2cncyBpdGVtc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHN0b3JlOiBFbnRpdHlTdG9yZTxDYXRhbG9nSXRlbSwgQ2F0YWxvZ0l0ZW1TdGF0ZT47XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcCB0byBhZGQgdGhlIGNhdGFsb2cgaXRlbXMgdG9cclxuICAgKi9cclxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciBhIGdyb3VwIGNhbiBiZSB0b2dnbGVkIHdoZW4gaXQncyBjb2xsYXBzZWRcclxuICAgKi9cclxuICBASW5wdXQoKSB0b2dnbGVDb2xsYXBzZWRHcm91cDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRJdGVtcyA9IHRoaXMubWFwLmxheWVycy5tYXAoKGxheWVyOiBMYXllcikgPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGlkOiBsYXllci5vcHRpb25zLnNvdXJjZS5pZCxcclxuICAgICAgICB0aXRsZTogbGF5ZXIudGl0bGUsXHJcbiAgICAgICAgdHlwZTogQ2F0YWxvZ0l0ZW1UeXBlLkxheWVyXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc3RvcmUuc3RhdGUudXBkYXRlTWFueShjdXJyZW50SXRlbXMsIHsgYWRkZWQ6IHRydWUgfSwgdHJ1ZSk7XHJcbiAgICBpZiAodGhpcy5jYXRhbG9nICYmIHRoaXMuY2F0YWxvZy5zb3J0RGlyZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdG9yZS52aWV3LnNvcnQoe1xyXG4gICAgICAgIGRpcmVjdGlvbjogdGhpcy5jYXRhbG9nLnNvcnREaXJlY3Rpb24sXHJcbiAgICAgICAgdmFsdWVBY2Nlc3NvcjogKGl0ZW06IENhdGFsb2dJdGVtKSA9PiBpdGVtLnRpdGxlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNhdGFsb2dTaG93TGVnZW5kID0gdGhpcy5jYXRhbG9nID8gdGhpcy5jYXRhbG9nLnNob3dMZWdlbmQgOiBmYWxzZTtcclxuICAgIHRoaXMuY2F0YWxvZ0FsbG93TGVnZW5kID0gY2F0YWxvZ1Nob3dMZWdlbmQgPyBjYXRhbG9nU2hvd0xlZ2VuZCA6IHRoaXMuY2F0YWxvZ0FsbG93TGVnZW5kO1xyXG5cclxuICAgIHRoaXMud2F0Y2hlciA9IG5ldyBFbnRpdHlTdG9yZVdhdGNoZXIodGhpcy5zdG9yZSwgdGhpcy5jZFJlZik7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLndhdGNoZXIuZGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgaXNHcm91cChpdGVtOiBDYXRhbG9nSXRlbSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGl0ZW0udHlwZSA9PT0gQ2F0YWxvZ0l0ZW1UeXBlLkdyb3VwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgaXNMYXllcihpdGVtOiBDYXRhbG9nSXRlbSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGl0ZW0udHlwZSA9PT0gQ2F0YWxvZ0l0ZW1UeXBlLkxheWVyO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBhIGxheWVyIGlzIGFkZGVkIG9yIHJlbW92ZWQsIGFkZCBvciByZW1vdmUgaXQgZnJvbSB0aGUgbWFwXHJcbiAgICogQGludGVybmFsXHJcbiAgICogQHBhcmFtIGV2ZW50IExheWVyIGFkZGVkIGV2ZW50XHJcbiAgICovXHJcbiAgb25MYXllckFkZGVkQ2hhbmdlKGV2ZW50OiB7IGFkZGVkOiBib29sZWFuOyBsYXllcjogQ2F0YWxvZ0l0ZW1MYXllciB9KSB7XHJcbiAgICBjb25zdCBsYXllciA9IGV2ZW50LmxheWVyO1xyXG4gICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGUobGF5ZXIsIHsgYWRkZWQ6IGV2ZW50LmFkZGVkIH0sIGZhbHNlKTtcclxuICAgIGV2ZW50LmFkZGVkID8gdGhpcy5hZGRMYXllclRvTWFwKGxheWVyKSA6IHRoaXMucmVtb3ZlTGF5ZXJGcm9tTWFwKGxheWVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gYSBmcm91cCBpcyBhZGRlZCBvciByZW1vdmVkLCBhZGQgb3IgcmVtb3ZlIGl0IGZyb20gdGhlIG1hcFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqIEBwYXJhbSBldmVudCBHcm91cCBhZGRlZCBldmVudFxyXG4gICAqL1xyXG4gIG9uR3JvdXBBZGRlZENoYW5nZShldmVudDogeyBhZGRlZDogYm9vbGVhbjsgZ3JvdXA6IENhdGFsb2dJdGVtR3JvdXAgfSkge1xyXG4gICAgY29uc3QgZ3JvdXAgPSBldmVudC5ncm91cDtcclxuICAgIHRoaXMuc3RvcmUuc3RhdGUudXBkYXRlKGdyb3VwLCB7IGFkZGVkOiBldmVudC5hZGRlZCB9LCBmYWxzZSk7XHJcbiAgICBldmVudC5hZGRlZCA/IHRoaXMuYWRkR3JvdXBUb01hcChncm91cCkgOiB0aGlzLnJlbW92ZUdyb3VwRnJvbU1hcChncm91cCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgbGF5ZXIgdG8gbWFwXHJcbiAgICogQHBhcmFtIGxheWVyIENhdGFsb2cgbGF5ZXJcclxuICAgKi9cclxuICBwcml2YXRlIGFkZExheWVyVG9NYXAobGF5ZXI6IENhdGFsb2dJdGVtTGF5ZXIpIHtcclxuICAgIHRoaXMuYWRkTGF5ZXJzVG9NYXAoW2xheWVyXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgbGF5ZXIgZnJvbSBtYXBcclxuICAgKiBAcGFyYW0gbGF5ZXIgQ2F0YWxvZyBsYXllclxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlTGF5ZXJGcm9tTWFwKGxheWVyOiBDYXRhbG9nSXRlbUxheWVyKSB7XHJcbiAgICB0aGlzLnJlbW92ZUxheWVyc0Zyb21NYXAoW2xheWVyXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgbXVsdGlwbGUgbGF5ZXJzIHRvIG1hcFxyXG4gICAqIEBwYXJhbSBsYXllcnMgQ2F0YWxvZyBsYXllcnNcclxuICAgKi9cclxuICBwcml2YXRlIGFkZExheWVyc1RvTWFwKGxheWVyczogQ2F0YWxvZ0l0ZW1MYXllcltdKSB7XHJcbiAgICBjb25zdCBsYXllcnMkID0gbGF5ZXJzLm1hcCgobGF5ZXI6IENhdGFsb2dJdGVtTGF5ZXIpID0+IHtcclxuICAgICAgaWYgKCFsYXllci5vcHRpb25zLnNvdXJjZU9wdGlvbnMub3B0aW9uc0Zyb21BcGkpIHtcclxuICAgICAgICBsYXllci5vcHRpb25zLnNvdXJjZU9wdGlvbnMub3B0aW9uc0Zyb21BcGkgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNhdGFsb2cucHJvZmlscz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgbGF5ZXIub3B0aW9ucy5zZWN1cml0eSA9IHsgcHJvZmlsczogdGhpcy5jYXRhbG9nLnByb2ZpbHMgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5sYXllclNlcnZpY2UuY3JlYXRlQXN5bmNMYXllcihsYXllci5vcHRpb25zKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHppcCguLi5sYXllcnMkKS5zdWJzY3JpYmUoKG9MYXllcnM6IExheWVyW10pID0+IHtcclxuICAgICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGVNYW55KGxheWVycywgeyBhZGRlZDogdHJ1ZSB9KTtcclxuICAgICAgdGhpcy5tYXAuYWRkTGF5ZXJzKG9MYXllcnMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgbXVsdGlwbGUgbGF5ZXJzIGZyb20gbWFwXHJcbiAgICogQHBhcmFtIGxheWVycyBDYXRhbG9nIGxheWVyc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlTGF5ZXJzRnJvbU1hcChsYXllcnM6IENhdGFsb2dJdGVtTGF5ZXJbXSkge1xyXG4gICAgbGF5ZXJzLmZvckVhY2goKGxheWVyOiBDYXRhbG9nSXRlbUxheWVyKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RvcmUuc3RhdGUudXBkYXRlKGxheWVyLCB7IGFkZGVkOiBmYWxzZSB9KTtcclxuICAgICAgaWYgKGxheWVyLm9wdGlvbnMuYmFzZUxheWVyID09PSB0cnVlKSB7XHJcbiAgICAgICAgY29uc3Qgb0xheWVyID0gdGhpcy5tYXAuZ2V0TGF5ZXJCeUlkKGxheWVyLm9wdGlvbnMuaWQpO1xyXG4gICAgICAgIGlmIChvTGF5ZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIob0xheWVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3Qgb0xheWVyID0gdGhpcy5tYXAuZ2V0TGF5ZXJCeUlkKGxheWVyLmlkKTtcclxuICAgICAgICBpZiAob0xheWVyICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMubWFwLnJlbW92ZUxheWVyKG9MYXllcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvcnQgdGhlIGxheWVycyBieSB0aXRsZS4gYXNjIG9yIGRlc2MuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzb3J0Q2F0YWxvZ0l0ZW1zQnlUaXRsZShpdGVtczogQ2F0YWxvZ0l0ZW1bXSwgZGlyZWN0aW9uKSB7XHJcbiAgICBjb25zdCByZXR1cm5JdGVtID0gaXRlbXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICBjb25zdCB0aXRsZUEgPSBhLnRpdGxlLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xyXG4gICAgICBjb25zdCB0aXRsZUIgPSBiLnRpdGxlLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xyXG5cclxuICAgICAgaWYgKHRpdGxlQSA8IHRpdGxlQikge1xyXG4gICAgICAgIHJldHVybiAtMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGl0bGVBID4gdGl0bGVCKSB7XHJcbiAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9KTtcclxuICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ2FzYyc6XHJcbiAgICAgICAgcmV0dXJuIHJldHVybkl0ZW07XHJcbiAgICAgIGNhc2UgJ2Rlc2MnOlxyXG4gICAgICAgIHJldHVybiByZXR1cm5JdGVtLnJldmVyc2UoKTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYWxsIHRoZSBsYXllcnMgb2YgYSBncm91cCB0byBtYXBcclxuICAgKiBAcGFyYW0gZ3JvdXAgQ2F0YWxvZyBncm91cFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkR3JvdXBUb01hcChncm91cDogQ2F0YWxvZ0l0ZW1Hcm91cCkge1xyXG4gICAgbGV0IGxheWVycyA9IGdyb3VwLml0ZW1zLmZpbHRlcigoaXRlbTogQ2F0YWxvZ0l0ZW0pID0+IHtcclxuICAgICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0b3JlLnN0YXRlLmdldChpdGVtKS5hZGRlZCB8fCBmYWxzZTtcclxuICAgICAgcmV0dXJuIHRoaXMuaXNMYXllcihpdGVtKSAmJiBhZGRlZCA9PT0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIGlmIChncm91cC5zb3J0RGlyZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbGF5ZXJzID0gdGhpcy5zb3J0Q2F0YWxvZ0l0ZW1zQnlUaXRsZShsYXllcnMsIGdyb3VwLnNvcnREaXJlY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hZGRMYXllcnNUb01hcChsYXllcnMucmV2ZXJzZSgpIGFzIENhdGFsb2dJdGVtTGF5ZXJbXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYWxsIHRoZSBsYXllcnMgb2YgYSBncm91cCBmcm9tIG1hcFxyXG4gICAqIEBwYXJhbSBncm91cCBDYXRhbG9nIGdyb3VwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVHcm91cEZyb21NYXAoZ3JvdXA6IENhdGFsb2dJdGVtR3JvdXApIHtcclxuICAgIGNvbnN0IGxheWVycyA9IGdyb3VwLml0ZW1zLmZpbHRlcigoaXRlbTogQ2F0YWxvZ0l0ZW0pID0+IHtcclxuICAgICAgY29uc3QgYWRkZWQgPSB0aGlzLnN0b3JlLnN0YXRlLmdldChpdGVtKS5hZGRlZCB8fCBmYWxzZTtcclxuICAgICAgcmV0dXJuIHRoaXMuaXNMYXllcihpdGVtKSAmJiBhZGRlZCA9PT0gdHJ1ZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5yZW1vdmVMYXllcnNGcm9tTWFwKGxheWVycyBhcyBDYXRhbG9nSXRlbUxheWVyW10pO1xyXG4gIH1cclxufVxyXG4iLCI8aWdvLWxpc3QgW25hdmlnYXRpb25dPVwiZmFsc2VcIiBbc2VsZWN0aW9uXT1cImZhbHNlXCI+XHJcbiAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1pdGVtIFtuZ0Zvck9mXT1cInN0b3JlLnZpZXcuYWxsJCgpIHwgYXN5bmNcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0dyb3VwKGl0ZW0pXCI+XHJcbiAgICAgIDxpZ28tY2F0YWxvZy1icm93c2VyLWdyb3VwXHJcbiAgICAgICAgW2NhdGFsb2ddPVwiY2F0YWxvZ1wiXHJcbiAgICAgICAgW2dyb3VwXT1cIml0ZW1cIlxyXG4gICAgICAgIFtzdGF0ZV09XCJzdG9yZS5zdGF0ZVwiXHJcbiAgICAgICAgW3Jlc29sdXRpb25dPVwicmVzb2x1dGlvbiQgfCBhc3luY1wiXHJcbiAgICAgICAgW2NhdGFsb2dBbGxvd0xlZ2VuZF09XCJjYXRhbG9nQWxsb3dMZWdlbmRcIlxyXG4gICAgICAgIFtjb2xsYXBzZWRdPVwiKHN0b3JlLmNvdW50ID09PSAxKSA/IGZhbHNlIDogdHJ1ZVwiXHJcbiAgICAgICAgW3RvZ2dsZUNvbGxhcHNlZF09XCJ0b2dnbGVDb2xsYXBzZWRHcm91cFwiXHJcbiAgICAgICAgKGFkZGVkQ2hhbmdlKT1cIm9uR3JvdXBBZGRlZENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAobGF5ZXJBZGRlZENoYW5nZSk9XCJvbkxheWVyQWRkZWRDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L2lnby1jYXRhbG9nLWJyb3dzZXItZ3JvdXA+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMYXllcihpdGVtKVwiPlxyXG4gICAgICA8aWdvLWNhdGFsb2ctYnJvd3Nlci1sYXllclxyXG4gICAgICAgIGlnb0xpc3RJdGVtXHJcbiAgICAgICAgW2xheWVyXT1cIml0ZW1cIlxyXG4gICAgICAgIFtyZXNvbHV0aW9uXT1cInJlc29sdXRpb24kIHwgYXN5bmNcIlxyXG4gICAgICAgIFtjYXRhbG9nQWxsb3dMZWdlbmRdPVwiY2F0YWxvZ0FsbG93TGVnZW5kXCJcclxuICAgICAgICBbYWRkZWRdPVwic3RvcmUuc3RhdGUuZ2V0KGl0ZW0pLmFkZGVkXCJcclxuICAgICAgICAoYWRkZWRDaGFuZ2UpPVwib25MYXllckFkZGVkQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPC9pZ28tY2F0YWxvZy1icm93c2VyLWxheWVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9pZ28tbGlzdD5cclxuIl19
@@ -92,4 +92,4 @@ export class CatalogFactory {
92
92
  return catalog;
93
93
  }
94
94
  }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5hYnN0cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvc2hhcmVkL2NhdGFsb2cuYWJzdHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxNQUFNLE9BQWdCLE9BQU87SUFnQ3pCLFlBQVksT0FBZ0IsRUFBRSxPQUF1QjtRQUNqRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0NBR0o7QUFFRCxNQUFNLFVBQVcsU0FBUSxPQUFPO0lBQzVCLFlBQVksT0FBZ0IsRUFBRSxPQUF1QjtRQUNqRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFXLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKO0FBRUQsTUFBTSxXQUFZLFNBQVEsT0FBTztJQUM3QixZQUFZLE9BQWdCLEVBQUUsT0FBdUI7UUFDakQsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBVyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxJ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QUFPLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM1RjthQUFNLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sR0FBRyxJQUFJLDRCQUE0QixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzdGO2FBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkQsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvQzthQUFNO1lBQ0gsT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFRvb2x0aXBUeXBlIH0gZnJvbSAnLi4vLi4vbGF5ZXInO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ZpbHRlcic7XHJcbmltcG9ydCB7IFF1ZXJ5Rm9ybWF0LCBRdWVyeUh0bWxUYXJnZXQgfSBmcm9tICcuLi8uLi9xdWVyeSc7XHJcblxyXG5pbXBvcnQgeyBJQ2F0YWxvZywgSUNvbXBvc2l0ZUNhdGFsb2cgLCBDYXRhbG9nSXRlbSwgQ2F0YWxvZ0l0ZW1Hcm91cCB9IGZyb20gJy4vY2F0YWxvZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDYXRhbG9nU2VydmljZSB9IGZyb20gJy4vY2F0YWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHlwZUNhdGFsb2csIFR5cGVDYXRhbG9nU3RyaW5ncyB9IGZyb20gJy4vY2F0YWxvZy5lbnVtJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDYXRhbG9nIGltcGxlbWVudHMgSUNhdGFsb2cge1xyXG5cclxuICAgIC8vIElDYXRhbG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHVybDogc3RyaW5nO1xyXG4gICAgcmVtb3ZhYmxlPzogYm9vbGVhbjtcclxuICAgIGV4dGVybmFsUHJvdmlkZXI/OiBib29sZWFuO1xyXG4gICAgYWJzdHJhY3Q/OiBzdHJpbmc7XHJcbiAgICBmb3JjZWRQcm9wZXJ0aWVzPzogYW55W107XHJcbiAgICBpdGVtcz86IENhdGFsb2dJdGVtW107XHJcbiAgICB0eXBlPzogVHlwZUNhdGFsb2dTdHJpbmdzO1xyXG4gICAgdmVyc2lvbj86IHN0cmluZztcclxuICAgIG1hdHJpeFNldD86IHN0cmluZztcclxuICAgIHJlcXVlc3RFbmNvZGluZz86IHN0cmluZztcclxuICAgIHJlZ0ZpbHRlcnM/OiBzdHJpbmdbXTtcclxuICAgIGdyb3VwSW1wb3NlPzogQ2F0YWxvZ0l0ZW1Hcm91cDtcclxuICAgIGdyb3VwU2VwYXJhdG9yPzogc3RyaW5nO1xyXG4gICAgdGltZUZpbHRlcj86IFRpbWVGaWx0ZXJPcHRpb25zO1xyXG4gICAgcXVlcnlGb3JtYXQ/OiBRdWVyeUZvcm1hdDtcclxuICAgIHF1ZXJ5SHRtbFRhcmdldD86IFF1ZXJ5SHRtbFRhcmdldDtcclxuICAgIHF1ZXJ5UGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmc7IH07XHJcbiAgICBzb3VyY2VPcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnk7IH07XHJcbiAgICBjb3VudD86IG51bWJlcjtcclxuICAgIHRvb2x0aXBUeXBlPzogVG9vbHRpcFR5cGUuQUJTVFJBQ1QgfCBUb29sdGlwVHlwZS5USVRMRTtcclxuICAgIHNvcnREaXJlY3Rpb24/OiAnYXNjJyB8ICdkZXNjJztcclxuICAgIHNldENyb3NzT3JpZ2luQW5vbnltb3VzPzogYm9vbGVhbjtcclxuICAgIHNob3dMZWdlbmQ/OiBib29sZWFuO1xyXG4gICAgLy8gSUNhdGFsb2cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY2F0YWxvZ1NlcnZpY2U6IENhdGFsb2dTZXJ2aWNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENhdGFsb2csIHNlcnZpY2U6IENhdGFsb2dTZXJ2aWNlKSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBvcHRpb25zKTtcclxuICAgICAgICB0aGlzLmNhdGFsb2dTZXJ2aWNlID0gc2VydmljZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgY29sbGVjdENhdGFsb2dJdGVtcygpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+O1xyXG59XHJcblxyXG5jbGFzcyBXTVNDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy53bXNdO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IFR5cGVDYXRhbG9nW3NUeXBlXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sbGVjdENhdGFsb2dJdGVtcygpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYXRhbG9nU2VydmljZS5sb2FkQ2F0YWxvZ1dNU0xheWVySXRlbXModGhpcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFdNVFNDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy53bXRzXTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbGxlY3RDYXRhbG9nSXRlbXMoKTogT2JzZXJ2YWJsZTxDYXRhbG9nSXRlbVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2UubG9hZENhdGFsb2dXTVRTTGF5ZXJJdGVtcyh0aGlzKTtcclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgQmFzZWxheWVyc0NhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nIHtcclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENhdGFsb2csIHNlcnZpY2U6IENhdGFsb2dTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucywgc2VydmljZSk7XHJcbiAgICAgICAgY29uc3Qgc1R5cGU6IHN0cmluZyA9IFR5cGVDYXRhbG9nW1R5cGVDYXRhbG9nLmJhc2VsYXllcnNdO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IFR5cGVDYXRhbG9nW3NUeXBlXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sbGVjdENhdGFsb2dJdGVtcygpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtR3JvdXBbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmxvYWRDYXRhbG9nQmFzZUxheWVySXRlbXModGhpcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIEFyY0dJU1Jlc3RDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5hcmNnaXNyZXN0XTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbGxlY3RDYXRhbG9nSXRlbXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2UubG9hZENhdGFsb2dBcmNHSVNSZXN0SXRlbXModGhpcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFRpbGVPckltYWdlQXJjR0lTUmVzdENhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nIHtcclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENhdGFsb2csIHNlcnZpY2U6IENhdGFsb2dTZXJ2aWNlLCB0eXBlQ2F0YWxvZzogVHlwZUNhdGFsb2cpIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zLCBzZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZ1t0eXBlQ2F0YWxvZ11dO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb2xsZWN0Q2F0YWxvZ0l0ZW1zKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmxvYWRDYXRhbG9nQXJjR0lTUmVzdEl0ZW1zKHRoaXMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29tcG9zaXRlQ2F0YWxvZyBleHRlbmRzIENhdGFsb2cgaW1wbGVtZW50cyBJQ29tcG9zaXRlQ2F0YWxvZyB7XHJcbiAgICBjb21wb3NpdGU6IElDYXRhbG9nW107XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogQ2F0YWxvZywgc2VydmljZTogQ2F0YWxvZ1NlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zLCBzZXJ2aWNlKTtcclxuICAgICAgICBjb25zdCBzVHlwZTogc3RyaW5nID0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cuY29tcG9zaXRlXTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XHJcbiAgICAgICAgdGhpcy51cmwgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb2xsZWN0Q2F0YWxvZ0l0ZW1zKCk6IE9ic2VydmFibGU8Q2F0YWxvZ0l0ZW1bXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmxvYWRDYXRhbG9nQ29tcG9zaXRlTGF5ZXJJdGVtcyh0aGlzKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhdGFsb2dGYWN0b3J5IHtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUluc3RhbmNlQ2F0YWxvZyhvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSk6IENhdGFsb2cge1xyXG5cclxuICAgICAgICBsZXQgY2F0YWxvZzogQ2F0YWxvZztcclxuICAgICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnY29tcG9zaXRlJykpIHtcclxuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBDb21wb3NpdGVDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5iYXNlbGF5ZXJzXSkge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IEJhc2VsYXllcnNDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5hcmNnaXNyZXN0XSkge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IEFyY0dJU1Jlc3RDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy50aWxlYXJjZ2lzcmVzdF0pIHtcclxuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBUaWxlT3JJbWFnZUFyY0dJU1Jlc3RDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UsIFR5cGVDYXRhbG9nLnRpbGVhcmNnaXNyZXN0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudHlwZSA9PT0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cuaW1hZ2VhcmNnaXNyZXN0XSkge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IFRpbGVPckltYWdlQXJjR0lTUmVzdENhdGFsb2cob3B0aW9ucywgc2VydmljZSwgVHlwZUNhdGFsb2cuaW1hZ2VhcmNnaXNyZXN0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudHlwZSA9PT0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cud210c10pIHtcclxuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBXTVRTQ2F0YWxvZyhvcHRpb25zLCBzZXJ2aWNlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IFdNU0NhdGFsb2cob3B0aW9ucywgc2VydmljZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY2F0YWxvZztcclxuICAgIH1cclxufVxyXG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5hYnN0cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2NhdGFsb2cvc2hhcmVkL2NhdGFsb2cuYWJzdHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRSxNQUFNLE9BQWdCLE9BQU87SUFpQ3pCLFlBQVksT0FBZ0IsRUFBRSxPQUF1QjtRQUNqRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0NBR0o7QUFFRCxNQUFNLFVBQVcsU0FBUSxPQUFPO0lBQzVCLFlBQVksT0FBZ0IsRUFBRSxPQUF1QjtRQUNqRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sS0FBSyxHQUFXLFdBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKO0FBRUQsTUFBTSxXQUFZLFNBQVEsT0FBTztJQUM3QixZQUFZLE9BQWdCLEVBQUUsT0FBdUI7UUFDakQsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBVyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsT0FBTyxJ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QUFPLEdBQUcsSUFBSSw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM1RjthQUFNLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2xFLE9BQU8sR0FBRyxJQUFJLDRCQUE0QixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzdGO2FBQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkQsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvQzthQUFNO1lBQ0gsT0FBTyxHQUFHLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFRvb2x0aXBUeXBlIH0gZnJvbSAnLi4vLi4vbGF5ZXInO1xyXG5pbXBvcnQgeyBUaW1lRmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL2ZpbHRlcic7XHJcbmltcG9ydCB7IFF1ZXJ5Rm9ybWF0LCBRdWVyeUh0bWxUYXJnZXQgfSBmcm9tICcuLi8uLi9xdWVyeSc7XHJcblxyXG5pbXBvcnQgeyBJQ2F0YWxvZywgSUNvbXBvc2l0ZUNhdGFsb2cgLCBDYXRhbG9nSXRlbSwgQ2F0YWxvZ0l0ZW1Hcm91cCB9IGZyb20gJy4vY2F0YWxvZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDYXRhbG9nU2VydmljZSB9IGZyb20gJy4vY2F0YWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHlwZUNhdGFsb2csIFR5cGVDYXRhbG9nU3RyaW5ncyB9IGZyb20gJy4vY2F0YWxvZy5lbnVtJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDYXRhbG9nIGltcGxlbWVudHMgSUNhdGFsb2cge1xyXG5cclxuICAgIC8vIElDYXRhbG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHVybDogc3RyaW5nO1xyXG4gICAgcmVtb3ZhYmxlPzogYm9vbGVhbjtcclxuICAgIGV4dGVybmFsUHJvdmlkZXI/OiBib29sZWFuO1xyXG4gICAgYWJzdHJhY3Q/OiBzdHJpbmc7XHJcbiAgICBmb3JjZWRQcm9wZXJ0aWVzPzogYW55W107XHJcbiAgICBpdGVtcz86IENhdGFsb2dJdGVtW107XHJcbiAgICB0eXBlPzogVHlwZUNhdGFsb2dTdHJpbmdzO1xyXG4gICAgdmVyc2lvbj86IHN0cmluZztcclxuICAgIG1hdHJpeFNldD86IHN0cmluZztcclxuICAgIHJlcXVlc3RFbmNvZGluZz86IHN0cmluZztcclxuICAgIHJlZ0ZpbHRlcnM/OiBzdHJpbmdbXTtcclxuICAgIGdyb3VwSW1wb3NlPzogQ2F0YWxvZ0l0ZW1Hcm91cDtcclxuICAgIGdyb3VwU2VwYXJhdG9yPzogc3RyaW5nO1xyXG4gICAgdGltZUZpbHRlcj86IFRpbWVGaWx0ZXJPcHRpb25zO1xyXG4gICAgcXVlcnlGb3JtYXQ/OiBRdWVyeUZvcm1hdDtcclxuICAgIHF1ZXJ5SHRtbFRhcmdldD86IFF1ZXJ5SHRtbFRhcmdldDtcclxuICAgIHF1ZXJ5UGFyYW1zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmc7IH07XHJcbiAgICBzb3VyY2VPcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBhbnk7IH07XHJcbiAgICBjb3VudD86IG51bWJlcjtcclxuICAgIHRvb2x0aXBUeXBlPzogVG9vbHRpcFR5cGUuQUJTVFJBQ1QgfCBUb29sdGlwVHlwZS5USVRMRTtcclxuICAgIHNvcnREaXJlY3Rpb24/OiAnYXNjJyB8ICdkZXNjJztcclxuICAgIHNldENyb3NzT3JpZ2luQW5vbnltb3VzPzogYm9vbGVhbjtcclxuICAgIHNob3dMZWdlbmQ/OiBib29sZWFuO1xyXG4gICAgcHJvZmlscz86IHN0cmluZ1tdO1xyXG4gICAgLy8gSUNhdGFsb2cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY2F0YWxvZ1NlcnZpY2U6IENhdGFsb2dTZXJ2aWNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENhdGFsb2csIHNlcnZpY2U6IENhdGFsb2dTZXJ2aWNlKSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBvcHRpb25zKTtcclxuICAgICAgICB0aGlzLmNhdGFsb2dTZXJ2aWNlID0gc2VydmljZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgY29sbGVjdENhdGFsb2dJdGVtcygpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+O1xyXG59XHJcblxyXG5jbGFzcyBXTVNDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy53bXNdO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IFR5cGVDYXRhbG9nW3NUeXBlXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sbGVjdENhdGFsb2dJdGVtcygpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jYXRhbG9nU2VydmljZS5sb2FkQ2F0YWxvZ1dNU0xheWVySXRlbXModGhpcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFdNVFNDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy53bXRzXTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbGxlY3RDYXRhbG9nSXRlbXMoKTogT2JzZXJ2YWJsZTxDYXRhbG9nSXRlbVtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2UubG9hZENhdGFsb2dXTVRTTGF5ZXJJdGVtcyh0aGlzKTtcclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgQmFzZWxheWVyc0NhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nIHtcclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENhdGFsb2csIHNlcnZpY2U6IENhdGFsb2dTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucywgc2VydmljZSk7XHJcbiAgICAgICAgY29uc3Qgc1R5cGU6IHN0cmluZyA9IFR5cGVDYXRhbG9nW1R5cGVDYXRhbG9nLmJhc2VsYXllcnNdO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IFR5cGVDYXRhbG9nW3NUeXBlXTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29sbGVjdENhdGFsb2dJdGVtcygpOiBPYnNlcnZhYmxlPENhdGFsb2dJdGVtR3JvdXBbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmxvYWRDYXRhbG9nQmFzZUxheWVySXRlbXModGhpcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIEFyY0dJU1Jlc3RDYXRhbG9nIGV4dGVuZHMgQ2F0YWxvZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIGNvbnN0IHNUeXBlOiBzdHJpbmcgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5hcmNnaXNyZXN0XTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbGxlY3RDYXRhbG9nSXRlbXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2F0YWxvZ1NlcnZpY2UubG9hZENhdGFsb2dBcmNHSVNSZXN0SXRlbXModGhpcyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFRpbGVPckltYWdlQXJjR0lTUmVzdENhdGFsb2cgZXh0ZW5kcyBDYXRhbG9nIHtcclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENhdGFsb2csIHNlcnZpY2U6IENhdGFsb2dTZXJ2aWNlLCB0eXBlQ2F0YWxvZzogVHlwZUNhdGFsb2cpIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zLCBzZXJ2aWNlKTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZ1t0eXBlQ2F0YWxvZ11dO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb2xsZWN0Q2F0YWxvZ0l0ZW1zKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmxvYWRDYXRhbG9nQXJjR0lTUmVzdEl0ZW1zKHRoaXMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29tcG9zaXRlQ2F0YWxvZyBleHRlbmRzIENhdGFsb2cgaW1wbGVtZW50cyBJQ29tcG9zaXRlQ2F0YWxvZyB7XHJcbiAgICBjb21wb3NpdGU6IElDYXRhbG9nW107XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogQ2F0YWxvZywgc2VydmljZTogQ2F0YWxvZ1NlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zLCBzZXJ2aWNlKTtcclxuICAgICAgICBjb25zdCBzVHlwZTogc3RyaW5nID0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cuY29tcG9zaXRlXTtcclxuICAgICAgICB0aGlzLnR5cGUgPSBUeXBlQ2F0YWxvZ1tzVHlwZV07XHJcbiAgICAgICAgdGhpcy51cmwgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjb2xsZWN0Q2F0YWxvZ0l0ZW1zKCk6IE9ic2VydmFibGU8Q2F0YWxvZ0l0ZW1bXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmxvYWRDYXRhbG9nQ29tcG9zaXRlTGF5ZXJJdGVtcyh0aGlzKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhdGFsb2dGYWN0b3J5IHtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUluc3RhbmNlQ2F0YWxvZyhvcHRpb25zOiBDYXRhbG9nLCBzZXJ2aWNlOiBDYXRhbG9nU2VydmljZSk6IENhdGFsb2cge1xyXG5cclxuICAgICAgICBsZXQgY2F0YWxvZzogQ2F0YWxvZztcclxuICAgICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgnY29tcG9zaXRlJykpIHtcclxuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBDb21wb3NpdGVDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5iYXNlbGF5ZXJzXSkge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IEJhc2VsYXllcnNDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy5hcmNnaXNyZXN0XSkge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IEFyY0dJU1Jlc3RDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlID09PSBUeXBlQ2F0YWxvZ1tUeXBlQ2F0YWxvZy50aWxlYXJjZ2lzcmVzdF0pIHtcclxuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBUaWxlT3JJbWFnZUFyY0dJU1Jlc3RDYXRhbG9nKG9wdGlvbnMsIHNlcnZpY2UsIFR5cGVDYXRhbG9nLnRpbGVhcmNnaXNyZXN0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudHlwZSA9PT0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cuaW1hZ2VhcmNnaXNyZXN0XSkge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IFRpbGVPckltYWdlQXJjR0lTUmVzdENhdGFsb2cob3B0aW9ucywgc2VydmljZSwgVHlwZUNhdGFsb2cuaW1hZ2VhcmNnaXNyZXN0KTtcclxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudHlwZSA9PT0gVHlwZUNhdGFsb2dbVHlwZUNhdGFsb2cud210c10pIHtcclxuICAgICAgICAgICAgY2F0YWxvZyA9IG5ldyBXTVRTQ2F0YWxvZyhvcHRpb25zLCBzZXJ2aWNlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjYXRhbG9nID0gbmV3IFdNU0NhdGFsb2cob3B0aW9ucywgc2VydmljZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY2F0YWxvZztcclxuICAgIH1cclxufVxyXG4iXX0=