fabrikantencore 2.5.2 → 2.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-deeplink/beheer-deeplink.component.mjs +14 -20
  2. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-filter/beheer-filter.component.mjs +15 -18
  3. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.mjs +50 -17
  4. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.mjs +6 -9
  5. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.mjs +4 -5
  6. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.mjs +18 -23
  7. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.mjs +12 -18
  8. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.mjs +11 -20
  9. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.mjs +32 -19
  10. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.mjs +6 -3
  11. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-select-filter-dialog/beheer-select-filter-dialog.component.mjs +17 -19
  12. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.mjs +3 -3
  13. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.mjs +7 -135
  14. package/esm2020/src/app/modules/fabrikantencore/components/fab-actionmenu/fab-actionmenu.component.mjs +1 -1
  15. package/esm2020/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.mjs +2 -2
  16. package/esm2020/src/app/modules/fabrikantencore/components/fab-category-navigator/fab-category-navigator.component.mjs +3 -3
  17. package/esm2020/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.mjs +3 -3
  18. package/esm2020/src/app/modules/fabrikantencore/components/fab-filter-colour/fab-filter-colour.component.mjs +1 -1
  19. package/esm2020/src/app/modules/fabrikantencore/components/fab-filter-colour-label/fab-filter-colour-label.component.mjs +1 -1
  20. package/esm2020/src/app/modules/fabrikantencore/components/fab-filter-fold/fab-filter-fold.component.mjs +1 -1
  21. package/esm2020/src/app/modules/fabrikantencore/components/fab-filter-label/fab-filter-label.component.mjs +1 -1
  22. package/esm2020/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.mjs +2 -2
  23. package/esm2020/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.mjs +1 -1
  24. package/esm2020/src/app/modules/fabrikantencore/components/fab-multiselect-fold/fab-multiselect-fold.component.mjs +1 -1
  25. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-toebehoren/fab-toebehoren.component.mjs +1 -1
  26. package/esm2020/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.mjs +3 -3
  27. package/esm2020/src/app/modules/fabrikantencore/components/fab-range-input-fold/fab-range-input-fold.component.mjs +1 -1
  28. package/esm2020/src/app/modules/fabrikantencore/components/fab-select-bcbproduct/fab-select-bcbproduct.component.mjs +1 -1
  29. package/esm2020/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.mjs +3 -2
  30. package/esm2020/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.mjs +8 -5
  31. package/esm2020/src/app/modules/fabrikantencore/components/fab-texture/fab-texture.component.mjs +1 -1
  32. package/esm2020/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +2 -10
  33. package/esm2020/src/app/modules/fabrikantencore/helpers/auth.guard.mjs +1 -2
  34. package/esm2020/src/app/modules/fabrikantencore/services/authentication.service.mjs +2 -25
  35. package/esm2020/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +42 -85
  36. package/esm2020/src/app/modules/fabrikantencore/services/importsets.service.mjs +5 -7
  37. package/esm2020/src/app/modules/fabrikantencore/services/products.service.mjs +21 -12
  38. package/esm2020/src/app/modules/fabrikantencore/services/svg.service.mjs +6 -11
  39. package/esm2020/src/app/modules/fabrikantencore/services/translate.service.mjs +1 -1
  40. package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +297 -787
  41. package/fesm2015/fabrikantencore.mjs +574 -1224
  42. package/fesm2015/fabrikantencore.mjs.map +1 -1
  43. package/fesm2020/fabrikantencore.mjs +589 -1237
  44. package/fesm2020/fabrikantencore.mjs.map +1 -1
  45. package/package.json +1 -1
  46. package/src/app/modules/fabrikantencore/beheer/components/beheer-deeplink/beheer-deeplink.component.d.ts +1 -4
  47. package/src/app/modules/fabrikantencore/beheer/components/beheer-filter/beheer-filter.component.d.ts +1 -3
  48. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.d.ts +4 -4
  49. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.d.ts +1 -3
  50. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.d.ts +1 -3
  51. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.d.ts +1 -3
  52. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.d.ts +1 -3
  53. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.d.ts +2 -3
  54. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.d.ts +1 -0
  55. package/src/app/modules/fabrikantencore/beheer/components/beheer-select-filter-dialog/beheer-select-filter-dialog.component.d.ts +1 -3
  56. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.d.ts +1 -18
  57. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.d.ts +2 -1
  58. package/src/app/modules/fabrikantencore/services/authentication.service.d.ts +0 -4
  59. package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +7 -8
  60. package/src/app/modules/fabrikantencore/services/importsets.service.d.ts +1 -3
  61. package/src/app/modules/fabrikantencore/services/products.service.d.ts +2 -3
  62. package/src/app/modules/fabrikantencore/services/svg.service.d.ts +1 -6
  63. package/src/app/modules/fabrikantencore/services/translate.service.d.ts +1 -1
  64. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +61 -244
@@ -2,11 +2,9 @@ import { Injectable } from '@angular/core';
2
2
  import { BCBImportOpenRequest, BCBImportSetViewModel, ChangeImportSetRequest } from '../swagger/SwaggerClient';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../swagger/SwaggerClient";
5
- import * as i2 from "./authentication.service";
6
5
  export class ImportSetsService {
7
- constructor(ImportApiClient, authenticationService, FiltersApiClient) {
6
+ constructor(ImportApiClient, FiltersApiClient) {
8
7
  this.ImportApiClient = ImportApiClient;
9
- this.authenticationService = authenticationService;
10
8
  this.FiltersApiClient = FiltersApiClient;
11
9
  this.LoadingImportSets = true;
12
10
  this.LoadingOpen = false;
@@ -101,7 +99,7 @@ export class ImportSetsService {
101
99
  LoadFilters() {
102
100
  if (!this.FiltersInit) {
103
101
  this.LoadingFilters = true;
104
- this.FiltersApiClient.getFiltersViewModel(this.authenticationService.currentUserValue).subscribe((model) => {
102
+ this.FiltersApiClient.getFiltersViewModel().subscribe((model) => {
105
103
  this.FiltersViewModel = model;
106
104
  this.LoadingFilters = false;
107
105
  this.FiltersInit = false;
@@ -128,10 +126,10 @@ export class ImportSetsService {
128
126
  return false;
129
127
  }
130
128
  }
131
- ImportSetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ImportSetsService, deps: [{ token: i1.ImportApiClient }, { token: i2.AuthenticationService }, { token: i1.FiltersApiClient }], target: i0.ɵɵFactoryTarget.Injectable });
129
+ ImportSetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ImportSetsService, deps: [{ token: i1.ImportApiClient }, { token: i1.FiltersApiClient }], target: i0.ɵɵFactoryTarget.Injectable });
132
130
  ImportSetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ImportSetsService, providedIn: 'root' });
133
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ImportSetsService, decorators: [{
134
132
  type: Injectable,
135
133
  args: [{ providedIn: 'root' }]
136
- }], ctorParameters: function () { return [{ type: i1.ImportApiClient }, { type: i2.AuthenticationService }, { type: i1.FiltersApiClient }]; } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0c2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9zZXJ2aWNlcy9pbXBvcnRzZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUF1QixvQkFBb0IsRUFBaUQscUJBQXFCLEVBQUUsc0JBQXNCLEVBQStGLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFLaFIsTUFBTSxPQUFPLGlCQUFpQjtJQWlCNUIsWUFBb0IsZUFBZ0MsRUFDMUMscUJBQTRDLEVBQzVDLGdCQUFrQztRQUZ4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDMUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBbEJyQyxzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFDbEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFXN0Isb0JBQWUsR0FBMkIsSUFBSSxDQUFDO0lBS3RELENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxLQUFhLEVBQUUsT0FBZ0IsRUFBRSxpQkFBb0M7UUFDL0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM5QixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVsQyxJQUFJLEtBQUssR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUM7UUFFekMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDOUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEIsS0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFeEIsSUFBSSxDQUFD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SyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDbEUsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs4R0E3SlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FESixNQUFNOzJGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJDQkltcG9ydEVpZ2Vuc2NoYXAsIEJDQkltcG9ydE9wZW5SZXF1ZXN0LCBCQ0JJbXBvcnRPcGVuUmVzcG9uc2UsIEJDQkltcG9ydFNldHNWaWV3TW9kZWwsIEJDQkltcG9ydFNldFZpZXdNb2RlbCwgQ2hhbmdlSW1wb3J0U2V0UmVxdWVzdCwgRmlsdGVyT3B0aW9uVmlld01vZGVsLCBGaWx0ZXJzQXBpQ2xpZW50LCBGaWx0ZXJzVmlld01vZGVsLCBGaWx0ZXJWaWV3TW9kZWwsIEltcG9ydEFwaUNsaWVudCB9IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb2R1Y3RzU2VydmljZSB9IGZyb20gJy4vcHJvZHVjdHMuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgSW1wb3J0U2V0c1NlcnZpY2Uge1xyXG4gIHB1YmxpYyBMb2FkaW5nSW1wb3J0U2V0czogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIExvYWRpbmdPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIExvYWRpbmdGaWx0ZXJzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIEZpbHRlcnNJbml0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBGaWx0ZXJTZWxlY3RlZDogRmlsdGVyVmlld01vZGVsO1xyXG4gIHB1YmxpYyBGaWx0ZXJPcHRpZVNlbGVjdGVkOiBGaWx0ZXJPcHRpb25WaWV3TW9kZWw7XHJcbiAgcHVibGljIEZpbHRlcnNWaWV3TW9kZWw6IEZpbHRlcnNWaWV3TW9kZWw7XHJcblxyXG4gIHB1YmxpYyBCQ0JJbXBvcnRTZXRzVmlld01vZGVsOiBCQ0JJbXBvcnRTZXRzVmlld01vZGVsO1xyXG4gIHB1YmxpYyBCQ0JJbXBvcnRPcGVuUmVzcG9uc2U6IEJDQkltcG9ydE9wZW5SZXNwb25zZTtcclxuXHJcbiAgcHVibGljIEJDQkltcG9ydFNldFNlbGVjdGVkOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBQcm9kdWN0c1NlcnZpY2U6IFByb2R1Y3RzU2VydmljZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIEltcG9ydEFwaUNsaWVudDogSW1wb3J0QXBpQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgRmlsdGVyc0FwaUNsaWVudDogRmlsdGVyc0FwaUNsaWVudCkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENoYW5nZUltcG9ydFNldFZhbHVlKHZhbHVlOiBzdHJpbmcsIGVuYWJsZWQ6IGJvb2xlYW4sIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nSW1wb3J0U2V0cyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIG1vZGVsID0gbmV3IENoYW5nZUltcG9ydFNldFJlcXVlc3QoKTtcclxuXHJcbiAgICBtb2RlbC5pbXBvcnRTZXRJZCA9IHRoaXMuQkNCSW1wb3J0U2V0U2VsZWN0ZWQ7XHJcbiAgICBtb2RlbC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgbW9kZWwuZW5hYmxlZCA9IGVuYWJsZWQ7XHJcblxyXG4gICAgdGhpcy5JbXBvcnRBcGlDbGllbnQuY2hhbmdlSW1wb3J0U2V0KG1vZGVsKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLkxvYWRJbXBvcnRTZXRzKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nSW1wb3J0U2V0cyA9IGZhbHNlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBPcGVuKGlkOiBudW1iZXIsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nT3BlbiA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgQkNCSW1wb3J0T3BlblJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0LmJjYlByb2R1Y3RJZCA9IGlkO1xyXG5cclxuICAgIHRoaXMuSW1wb3J0QXBpQ2xpZW50Lm9wZW5CQ0JQcm9kdWN0KHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEJDQkltcG9ydE9wZW5SZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLkJDQkltcG9ydE9wZW5SZXNwb25zZSA9IG1vZGVsO1xyXG4gICAgICB0aGlzLlJlZnJlc2hCQ0JJbXBvcnRPcGVuUmVzcG9uc2UoKTtcclxuICAgICAgdGhpcy5Mb2FkaW5nT3BlbiA9IGZhbHNlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRBY3RpdmVJbXBvcnRTZXQoKTogQkNCSW1wb3J0U2V0Vmlld01vZGVsIHtcclxuICAgIHZhciBhcnJheSA9IHRoaXMuQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbD8uYmNiSW1wb3J0U2V0Vmlld01vZGVscztcclxuICAgIGlmIChhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoYXJyYXlbaV0uaWQgPT0gdGhpcy5CQ0JJbXBvcnRTZXRTZWxlY3RlZCkge1xyXG4gICAgICAgICAgcmV0dXJuIGFycmF5W2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXcgQkNCSW1wb3J0U2V0Vmlld01vZGVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9hZEltcG9ydFNldHMoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmdJbXBvcnRTZXRzID0gdHJ1ZTtcclxuICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICB0aGlzLkltcG9ydEFwaUNsaWVudC5nZXRCQ0JJbXBvcnRTZXRzVmlld01vZGVsKCkuc3Vic2NyaWJlKChtb2RlbDogQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICB0aGlzLkJDQkltcG9ydFNldHNWaWV3TW9kZWwgPSBtb2RlbDtcclxuXHJcbiAgICAgIGlmICh0aGlzLkJDQkltcG9ydFNldFNlbGVjdGVkID09IG51bGwpIHtcclxuICAgICAgICBpZiAodGhpcy5CQ0JJbXBvcnRTZXRzVmlld01vZGVsPy5iY2JJbXBvcnRTZXRWaWV3TW9kZWxzICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuQkNCSW1wb3J0U2V0U2VsZWN0ZWQgPSB0aGlzLkJDQkltcG9ydFNldHNWaWV3TW9kZWwuYmNiSW1wb3J0U2V0Vmlld01vZGVsc1swXS5pZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5SZWZyZXNoQkNCSW1wb3J0T3BlblJlc3BvbnNlKCk7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0ltcG9ydFNldHMgPSBmYWxzZTtcclxuICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlICE9IG51bGwpIHtcclxuICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5SZWxvYWQoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZ0ltcG9ydFNldHMgPSBmYWxzZTtcclxuICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIFJlZnJlc2hCQ0JJbXBvcnRPcGVuUmVzcG9uc2UoKTogdm9pZCB7XHJcbiAgICB2YXIgYXJyYXllaWdlbnNjaGFwcGVuID0gdGhpcy5CQ0JJbXBvcnRPcGVuUmVzcG9uc2U/LmJjYkltcG9ydEVpZ2Vuc2NoYXBwZW47XHJcbiAgICBpZiAoYXJyYXllaWdlbnNjaGFwcGVuICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheWVpZ2Vuc2NoYXBwZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBhcnJheWVpZ2Vuc2NoYXBwZW5baV0uc2VsZWN0ZWQgPSB0aGlzLklzVmFsdWVJblNlbGVjdGVkSW1wb3J0U2V0KGFycmF5ZWlnZW5zY2hhcHBlbltpXS5uYW1lICsgXCJcIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgYXJyYXlvcGJvdXcgPSB0aGlzLkJDQkltcG9ydE9wZW5SZXNwb25zZT8uYmNiSW1wb3J0T3Bib3V3ZW47XHJcbiAgICBpZiAoYXJyYXlvcGJvdXcgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5b3Bib3V3Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgYXJyYXlvcGJvdXdbaV0uc2VsZWN0ZWQgPSB0aGlzLklzVmFsdWVJblNlbGVjdGVkSW1wb3J0U2V0KGFycmF5b3Bib3V3W2ldLm5hbWUgKyBcIlwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLkZpbHRlcnNJbml0KSB7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LmdldEZpbHRlcnNWaWV3TW9kZWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSkuc3Vic2NyaWJlKChtb2RlbDogRmlsdGVyc1ZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuRmlsdGVyc1ZpZXdNb2RlbCA9IG1vZGVsO1xyXG4gICAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLkZpbHRlcnNJbml0ID0gZmFsc2U7XHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmdGaWx0ZXJzID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBJc1ZhbHVlSW5TZWxlY3RlZEltcG9ydFNldCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICB2YXIgaW1wb3J0c2V0ID0gdGhpcy5HZXRBY3RpdmVJbXBvcnRTZXQoKT8uYmNiSW1wb3J0U2V0VmFsdWVWaWV3TW9kZWxzO1xyXG5cclxuICAgIGlmIChpbXBvcnRzZXQgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGltcG9ydHNldC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICgoaW1wb3J0c2V0W2ldLnZhbHVlICsgXCJcIikudG9Mb3dlckNhc2UoKSA9PSB2YWx1ZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
134
+ }], ctorParameters: function () { return [{ type: i1.ImportApiClient }, { type: i1.FiltersApiClient }]; } });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0c2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ZhYnJpa2FudGVuY29yZS9zZXJ2aWNlcy9pbXBvcnRzZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUF1QixvQkFBb0IsRUFBaUQscUJBQXFCLEVBQUUsc0JBQXNCLEVBQStGLE1BQU0sMEJBQTBCLENBQUM7OztBQUloUixNQUFNLE9BQU8saUJBQWlCO0lBaUI1QixZQUFvQixlQUFnQyxFQUMxQyxnQkFBa0M7UUFEeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQzFDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFqQnJDLHNCQUFpQixHQUFZLElBQUksQ0FBQztRQUNsQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQVc3QixvQkFBZSxHQUEyQixJQUFJLENBQUM7SUFJdEQsQ0FBQztJQUVNLG9CQUFvQixDQUFDLEtBQWEsRUFBRSxPQUFnQixFQUFFLGlCQUFvQztRQUMvRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRWxDLElBQUksS0FBSyxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQztRQUV6QyxLQUFLLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUM5QyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNwQixLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV4QixJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMs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QUFDO2lCQUNiO2FBQ0Y7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OEdBNUpVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBREosTUFBTTsyRkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCQ0JJbXBvcnRFaWdlbnNjaGFwLCBCQ0JJbXBvcnRPcGVuUmVxdWVzdCwgQkNCSW1wb3J0T3BlblJlc3BvbnNlLCBCQ0JJbXBvcnRTZXRzVmlld01vZGVsLCBCQ0JJbXBvcnRTZXRWaWV3TW9kZWwsIENoYW5nZUltcG9ydFNldFJlcXVlc3QsIEZpbHRlck9wdGlvblZpZXdNb2RlbCwgRmlsdGVyc0FwaUNsaWVudCwgRmlsdGVyc1ZpZXdNb2RlbCwgRmlsdGVyVmlld01vZGVsLCBJbXBvcnRBcGlDbGllbnQgfSBmcm9tICcuLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuL3Byb2R1Y3RzLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEltcG9ydFNldHNTZXJ2aWNlIHtcclxuICBwdWJsaWMgTG9hZGluZ0ltcG9ydFNldHM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBMb2FkaW5nT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBMb2FkaW5nRmlsdGVyczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBGaWx0ZXJzSW5pdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgRmlsdGVyU2VsZWN0ZWQ6IEZpbHRlclZpZXdNb2RlbDtcclxuICBwdWJsaWMgRmlsdGVyT3B0aWVTZWxlY3RlZDogRmlsdGVyT3B0aW9uVmlld01vZGVsO1xyXG4gIHB1YmxpYyBGaWx0ZXJzVmlld01vZGVsOiBGaWx0ZXJzVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbDogQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbDtcclxuICBwdWJsaWMgQkNCSW1wb3J0T3BlblJlc3BvbnNlOiBCQ0JJbXBvcnRPcGVuUmVzcG9uc2U7XHJcblxyXG4gIHB1YmxpYyBCQ0JJbXBvcnRTZXRTZWxlY3RlZDogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgUHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBJbXBvcnRBcGlDbGllbnQ6IEltcG9ydEFwaUNsaWVudCxcclxuICAgIHByaXZhdGUgRmlsdGVyc0FwaUNsaWVudDogRmlsdGVyc0FwaUNsaWVudCkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIENoYW5nZUltcG9ydFNldFZhbHVlKHZhbHVlOiBzdHJpbmcsIGVuYWJsZWQ6IGJvb2xlYW4sIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nSW1wb3J0U2V0cyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIG1vZGVsID0gbmV3IENoYW5nZUltcG9ydFNldFJlcXVlc3QoKTtcclxuXHJcbiAgICBtb2RlbC5pbXBvcnRTZXRJZCA9IHRoaXMuQkNCSW1wb3J0U2V0U2VsZWN0ZWQ7XHJcbiAgICBtb2RlbC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgbW9kZWwuZW5hYmxlZCA9IGVuYWJsZWQ7XHJcblxyXG4gICAgdGhpcy5JbXBvcnRBcGlDbGllbnQuY2hhbmdlSW1wb3J0U2V0KG1vZGVsKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLkxvYWRJbXBvcnRTZXRzKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nSW1wb3J0U2V0cyA9IGZhbHNlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBPcGVuKGlkOiBudW1iZXIsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nT3BlbiA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgQkNCSW1wb3J0T3BlblJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0LmJjYlByb2R1Y3RJZCA9IGlkO1xyXG5cclxuICAgIHRoaXMuSW1wb3J0QXBpQ2xpZW50Lm9wZW5CQ0JQcm9kdWN0KHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEJDQkltcG9ydE9wZW5SZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLkJDQkltcG9ydE9wZW5SZXNwb25zZSA9IG1vZGVsO1xyXG4gICAgICB0aGlzLlJlZnJlc2hCQ0JJbXBvcnRPcGVuUmVzcG9uc2UoKTtcclxuICAgICAgdGhpcy5Mb2FkaW5nT3BlbiA9IGZhbHNlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRBY3RpdmVJbXBvcnRTZXQoKTogQkNCSW1wb3J0U2V0Vmlld01vZGVsIHtcclxuICAgIHZhciBhcnJheSA9IHRoaXMuQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbD8uYmNiSW1wb3J0U2V0Vmlld01vZGVscztcclxuICAgIGlmIChhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoYXJyYXlbaV0uaWQgPT0gdGhpcy5CQ0JJbXBvcnRTZXRTZWxlY3RlZCkge1xyXG4gICAgICAgICAgcmV0dXJuIGFycmF5W2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXcgQkNCSW1wb3J0U2V0Vmlld01vZGVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9hZEltcG9ydFNldHMoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmdJbXBvcnRTZXRzID0gdHJ1ZTtcclxuICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICB0aGlzLkltcG9ydEFwaUNsaWVudC5nZXRCQ0JJbXBvcnRTZXRzVmlld01vZGVsKCkuc3Vic2NyaWJlKChtb2RlbDogQkNCSW1wb3J0U2V0c1ZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICB0aGlzLkJDQkltcG9ydFNldHNWaWV3TW9kZWwgPSBtb2RlbDtcclxuXHJcbiAgICAgIGlmICh0aGlzLkJDQkltcG9ydFNldFNlbGVjdGVkID09IG51bGwpIHtcclxuICAgICAgICBpZiAodGhpcy5CQ0JJbXBvcnRTZXRzVmlld01vZGVsPy5iY2JJbXBvcnRTZXRWaWV3TW9kZWxzICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuQkNCSW1wb3J0U2V0U2VsZWN0ZWQgPSB0aGlzLkJDQkltcG9ydFNldHNWaWV3TW9kZWwuYmNiSW1wb3J0U2V0Vmlld01vZGVsc1swXS5pZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5SZWZyZXNoQkNCSW1wb3J0T3BlblJlc3BvbnNlKCk7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0ltcG9ydFNldHMgPSBmYWxzZTtcclxuICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuUHJvZHVjdHNTZXJ2aWNlICE9IG51bGwpIHtcclxuICAgICAgICB0aGlzLlByb2R1Y3RzU2VydmljZS5SZWxvYWQoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZ0ltcG9ydFNldHMgPSBmYWxzZTtcclxuICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIFJlZnJlc2hCQ0JJbXBvcnRPcGVuUmVzcG9uc2UoKTogdm9pZCB7XHJcbiAgICB2YXIgYXJyYXllaWdlbnNjaGFwcGVuID0gdGhpcy5CQ0JJbXBvcnRPcGVuUmVzcG9uc2U/LmJjYkltcG9ydEVpZ2Vuc2NoYXBwZW47XHJcbiAgICBpZiAoYXJyYXllaWdlbnNjaGFwcGVuICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheWVpZ2Vuc2NoYXBwZW4ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBhcnJheWVpZ2Vuc2NoYXBwZW5baV0uc2VsZWN0ZWQgPSB0aGlzLklzVmFsdWVJblNlbGVjdGVkSW1wb3J0U2V0KGFycmF5ZWlnZW5zY2hhcHBlbltpXS5uYW1lICsgXCJcIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB2YXIgYXJyYXlvcGJvdXcgPSB0aGlzLkJDQkltcG9ydE9wZW5SZXNwb25zZT8uYmNiSW1wb3J0T3Bib3V3ZW47XHJcbiAgICBpZiAoYXJyYXlvcGJvdXcgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5b3Bib3V3Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgYXJyYXlvcGJvdXdbaV0uc2VsZWN0ZWQgPSB0aGlzLklzVmFsdWVJblNlbGVjdGVkSW1wb3J0U2V0KGFycmF5b3Bib3V3W2ldLm5hbWUgKyBcIlwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLkZpbHRlcnNJbml0KSB7XHJcbiAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSB0cnVlO1xyXG5cclxuICAgICAgdGhpcy5GaWx0ZXJzQXBpQ2xpZW50LmdldEZpbHRlcnNWaWV3TW9kZWwoKS5zdWJzY3JpYmUoKG1vZGVsOiBGaWx0ZXJzVmlld01vZGVsKSA9PiB7XHJcbiAgICAgICAgdGhpcy5GaWx0ZXJzVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nRmlsdGVycyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuRmlsdGVyc0luaXQgPSBmYWxzZTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZ0ZpbHRlcnMgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIElzVmFsdWVJblNlbGVjdGVkSW1wb3J0U2V0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHZhciBpbXBvcnRzZXQgPSB0aGlzLkdldEFjdGl2ZUltcG9ydFNldCgpPy5iY2JJbXBvcnRTZXRWYWx1ZVZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKGltcG9ydHNldCAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1wb3J0c2V0Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKChpbXBvcnRzZXRbaV0udmFsdWUgKyBcIlwiKS50b0xvd2VyQ2FzZSgpID09IHZhbHVlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,13 +1,11 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { ResetImportRequestModel, SaveProductViewModel, GetProductRequest, ProductsViewModelRequest, LoginResponseModel } from '../swagger/SwaggerClient';
2
+ import { ResetImportRequestModel, SaveProductViewModel, GetProductRequest, ProductsViewModelRequest } from '../swagger/SwaggerClient';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../swagger/SwaggerClient";
5
- import * as i2 from "./authentication.service";
6
- import * as i3 from "./importsets.service";
5
+ import * as i2 from "./importsets.service";
7
6
  export class ProductsService {
8
- constructor(ProductsApiClient, authenticationService, ImportSetsService) {
7
+ constructor(ProductsApiClient, ImportSetsService) {
9
8
  this.ProductsApiClient = ProductsApiClient;
10
- this.authenticationService = authenticationService;
11
9
  this.ImportSetsService = ImportSetsService;
12
10
  this.LoadingProducts = false;
13
11
  this.BCBProductViewModel = undefined;
@@ -43,7 +41,6 @@ export class ProductsService {
43
41
  model.name = product.name;
44
42
  model.position = product.position;
45
43
  model.importSetId = parseInt(product.importSetId.toString());
46
- model.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
47
44
  this.LoadingProducts = true;
48
45
  changeDetectorRef.detectChanges();
49
46
  this.ProductsApiClient.saveProduct(model).subscribe(() => {
@@ -63,7 +60,6 @@ export class ProductsService {
63
60
  var model = new ResetImportRequestModel();
64
61
  model.productId = productid;
65
62
  model.bcbProductId = bcbproductid;
66
- model.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
67
63
  if (productid == -1 && bcbproductid == -1) {
68
64
  model.bcbImportSetId = this.ImportSetsService.BCBImportSetSelected;
69
65
  }
@@ -82,13 +78,27 @@ export class ProductsService {
82
78
  changeDetectorRef.detectChanges();
83
79
  });
84
80
  }
81
+ CleanUp() {
82
+ this.LoadingProducts = true;
83
+ this.ProductsApiClient.cleanUp().subscribe((model) => {
84
+ alert("BCBEBO: " + model.deleteBCBEBOs + " BCBEigenschap: " + model.deleteBCBEigenschappen + " BCBOpbouw: " + model.deleteBCBOpbouwen);
85
+ this.LoadingProducts = false;
86
+ }, (error) => {
87
+ if (error.status == 400)
88
+ console.log(error.json());
89
+ else {
90
+ console.log('An unexpected error occured');
91
+ console.log(error);
92
+ }
93
+ this.LoadingProducts = false;
94
+ });
95
+ }
85
96
  LoadProducts(changeDetectorRef, complete) {
86
97
  if (this.ImportSetsService.BCBImportSetSelected != undefined) {
87
98
  this.LoadingProducts = true;
88
99
  var request = new ProductsViewModelRequest();
89
100
  request.importSetId = this.ImportSetsService.BCBImportSetSelected;
90
101
  request.complete = complete;
91
- request.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
92
102
  changeDetectorRef.detectChanges();
93
103
  this.ProductsApiClient.getProductsViewModel(request).subscribe((model) => {
94
104
  this.ProductsViewModel = model;
@@ -141,7 +151,6 @@ export class ProductsService {
141
151
  this.LoadingProducts = true;
142
152
  changeDetectorRef.detectChanges();
143
153
  var request = new GetProductRequest();
144
- request.loginResponseModel = new LoginResponseModel(this.authenticationService.currentUserValue);
145
154
  request.id = this.ProductViewModel.id;
146
155
  this.ProductsApiClient.getProductViewModel(request).subscribe((model) => {
147
156
  this.ProductViewModel = model;
@@ -217,10 +226,10 @@ export class ProductsService {
217
226
  }
218
227
  }
219
228
  }
220
- ProductsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ProductsService, deps: [{ token: i1.ProductsApiClient }, { token: i2.AuthenticationService }, { token: i3.ImportSetsService }], target: i0.ɵɵFactoryTarget.Injectable });
229
+ ProductsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ProductsService, deps: [{ token: i1.ProductsApiClient }, { token: i2.ImportSetsService }], target: i0.ɵɵFactoryTarget.Injectable });
221
230
  ProductsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ProductsService, providedIn: 'root' });
222
231
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: ProductsService, decorators: [{
223
232
  type: Injectable,
224
233
  args: [{ providedIn: 'root' }]
225
- }], ctorParameters: function () { return [{ type: i1.ProductsApiClient }, { type: i2.AuthenticationService }, { type: i3.ImportSetsService }]; } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvc2VydmljZXMvcHJvZHVjdHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQXdDLHVCQUF1QixFQUF1QixvQkFBb0IsRUFBNkQsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQStELGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBSTdVLE1BQU0sT0FBTyxlQUFlO0lBWTFCLFlBQ1UsaUJBQW9DLEVBQ3BDLHFCQUE0QyxFQUM1QyxpQkFBb0M7UUFGcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFidkMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFJakMsd0JBQW1CLEdBQXlCLFNBQVMsQ0FBQztRQUN0RCxxQkFBZ0IsR0FBc0IsU0FBUyxDQUFDO1FBU3JELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ2hELENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDO1FBRTFELElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLElBQUksRUFBRTtZQUNyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxTQUFT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QU8sSUFBSSxJQUFJLElBQUksT0FBTyxJQUFJLElBQUksRUFBRTs0QkFDdEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0NBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzZCQUMxQzt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDOzs0R0F4UVUsZUFBZTtnSEFBZixlQUFlLGNBREYsTUFBTTsyRkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbXBvcnRTZXRzU2VydmljZSB9IGZyb20gJy4vaW1wb3J0c2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvZHVjdHNBcGlDbGllbnQsIFByb2R1Y3RzVmlld01vZGVsLCBSZXNldEltcG9ydFJlcXVlc3RNb2RlbCwgQkNCUHJvZHVjdFZpZXdNb2RlbCwgU2F2ZVByb2R1Y3RWaWV3TW9kZWwsIEJDQkltcG9ydFNldHNWaWV3TW9kZWwsIEltcG9ydEFwaUNsaWVudCwgUHJvZHVjdFZpZXdNb2RlbCwgR2V0UHJvZHVjdFJlcXVlc3QsIFByb2R1Y3RzVmlld01vZGVsUmVxdWVzdCwgQkNCRUJPVmlld01vZGVsLCBCQ0JFaWdlbnNjaGFwVmlld01vZGVsLCBCQ0JPcGJvdXdWaWV3TW9kZWwsIExvZ2luUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdHNTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIExvYWRpbmdQcm9kdWN0czogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgUHJvZHVjdHNWaWV3TW9kZWw6IFByb2R1Y3RzVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgQkNCUHJvZHVjdFZpZXdNb2RlbD86IEJDQlByb2R1Y3RWaWV3TW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgcHVibGljIFByb2R1Y3RWaWV3TW9kZWw/OiBQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG5cclxuICBwdWJsaWMgUHJvZHVjdFNlbGVjdGVkOiBudW1iZXI7XHJcbiAgcHVibGljIEJDQlByb2R1Y3RTZWxlY3RlZDogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgUHJvZHVjdHNBcGlDbGllbnQ6IFByb2R1Y3RzQXBpQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgSW1wb3J0U2V0c1NlcnZpY2U6IEltcG9ydFNldHNTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLlByb2R1Y3RzU2VydmljZSA9IHRoaXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9hZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLkxvYWRpbmdQcm9kdWN0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRCQ0JQcm9kdWN0c1NlbGVjdGVkKCk6IEFycmF5PEJDQlByb2R1Y3RWaWV3TW9kZWw+IHtcclxuICAgIHZhciBhcnJheXRlbXAgPSB0aGlzLlByb2R1Y3RzVmlld01vZGVsPy5wcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0U2VsZWN0ZWQgIT0gbnVsbCAmJiBhcnJheXRlbXAgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5dGVtcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChhcnJheXRlbXBbaV0uaWQgPT0gdGhpcy5Qcm9kdWN0U2VsZWN0ZWQpIHtcclxuICAgICAgICAgIHZhciBhcnJheXRlbXAyID0gYXJyYXl0ZW1wW2ldLmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG4gICAgICAgICAgaWYgKGFycmF5dGVtcDIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyYXl0ZW1wMjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV3IEFycmF5PEJDQlByb2R1Y3RWaWV3TW9kZWw+KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVsb2FkKGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkUHJvZHVjdHMoY2hhbmdlRGV0ZWN0b3JSZWYsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBDaGVja1N0YXR1cyhjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZFByb2R1Y3RzKGNoYW5nZURldGVjdG9yUmVmLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTYXZlUHJvZHVjdFZpZXdNb2RlbChwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsLCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHZhciBtb2RlbCA9IG5ldyBTYXZlUHJvZHVjdFZpZXdNb2RlbCgpO1xyXG4gICAgbW9kZWwuaWQgPSBwcm9kdWN0LmlkO1xyXG4gICAgbW9kZWwubmFtZSA9IHByb2R1Y3QubmFtZTtcclxuICAgIG1vZGVsLnBvc2l0aW9uID0gcHJvZHVjdC5wb3NpdGlvbjtcclxuICAgIG1vZGVsLmltcG9ydFNldElkID0gcGFyc2VJbnQocHJvZHVjdC5pbXBvcnRTZXRJZC50b1N0cmluZygpKTtcclxuICAgIG1vZGVsLmxvZ2luUmVzcG9uc2VNb2RlbCA9IG5ldyBMb2dpblJlc3BvbnNlTW9kZWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSk7XHJcblxyXG4gICAgdGhpcy5Mb2FkaW5nUHJvZHVjdHMgPSB0cnVlO1xyXG4gICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuc2F2ZVByb2R1Y3QobW9kZWwpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuTG9hZFByb2R1Y3RzKGNoYW5nZURldGVjdG9yUmVmLCBmYWxzZSk7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZ1Byb2R1Y3RzID0gZmFsc2U7XHJcbiAgICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlc2V0SW1wb3J0KHByb2R1Y3RpZDogbnVtYmVyLCBiY2Jwcm9kdWN0aWQ6IG51bWJlciwgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB2YXIgbW9kZWwgPSBuZXcgUmVzZXRJbXBvcnRSZXF1ZXN0TW9kZWwoKTtcclxuICAgIG1vZGVsLnByb2R1Y3RJZCA9IHByb2R1Y3RpZDtcclxuICAgIG1vZGVsLmJjYlByb2R1Y3RJZCA9IGJjYnByb2R1Y3RpZDtcclxuICAgIG1vZGVsLmxvZ2luUmVzcG9uc2VNb2RlbCA9IG5ldyBMb2dpblJlc3BvbnNlTW9kZWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSk7XHJcblxyXG4gICAgaWYgKHByb2R1Y3RpZCA9PSAtMSAmJiBiY2Jwcm9kdWN0aWQgPT0gLTEpIHtcclxuICAgICAgbW9kZWwuYmNiSW1wb3J0U2V0SWQgPSB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuTG9hZGluZ1Byb2R1Y3RzID0gdHJ1ZTtcclxuICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICB0aGlzLlByb2R1Y3RzQXBpQ2xpZW50LnJlc2V0SW1wb3J0KG1vZGVsKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLkxvYWRQcm9kdWN0cyhjaGFuZ2VEZXRlY3RvclJlZiwgZmFsc2UpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmdQcm9kdWN0cyA9IGZhbHNlO1xyXG4gICAgICBjaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgTG9hZFByb2R1Y3RzKGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgY29tcGxldGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLkxvYWRpbmdQcm9kdWN0cyA9IHRydWU7XHJcblxyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBQcm9kdWN0c1ZpZXdNb2RlbFJlcXVlc3QoKTtcclxuXHJcbiAgICAgIHJlcXVlc3QuaW1wb3J0U2V0SWQgPSB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLkJDQkltcG9ydFNldFNlbGVjdGVkO1xyXG4gICAgICByZXF1ZXN0LmNvbXBsZXRlID0gY29tcGxldGU7XHJcbiAgICAgIHJlcXVlc3QubG9naW5SZXNwb25zZU1vZGVsID0gbmV3IExvZ2luUmVzcG9uc2VNb2RlbCh0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jdXJyZW50VXNlclZhbHVlKTtcclxuXHJcbiAgICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuZ2V0UHJvZHVjdHNWaWV3TW9kZWwocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogUHJvZHVjdHNWaWV3TW9kZWwpID0+IHtcclxuICAgICAgICB0aGlzLlByb2R1Y3RzVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICB2YXIgYXJyYXkgPSB0aGlzLlByb2R1Y3RzVmlld01vZGVsLnByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgICAgICBpZiAoYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICAgICAgaWYgKGFycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5Qcm9kdWN0U2VsZWN0ZWQgPSBhcnJheVswXS5pZDtcclxuXHJcbiAgICAgICAgICAgIHZhciBhcnJheTIgPSBhcnJheVswXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheTIgIT0gbnVsbCAmJiBhcnJheTIubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuQkNCUHJvZHVjdFNlbGVjdGVkID0gYXJyYXkyWzBdLmlkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWQgfHwgdGhpcy5Qcm9kdWN0Vmlld01vZGVsICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGFycmF5aW5uZXIgPSBhcnJheVtpXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChhcnJheVtpXS5pZCA9PSB0aGlzLlByb2R1Y3RWaWV3TW9kZWwuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9kdWN0Vmlld01vZGVsID0gYXJyYXlbaV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAodGhpcy5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFycmF5aW5uZXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFycmF5aW5uZXIubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYXJyYXlpbm5lcltqXS5pZCA9PSB0aGlzLkJDQlByb2R1Y3RWaWV3TW9kZWwuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQkNCUHJvZHVjdFZpZXdNb2RlbCA9IGFycmF5aW5uZXJbal07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmdQcm9kdWN0cyA9IGZhbHNlO1xyXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZ1Byb2R1Y3RzID0gZmFsc2U7XHJcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2FkUHJvZHVjdChjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLlByb2R1Y3RWaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLkxvYWRpbmdQcm9kdWN0cyA9IHRydWU7XHJcbiAgICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IEdldFByb2R1Y3RSZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXF1ZXN0LmxvZ2luUmVzcG9uc2VNb2RlbCA9IG5ldyBMb2dpblJlc3BvbnNlTW9kZWwodGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuY3VycmVudFVzZXJWYWx1ZSk7XHJcbiAgICAgIHJlcXVlc3QuaWQgPSB0aGlzLlByb2R1Y3RWaWV3TW9kZWwuaWQ7XHJcblxyXG4gICAgICB0aGlzLlByb2R1Y3RzQXBpQ2xpZW50LmdldFByb2R1Y3RWaWV3TW9kZWwocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogUHJvZHVjdFZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuUHJvZHVjdFZpZXdNb2RlbCA9IG1vZGVsO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IHVuZGVmaW5lZCB8fCB0aGlzLlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB2YXIgb2xkID0gdGhpcy5CQ0JQcm9kdWN0Vmlld01vZGVsO1xyXG5cclxuICAgICAgICAgIHZhciBhcnJheWlubmVyID0gdGhpcy5Qcm9kdWN0Vmlld01vZGVsLmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGlmIChhcnJheWlubmVyICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFycmF5aW5uZXIubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChhcnJheWlubmVyW2pdLmlkID09IHRoaXMuQkNCUHJvZHVjdFZpZXdNb2RlbC5pZCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLkJDQlByb2R1Y3RWaWV3TW9kZWwgPSBhcnJheWlubmVyW2pdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gbnVsbCAmJiBvbGQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLk1lcmdlQkNCUHJvZHVjdFZpZXdNb2RlbCh0aGlzLkJDQlByb2R1Y3RWaWV3TW9kZWwsIG9sZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmdQcm9kdWN0cyA9IGZhbHNlO1xyXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZ1Byb2R1Y3RzID0gZmFsc2U7XHJcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgTWVyZ2VCQ0JQcm9kdWN0Vmlld01vZGVsKG5ld3Byb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwsIG9sZHByb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwpIHtcclxuICAgIC8vdGhpcy5NZXJnZUJDQlByb2R1Y3RWaWV3TW9kZWxFaWdlbnNjaGFwKG5ld3Byb2R1Y3Q/LmJjYlByb2R1Y3RFaWdlbnNjaGFwVmlld01vZGVscywgb2xkcHJvZHVjdD8uYmNiUHJvZHVjdEVpZ2Vuc2NoYXBWaWV3TW9kZWxzKTtcclxuICAgIC8vdGhpcy5NZXJnZUJDQlByb2R1Y3RWaWV3TW9kZWxPcGJvdXcobmV3cHJvZHVjdD8uYmNiUHJvZHVjdE9wYm91d1ZpZXdNb2RlbHMsIG9sZHByb2R1Y3Q/LmJjYlByb2R1Y3RPcGJvdXdWaWV3TW9kZWxzKTtcclxuICAgIGlmIChuZXdwcm9kdWN0Py5iY2JlYm9WaWV3TW9kZWwgIT0gbnVsbCAmJiBvbGRwcm9kdWN0Py5iY2JlYm9WaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICBuZXdwcm9kdWN0LmJjYmVib1ZpZXdNb2RlbC5vcGVuID0gb2xkcHJvZHVjdC5iY2JlYm9WaWV3TW9kZWwub3BlbjtcclxuXHJcbiAgICAgIHRoaXMuTWVyZ2VCQ0JFQk8obmV3cHJvZHVjdC5iY2JlYm9WaWV3TW9kZWwsIG9sZHByb2R1Y3QuYmNiZWJvVmlld01vZGVsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgTWVyZ2VCQ0JFQk8obmV3cHJvZHVjdDogQkNCRUJPVmlld01vZGVsLCBvbGRwcm9kdWN0OiBCQ0JFQk9WaWV3TW9kZWwpIHtcclxuICAgIHRoaXMuTWVyZ2VCQ0JQcm9kdWN0Vmlld01vZGVsRWlnZW5zY2hhcChuZXdwcm9kdWN0Py5iY2JFaWdlbnNjaGFwVmlld01vZGVscywgb2xkcHJvZHVjdD8uYmNiRWlnZW5zY2hhcFZpZXdNb2RlbHMpO1xyXG4gICAgdGhpcy5NZXJnZUJDQlByb2R1Y3RWaWV3TW9kZWxPcGJvdXcobmV3cHJvZHVjdD8uYmNiT3Bib3V3Vmlld01vZGVscywgb2xkcHJvZHVjdD8uYmNiT3Bib3V3Vmlld01vZGVscyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIE1lcmdlQkNCUHJvZHVjdFZpZXdNb2RlbEVpZ2Vuc2NoYXAobmV3cHJvZHVjdDogQkNCRWlnZW5zY2hhcFZpZXdNb2RlbFtdIHwgdW5kZWZpbmVkLCBvbGRwcm9kdWN0OiBCQ0JFaWdlbnNjaGFwVmlld01vZGVsW10gfCB1bmRlZmluZWQpIHtcclxuICAgIGlmIChuZXdwcm9kdWN0ICE9IG51bGwgJiYgb2xkcHJvZHVjdCAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbmV3cHJvZHVjdC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGZvciAodmFyIHAgPSAwOyBwIDwgb2xkcHJvZHVjdC5sZW5ndGg7IHArKykge1xyXG4gICAgICAgICAgaWYgKG5ld3Byb2R1Y3Rbal0uaWQgPT0gb2xkcHJvZHVjdFtwXS5pZCkge1xyXG4gICAgICAgICAgICBuZXdwcm9kdWN0W2pdLm9wZW4gPSBvbGRwcm9kdWN0W3BdLm9wZW47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIE1lcmdlQkNCUHJvZHVjdFZpZXdNb2RlbE9wYm91dyhuZXdwcm9kdWN0OiBCQ0JPcGJvdXdWaWV3TW9kZWxbXSB8IHVuZGVmaW5lZCwgb2xkcHJvZHVjdDogQkNCT3Bib3V3Vmlld01vZGVsW10gfCB1bmRlZmluZWQpIHtcclxuICAgIGlmIChuZXdwcm9kdWN0ICE9IG51bGwgJiYgb2xkcHJvZHVjdCAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbmV3cHJvZHVjdC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGZvciAodmFyIHAgPSAwOyBwIDwgb2xkcHJvZHVjdC5sZW5ndGg7IHArKykge1xyXG4gICAgICAgICAgaWYgKG5ld3Byb2R1Y3Rbal0uaWQgPT0gb2xkcHJvZHVjdFtwXS5pZCkge1xyXG4gICAgICAgICAgICBuZXdwcm9kdWN0W2pdLm9wZW4gPSBvbGRwcm9kdWN0W3BdLm9wZW47XHJcblxyXG4gICAgICAgICAgICB2YXIgZWJvc25ldyA9IG5ld3Byb2R1Y3Rbal0uZWJvcztcclxuICAgICAgICAgICAgdmFyIGVib3NvbGQgPSBvbGRwcm9kdWN0W3BdLmVib3M7XHJcbiAgICAgICAgICAgIGlmIChlYm9zbmV3ICE9IG51bGwgJiYgZWJvc29sZCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgZm9yICh2YXIgbyA9IDA7IG8gPCBlYm9zbmV3Lmxlbmd0aDsgbysrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLk1lcmdlQkNCRUJPKGVib3NuZXdbb10sIGVib3NvbGRbb10pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
234
+ }], ctorParameters: function () { return [{ type: i1.ProductsApiClient }, { type: i2.ImportSetsService }]; } });
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvc2VydmljZXMvcHJvZHVjdHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBQThELHVCQUF1QixFQUF1QixvQkFBb0IsRUFBNkQsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQStELE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFHL1UsTUFBTSxPQUFPLGVBQWU7SUFZMUIsWUFBb0IsaUJBQW9DLEVBQVUsaUJBQW9DO1FBQWxGLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBVi9GLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBSWpDLHdCQUFtQixHQUF5QixTQUFTLENBQUM7UUFDdEQscUJBQWdCLEdBQXNCLFNBQVMsQ0FBQztRQU1yRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztJQUNoRCxDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRU0sc0JBQXNCO1FBQzNCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQztRQUUxRCxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDckQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO29CQUMzQyxJ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SSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBRXhDLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ2pDLElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ2pDLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFOzRCQUN0QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQ0FDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NkJBQzFDO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtJQUNILENBQUM7OzRHQWxSVSxlQUFlO2dIQUFmLGVBQWUsY0FERixNQUFNOzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEltcG9ydFNldHNTZXJ2aWNlIH0gZnJvbSAnLi9pbXBvcnRzZXRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDbGVhblVwUmVzcG9uc2VNb2RlbCwgUHJvZHVjdHNBcGlDbGllbnQsIFByb2R1Y3RzVmlld01vZGVsLCBSZXNldEltcG9ydFJlcXVlc3RNb2RlbCwgQkNCUHJvZHVjdFZpZXdNb2RlbCwgU2F2ZVByb2R1Y3RWaWV3TW9kZWwsIEJDQkltcG9ydFNldHNWaWV3TW9kZWwsIEltcG9ydEFwaUNsaWVudCwgUHJvZHVjdFZpZXdNb2RlbCwgR2V0UHJvZHVjdFJlcXVlc3QsIFByb2R1Y3RzVmlld01vZGVsUmVxdWVzdCwgQkNCRUJPVmlld01vZGVsLCBCQ0JFaWdlbnNjaGFwVmlld01vZGVsLCBCQ0JPcGJvdXdWaWV3TW9kZWwgfSBmcm9tICcuLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RzU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBMb2FkaW5nUHJvZHVjdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIFByb2R1Y3RzVmlld01vZGVsOiBQcm9kdWN0c1ZpZXdNb2RlbDtcclxuXHJcbiAgcHVibGljIEJDQlByb2R1Y3RWaWV3TW9kZWw/OiBCQ0JQcm9kdWN0Vmlld01vZGVsID0gdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBQcm9kdWN0Vmlld01vZGVsPzogUHJvZHVjdFZpZXdNb2RlbCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgcHVibGljIFByb2R1Y3RTZWxlY3RlZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBCQ0JQcm9kdWN0U2VsZWN0ZWQ6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBQcm9kdWN0c0FwaUNsaWVudDogUHJvZHVjdHNBcGlDbGllbnQsIHByaXZhdGUgSW1wb3J0U2V0c1NlcnZpY2U6IEltcG9ydFNldHNTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLkltcG9ydFNldHNTZXJ2aWNlLlByb2R1Y3RzU2VydmljZSA9IHRoaXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9hZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLkxvYWRpbmdQcm9kdWN0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRCQ0JQcm9kdWN0c1NlbGVjdGVkKCk6IEFycmF5PEJDQlByb2R1Y3RWaWV3TW9kZWw+IHtcclxuICAgIHZhciBhcnJheXRlbXAgPSB0aGlzLlByb2R1Y3RzVmlld01vZGVsPy5wcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICBpZiAodGhpcy5Qcm9kdWN0U2VsZWN0ZWQgIT0gbnVsbCAmJiBhcnJheXRlbXAgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5dGVtcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChhcnJheXRlbXBbaV0uaWQgPT0gdGhpcy5Qcm9kdWN0U2VsZWN0ZWQpIHtcclxuICAgICAgICAgIHZhciBhcnJheXRlbXAyID0gYXJyYXl0ZW1wW2ldLmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG4gICAgICAgICAgaWYgKGFycmF5dGVtcDIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyYXl0ZW1wMjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV3IEFycmF5PEJDQlByb2R1Y3RWaWV3TW9kZWw+KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVsb2FkKGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkUHJvZHVjdHMoY2hhbmdlRGV0ZWN0b3JSZWYsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBDaGVja1N0YXR1cyhjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZFByb2R1Y3RzKGNoYW5nZURldGVjdG9yUmVmLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTYXZlUHJvZHVjdFZpZXdNb2RlbChwcm9kdWN0OiBQcm9kdWN0Vmlld01vZGVsLCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHZhciBtb2RlbCA9IG5ldyBTYXZlUHJvZHVjdFZpZXdNb2RlbCgpO1xyXG4gICAgbW9kZWwuaWQgPSBwcm9kdWN0LmlkO1xyXG4gICAgbW9kZWwubmFtZSA9IHByb2R1Y3QubmFtZTtcclxuICAgIG1vZGVsLnBvc2l0aW9uID0gcHJvZHVjdC5wb3NpdGlvbjtcclxuICAgIG1vZGVsLmltcG9ydFNldElkID0gcGFyc2VJbnQocHJvZHVjdC5pbXBvcnRTZXRJZC50b1N0cmluZygpKTtcclxuXHJcbiAgICB0aGlzLkxvYWRpbmdQcm9kdWN0cyA9IHRydWU7XHJcbiAgICBjaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5zYXZlUHJvZHVjdChtb2RlbCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5Mb2FkUHJvZHVjdHMoY2hhbmdlRGV0ZWN0b3JSZWYsIGZhbHNlKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nUHJvZHVjdHMgPSBmYWxzZTtcclxuICAgICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRJbXBvcnQocHJvZHVjdGlkOiBudW1iZXIsIGJjYnByb2R1Y3RpZDogbnVtYmVyLCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHZhciBtb2RlbCA9IG5ldyBSZXNldEltcG9ydFJlcXVlc3RNb2RlbCgpO1xyXG4gICAgbW9kZWwucHJvZHVjdElkID0gcHJvZHVjdGlkO1xyXG4gICAgbW9kZWwuYmNiUHJvZHVjdElkID0gYmNicHJvZHVjdGlkO1xyXG5cclxuICAgIGlmIChwcm9kdWN0aWQgPT0gLTEgJiYgYmNicHJvZHVjdGlkID09IC0xKSB7XHJcbiAgICAgIG1vZGVsLmJjYkltcG9ydFNldElkID0gdGhpcy5JbXBvcnRTZXRzU2VydmljZS5CQ0JJbXBvcnRTZXRTZWxlY3RlZDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLkxvYWRpbmdQcm9kdWN0cyA9IHRydWU7XHJcbiAgICBjaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdGhpcy5Qcm9kdWN0c0FwaUNsaWVudC5yZXNldEltcG9ydChtb2RlbCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5Mb2FkUHJvZHVjdHMoY2hhbmdlRGV0ZWN0b3JSZWYsIGZhbHNlKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nUHJvZHVjdHMgPSBmYWxzZTtcclxuICAgICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgQ2xlYW5VcCgpIHtcclxuICAgIHRoaXMuTG9hZGluZ1Byb2R1Y3RzID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLlByb2R1Y3RzQXBpQ2xpZW50LmNsZWFuVXAoKS5zdWJzY3JpYmUoKG1vZGVsOiBDbGVhblVwUmVzcG9uc2VNb2RlbCkgPT4ge1xyXG4gICAgICBhbGVydChcIkJDQkVCTzogXCIgKyBtb2RlbC5kZWxldGVCQ0JFQk9zICsgXCIgQkNCRWlnZW5zY2hhcDogXCIgKyBtb2RlbC5kZWxldGVCQ0JFaWdlbnNjaGFwcGVuICsgXCIgQkNCT3Bib3V3OiBcIiArIG1vZGVsLmRlbGV0ZUJDQk9wYm91d2VuKTtcclxuICAgICAgdGhpcy5Mb2FkaW5nUHJvZHVjdHMgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nUHJvZHVjdHMgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBMb2FkUHJvZHVjdHMoY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBjb21wbGV0ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0U2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuTG9hZGluZ1Byb2R1Y3RzID0gdHJ1ZTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFByb2R1Y3RzVmlld01vZGVsUmVxdWVzdCgpO1xyXG5cclxuICAgICAgcmVxdWVzdC5pbXBvcnRTZXRJZCA9IHRoaXMuSW1wb3J0U2V0c1NlcnZpY2UuQkNCSW1wb3J0U2V0U2VsZWN0ZWQ7XHJcbiAgICAgIHJlcXVlc3QuY29tcGxldGUgPSBjb21wbGV0ZTtcclxuXHJcbiAgICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHRoaXMuUHJvZHVjdHNBcGlDbGllbnQuZ2V0UHJvZHVjdHNWaWV3TW9kZWwocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogUHJvZHVjdHNWaWV3TW9kZWwpID0+IHtcclxuICAgICAgICB0aGlzLlByb2R1Y3RzVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICB2YXIgYXJyYXkgPSB0aGlzLlByb2R1Y3RzVmlld01vZGVsLnByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgICAgICBpZiAoYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICAgICAgaWYgKGFycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5Qcm9kdWN0U2VsZWN0ZWQgPSBhcnJheVswXS5pZDtcclxuXHJcbiAgICAgICAgICAgIHZhciBhcnJheTIgPSBhcnJheVswXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheTIgIT0gbnVsbCAmJiBhcnJheTIubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuQkNCUHJvZHVjdFNlbGVjdGVkID0gYXJyYXkyWzBdLmlkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuQkNCUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWQgfHwgdGhpcy5Qcm9kdWN0Vmlld01vZGVsICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgdmFyIGFycmF5aW5uZXIgPSBhcnJheVtpXS5iY2JQcm9kdWN0Vmlld01vZGVscztcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuUHJvZHVjdFZpZXdNb2RlbCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChhcnJheVtpXS5pZCA9PSB0aGlzLlByb2R1Y3RWaWV3TW9kZWwuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5Qcm9kdWN0Vmlld01vZGVsID0gYXJyYXlbaV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAodGhpcy5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFycmF5aW5uZXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFycmF5aW5uZXIubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYXJyYXlpbm5lcltqXS5pZCA9PSB0aGlzLkJDQlByb2R1Y3RWaWV3TW9kZWwuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuQkNCUHJvZHVjdFZpZXdNb2RlbCA9IGFycmF5aW5uZXJbal07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmdQcm9kdWN0cyA9IGZhbHNlO1xyXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZ1Byb2R1Y3RzID0gZmFsc2U7XHJcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2FkUHJvZHVjdChjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLlByb2R1Y3RWaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLkxvYWRpbmdQcm9kdWN0cyA9IHRydWU7XHJcbiAgICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IEdldFByb2R1Y3RSZXF1ZXN0KCk7XHJcbiAgICAgIHJlcXVlc3QuaWQgPSB0aGlzLlByb2R1Y3RWaWV3TW9kZWwuaWQ7XHJcblxyXG4gICAgICB0aGlzLlByb2R1Y3RzQXBpQ2xpZW50LmdldFByb2R1Y3RWaWV3TW9kZWwocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogUHJvZHVjdFZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuUHJvZHVjdFZpZXdNb2RlbCA9IG1vZGVsO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5CQ0JQcm9kdWN0Vmlld01vZGVsICE9IHVuZGVmaW5lZCB8fCB0aGlzLlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICB2YXIgb2xkID0gdGhpcy5CQ0JQcm9kdWN0Vmlld01vZGVsO1xyXG5cclxuICAgICAgICAgIHZhciBhcnJheWlubmVyID0gdGhpcy5Qcm9kdWN0Vmlld01vZGVsLmJjYlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGlmIChhcnJheWlubmVyICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGFycmF5aW5uZXIubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChhcnJheWlubmVyW2pdLmlkID09IHRoaXMuQkNCUHJvZHVjdFZpZXdNb2RlbC5pZCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLkJDQlByb2R1Y3RWaWV3TW9kZWwgPSBhcnJheWlubmVyW2pdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0aGlzLkJDQlByb2R1Y3RWaWV3TW9kZWwgIT0gbnVsbCAmJiBvbGQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLk1lcmdlQkNCUHJvZHVjdFZpZXdNb2RlbCh0aGlzLkJDQlByb2R1Y3RWaWV3TW9kZWwsIG9sZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmdQcm9kdWN0cyA9IGZhbHNlO1xyXG4gICAgICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZ1Byb2R1Y3RzID0gZmFsc2U7XHJcbiAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgTWVyZ2VCQ0JQcm9kdWN0Vmlld01vZGVsKG5ld3Byb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwsIG9sZHByb2R1Y3Q6IEJDQlByb2R1Y3RWaWV3TW9kZWwpIHtcclxuICAgIC8vdGhpcy5NZXJnZUJDQlByb2R1Y3RWaWV3TW9kZWxFaWdlbnNjaGFwKG5ld3Byb2R1Y3Q/LmJjYlByb2R1Y3RFaWdlbnNjaGFwVmlld01vZGVscywgb2xkcHJvZHVjdD8uYmNiUHJvZHVjdEVpZ2Vuc2NoYXBWaWV3TW9kZWxzKTtcclxuICAgIC8vdGhpcy5NZXJnZUJDQlByb2R1Y3RWaWV3TW9kZWxPcGJvdXcobmV3cHJvZHVjdD8uYmNiUHJvZHVjdE9wYm91d1ZpZXdNb2RlbHMsIG9sZHByb2R1Y3Q/LmJjYlByb2R1Y3RPcGJvdXdWaWV3TW9kZWxzKTtcclxuICAgIGlmIChuZXdwcm9kdWN0Py5iY2JlYm9WaWV3TW9kZWwgIT0gbnVsbCAmJiBvbGRwcm9kdWN0Py5iY2JlYm9WaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICBuZXdwcm9kdWN0LmJjYmVib1ZpZXdNb2RlbC5vcGVuID0gb2xkcHJvZHVjdC5iY2JlYm9WaWV3TW9kZWwub3BlbjtcclxuXHJcbiAgICAgIHRoaXMuTWVyZ2VCQ0JFQk8obmV3cHJvZHVjdC5iY2JlYm9WaWV3TW9kZWwsIG9sZHByb2R1Y3QuYmNiZWJvVmlld01vZGVsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgTWVyZ2VCQ0JFQk8obmV3cHJvZHVjdDogQkNCRUJPVmlld01vZGVsLCBvbGRwcm9kdWN0OiBCQ0JFQk9WaWV3TW9kZWwpIHtcclxuICAgIHRoaXMuTWVyZ2VCQ0JQcm9kdWN0Vmlld01vZGVsRWlnZW5zY2hhcChuZXdwcm9kdWN0Py5iY2JFaWdlbnNjaGFwVmlld01vZGVscywgb2xkcHJvZHVjdD8uYmNiRWlnZW5zY2hhcFZpZXdNb2RlbHMpO1xyXG4gICAgdGhpcy5NZXJnZUJDQlByb2R1Y3RWaWV3TW9kZWxPcGJvdXcobmV3cHJvZHVjdD8uYmNiT3Bib3V3Vmlld01vZGVscywgb2xkcHJvZHVjdD8uYmNiT3Bib3V3Vmlld01vZGVscyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIE1lcmdlQkNCUHJvZHVjdFZpZXdNb2RlbEVpZ2Vuc2NoYXAobmV3cHJvZHVjdDogQkNCRWlnZW5zY2hhcFZpZXdNb2RlbFtdIHwgdW5kZWZpbmVkLCBvbGRwcm9kdWN0OiBCQ0JFaWdlbnNjaGFwVmlld01vZGVsW10gfCB1bmRlZmluZWQpIHtcclxuICAgIGlmIChuZXdwcm9kdWN0ICE9IG51bGwgJiYgb2xkcHJvZHVjdCAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbmV3cHJvZHVjdC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGZvciAodmFyIHAgPSAwOyBwIDwgb2xkcHJvZHVjdC5sZW5ndGg7IHArKykge1xyXG4gICAgICAgICAgaWYgKG5ld3Byb2R1Y3Rbal0uaWQgPT0gb2xkcHJvZHVjdFtwXS5pZCkge1xyXG4gICAgICAgICAgICBuZXdwcm9kdWN0W2pdLm9wZW4gPSBvbGRwcm9kdWN0W3BdLm9wZW47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIE1lcmdlQkNCUHJvZHVjdFZpZXdNb2RlbE9wYm91dyhuZXdwcm9kdWN0OiBCQ0JPcGJvdXdWaWV3TW9kZWxbXSB8IHVuZGVmaW5lZCwgb2xkcHJvZHVjdDogQkNCT3Bib3V3Vmlld01vZGVsW10gfCB1bmRlZmluZWQpIHtcclxuICAgIGlmIChuZXdwcm9kdWN0ICE9IG51bGwgJiYgb2xkcHJvZHVjdCAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgbmV3cHJvZHVjdC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgIGZvciAodmFyIHAgPSAwOyBwIDwgb2xkcHJvZHVjdC5sZW5ndGg7IHArKykge1xyXG4gICAgICAgICAgaWYgKG5ld3Byb2R1Y3Rbal0uaWQgPT0gb2xkcHJvZHVjdFtwXS5pZCkge1xyXG4gICAgICAgICAgICBuZXdwcm9kdWN0W2pdLm9wZW4gPSBvbGRwcm9kdWN0W3BdLm9wZW47XHJcblxyXG4gICAgICAgICAgICB2YXIgZWJvc25ldyA9IG5ld3Byb2R1Y3Rbal0uZWJvcztcclxuICAgICAgICAgICAgdmFyIGVib3NvbGQgPSBvbGRwcm9kdWN0W3BdLmVib3M7XHJcbiAgICAgICAgICAgIGlmIChlYm9zbmV3ICE9IG51bGwgJiYgZWJvc29sZCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgZm9yICh2YXIgbyA9IDA7IG8gPCBlYm9zbmV3Lmxlbmd0aDsgbysrKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLk1lcmdlQkNCRUJPKGVib3NuZXdbb10sIGVib3NvbGRbb10pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -2,19 +2,15 @@ import { Injectable } from '@angular/core';
2
2
  import { FabrikantenSVGRequestModel } from '../swagger/SwaggerClient';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../swagger/SwaggerClient";
5
- import * as i2 from "@angular/platform-browser";
6
5
  export class SVGService {
7
- constructor(FabrikantenApiClient, sanitization) {
6
+ constructor(FabrikantenApiClient) {
8
7
  this.FabrikantenApiClient = FabrikantenApiClient;
9
- this.sanitization = sanitization;
10
8
  this.Loading = false;
11
- this.SafeURLLoaded = false;
12
9
  this.ViewerWidth = 101;
13
10
  this.ViewerHeight = 101;
14
11
  this.Schaal = "2";
15
12
  this.Snede = "";
16
13
  this.Snedes = new Array();
17
- this.MinDif = 100;
18
14
  }
19
15
  LoadFabrikantenSVGViewModel(sessionid, ChangeDetectorRef) {
20
16
  this.Loading = true;
@@ -28,8 +24,6 @@ export class SVGService {
28
24
  console.log('get width:' + request.width + " height: " + request.height);
29
25
  this.FabrikantenApiClient.getFabrikantenSVGViewModel(request).subscribe((model) => {
30
26
  this.FabrikantenSVGViewModel = model;
31
- this.SafeURL = this.sanitization.bypassSecurityTrustResourceUrl(this.FabrikantenSVGViewModel.svg + "");
32
- this.SafeURLLoaded = true;
33
27
  this.CollectSnedes();
34
28
  this.Loading = false;
35
29
  ChangeDetectorRef.detectChanges();
@@ -46,7 +40,8 @@ export class SVGService {
46
40
  });
47
41
  }
48
42
  UpdateViewerSize(width, height, ChangeDetectorRef) {
49
- if (((Math.abs(this.ViewerWidth - width) > this.MinDif) || (Math.abs(this.ViewerHeight - height) > this.MinDif)) && (width > 0) && (height > 0)) {
43
+ if ((this.ViewerWidth != width || this.ViewerHeight != height) &&
44
+ (width > 0) && (height > 0)) {
50
45
  this.ViewerWidth = width;
51
46
  this.ViewerHeight = height;
52
47
  if (this.FabrikantenService?.FabrikantenViewModel?.sessionId != null) {
@@ -69,10 +64,10 @@ export class SVGService {
69
64
  }
70
65
  }
71
66
  }
72
- SVGService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: SVGService, deps: [{ token: i1.FabrikantenApiClient }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
67
+ SVGService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: SVGService, deps: [{ token: i1.FabrikantenApiClient }], target: i0.ɵɵFactoryTarget.Injectable });
73
68
  SVGService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: SVGService, providedIn: 'root' });
74
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: SVGService, decorators: [{
75
70
  type: Injectable,
76
71
  args: [{ providedIn: 'root' }]
77
- }], ctorParameters: function () { return [{ type: i1.FabrikantenApiClient }, { type: i2.DomSanitizer }]; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL3NlcnZpY2VzL3N2Zy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBaUQsMEJBQTBCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUtySCxNQUFNLE9BQU8sVUFBVTtJQW1CckIsWUFBb0Isb0JBQTBDLEVBQ3BELFlBQTBCO1FBRGhCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDcEQsaUJBQVksR0FBWixZQUFZLENBQWM7UUFsQjdCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFHekIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFLL0IsZ0JBQVcsR0FBVyxHQUFHLENBQUM7UUFDMUIsaUJBQVksR0FBVyxHQUFHLENBQUM7UUFFM0IsV0FBTSxHQUFXLEdBQUcsQ0FBQztRQUNyQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBa0IsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUU1QyxXQUFNLEdBQVcsR0FBRyxDQUFDO0lBSTVCLENBQUM7SUFFTSwyQkFBMkIsQ0FBQyxTQUFpQixFQUFFLGlCQUFvQztRQUN4RixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVsQyxJQUFJLE9BQU8sR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFFL0MsT0FBTyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFFOUIsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNuQyxPQUFPLENBQUMsTUFBTSxH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LEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QjtTQUNGO0lBQ0gsQ0FBQzs7dUdBdkZVLFVBQVU7MkdBQVYsVUFBVSxjQURHLE1BQU07MkZBQ25CLFVBQVU7a0JBRHRCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5BcGlDbGllbnQsIEZhYnJpa2FudGVuU1ZHVmlld01vZGVsLCBGYWJyaWthbnRlblNWR1JlcXVlc3RNb2RlbCB9IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4vZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE1vYmlsZVNlcnZpY2UgfSBmcm9tICcuL21vYmlsZS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBTVkdTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgRmFicmlrYW50ZW5TVkdWaWV3TW9kZWw6IEZhYnJpa2FudGVuU1ZHVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgU2FmZVVSTExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBTYWZlVVJMOiBTYWZlUmVzb3VyY2VVcmw7XHJcblxyXG4gIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZTtcclxuXHJcbiAgcHVibGljIFZpZXdlcldpZHRoOiBudW1iZXIgPSAxMDE7XHJcbiAgcHVibGljIFZpZXdlckhlaWdodDogbnVtYmVyID0gMTAxO1xyXG5cclxuICBwdWJsaWMgU2NoYWFsOiBzdHJpbmcgPSBcIjJcIjtcclxuICBwdWJsaWMgU25lZGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIFNuZWRlczogQXJyYXk8c3RyaW5nPiA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcblxyXG4gIHB1YmxpYyBNaW5EaWY6IG51bWJlciA9IDEwMDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBGYWJyaWthbnRlbkFwaUNsaWVudDogRmFicmlrYW50ZW5BcGlDbGllbnQsXHJcbiAgICBwcml2YXRlIHNhbml0aXphdGlvbjogRG9tU2FuaXRpemVyKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTG9hZEZhYnJpa2FudGVuU1ZHVmlld01vZGVsKHNlc3Npb25pZDogc3RyaW5nLCBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgRmFicmlrYW50ZW5TVkdSZXF1ZXN0TW9kZWwoKTtcclxuXHJcbiAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHNlc3Npb25pZDtcclxuXHJcbiAgICByZXF1ZXN0LndpZHRoID0gdGhpcy5WaWV3ZXJXaWR0aDtcclxuICAgIHJlcXVlc3QuaGVpZ2h0ID0gdGhpcy5WaWV3ZXJIZWlnaHQ7XHJcbiAgICByZXF1ZXN0LnNjaGFhbCA9IHRoaXMuU2NoYWFsO1xyXG4gICAgcmVxdWVzdC5zbmVkZSA9IHRoaXMuU25lZGU7XHJcblxyXG4gICAgY29uc29sZS5sb2coJ2dldCB3aWR0aDonICsgcmVxdWVzdC53aWR0aCArIFwiIGhlaWdodDogXCIgKyByZXF1ZXN0LmhlaWdodCk7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5nZXRGYWJyaWthbnRlblNWR1ZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlblNWR1ZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuU1ZHVmlld01vZGVsID0gbW9kZWw7XHJcbiAgICAgIHRoaXMuU2FmZVVSTCA9IHRoaXMuc2FuaXRpemF0aW9uLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh0aGlzLkZhYnJpa2FudGVuU1ZHVmlld01vZGVsLnN2ZyArIFwiXCIpO1xyXG4gICAgICB0aGlzLlNhZmVVUkxMb2FkZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLkNvbGxlY3RTbmVkZXMoKTtcclxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZSAhPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUHJvY2Vzc0R5bmFtaWNNb2RlbHMoKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVXBkYXRlVmlld2VyU2l6ZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICBpZiAoKChNYXRoLmFicyh0aGlzLlZpZXdlcldpZHRoIC0gd2lkdGgpID4gdGhpcy5NaW5EaWYpIHx8IChNYXRoLmFicyh0aGlzLlZpZXdlckhlaWdodCAtIGhlaWdodCkgPiB0aGlzLk1pbkRpZikpICYmICh3aWR0aCA+IDApICYmIChoZWlnaHQgPiAwKSkge1xyXG4gICAgICB0aGlzLlZpZXdlcldpZHRoID0gd2lkdGg7XHJcbiAgICAgIHRoaXMuVmlld2VySGVpZ2h0ID0gaGVpZ2h0O1xyXG5cclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlPy5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2Vzc2lvbklkICE9IG51bGwpIHtcclxuICAgICAgICB0aGlzLkxvYWRGYWJyaWthbnRlblNWR1ZpZXdNb2RlbCh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQsIENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEhhc05hdGl2ZVJGQSgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU1ZHVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuRmFicmlrYW50ZW5TVkdWaWV3TW9kZWwubmF0aXZlUkZBO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgQ29sbGVjdFNuZWRlcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU1ZHVmlld01vZGVsPy5zbmVkZXMgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLlNuZWRlcyA9IHRoaXMuRmFicmlrYW50ZW5TVkdWaWV3TW9kZWwuc25lZGVzLnNwbGl0KFwifFwiKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLlNuZWRlID09IFwiXCIgJiYgdGhpcy5TbmVkZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuU25lZGUgPSB0aGlzLlNuZWRlc1swXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
72
+ }], ctorParameters: function () { return [{ type: i1.FabrikantenApiClient }]; } });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL3NlcnZpY2VzL3N2Zy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBaUQsMEJBQTBCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBS3JILE1BQU0sT0FBTyxVQUFVO0lBY3JCLFlBQW9CLG9CQUEwQztRQUExQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBWnZELFlBQU8sR0FBWSxLQUFLLENBQUM7UUFLekIsZ0JBQVcsR0FBVyxHQUFHLENBQUM7UUFDMUIsaUJBQVksR0FBVyxHQUFHLENBQUM7UUFFM0IsV0FBTSxHQUFXLEdBQUcsQ0FBQztRQUNyQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBa0IsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUduRCxDQUFDO0lBRU0sMkJBQTJCLENBQUMsU0FBaUIsRUFBRSxpQkFBb0M7UUFDeEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFbEMsSUFBSSxPQUFPLEdBQUcsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO1FBRS9DLE9BQU8sQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTlCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNqQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDbkMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUzQixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQThCLEVBQUUsRUFBRTtZQUN6RyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUVsQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQ2hEO1FBRUgsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsaUJBQW9DO1FBQ3pGLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQztZQUM1RCxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztZQUUzQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLElBQUksSUFBSSxFQUFFO2dCQUNwRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2FBQzdHO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxJQUFJLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDO1NBQy9DO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFN0QsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QjtTQUNGO0lBQ0gsQ0FBQzs7dUdBaEZVLFVBQVU7MkdBQVYsVUFBVSxjQURHLE1BQU07MkZBQ25CLFVBQVU7a0JBRHRCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5BcGlDbGllbnQsIEZhYnJpa2FudGVuU1ZHVmlld01vZGVsLCBGYWJyaWthbnRlblNWR1JlcXVlc3RNb2RlbCB9IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4vZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE1vYmlsZVNlcnZpY2UgfSBmcm9tICcuL21vYmlsZS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBTVkdTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIExvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgRmFicmlrYW50ZW5TVkdWaWV3TW9kZWw6IEZhYnJpa2FudGVuU1ZHVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2U7XHJcblxyXG4gIHB1YmxpYyBWaWV3ZXJXaWR0aDogbnVtYmVyID0gMTAxO1xyXG4gIHB1YmxpYyBWaWV3ZXJIZWlnaHQ6IG51bWJlciA9IDEwMTtcclxuXHJcbiAgcHVibGljIFNjaGFhbDogc3RyaW5nID0gXCIyXCI7XHJcbiAgcHVibGljIFNuZWRlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBTbmVkZXM6IEFycmF5PHN0cmluZz4gPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIEZhYnJpa2FudGVuQXBpQ2xpZW50OiBGYWJyaWthbnRlbkFwaUNsaWVudCkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRGYWJyaWthbnRlblNWR1ZpZXdNb2RlbChzZXNzaW9uaWQ6IHN0cmluZywgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuU1ZHUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSBzZXNzaW9uaWQ7XHJcblxyXG4gICAgcmVxdWVzdC53aWR0aCA9IHRoaXMuVmlld2VyV2lkdGg7XHJcbiAgICByZXF1ZXN0LmhlaWdodCA9IHRoaXMuVmlld2VySGVpZ2h0O1xyXG4gICAgcmVxdWVzdC5zY2hhYWwgPSB0aGlzLlNjaGFhbDtcclxuICAgIHJlcXVlc3Quc25lZGUgPSB0aGlzLlNuZWRlO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKCdnZXQgd2lkdGg6JyArIHJlcXVlc3Qud2lkdGggKyBcIiBoZWlnaHQ6IFwiICsgcmVxdWVzdC5oZWlnaHQpO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuZ2V0RmFicmlrYW50ZW5TVkdWaWV3TW9kZWwocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogRmFicmlrYW50ZW5TVkdWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlblNWR1ZpZXdNb2RlbCA9IG1vZGVsO1xyXG4gICAgICB0aGlzLkNvbGxlY3RTbmVkZXMoKTtcclxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZSAhPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuUHJvY2Vzc0R5bmFtaWNNb2RlbHMoKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgVXBkYXRlVmlld2VyU2l6ZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICBpZiAoKHRoaXMuVmlld2VyV2lkdGggIT0gd2lkdGggfHwgdGhpcy5WaWV3ZXJIZWlnaHQgIT0gaGVpZ2h0KSAmJlxyXG4gICAgICAod2lkdGggPiAwKSAmJiAoaGVpZ2h0ID4gMCkpIHtcclxuICAgICAgdGhpcy5WaWV3ZXJXaWR0aCA9IHdpZHRoO1xyXG4gICAgICB0aGlzLlZpZXdlckhlaWdodCA9IGhlaWdodDtcclxuXHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZT8uRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlc3Npb25JZCAhPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5Mb2FkRmFicmlrYW50ZW5TVkdWaWV3TW9kZWwodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkLCBDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBIYXNOYXRpdmVSRkEoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNWR1ZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkZhYnJpa2FudGVuU1ZHVmlld01vZGVsLm5hdGl2ZVJGQTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIENvbGxlY3RTbmVkZXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblNWR1ZpZXdNb2RlbD8uc25lZGVzICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5TbmVkZXMgPSB0aGlzLkZhYnJpa2FudGVuU1ZHVmlld01vZGVsLnNuZWRlcy5zcGxpdChcInxcIik7XHJcblxyXG4gICAgICBpZiAodGhpcy5TbmVkZSA9PSBcIlwiICYmIHRoaXMuU25lZGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLlNuZWRlID0gdGhpcy5TbmVkZXNbMF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
319
319
  type: Injectable,
320
320
  args: [{ providedIn: 'root' }]
321
321
  }], ctorParameters: function () { return [{ type: i1.TranslateApiClient }, { type: i2.NavigateService }]; } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTlELE1BQU0sT0FBTyxnQkFBZ0I7SUFjM0IsWUFBb0Isa0JBQXNDLEVBQVMsZUFBZ0M7UUFBL0UsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFTLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVo1RixTQUFJLEdBQVksS0FBSyxDQUFDO1FBRXRCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFJdkIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBR2pDLHFCQUFnQixHQUFXLFFBQVEsQ0FBQztRQUl6QyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQTJCLEVBQUUsaUJBQW9DO1FBQ3JGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUVqQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsY0FBOEI7UUFDckQsSUFBSSxXQUFXLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5FLElBQUksV0FBVyxJQUFJLElBQUksSUFBSSxXQUFXLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxXQUFXLEVBQUU7WUFDdEYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztZQUN0QyxJQUFJ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QUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsUUFBMkI7UUFDbkQsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLFFBQVEsRUFBRTtZQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztZQUUvQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQzs7NkdBcllVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IExhbmd1YWdlc1ZpZXdNb2RlbCwgTGFuZ3VhZ2VWaWV3TW9kZWwsIFRyYW5zbGF0ZUFwaUNsaWVudCwgVHJhbnNsYXRlS2V5Q2F0ZWdvcnlWaWV3TW9kZWwsIFRyYW5zbGF0ZUtleVZpZXdNb2RlbCB9IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4vZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRlU2VydmljZSB9IGZyb20gJy4vbmF2aWdhdGUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBJbml0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHVibGljIExhbmd1YWdlc1ZpZXdNb2RlbDogTGFuZ3VhZ2VzVmlld01vZGVsO1xyXG5cclxuICBwcml2YXRlIERlc2lyZWRDb3VudHJ5Q29kZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgQWN0aXZlTGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgU2VsZWN0ZWRDYXRlZ29yeTogc3RyaW5nID0gXCJDb21tb25cIjtcclxuICBwdWJsaWMgQ2F0ZWdvcmllczogQXJyYXk8c3RyaW5nPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBUcmFuc2xhdGVBcGlDbGllbnQ6IFRyYW5zbGF0ZUFwaUNsaWVudCwgcHVibGljIE5hdmlnYXRlU2VydmljZTogTmF2aWdhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLk5hdmlnYXRlU2VydmljZS5UcmFuc2xhdGVTZXJ2aWNlID0gdGhpcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RMYW5ndWFnZShsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5EZXNpcmVkQ291bnRyeUNvZGUgPSBsYW5ndWFnZS5jb3VudHJ5Q29kZSArIFwiXCI7XHJcbiAgICB0aGlzLlByb2Nlc3NEZXNpcmVkQ291bnRyeUNvZGUoKTtcclxuXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUHJvY2Vzc1BhcmFtZXRlcnMoQWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKTogdm9pZCB7XHJcbiAgICB2YXIgY291bnRyeWNvZGUgPSBBY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoXCJsYW5ndWFnZVwiKTtcclxuXHJcbiAgICBpZiAoY291bnRyeWNvZGUgIT0gbnVsbCAmJiBjb3VudHJ5Y29kZSAhPSBcIlwiICYmIHRoaXMuRGVzaXJlZENvdW50cnlDb2RlICE9IGNvdW50cnljb2RlKSB7XHJcbiAgICAgIHRoaXMuRGVzaXJlZENvdW50cnlDb2RlID0gY291bnRyeWNvZGU7XHJcbiAgICAgIHRoaXMuUHJvY2Vzc0Rlc2lyZWRDb3VudHJ5Q29kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRUcmFuc2xhdGlvbnMoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSB8IG51bGwsIEFjdGl2YXRlZFJvdXRlPzogQWN0aXZhdGVkUm91dGUpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5Jbml0KSB7XHJcbiAgICAgIHRoaXMuSW5pdCA9IHRydWU7XHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHRoaXMuVHJhbnNsYXRlQXBpQ2xpZW50LmdldExhbmd1YWdlc1ZpZXdNb2RlbCgpLnN1YnNjcmliZSgobW9kZWw6IExhbmd1YWdlc1ZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsID0gbW9kZWw7XHJcblxyXG4gICAgICAgIHZhciBjYXRzID0gdGhpcy5HZXRDYXRlZ29yaWVzKCk7XHJcbiAgICAgICAgdGhpcy5DYXRlZ29yaWVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICB0aGlzLkNhdGVnb3JpZXMucHVzaChjYXRzW2ldLm5hbWUgYXMgc3RyaW5nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcy5wdXNoKFwiQ2F0ZWdvcmllc1wiKTtcclxuICAgICAgICB0aGlzLkNhdGVnb3JpZXMucHVzaChcIlByb2R1Y3RzXCIpO1xyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcy5wdXNoKFwiRGVzY3JpcHRpb25cIik7XHJcbiAgICAgICAgdGhpcy5DYXRlZ29yaWVzLnB1c2goXCJBZmJlZWxkaW5nXCIpO1xyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcy5wdXNoKFwiRmlsdGVyXCIpO1xyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5Qcm9jZXNzRGVzaXJlZENvdW50cnlDb2RlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuTmF2aWdhdGVTZXJ2aWNlLlJlZnJlc2hQYWdlKCk7XHJcblxyXG4gICAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgaWYgKEZhYnJpa2FudGVuU2VydmljZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICBGYWJyaWthbnRlblNlcnZpY2UuTG9hZEZhYnJpa2FudGVuVmlld01vZGVsKENoYW5nZURldGVjdG9yUmVmLCBBY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgICBhbGVydChlcnJvci5qc29uKCkpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93U3BlY2lmaWNhdGlvbigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuQWN0aXZlTGFuZ3VhZ2Uuc2hvd1NwZWNpZmljYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3coKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5Mb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlKGNhdGVnb3J5OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWUodGhpcy5BY3RpdmVMYW5ndWFnZSwgY2F0ZWdvcnksIGtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWUobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBjYXRlZ29yeTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICB2YXIgY2F0YXJyYXkgPSBsYW5ndWFnZS5jYXRlZ29yaWVzO1xyXG4gICAgaWYgKGNhdGFycmF5ICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChjYXRhcnJheVtpXS5uYW1lPy50b0xvd2VyQ2FzZSgpID09IGNhdGVnb3J5LnRvTG93ZXJDYXNlKCkpIHtcclxuXHJcbiAgICAgICAgICB2YXIga2V5c2FycmF5ID0gY2F0YXJyYXlbaV0ua2V5c1xyXG4gICAgICAgICAgaWYgKGtleXNhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwga2V5c2FycmF5Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGtleXNhcnJheVtqXS5uYW1lPy50b0xvd2VyQ2FzZSgpID09IGtleS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW50cmllc2FycmF5ID0ga2V5c2FycmF5W2pdLmVudHJpZXM7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGVudHJpZXNhcnJheSAhPSBudWxsICYmIGVudHJpZXNhcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyaWVzYXJyYXlbMF0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjYXRlZ29yeSArIFwiLVwiICsga2V5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlQ2F0ZWdvcnkoY2F0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlQ2F0ZWdvcnkodGhpcy5BY3RpdmVMYW5ndWFnZSwgY2F0SWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlQ2F0ZWdvcnlEZXNjcmlwdGlvbihjYXRJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVDYXRlZ29yeURlc2NyaXB0aW9uKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGNhdElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZUNhdGVnb3J5KGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgY2F0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgY2F0YXJyYXkgPSBsYW5ndWFnZS5jYXRlZ29yeUVudHJpZXM7XHJcbiAgICBpZiAoY2F0YXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGNhdGFycmF5W2ldLmNhdGVnb3J5SWQgPT0gY2F0SWQpIHtcclxuICAgICAgICAgIHJldHVybiBjYXRhcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVDYXRlZ29yeURlc2NyaXB0aW9uKGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgY2F0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgY2F0YXJyYXkgPSBsYW5ndWFnZS5jYXRlZ29yeUVudHJpZXM7XHJcbiAgICBpZiAoY2F0YXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGNhdGFycmF5W2ldLmNhdGVnb3J5SWQgPT0gY2F0SWQpIHtcclxuICAgICAgICAgIHJldHVybiBjYXRhcnJheVtpXS5kZXNjcmlwdGlvbiBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVCQ0JFaWdlbnNjaGFwVG9lYmVob3JlbihiY2JFaWdlbnNjaGFwVG9lYmVob3JlbklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZUJDQkVpZ2Vuc2NoYXBUb2ViZWhvcmVuKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGJjYkVpZ2Vuc2NoYXBUb2ViZWhvcmVuSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFZhbHVlQkNCRWlnZW5zY2hhcFRvZWJlaG9yZW4obGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBiY2JFaWdlbnNjaGFwVG9lYmVob3JlbklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIGJjYmVpZ2Vuc2NoYXBhcnJheSA9IGxhbmd1YWdlLmJjYkVpZ2Vuc2NoYXBUb2ViZWhvcmVuRW50cmllcztcclxuICAgIGlmIChiY2JlaWdlbnNjaGFwYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJjYmVpZ2Vuc2NoYXBhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChiY2JlaWdlbnNjaGFwYXJyYXlbaV0uYmNiRWlnZW5zY2hhcFRvZWJlaG9yZW5JZCA9PSBiY2JFaWdlbnNjaGFwVG9lYmVob3JlbklkKSB7XHJcbiAgICAgICAgICByZXR1cm4gYmNiZWlnZW5zY2hhcGFycmF5W2ldLnZhbHVlIGFzIHN0cmluZztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRBY3RpdmVWYWx1ZVByb2R1Y3QocHJvZHVjdElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZVByb2R1Y3QodGhpcy5BY3RpdmVMYW5ndWFnZSwgcHJvZHVjdElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZVByb2R1Y3QobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBwcm9kdWN0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgcHJvZGFycmF5ID0gbGFuZ3VhZ2UucHJvZHVjdEVudHJpZXM7XHJcbiAgICBpZiAocHJvZGFycmF5ICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAocHJvZGFycmF5W2ldLnByb2R1Y3RJZCA9PSBwcm9kdWN0SWQpIHtcclxuICAgICAgICAgIHJldHVybiBwcm9kYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlUHJvZHVjdERlc2NyaXB0aW9uKHByb2R1Y3RJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVQcm9kdWN0RGVzY3JpcHRpb24odGhpcy5BY3RpdmVMYW5ndWFnZSwgcHJvZHVjdElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZVByb2R1Y3REZXNjcmlwdGlvbihsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIHByb2R1Y3RJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBwcm9kYXJyYXkgPSBsYW5ndWFnZS5wcm9kdWN0RW50cmllcztcclxuICAgIGlmIChwcm9kYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2RhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChwcm9kYXJyYXlbaV0ucHJvZHVjdElkID09IHByb2R1Y3RJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHByb2RhcnJheVtpXS5kZXNjcmlwdGlvbiBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVSYW5nZUlucHV0KHJhbmdlSW5wdXRJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVSYW5nZUlucHV0KHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIHJhbmdlSW5wdXRJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVSYW5nZUlucHV0KGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgcmFuZ2VJbnB1dElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIHJhbmdlYXJyYXkgPSBsYW5ndWFnZS5yYW5nZUlucHV0RW50cmllcztcclxuICAgIGlmIChyYW5nZWFycmF5ICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYW5nZWFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHJhbmdlYXJyYXlbaV0ucmFuZ2VJbnB1dElkID09IHJhbmdlSW5wdXRJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHJhbmdlYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlRmlsdGVyKGZpbHRlcklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZUZpbHRlcih0aGlzLkFjdGl2ZUxhbmd1YWdlLCBmaWx0ZXJJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVGaWx0ZXIobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBmaWx0ZXJJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBmaWx0ZXJhcnJheSA9IGxhbmd1YWdlLmZpbHRlckVudHJpZXM7XHJcbiAgICBpZiAoZmlsdGVyYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbHRlcmFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGZpbHRlcmFycmF5W2ldLmZpbHRlcklkID09IGZpbHRlcklkKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmlsdGVyYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlRmlsdGVyT3B0aW9uKGZpbHRlck9wdGlvbklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZUZpbHRlck9wdGlvbih0aGlzLkFjdGl2ZUxhbmd1YWdlLCBmaWx0ZXJPcHRpb25JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVGaWx0ZXJPcHRpb24obGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBmaWx0ZXJPcHRpb25JZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBmaWx0ZXJhcnJheSA9IGxhbmd1YWdlLmZpbHRlck9wdGlvbkVudHJpZXM7XHJcbiAgICBpZiAoZmlsdGVyYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbHRlcmFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGZpbHRlcmFycmF5W2ldLmZpbHRlck9wdGlvbklkID09IGZpbHRlck9wdGlvbklkKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmlsdGVyYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlRGVzY3JpcHRpb24oYmNiUHJvZHVjdElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZURlc2NyaXB0aW9uKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGJjYlByb2R1Y3RJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVEZXNjcmlwdGlvbihsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIGJjYlByb2R1Y3RJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBkZXNjcmlwdGlvbmFycmF5ID0gbGFuZ3VhZ2UuZGVzY3JpcHRpb25FbnRyaWVzO1xyXG4gICAgaWYgKGRlc2NyaXB0aW9uYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRlc2NyaXB0aW9uYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZGVzY3JpcHRpb25hcnJheVtpXS5iY2JQcm9kdWN0SWQgPT0gYmNiUHJvZHVjdElkKSB7XHJcbiAgICAgICAgICByZXR1cm4gZGVzY3JpcHRpb25hcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVBZmJlZWxkaW5nKGJjYlByb2R1Y3RBZmJlZWxkaW5nSWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlQWZiZWVsZGluZyh0aGlzLkFjdGl2ZUxhbmd1YWdlLCBiY2JQcm9kdWN0QWZiZWVsZGluZ0lkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZUFmYmVlbGRpbmcobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBiY2JQcm9kdWN0QWZiZWVsZGluZ0lkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIGFmYmVlbGRpbmdhcnJheSA9IGxhbmd1YWdlLmFmYmVlbGRpbmdFbnRyaWVzO1xyXG4gICAgaWYgKGFmYmVlbGRpbmdhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWZiZWVsZGluZ2FycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFmYmVlbGRpbmdhcnJheVtpXS5iY2JQcm9kdWN0QWZiZWVsZGluZ0lkID09IGJjYlByb2R1Y3RBZmJlZWxkaW5nSWQpIHtcclxuICAgICAgICAgIHJldHVybiBhZmJlZWxkaW5nYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldENhdGVnb3JpZXMoKTogQXJyYXk8VHJhbnNsYXRlS2V5Q2F0ZWdvcnlWaWV3TW9kZWw+IHtcclxuXHJcbiAgICBpZiAodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsICYmIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlcy5sZW5ndGggPiAwICYmIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1swXS5jYXRlZ29yaWVzICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1swXS5jYXRlZ29yaWVzO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgQXJyYXk8VHJhbnNsYXRlS2V5Q2F0ZWdvcnlWaWV3TW9kZWw+KCk7O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZUNhdGVnb3JpZSgpOiBUcmFuc2xhdGVLZXlDYXRlZ29yeVZpZXdNb2RlbCB8IG51bGwge1xyXG4gICAgdmFyIGNhdHMgPSB0aGlzLkdldENhdGVnb3JpZXMoKTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGNhdHNbaV0ubmFtZSA9PSB0aGlzLlNlbGVjdGVkQ2F0ZWdvcnkpIHtcclxuICAgICAgICByZXR1cm4gY2F0c1tpXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBQcm9jZXNzRGVzaXJlZENvdW50cnlDb2RlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsPy5sYW5ndWFnZXMgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5EZXNpcmVkQ291bnRyeUNvZGUgPT0gXCJcIikge1xyXG4gICAgICAgIHRoaXMuU2V0QWN0aXZlTGFuZ3VhZ2UodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzWzBdKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1tpXS5jb3VudHJ5Q29kZT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09IHRoaXMuRGVzaXJlZENvdW50cnlDb2RlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5TZXRBY3RpdmVMYW5ndWFnZSh0aGlzLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBTZXRBY3RpdmVMYW5ndWFnZShsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IGxhbmd1YWdlKSB7XHJcbiAgICAgIHRoaXMuQWN0aXZlTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcclxuXHJcbiAgICAgIHRoaXMuTmF2aWdhdGVTZXJ2aWNlLlJlZnJlc2hQYWdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTlELE1BQU0sT0FBTyxnQkFBZ0I7SUFjM0IsWUFBb0Isa0JBQXNDLEVBQVMsZUFBZ0M7UUFBL0UsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFTLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVo1RixTQUFJLEdBQVksS0FBSyxDQUFDO1FBRXRCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFJdkIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBR2pDLHFCQUFnQixHQUFXLFFBQVEsQ0FBQztRQUl6QyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQTJCLEVBQUUsaUJBQW9DO1FBQ3JGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUVqQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsY0FBOEI7UUFDckQsSUFBSSxXQUFXLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5FLElBQUksV0FBVyxJQUFJLElBQUksSUFBSSxXQUFXLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxXQUFXLEVBQUU7WUFDdEYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztZQUN0QyxJQUFJ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QUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsUUFBMkI7UUFDbkQsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLFFBQVEsRUFBRTtZQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztZQUUvQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQzs7NkdBcllVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IExhbmd1YWdlc1ZpZXdNb2RlbCwgTGFuZ3VhZ2VWaWV3TW9kZWwsIFRyYW5zbGF0ZUFwaUNsaWVudCwgVHJhbnNsYXRlS2V5Q2F0ZWdvcnlWaWV3TW9kZWwsIFRyYW5zbGF0ZUtleVZpZXdNb2RlbCB9IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4vZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRlU2VydmljZSB9IGZyb20gJy4vbmF2aWdhdGUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBJbml0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHVibGljIExhbmd1YWdlc1ZpZXdNb2RlbDogTGFuZ3VhZ2VzVmlld01vZGVsO1xyXG5cclxuICBwcml2YXRlIERlc2lyZWRDb3VudHJ5Q29kZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgQWN0aXZlTGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgU2VsZWN0ZWRDYXRlZ29yeTogc3RyaW5nID0gXCJDb21tb25cIjtcclxuICBwdWJsaWMgQ2F0ZWdvcmllczogQXJyYXk8c3RyaW5nPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBUcmFuc2xhdGVBcGlDbGllbnQ6IFRyYW5zbGF0ZUFwaUNsaWVudCwgcHVibGljIE5hdmlnYXRlU2VydmljZTogTmF2aWdhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLk5hdmlnYXRlU2VydmljZS5UcmFuc2xhdGVTZXJ2aWNlID0gdGhpcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RMYW5ndWFnZShsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5EZXNpcmVkQ291bnRyeUNvZGUgPSBsYW5ndWFnZS5jb3VudHJ5Q29kZSArIFwiXCI7XHJcbiAgICB0aGlzLlByb2Nlc3NEZXNpcmVkQ291bnRyeUNvZGUoKTtcclxuXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUHJvY2Vzc1BhcmFtZXRlcnMoQWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKTogdm9pZCB7XHJcbiAgICB2YXIgY291bnRyeWNvZGUgPSBBY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoXCJsYW5ndWFnZVwiKTtcclxuXHJcbiAgICBpZiAoY291bnRyeWNvZGUgIT0gbnVsbCAmJiBjb3VudHJ5Y29kZSAhPSBcIlwiICYmIHRoaXMuRGVzaXJlZENvdW50cnlDb2RlICE9IGNvdW50cnljb2RlKSB7XHJcbiAgICAgIHRoaXMuRGVzaXJlZENvdW50cnlDb2RlID0gY291bnRyeWNvZGU7XHJcbiAgICAgIHRoaXMuUHJvY2Vzc0Rlc2lyZWRDb3VudHJ5Q29kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRUcmFuc2xhdGlvbnMoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSB8IG51bGwsIEFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5Jbml0KSB7XHJcbiAgICAgIHRoaXMuSW5pdCA9IHRydWU7XHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHRoaXMuVHJhbnNsYXRlQXBpQ2xpZW50LmdldExhbmd1YWdlc1ZpZXdNb2RlbCgpLnN1YnNjcmliZSgobW9kZWw6IExhbmd1YWdlc1ZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsID0gbW9kZWw7XHJcblxyXG4gICAgICAgIHZhciBjYXRzID0gdGhpcy5HZXRDYXRlZ29yaWVzKCk7XHJcbiAgICAgICAgdGhpcy5DYXRlZ29yaWVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICB0aGlzLkNhdGVnb3JpZXMucHVzaChjYXRzW2ldLm5hbWUgYXMgc3RyaW5nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcy5wdXNoKFwiQ2F0ZWdvcmllc1wiKTtcclxuICAgICAgICB0aGlzLkNhdGVnb3JpZXMucHVzaChcIlByb2R1Y3RzXCIpO1xyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcy5wdXNoKFwiRGVzY3JpcHRpb25cIik7XHJcbiAgICAgICAgdGhpcy5DYXRlZ29yaWVzLnB1c2goXCJBZmJlZWxkaW5nXCIpO1xyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcy5wdXNoKFwiRmlsdGVyXCIpO1xyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5Qcm9jZXNzRGVzaXJlZENvdW50cnlDb2RlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuTmF2aWdhdGVTZXJ2aWNlLlJlZnJlc2hQYWdlKCk7XHJcblxyXG4gICAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgaWYgKEZhYnJpa2FudGVuU2VydmljZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICBGYWJyaWthbnRlblNlcnZpY2UuTG9hZEZhYnJpa2FudGVuVmlld01vZGVsKENoYW5nZURldGVjdG9yUmVmLCBBY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgICBhbGVydChlcnJvci5qc29uKCkpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93U3BlY2lmaWNhdGlvbigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuQWN0aXZlTGFuZ3VhZ2Uuc2hvd1NwZWNpZmljYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3coKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5Mb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlKGNhdGVnb3J5OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWUodGhpcy5BY3RpdmVMYW5ndWFnZSwgY2F0ZWdvcnksIGtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWUobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBjYXRlZ29yeTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICB2YXIgY2F0YXJyYXkgPSBsYW5ndWFnZS5jYXRlZ29yaWVzO1xyXG4gICAgaWYgKGNhdGFycmF5ICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChjYXRhcnJheVtpXS5uYW1lPy50b0xvd2VyQ2FzZSgpID09IGNhdGVnb3J5LnRvTG93ZXJDYXNlKCkpIHtcclxuXHJcbiAgICAgICAgICB2YXIga2V5c2FycmF5ID0gY2F0YXJyYXlbaV0ua2V5c1xyXG4gICAgICAgICAgaWYgKGtleXNhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwga2V5c2FycmF5Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGtleXNhcnJheVtqXS5uYW1lPy50b0xvd2VyQ2FzZSgpID09IGtleS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW50cmllc2FycmF5ID0ga2V5c2FycmF5W2pdLmVudHJpZXM7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGVudHJpZXNhcnJheSAhPSBudWxsICYmIGVudHJpZXNhcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyaWVzYXJyYXlbMF0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjYXRlZ29yeSArIFwiLVwiICsga2V5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlQ2F0ZWdvcnkoY2F0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlQ2F0ZWdvcnkodGhpcy5BY3RpdmVMYW5ndWFnZSwgY2F0SWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlQ2F0ZWdvcnlEZXNjcmlwdGlvbihjYXRJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVDYXRlZ29yeURlc2NyaXB0aW9uKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGNhdElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZUNhdGVnb3J5KGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgY2F0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgY2F0YXJyYXkgPSBsYW5ndWFnZS5jYXRlZ29yeUVudHJpZXM7XHJcbiAgICBpZiAoY2F0YXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGNhdGFycmF5W2ldLmNhdGVnb3J5SWQgPT0gY2F0SWQpIHtcclxuICAgICAgICAgIHJldHVybiBjYXRhcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVDYXRlZ29yeURlc2NyaXB0aW9uKGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgY2F0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgY2F0YXJyYXkgPSBsYW5ndWFnZS5jYXRlZ29yeUVudHJpZXM7XHJcbiAgICBpZiAoY2F0YXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGNhdGFycmF5W2ldLmNhdGVnb3J5SWQgPT0gY2F0SWQpIHtcclxuICAgICAgICAgIHJldHVybiBjYXRhcnJheVtpXS5kZXNjcmlwdGlvbiBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVCQ0JFaWdlbnNjaGFwVG9lYmVob3JlbihiY2JFaWdlbnNjaGFwVG9lYmVob3JlbklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZUJDQkVpZ2Vuc2NoYXBUb2ViZWhvcmVuKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGJjYkVpZ2Vuc2NoYXBUb2ViZWhvcmVuSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFZhbHVlQkNCRWlnZW5zY2hhcFRvZWJlaG9yZW4obGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBiY2JFaWdlbnNjaGFwVG9lYmVob3JlbklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIGJjYmVpZ2Vuc2NoYXBhcnJheSA9IGxhbmd1YWdlLmJjYkVpZ2Vuc2NoYXBUb2ViZWhvcmVuRW50cmllcztcclxuICAgIGlmIChiY2JlaWdlbnNjaGFwYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJjYmVpZ2Vuc2NoYXBhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChiY2JlaWdlbnNjaGFwYXJyYXlbaV0uYmNiRWlnZW5zY2hhcFRvZWJlaG9yZW5JZCA9PSBiY2JFaWdlbnNjaGFwVG9lYmVob3JlbklkKSB7XHJcbiAgICAgICAgICByZXR1cm4gYmNiZWlnZW5zY2hhcGFycmF5W2ldLnZhbHVlIGFzIHN0cmluZztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRBY3RpdmVWYWx1ZVByb2R1Y3QocHJvZHVjdElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZVByb2R1Y3QodGhpcy5BY3RpdmVMYW5ndWFnZSwgcHJvZHVjdElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZVByb2R1Y3QobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBwcm9kdWN0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgcHJvZGFycmF5ID0gbGFuZ3VhZ2UucHJvZHVjdEVudHJpZXM7XHJcbiAgICBpZiAocHJvZGFycmF5ICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAocHJvZGFycmF5W2ldLnByb2R1Y3RJZCA9PSBwcm9kdWN0SWQpIHtcclxuICAgICAgICAgIHJldHVybiBwcm9kYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlUHJvZHVjdERlc2NyaXB0aW9uKHByb2R1Y3RJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVQcm9kdWN0RGVzY3JpcHRpb24odGhpcy5BY3RpdmVMYW5ndWFnZSwgcHJvZHVjdElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZVByb2R1Y3REZXNjcmlwdGlvbihsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIHByb2R1Y3RJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBwcm9kYXJyYXkgPSBsYW5ndWFnZS5wcm9kdWN0RW50cmllcztcclxuICAgIGlmIChwcm9kYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2RhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChwcm9kYXJyYXlbaV0ucHJvZHVjdElkID09IHByb2R1Y3RJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHByb2RhcnJheVtpXS5kZXNjcmlwdGlvbiBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVSYW5nZUlucHV0KHJhbmdlSW5wdXRJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVSYW5nZUlucHV0KHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIHJhbmdlSW5wdXRJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVSYW5nZUlucHV0KGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgcmFuZ2VJbnB1dElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIHJhbmdlYXJyYXkgPSBsYW5ndWFnZS5yYW5nZUlucHV0RW50cmllcztcclxuICAgIGlmIChyYW5nZWFycmF5ICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYW5nZWFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHJhbmdlYXJyYXlbaV0ucmFuZ2VJbnB1dElkID09IHJhbmdlSW5wdXRJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHJhbmdlYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlRmlsdGVyKGZpbHRlcklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZUZpbHRlcih0aGlzLkFjdGl2ZUxhbmd1YWdlLCBmaWx0ZXJJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVGaWx0ZXIobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBmaWx0ZXJJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBmaWx0ZXJhcnJheSA9IGxhbmd1YWdlLmZpbHRlckVudHJpZXM7XHJcbiAgICBpZiAoZmlsdGVyYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbHRlcmFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGZpbHRlcmFycmF5W2ldLmZpbHRlcklkID09IGZpbHRlcklkKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmlsdGVyYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlRmlsdGVyT3B0aW9uKGZpbHRlck9wdGlvbklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZUZpbHRlck9wdGlvbih0aGlzLkFjdGl2ZUxhbmd1YWdlLCBmaWx0ZXJPcHRpb25JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVGaWx0ZXJPcHRpb24obGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBmaWx0ZXJPcHRpb25JZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBmaWx0ZXJhcnJheSA9IGxhbmd1YWdlLmZpbHRlck9wdGlvbkVudHJpZXM7XHJcbiAgICBpZiAoZmlsdGVyYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbHRlcmFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGZpbHRlcmFycmF5W2ldLmZpbHRlck9wdGlvbklkID09IGZpbHRlck9wdGlvbklkKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmlsdGVyYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlRGVzY3JpcHRpb24oYmNiUHJvZHVjdElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZURlc2NyaXB0aW9uKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGJjYlByb2R1Y3RJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVEZXNjcmlwdGlvbihsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIGJjYlByb2R1Y3RJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBkZXNjcmlwdGlvbmFycmF5ID0gbGFuZ3VhZ2UuZGVzY3JpcHRpb25FbnRyaWVzO1xyXG4gICAgaWYgKGRlc2NyaXB0aW9uYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRlc2NyaXB0aW9uYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZGVzY3JpcHRpb25hcnJheVtpXS5iY2JQcm9kdWN0SWQgPT0gYmNiUHJvZHVjdElkKSB7XHJcbiAgICAgICAgICByZXR1cm4gZGVzY3JpcHRpb25hcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVBZmJlZWxkaW5nKGJjYlByb2R1Y3RBZmJlZWxkaW5nSWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlQWZiZWVsZGluZyh0aGlzLkFjdGl2ZUxhbmd1YWdlLCBiY2JQcm9kdWN0QWZiZWVsZGluZ0lkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZUFmYmVlbGRpbmcobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBiY2JQcm9kdWN0QWZiZWVsZGluZ0lkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIGFmYmVlbGRpbmdhcnJheSA9IGxhbmd1YWdlLmFmYmVlbGRpbmdFbnRyaWVzO1xyXG4gICAgaWYgKGFmYmVlbGRpbmdhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWZiZWVsZGluZ2FycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFmYmVlbGRpbmdhcnJheVtpXS5iY2JQcm9kdWN0QWZiZWVsZGluZ0lkID09IGJjYlByb2R1Y3RBZmJlZWxkaW5nSWQpIHtcclxuICAgICAgICAgIHJldHVybiBhZmJlZWxkaW5nYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldENhdGVnb3JpZXMoKTogQXJyYXk8VHJhbnNsYXRlS2V5Q2F0ZWdvcnlWaWV3TW9kZWw+IHtcclxuXHJcbiAgICBpZiAodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsICYmIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlcy5sZW5ndGggPiAwICYmIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1swXS5jYXRlZ29yaWVzICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1swXS5jYXRlZ29yaWVzO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgQXJyYXk8VHJhbnNsYXRlS2V5Q2F0ZWdvcnlWaWV3TW9kZWw+KCk7O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZUNhdGVnb3JpZSgpOiBUcmFuc2xhdGVLZXlDYXRlZ29yeVZpZXdNb2RlbCB8IG51bGwge1xyXG4gICAgdmFyIGNhdHMgPSB0aGlzLkdldENhdGVnb3JpZXMoKTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGNhdHNbaV0ubmFtZSA9PSB0aGlzLlNlbGVjdGVkQ2F0ZWdvcnkpIHtcclxuICAgICAgICByZXR1cm4gY2F0c1tpXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBQcm9jZXNzRGVzaXJlZENvdW50cnlDb2RlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsPy5sYW5ndWFnZXMgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5EZXNpcmVkQ291bnRyeUNvZGUgPT0gXCJcIikge1xyXG4gICAgICAgIHRoaXMuU2V0QWN0aXZlTGFuZ3VhZ2UodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzWzBdKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1tpXS5jb3VudHJ5Q29kZT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09IHRoaXMuRGVzaXJlZENvdW50cnlDb2RlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5TZXRBY3RpdmVMYW5ndWFnZSh0aGlzLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBTZXRBY3RpdmVMYW5ndWFnZShsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IGxhbmd1YWdlKSB7XHJcbiAgICAgIHRoaXMuQWN0aXZlTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcclxuXHJcbiAgICAgIHRoaXMuTmF2aWdhdGVTZXJ2aWNlLlJlZnJlc2hQYWdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==