@seniorsistemas/angular-components 17.16.0 → 17.16.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 (32) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +22 -1
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/dynamic-form/configurations/fields/select-field.d.ts +2 -0
  6. package/components/tiered-menu/utils.d.ts +2 -0
  7. package/components/utils/index.d.ts +1 -0
  8. package/components/utils/utils.d.ts +1 -0
  9. package/esm2015/components/dynamic-form/components/fields/select/select-field.component.js +2 -2
  10. package/esm2015/components/dynamic-form/configurations/fields/select-field.js +2 -1
  11. package/esm2015/components/table/table-column/table-columns.component.js +6 -3
  12. package/esm2015/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +7 -1
  13. package/esm2015/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +5 -2
  14. package/esm2015/components/tiered-menu/tiered-menu.directive.js +3 -1
  15. package/esm2015/components/tiered-menu/utils.js +7 -0
  16. package/esm2015/components/utils/index.js +2 -1
  17. package/esm2015/components/utils/utils.js +2 -0
  18. package/esm5/components/dynamic-form/components/fields/select/select-field.component.js +2 -2
  19. package/esm5/components/dynamic-form/configurations/fields/select-field.js +2 -1
  20. package/esm5/components/table/table-column/table-columns.component.js +4 -1
  21. package/esm5/components/tiered-menu/components/tiered-menu/tiered-menu.component.js +7 -1
  22. package/esm5/components/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.js +5 -2
  23. package/esm5/components/tiered-menu/tiered-menu.directive.js +3 -1
  24. package/esm5/components/tiered-menu/utils.js +7 -0
  25. package/esm5/components/utils/index.js +2 -1
  26. package/esm5/components/utils/utils.js +2 -0
  27. package/fesm2015/seniorsistemas-angular-components.js +24 -4
  28. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  29. package/fesm5/seniorsistemas-angular-components.js +22 -2
  30. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  31. package/package.json +1 -1
  32. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -7,6 +7,7 @@ import { TieredMenuComponent } from "./components/tiered-menu/tiered-menu.compon
7
7
  import { TieredMenuEventService } from "./services/tiered-menu.event.service";
8
8
  import { TieredMenuGlobalService } from "./services/tiered-menu.global.service";
9
9
  import { TieredMenuService } from "./services/tiered-menu.service";
10
+ import { enableScroll } from "./utils";
10
11
  let TieredMenuDirective = class TieredMenuDirective {
11
12
  constructor(_elementRef, _appRef, _componentFactoryResolver, _injector, _tieredMenuEventService, _tieredMenuService, _tieredMenuGlobalService, _changeDetectorRef) {
12
13
  this._elementRef = _elementRef;
@@ -171,6 +172,7 @@ let TieredMenuDirective = class TieredMenuDirective {
171
172
  this._tieredMenuEventService.closeAllMenusEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {
172
173
  this._tieredMenuService.items = this._tieredMenuService.markAllItemsAsClosed(this._tieredMenuService.items);
173
174
  this._destroy();
175
+ enableScroll();
174
176
  });
175
177
  }
176
178
  _compareItems(item1, item2) {
@@ -215,4 +217,4 @@ TieredMenuDirective = __decorate([
215
217
  })
216
218
  ], TieredMenuDirective);
217
219
  export { TieredMenuDirective };
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllcmVkLW1lbnUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdGllcmVkLW1lbnUvdGllcmVkLW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUNkLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLFNBQVMsRUFDVCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDZixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBT25FLElBQWEsbUJBQW1CLEdBQWhDLE1BQWEsbUJBQW1CO0lBbUI1QixZQUNxQixXQUF1QixFQUN2QixPQUF1QixFQUN2Qix5QkFBbUQsRUFDbkQsU0FBbUIsRUFDbkIsdUJBQStDLEVBQy9DLGtCQUFxQyxFQUNyQyx3QkFBaUQsRUFDakQsa0JBQXFDO1FBUHJDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFDbkQs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a0JBQWtCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQUVyRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxTQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFdBQUMsT0FBQSxDQUFDLENBQUMsS0FBSyxZQUFLLElBQUksQ0FBQyxXQUFXLDBDQUFFLEtBQUssQ0FBQSxDQUFBLEVBQUEsQ0FBQyxtQ0FBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNILENBQUM7Q0FDSixDQUFBOztZQXpNcUMsVUFBVTtZQUNkLGNBQWM7WUFDSSx3QkFBd0I7WUFDeEMsUUFBUTtZQUNNLHNCQUFzQjtZQUMzQixpQkFBaUI7WUFDWCx1QkFBdUI7WUFDN0IsaUJBQWlCOztBQXpCMUQ7SUFEQyxLQUFLLEVBQUU7a0RBQzJCO0FBR25DO0lBREMsS0FBSyxFQUFFO3dEQUMyQztBQUduRDtJQURDLEtBQUssRUFBRTt5REFDeUM7QUFxRWpEO0lBREMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2tEQVVqQztBQXRGUSxtQkFBbUI7SUFKL0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGVBQWU7UUFDekIsU0FBUyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsaUJBQWlCLENBQUM7S0FDekQsQ0FBQztHQUNXLG1CQUFtQixDQTZOL0I7U0E3TlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRW1iZWRkZWRWaWV3UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBUaWVyZWRNZW51TmVzdGVkQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy90aWVyZWQtbWVudS1uZXN0ZWQvdGllcmVkLW1lbnUtbmVzdGVkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVGllcmVkTWVudUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvdGllcmVkLW1lbnUvdGllcmVkLW1lbnUuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51SXRlbURhdGEgfSBmcm9tIFwiLi9tb2RlbHMvdGllcmVkLW1lbnUtaXRlbS1kYXRhXCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51RXZlbnRTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvdGllcmVkLW1lbnUuZXZlbnQuc2VydmljZVwiO1xuaW1wb3J0IHsgVGllcmVkTWVudUdsb2JhbFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy90aWVyZWQtbWVudS5nbG9iYWwuc2VydmljZVwiO1xuaW1wb3J0IHsgVGllcmVkTWVudVNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy90aWVyZWQtbWVudS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YSB9IGZyb20gXCIuL21vZGVsc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJbc1RpZXJlZE1lbnVdXCIsXG4gICAgcHJvdmlkZXJzOiBbVGllcmVkTWVudUV2ZW50U2VydmljZSwgVGllcmVkTWVudVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUaWVyZWRNZW51RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1zOiBUaWVyZWRNZW51SXRlbURhdGFbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvY3VzZWRJdGVtOiBUaWVyZWRNZW51SXRlbURhdGEgPSB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0cmlnZ2VyRXZlbnQ6IFwiY2xpY2tcIiB8IFwiaG92ZXJcIiA9IFwiY2xpY2tcIjtcblxuICAgIHByaXZhdGUgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4gPSBudWxsO1xuICAgIHByaXZhdGUgX3Nob3dUaW1lb3V0PzogbnVtYmVyO1xuICAgIHByaXZhdGUgX2lzTmVzdGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNPcGVuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9sYXN0QWN0aXZlRWxlbWVudDogRWxlbWVudDtcbiAgICBwcml2YXRlIF9wcmV2aW91c0l0ZW1zOiBUaWVyZWRNZW51SXRlbURhdGFbXTtcbiAgICBwcml2YXRlIF9pdGVtc0FyZVZhbGlkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2FwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RpZXJlZE1lbnVFdmVudFNlcnZpY2U6IFRpZXJlZE1lbnVFdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RpZXJlZE1lbnVTZXJ2aWNlOiBUaWVyZWRNZW51U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdGllcmVkTWVudUdsb2JhbFNlcnZpY2U6IFRpZXJlZE1lbnVHbG9iYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2l0ZW1zQXJlVmFsaWQgPSAhIXRoaXMuaXRlbXM/Lmxlbmd0aDtcblxuICAgICAgICBpZiAoIXRoaXMuX2l0ZW1zQXJlVmFsaWQpIHJldHVybjtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpYmVFdmVudHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2l0ZW1zQXJlVmFsaWQpIHJldHVybjtcblxuICAgICAgICBpZiAoIXRoaXMuX3ByZXZpb3VzSXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzSXRlbXMgPSB0aGlzLl90aWVyZWRNZW51U2VydmljZS5jbG9uZUl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggIT09IHRoaXMuX3ByZXZpb3VzSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fY29tcGFyZUl0ZW1zKHRoaXMuaXRlbXNbaV0sIHRoaXMuX3ByZXZpb3VzSXRlbXNbaV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzQ2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VydmljZUl0ZW1zKCk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLl9yZWJ1aWxkTWVudSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcHJldmlvdXNJdGVtcyA9IHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLmNsb25lSXRlbXModGhpcy5pdGVtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2l0ZW1zQXJlVmFsaWQpIHJldHVybjtcblxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcblxuICAgICAgICB0aGlzLl9kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIsIFtcIiRldmVudFwiXSlcbiAgICBwdWJsaWMgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2l0ZW1zQXJlVmFsaWQpIHJldHVybjtcblxuICAgICAgICBpZiAodGhpcy50cmlnZ2VyRXZlbnQgPT09IFwiY2xpY2tcIiAmJiAhdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVNZW51KCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVTZXJ2aWNlSXRlbXMoKTtcblxuICAgICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZiAmJiB0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUdsb2JhbFNlcnZpY2UubGFzdEluc3RhbmNlPy5fZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUdsb2JhbFNlcnZpY2UubGFzdEluc3RhbmNlID0gdGhpcztcblxuICAgICAgICAgICAgKHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KT8uYmx1cigpO1xuICAgICAgICAgICAgdGhpcy5faXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2lzTmVzdGVkID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCA8IDYwMDtcblxuICAgICAgICAgICAgdGhpcy5faXNOZXN0ZWQgPyB0aGlzLl9jcmVhdGVOZXN0ZWRNZW51KCkgOiB0aGlzLl9jcmVhdGVUaWVyZWRNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVUaWVyZWRNZW51KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZiAmJiB0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShUaWVyZWRNZW51Q29tcG9uZW50KTtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKHRoaXMuX2luamVjdG9yKTtcblxuICAgICAgICAgICAgdGhpcy5fYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuICAgICAgICAgICAgdGhpcy5fc2V0TWVudUNvbXBvbmVudFByb3BlcnRpZXMoKTtcblxuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmRlc3Ryb3lSZXF1ZXN0LnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVzdHJveSgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NldE1lbnVQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlTmVzdGVkTWVudSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jb21wb25lbnRSZWYgJiYgdGhpcy5fdGllcmVkTWVudVNlcnZpY2UuaXRlbXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoVGllcmVkTWVudU5lc3RlZENvbXBvbmVudCk7XG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLl9pbmplY3Rvcik7XG4gICAgICAgICAgICB0aGlzLl9hcHBSZWYuYXR0YWNoVmlldyh0aGlzLl9jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgY29uc3QgZG9tRWxlbSA9ICh0aGlzLl9jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG4gICAgICAgICAgICB0aGlzLl9zZXRNZW51Q29tcG9uZW50UHJvcGVydGllcygpO1xuICAgICAgICAgICAgdGhpcy5fc2V0TWVudVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fc2hvd1RpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5fYXBwUmVmLmRldGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IG51bGw7XG5cbiAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcyA9IHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLml0ZW1zO1xuICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSB0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtc1swXTtcbiAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuY2xvc2VBbGxNZW51c0V2ZW50LmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldE1lbnVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgSVRFTV9IRUlHSFQgPSAzNztcbiAgICAgICAgY29uc3QgSVRFTV9XSURUSCA9IDE3NjtcbiAgICAgICAgY29uc3QgRElWSURFUl9IRUlHSFQgPSA1O1xuICAgICAgICBjb25zdCBQQURESU5HID0gODtcbiAgICAgICAgY29uc3QgTUFSR0lOID0gNDtcblxuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gODtcblxuICAgICAgICAgICAgbGV0IHsgYm90dG9tLCBsZWZ0LCByaWdodCB9ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBpdGVtc0NvdW50ID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1zPy5yZWR1Y2UoKGNvdW50OiBudW1iZXIsIGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpdGVtLmRpdmlkZXIgPyBjb3VudCArIDEgOiBjb3VudDtcbiAgICAgICAgICAgIH0sIDApO1xuXG4gICAgICAgICAgICBjb25zdCBkaXZpZGVyc0NvdW50ID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1zPy5yZWR1Y2UoKGNvdW50OiBudW1iZXIsIGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZGl2aWRlciA/IGNvdW50ICsgMSA6IGNvdW50O1xuICAgICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG1lbnVIZWlnaHQgPSBpdGVtc0NvdW50ICogSVRFTV9IRUlHSFQgKyBkaXZpZGVyc0NvdW50ICogRElWSURFUl9IRUlHSFQgKyBQQURESU5HICsgTUFSR0lOO1xuICAgICAgICAgICAgY29uc3QgcmlnaHRGcmVlU3BhY2UgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHJpZ2h0O1xuICAgICAgICAgICAgY29uc3QgYm90dG9tRnJlZVNwYWNlID0gd2luZG93LmlubmVySGVpZ2h0IC0gYm90dG9tO1xuXG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gYm90dG9tO1xuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBsZWZ0O1xuXG4gICAgICAgICAgICBpZiAoYm90dG9tRnJlZVNwYWNlIDw9IG1lbnVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5tYXgoc2Nyb2xsWSArIGJvdHRvbSAtIG1lbnVIZWlnaHQsIDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gd2luZG93LnNjcm9sbFkgKyBib3R0b20gKyBNQVJHSU47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyaWdodEZyZWVTcGFjZSA+IDE3Nikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gd2luZG93LnNjcm9sbFggKyBsZWZ0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IHdpbmRvdy5zY3JvbGxYICsgcmlnaHQgLSBJVEVNX1dJRFRIO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5faXNOZXN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1BUkdJTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldE1lbnVDb21wb25lbnRQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5pdGVtcyA9IHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLml0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaWJlRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLmNsb3NlQWxsTWVudXNFdmVudC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudVNlcnZpY2UuaXRlbXMgPSB0aGlzLl90aWVyZWRNZW51U2VydmljZS5tYXJrQWxsSXRlbXNBc0Nsb3NlZCh0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtcyk7XG4gICAgICAgICAgICB0aGlzLl9kZXN0cm95KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbXBhcmVJdGVtcyhpdGVtMTogVGllcmVkTWVudUl0ZW1EYXRhLCBpdGVtMjogVGllcmVkTWVudUl0ZW1EYXRhKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShpdGVtMSkgPT09IEpTT04uc3RyaW5naWZ5KGl0ZW0yKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZWJ1aWxkTWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZVNlcnZpY2VJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGllcmVkTWVudVNlcnZpY2UuaXRlbXMgPSB0aGlzLl90aWVyZWRNZW51U2VydmljZS5ub3JtYWxpemVEYXRhKHRoaXMuaXRlbXMpO1xuICAgICAgICB0aGlzLl90aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMgPSB0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtcztcblxuICAgICAgICB0aGlzLl90aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9XG4gICAgICAgICAgICB0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtcy5maW5kKChpKSA9PiBpLmxhYmVsID09PSB0aGlzLmZvY3VzZWRJdGVtPy5sYWJlbCkgPz8gdGhpcy5fdGllcmVkTWVudVNlcnZpY2UuaXRlbXNbMF07XG4gICAgfVxufVxuIl19
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllcmVkLW1lbnUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdGllcmVkLW1lbnUvdGllcmVkLW1lbnUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUNkLGlCQUFpQixFQUNqQix3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLFNBQVMsRUFDVCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDZixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXJGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFNdkMsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBbUI7SUFtQjVCLFlBQ3FCLFdBQXVCLEVBQ3ZCLE9BQXVCLEVBQ3ZCLHlCQUFtRCxFQUNuRCxTQUFtQixFQUNuQix1QkFBK0MsRUFDL0Msa0JBQXFDLEVBQ3JDLHdCQUFpRCxFQUNqRCxrQkFBcUM7UUFQckMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FB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ZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IFRpZXJlZE1lbnVOZXN0ZWRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3RpZXJlZC1tZW51LW5lc3RlZC90aWVyZWQtbWVudS1uZXN0ZWQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy90aWVyZWQtbWVudS90aWVyZWQtbWVudS5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRpZXJlZE1lbnVJdGVtRGF0YSB9IGZyb20gXCIuL21vZGVscy90aWVyZWQtbWVudS1pdGVtLWRhdGFcIjtcbmltcG9ydCB7IFRpZXJlZE1lbnVFdmVudFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy90aWVyZWQtbWVudS5ldmVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51R2xvYmFsU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL3RpZXJlZC1tZW51Lmdsb2JhbC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51U2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL3RpZXJlZC1tZW51LnNlcnZpY2VcIjtcbmltcG9ydCB7IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhIH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBlbmFibGVTY3JvbGwgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogXCJbc1RpZXJlZE1lbnVdXCIsXG4gICAgcHJvdmlkZXJzOiBbVGllcmVkTWVudUV2ZW50U2VydmljZSwgVGllcmVkTWVudVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUaWVyZWRNZW51RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1zOiBUaWVyZWRNZW51SXRlbURhdGFbXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvY3VzZWRJdGVtOiBUaWVyZWRNZW51SXRlbURhdGEgPSB1bmRlZmluZWQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0cmlnZ2VyRXZlbnQ6IFwiY2xpY2tcIiB8IFwiaG92ZXJcIiA9IFwiY2xpY2tcIjtcblxuICAgIHByaXZhdGUgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4gPSBudWxsO1xuICAgIHByaXZhdGUgX3Nob3dUaW1lb3V0PzogbnVtYmVyO1xuICAgIHByaXZhdGUgX2lzTmVzdGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaXNPcGVuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9sYXN0QWN0aXZlRWxlbWVudDogRWxlbWVudDtcbiAgICBwcml2YXRlIF9wcmV2aW91c0l0ZW1zOiBUaWVyZWRNZW51SXRlbURhdGFbXTtcbiAgICBwcml2YXRlIF9pdGVtc0FyZVZhbGlkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2FwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RpZXJlZE1lbnVFdmVudFNlcnZpY2U6IFRpZXJlZE1lbnVFdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RpZXJlZE1lbnVTZXJ2aWNlOiBUaWVyZWRNZW51U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdGllcmVkTWVudUdsb2JhbFNlcnZpY2U6IFRpZXJlZE1lbnVHbG9iYWxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2l0ZW1zQXJlVmFsaWQgPSAhIXRoaXMuaXRlbXM/Lmxlbmd0aDtcblxuICAgICAgICBpZiAoIXRoaXMuX2l0ZW1zQXJlVmFsaWQpIHJldHVybjtcblxuICAgICAgICB0aGlzLl9zdWJzY3JpYmVFdmVudHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2l0ZW1zQXJlVmFsaWQpIHJldHVybjtcblxuICAgICAgICBpZiAoIXRoaXMuX3ByZXZpb3VzSXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXZpb3VzSXRlbXMgPSB0aGlzLl90aWVyZWRNZW51U2VydmljZS5jbG9uZUl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGhhc0NoYW5nZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5pdGVtcy5sZW5ndGggIT09IHRoaXMuX3ByZXZpb3VzSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBoYXNDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5fY29tcGFyZUl0ZW1zKHRoaXMuaXRlbXNbaV0sIHRoaXMuX3ByZXZpb3VzSXRlbXNbaV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhc0NoYW5nZXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaGFzQ2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VydmljZUl0ZW1zKCk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLl9yZWJ1aWxkTWVudSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcHJldmlvdXNJdGVtcyA9IHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLmNsb25lSXRlbXModGhpcy5pdGVtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2l0ZW1zQXJlVmFsaWQpIHJldHVybjtcblxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcblxuICAgICAgICB0aGlzLl9kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIsIFtcIiRldmVudFwiXSlcbiAgICBwdWJsaWMgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2l0ZW1zQXJlVmFsaWQpIHJldHVybjtcblxuICAgICAgICBpZiAodGhpcy50cmlnZ2VyRXZlbnQgPT09IFwiY2xpY2tcIiAmJiAhdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0QWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVNZW51KCk7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVTZXJ2aWNlSXRlbXMoKTtcblxuICAgICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZiAmJiB0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUdsb2JhbFNlcnZpY2UubGFzdEluc3RhbmNlPy5fZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUdsb2JhbFNlcnZpY2UubGFzdEluc3RhbmNlID0gdGhpcztcblxuICAgICAgICAgICAgKHRoaXMuX2xhc3RBY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KT8uYmx1cigpO1xuICAgICAgICAgICAgdGhpcy5faXNPcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2lzTmVzdGVkID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCA8IDYwMDtcblxuICAgICAgICAgICAgdGhpcy5faXNOZXN0ZWQgPyB0aGlzLl9jcmVhdGVOZXN0ZWRNZW51KCkgOiB0aGlzLl9jcmVhdGVUaWVyZWRNZW51KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVUaWVyZWRNZW51KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZiAmJiB0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShUaWVyZWRNZW51Q29tcG9uZW50KTtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKHRoaXMuX2luamVjdG9yKTtcblxuICAgICAgICAgICAgdGhpcy5fYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuICAgICAgICAgICAgdGhpcy5fc2V0TWVudUNvbXBvbmVudFByb3BlcnRpZXMoKTtcblxuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmRlc3Ryb3lSZXF1ZXN0LnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVzdHJveSgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NldE1lbnVQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlTmVzdGVkTWVudSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jb21wb25lbnRSZWYgJiYgdGhpcy5fdGllcmVkTWVudVNlcnZpY2UuaXRlbXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoVGllcmVkTWVudU5lc3RlZENvbXBvbmVudCk7XG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSBjb21wb25lbnRGYWN0b3J5LmNyZWF0ZSh0aGlzLl9pbmplY3Rvcik7XG4gICAgICAgICAgICB0aGlzLl9hcHBSZWYuYXR0YWNoVmlldyh0aGlzLl9jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgY29uc3QgZG9tRWxlbSA9ICh0aGlzLl9jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG4gICAgICAgICAgICB0aGlzLl9zZXRNZW51Q29tcG9uZW50UHJvcGVydGllcygpO1xuICAgICAgICAgICAgdGhpcy5fc2V0TWVudVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5fc2hvd1RpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5fYXBwUmVmLmRldGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IG51bGw7XG5cbiAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcyA9IHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLml0ZW1zO1xuICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSB0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtc1swXTtcbiAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuY2xvc2VBbGxNZW51c0V2ZW50LmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldE1lbnVQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgSVRFTV9IRUlHSFQgPSAzNztcbiAgICAgICAgY29uc3QgSVRFTV9XSURUSCA9IDE3NjtcbiAgICAgICAgY29uc3QgRElWSURFUl9IRUlHSFQgPSA1O1xuICAgICAgICBjb25zdCBQQURESU5HID0gODtcbiAgICAgICAgY29uc3QgTUFSR0lOID0gNDtcblxuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gODtcblxuICAgICAgICAgICAgbGV0IHsgYm90dG9tLCBsZWZ0LCByaWdodCB9ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICBjb25zdCBpdGVtc0NvdW50ID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1zPy5yZWR1Y2UoKGNvdW50OiBudW1iZXIsIGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpdGVtLmRpdmlkZXIgPyBjb3VudCArIDEgOiBjb3VudDtcbiAgICAgICAgICAgIH0sIDApO1xuXG4gICAgICAgICAgICBjb25zdCBkaXZpZGVyc0NvdW50ID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1zPy5yZWR1Y2UoKGNvdW50OiBudW1iZXIsIGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZGl2aWRlciA/IGNvdW50ICsgMSA6IGNvdW50O1xuICAgICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG1lbnVIZWlnaHQgPSBpdGVtc0NvdW50ICogSVRFTV9IRUlHSFQgKyBkaXZpZGVyc0NvdW50ICogRElWSURFUl9IRUlHSFQgKyBQQURESU5HICsgTUFSR0lOO1xuICAgICAgICAgICAgY29uc3QgcmlnaHRGcmVlU3BhY2UgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHJpZ2h0O1xuICAgICAgICAgICAgY29uc3QgYm90dG9tRnJlZVNwYWNlID0gd2luZG93LmlubmVySGVpZ2h0IC0gYm90dG9tO1xuXG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gYm90dG9tO1xuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBsZWZ0O1xuXG4gICAgICAgICAgICBpZiAoYm90dG9tRnJlZVNwYWNlIDw9IG1lbnVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5tYXgoc2Nyb2xsWSArIGJvdHRvbSAtIG1lbnVIZWlnaHQsIDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gd2luZG93LnNjcm9sbFkgKyBib3R0b20gKyBNQVJHSU47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyaWdodEZyZWVTcGFjZSA+IDE3Nikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5sZWZ0ID0gd2luZG93LnNjcm9sbFggKyBsZWZ0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IHdpbmRvdy5zY3JvbGxYICsgcmlnaHQgLSBJVEVNX1dJRFRIO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5faXNOZXN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IE1BUkdJTjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldE1lbnVDb21wb25lbnRQcm9wZXJ0aWVzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5pdGVtcyA9IHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLml0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3Vic2NyaWJlRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLmNsb3NlQWxsTWVudXNFdmVudC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudVNlcnZpY2UuaXRlbXMgPSB0aGlzLl90aWVyZWRNZW51U2VydmljZS5tYXJrQWxsSXRlbXNBc0Nsb3NlZCh0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtcyk7XG4gICAgICAgICAgICB0aGlzLl9kZXN0cm95KCk7XG4gICAgICAgICAgICBlbmFibGVTY3JvbGwoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29tcGFyZUl0ZW1zKGl0ZW0xOiBUaWVyZWRNZW51SXRlbURhdGEsIGl0ZW0yOiBUaWVyZWRNZW51SXRlbURhdGEpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGl0ZW0xKSA9PT0gSlNPTi5zdHJpbmdpZnkoaXRlbTIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlYnVpbGRNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlU2VydmljZUl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtcyA9IHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLm5vcm1hbGl6ZURhdGEodGhpcy5pdGVtcyk7XG4gICAgICAgIHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcyA9IHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLml0ZW1zO1xuXG4gICAgICAgIHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID1cbiAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVTZXJ2aWNlLml0ZW1zLmZpbmQoKGkpID0+IGkubGFiZWwgPT09IHRoaXMuZm9jdXNlZEl0ZW0/LmxhYmVsKSA/PyB0aGlzLl90aWVyZWRNZW51U2VydmljZS5pdGVtc1swXTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export const enableScroll = () => {
2
+ document.body.style.overflow = "auto";
3
+ };
4
+ export const disabledScroll = () => {
5
+ document.body.style.overflow = "hidden";
6
+ };
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90aWVyZWQtbWVudS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBUyxFQUFFO0lBQ25DLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7QUFDMUMsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQVMsRUFBRTtJQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQzVDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbmFibGVTY3JvbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IFwiYXV0b1wiO1xufVxuXG5leHBvcnQgY29uc3QgZGlzYWJsZWRTY3JvbGwgPSAoKTogdm9pZCA9PiB7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCI7XG59Il19
@@ -2,4 +2,5 @@ export { Breakpoints } from "./breakpoints";
2
2
  export { DebounceUtils } from "./debouce";
3
3
  export { ExportUtils } from "./export-utils";
4
4
  export { convertToMomentDateFormat } from "./locale-utils";
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQnJlYWtwb2ludHMgfSBmcm9tIFwiLi9icmVha3BvaW50c1wiO1xuZXhwb3J0IHsgRGVib3VuY2VVdGlscyB9IGZyb20gXCIuL2RlYm91Y2VcIjtcbmV4cG9ydCB7IEV4cG9ydFV0aWxzIH0gZnJvbSBcIi4vZXhwb3J0LXV0aWxzXCI7XG5leHBvcnQgeyBjb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0IH0gZnJvbSBcIi4vbG9jYWxlLXV0aWxzXCI7XG4iXX0=
5
+ export * from "./utils";
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQnJlYWtwb2ludHMgfSBmcm9tIFwiLi9icmVha3BvaW50c1wiO1xuZXhwb3J0IHsgRGVib3VuY2VVdGlscyB9IGZyb20gXCIuL2RlYm91Y2VcIjtcbmV4cG9ydCB7IEV4cG9ydFV0aWxzIH0gZnJvbSBcIi4vZXhwb3J0LXV0aWxzXCI7XG5leHBvcnQgeyBjb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0IH0gZnJvbSBcIi4vbG9jYWxlLXV0aWxzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsc1wiO1xuIl19
@@ -0,0 +1,2 @@
1
+ export const isNullOrUndefined = (value) => value === null || value === undefined;
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzTnVsbE9yVW5kZWZpbmVkID0gKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xyXG4iXX0=
@@ -14,10 +14,10 @@ var SelectFieldComponent = /** @class */ (function (_super) {
14
14
  ], SelectFieldComponent.prototype, "formControl", void 0);
15
15
  SelectFieldComponent = __decorate([
16
16
  Component({
17
- template: "<s-field-label [field]=\"field\"></s-field-label>\n\n<p-dropdown\n *ngIf=\"!field.multiple\"\n [inputId]=\"(field.id || field.name)\"\n [name]=\"field.name\"\n [options]=\"isFunction(field.options) ? field.options() : field.options\"\n [placeholder]=\"field.placeholder || ' '\"\n [formControl]=\"formControl\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [showClear]=\"field.showClear\"\n dataKey=\"{{field.dataKey}}\"\n optionLabel=\"{{field.optionLabel}}\"\n [autoDisplayFirst]=\"field.autoDisplayFirst\"\n [appendTo]=\"field.appendTo || 'body'\"\n [editable]=\"field.editable\"\n (onClick)=\"field.onClick ? field.onClick($event) : null\"\n (onChange)=\"field.onChange ? field.onChange($event) : null\">\n</p-dropdown>\n<p-multiSelect\n *ngIf=\"field.multiple\"\n [formControl]=\"formControl\"\n [name]=\"field.name\"\n [inputId]=\"(field.id || field.name)\"\n [options]=\"isFunction(field.options) ? field.options() : field.options\"\n [defaultLabel]=\"field.placeholder\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [emptyFilterMessage]=\"field.emptyMessage || 'platform.angular_components.no_records_found' | translate\"\n [showDelay]=\"500\"\n [selectedItemsLabel]=\"field.multipleSelectedLabel || 'platform.angular_components.total_records_selected' | translate\"\n [appendTo]=\"field.appendTo || 'body'\"\n (onClick)=\"field.onClick ? field.onClick($event) : null\"\n (onChange)=\"field.onChange ? field.onChange($event) : null\">\n</p-multiSelect>\n\n"
17
+ template: "<s-field-label [field]=\"field\"></s-field-label>\n\n<p-dropdown\n *ngIf=\"!field.multiple\"\n [filter]=\"field.filter\"\n [inputId]=\"(field.id || field.name)\"\n [name]=\"field.name\"\n [options]=\"isFunction(field.options) ? field.options() : field.options\"\n [placeholder]=\"field.placeholder || ' '\"\n [formControl]=\"formControl\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n [showClear]=\"field.showClear\"\n dataKey=\"{{field.dataKey}}\"\n optionLabel=\"{{field.optionLabel}}\"\n [autoDisplayFirst]=\"field.autoDisplayFirst\"\n [appendTo]=\"field.appendTo || 'body'\"\n [editable]=\"field.editable\"\n (onClick)=\"field.onClick ? field.onClick($event) : null\"\n (onChange)=\"field.onChange ? field.onChange($event) : null\">\n</p-dropdown>\n<p-multiSelect\n *ngIf=\"field.multiple\"\n [formControl]=\"formControl\"\n [name]=\"field.name\"\n [inputId]=\"(field.id || field.name)\"\n [options]=\"isFunction(field.options) ? field.options() : field.options\"\n [defaultLabel]=\"field.placeholder\"\n [sTooltip]=\"field.tooltip\"\n tooltipPosition=\"top\"\n [emptyFilterMessage]=\"field.emptyMessage || 'platform.angular_components.no_records_found' | translate\"\n [showDelay]=\"500\"\n [selectedItemsLabel]=\"field.multipleSelectedLabel || 'platform.angular_components.total_records_selected' | translate\"\n [appendTo]=\"field.appendTo || 'body'\"\n (onClick)=\"field.onClick ? field.onClick($event) : null\"\n (onChange)=\"field.onChange ? field.onChange($event) : null\">\n</p-multiSelect>\n\n"
18
18
  })
19
19
  ], SelectFieldComponent);
20
20
  return SelectFieldComponent;
21
21
  }(BaseFieldComponent));
22
22
  export { SelectFieldComponent };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3Qvc2VsZWN0LWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLGtCQUFrQixFQUE0QixNQUFNLHlCQUF5QixDQUFDO0FBS3ZGO0lBQTBDLHdDQUFrQjtJQUE1RDs7SUFLQSxDQUFDO0lBSEc7UUFEQyxLQUFLLEVBQUU7dURBQ2tCO0lBRTFCO1FBREMsS0FBSyxFQUFFOzZEQUN3QjtJQUp2QixvQkFBb0I7UUFIaEMsU0FBUyxDQUFDO1lBQ1Asa2xEQUEwQztTQUM3QyxDQUFDO09BQ1csb0JBQW9CLENBS2hDO0lBQUQsMkJBQUM7Q0FBQSxBQUxELENBQTBDLGtCQUFrQixHQUszRDtTQUxZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFNlbGVjdEZpZWxkIH0gZnJvbSBcIi4uLy4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9zZWxlY3QtZmllbGRcIjtcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudCwgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnIH0gZnJvbSBcIi4uL2Jhc2UtZmllbGQtY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcInNlbGVjdC1maWVsZC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RGaWVsZENvbXBvbmVudCBleHRlbmRzIEJhc2VGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEJhc2VGaWVsZENvbXBvbmVudENvbmZpZyB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmllbGQ6IFNlbGVjdEZpZWxkO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcbn1cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2ZpZWxkcy9zZWxlY3Qvc2VsZWN0LWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLGtCQUFrQixFQUE0QixNQUFNLHlCQUF5QixDQUFDO0FBS3ZGO0lBQTBDLHdDQUFrQjtJQUE1RDs7SUFLQSxDQUFDO0lBSEc7UUFEQyxLQUFLLEVBQUU7dURBQ2tCO0lBRTFCO1FBREMsS0FBSyxFQUFFOzZEQUN3QjtJQUp2QixvQkFBb0I7UUFIaEMsU0FBUyxDQUFDO1lBQ1AsaW5EQUEwQztTQUM3QyxDQUFDO09BQ1csb0JBQW9CLENBS2hDO0lBQUQsMkJBQUM7Q0FBQSxBQUxELENBQTBDLGtCQUFrQixHQUszRDtTQUxZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFNlbGVjdEZpZWxkIH0gZnJvbSBcIi4uLy4uLy4uL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9zZWxlY3QtZmllbGRcIjtcbmltcG9ydCB7IEJhc2VGaWVsZENvbXBvbmVudCwgQmFzZUZpZWxkQ29tcG9uZW50Q29uZmlnIH0gZnJvbSBcIi4uL2Jhc2UtZmllbGQtY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcInNlbGVjdC1maWVsZC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RGaWVsZENvbXBvbmVudCBleHRlbmRzIEJhc2VGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIEJhc2VGaWVsZENvbXBvbmVudENvbmZpZyB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmllbGQ6IFNlbGVjdEZpZWxkO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcbn1cbiJdfQ==
@@ -15,6 +15,7 @@ var SelectField = /** @class */ (function (_super) {
15
15
  _this.onChange = config.onChange;
16
16
  _this.emptyMessage = config.emptyMessage;
17
17
  _this.editable = config.editable;
18
+ _this.filter = config.filter;
18
19
  return _this;
19
20
  }
20
21
  return SelectField;
@@ -28,4 +29,4 @@ var SelectOption = /** @class */ (function () {
28
29
  return SelectOption;
29
30
  }());
30
31
  export { SelectOption };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpZWxkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9zZWxlY3QtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQWUsTUFBTSxTQUFTLENBQUM7QUFnQjdDO0lBQWlDLCtCQUFLO0lBYWxDLHFCQUFZLE1BQXlCO1FBQXJDLFlBQ0ksa0JBQU0sTUFBTSxDQUFDLFNBWWhCO1FBWEcsS0FBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLEtBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixLQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEMsS0FBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxLQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsS0FBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLEtBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUM7UUFDMUQsS0FBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLEtBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxLQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsS0FBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDOztJQUNwQyxDQUFDO0lBQ0wsa0JBQUM7QUFBRCxDQUFDLEFBM0JELENBQWlDLEtBQUssR0EyQnJDOztBQUVEO0lBSUksc0JBQVksTUFBb0I7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBQ0wsbUJBQUM7QUFBRCxDQUFDLEFBUkQsSUFRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkLCBGaWVsZENvbmZpZyB9IGZyb20gXCIuL2ZpZWxkXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0RmllbGRDb25maWcgZXh0ZW5kcyBGaWVsZENvbmZpZyB7XG4gICAgYXBwZW5kVG8/OiBzdHJpbmc7XG4gICAgb3B0aW9uTGFiZWw/OiBzdHJpbmc7XG4gICAgZGF0YUtleT86IHN0cmluZztcbiAgICBhdXRvRGlzcGxheUZpcnN0PzogYm9vbGVhbjtcbiAgICBvcHRpb25zOiAoKSA9PiBTZWxlY3RPcHRpb25bXSB8IGFueVtdO1xuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgICBtdWx0aXBsZVNlbGVjdGVkTGFiZWw/OiBzdHJpbmc7XG4gICAgb25DbGljaz86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uQ2hhbmdlPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgZW1wdHlNZXNzYWdlPzogc3RyaW5nO1xuICAgIGVkaXRhYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdEZpZWxkIGV4dGVuZHMgRmllbGQge1xuICAgIHB1YmxpYyBhcHBlbmRUbz86IHN0cmluZztcbiAgICBwdWJsaWMgb3B0aW9uTGFiZWw/OiBzdHJpbmc7XG4gICAgcHVibGljIGRhdGFLZXk/OiBzdHJpbmc7XG4gICAgcHVibGljIGF1dG9EaXNwbGF5Rmlyc3Q/OiBib29sZWFuO1xuICAgIHB1YmxpYyBvcHRpb25zOiAoKSA9PiBTZWxlY3RPcHRpb25bXSB8IGFueVtdO1xuICAgIHB1YmxpYyBtdWx0aXBsZT86IGJvb2xlYW47XG4gICAgcHVibGljIG11bHRpcGxlU2VsZWN0ZWRMYWJlbD86IHN0cmluZztcbiAgICBwdWJsaWMgb25DbGljaz86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIHB1YmxpYyBvbkNoYW5nZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIHB1YmxpYyBlbXB0eU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgcHVibGljIGVkaXRhYmxlPzogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogU2VsZWN0RmllbGRDb25maWcpIHtcbiAgICAgICAgc3VwZXIoY29uZmlnKTtcbiAgICAgICAgdGhpcy5hcHBlbmRUbyA9IGNvbmZpZy5hcHBlbmRUbztcbiAgICAgICAgdGhpcy5kYXRhS2V5ID0gY29uZmlnLmRhdGFLZXk7XG4gICAgICAgIHRoaXMub3B0aW9uTGFiZWwgPSBjb25maWcub3B0aW9uTGFiZWw7XG4gICAgICAgIHRoaXMuYXV0b0Rpc3BsYXlGaXJzdCA9IGNvbmZpZy5hdXRvRGlzcGxheUZpcnN0O1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBjb25maWcub3B0aW9ucztcbiAgICAgICAgdGhpcy5tdWx0aXBsZSA9IGNvbmZpZy5tdWx0aXBsZTtcbiAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGVkTGFiZWwgPSBjb25maWcubXVsdGlwbGVTZWxlY3RlZExhYmVsO1xuICAgICAgICB0aGlzLm9uQ2xpY2sgPSBjb25maWcub25DbGljaztcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGNvbmZpZy5vbkNoYW5nZTtcbiAgICAgICAgdGhpcy5lbXB0eU1lc3NhZ2UgPSBjb25maWcuZW1wdHlNZXNzYWdlO1xuICAgICAgICB0aGlzLmVkaXRhYmxlID0gY29uZmlnLmVkaXRhYmxlO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdE9wdGlvbiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB2YWx1ZT86IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogU2VsZWN0T3B0aW9uKSB7XG4gICAgICAgIHRoaXMubGFiZWwgPSBjb25maWcubGFiZWw7XG4gICAgICAgIHRoaXMudmFsdWUgPSBjb25maWcudmFsdWU7XG4gICAgfVxufVxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpZWxkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9zZWxlY3QtZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQWUsTUFBTSxTQUFTLENBQUM7QUFpQjdDO0lBQWlDLCtCQUFLO0lBY2xDLHFCQUFZLE1BQXlCO1FBQXJDLFlBQ0ksa0JBQU0sTUFBTSxDQUFDLFNBYWhCO1FBWkcsS0FBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLEtBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixLQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEMsS0FBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxLQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsS0FBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLEtBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUM7UUFDMUQsS0FBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLEtBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxLQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsS0FBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLEtBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQzs7SUFDaEMsQ0FBQztJQUNMLGtCQUFDO0FBQUQsQ0FBQyxBQTdCRCxDQUFpQyxLQUFLLEdBNkJyQzs7QUFFRDtJQUlJLHNCQUFZLE1BQW9CO1FBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUNMLG1CQUFDO0FBQUQsQ0FBQyxBQVJELElBUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZCwgRmllbGRDb25maWcgfSBmcm9tIFwiLi9maWVsZFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEZpZWxkQ29uZmlnIGV4dGVuZHMgRmllbGRDb25maWcge1xuICAgIGFwcGVuZFRvPzogc3RyaW5nO1xuICAgIG9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICAgIGRhdGFLZXk/OiBzdHJpbmc7XG4gICAgYXV0b0Rpc3BsYXlGaXJzdD86IGJvb2xlYW47XG4gICAgb3B0aW9uczogKCkgPT4gU2VsZWN0T3B0aW9uW10gfCBhbnlbXTtcbiAgICBtdWx0aXBsZT86IGJvb2xlYW47XG4gICAgbXVsdGlwbGVTZWxlY3RlZExhYmVsPzogc3RyaW5nO1xuICAgIG9uQ2xpY2s/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvbkNoYW5nZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIGVtcHR5TWVzc2FnZT86IHN0cmluZztcbiAgICBlZGl0YWJsZT86IGJvb2xlYW47XG4gICAgZmlsdGVyPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFNlbGVjdEZpZWxkIGV4dGVuZHMgRmllbGQge1xuICAgIHB1YmxpYyBhcHBlbmRUbz86IHN0cmluZztcbiAgICBwdWJsaWMgb3B0aW9uTGFiZWw/OiBzdHJpbmc7XG4gICAgcHVibGljIGRhdGFLZXk/OiBzdHJpbmc7XG4gICAgcHVibGljIGF1dG9EaXNwbGF5Rmlyc3Q/OiBib29sZWFuO1xuICAgIHB1YmxpYyBvcHRpb25zOiAoKSA9PiBTZWxlY3RPcHRpb25bXSB8IGFueVtdO1xuICAgIHB1YmxpYyBtdWx0aXBsZT86IGJvb2xlYW47XG4gICAgcHVibGljIG11bHRpcGxlU2VsZWN0ZWRMYWJlbD86IHN0cmluZztcbiAgICBwdWJsaWMgb25DbGljaz86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIHB1YmxpYyBvbkNoYW5nZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIHB1YmxpYyBlbXB0eU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgcHVibGljIGVkaXRhYmxlPzogYm9vbGVhbjtcbiAgICBwdWJsaWMgZmlsdGVyPzogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogU2VsZWN0RmllbGRDb25maWcpIHtcbiAgICAgICAgc3VwZXIoY29uZmlnKTtcbiAgICAgICAgdGhpcy5hcHBlbmRUbyA9IGNvbmZpZy5hcHBlbmRUbztcbiAgICAgICAgdGhpcy5kYXRhS2V5ID0gY29uZmlnLmRhdGFLZXk7XG4gICAgICAgIHRoaXMub3B0aW9uTGFiZWwgPSBjb25maWcub3B0aW9uTGFiZWw7XG4gICAgICAgIHRoaXMuYXV0b0Rpc3BsYXlGaXJzdCA9IGNvbmZpZy5hdXRvRGlzcGxheUZpcnN0O1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBjb25maWcub3B0aW9ucztcbiAgICAgICAgdGhpcy5tdWx0aXBsZSA9IGNvbmZpZy5tdWx0aXBsZTtcbiAgICAgICAgdGhpcy5tdWx0aXBsZVNlbGVjdGVkTGFiZWwgPSBjb25maWcubXVsdGlwbGVTZWxlY3RlZExhYmVsO1xuICAgICAgICB0aGlzLm9uQ2xpY2sgPSBjb25maWcub25DbGljaztcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGNvbmZpZy5vbkNoYW5nZTtcbiAgICAgICAgdGhpcy5lbXB0eU1lc3NhZ2UgPSBjb25maWcuZW1wdHlNZXNzYWdlO1xuICAgICAgICB0aGlzLmVkaXRhYmxlID0gY29uZmlnLmVkaXRhYmxlO1xuICAgICAgICB0aGlzLmZpbHRlciA9IGNvbmZpZy5maWx0ZXI7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0T3B0aW9uIHtcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHZhbHVlPzogYW55O1xuXG4gICAgY29uc3RydWN0b3IoY29uZmlnOiBTZWxlY3RPcHRpb24pIHtcbiAgICAgICAgdGhpcy5sYWJlbCA9IGNvbmZpZy5sYWJlbDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGNvbmZpZy52YWx1ZTtcbiAgICB9XG59XG4iXX0=
@@ -9,6 +9,7 @@ import { EnumColumnFieldType } from "./models";
9
9
  import { LocaleService } from "../../locale/locale.service";
10
10
  import { convertToMomentDateFormat } from "../../utils/locale-utils";
11
11
  import { NumericService } from "../../locale/services/numeric.service";
12
+ import { isNullOrUndefined } from "../../utils/utils";
12
13
  var moment = moment_;
13
14
  var TableColumnsComponent = /** @class */ (function () {
14
15
  function TableColumnsComponent(localeService, viewContainerRef, translate, numericService, hostProjectConfigs) {
@@ -76,8 +77,10 @@ var TableColumnsComponent = /** @class */ (function () {
76
77
  return column.prefix ? column.prefix : this.hostProjectConfigs.domain + "." + this.hostProjectConfigs.service + ".";
77
78
  };
78
79
  TableColumnsComponent.prototype.isAttributeValueInvalid = function (attributeValue) {
80
+ var _a;
79
81
  return (attributeValue === null ||
80
82
  attributeValue === undefined ||
83
+ (((_a = attributeValue === null || attributeValue === void 0 ? void 0 : attributeValue.options) === null || _a === void 0 ? void 0 : _a.numberFormatOptions) && isNullOrUndefined(attributeValue === null || attributeValue === void 0 ? void 0 : attributeValue.value)) ||
81
84
  (this.isArray(attributeValue) && !attributeValue.length) ||
82
85
  (typeof attributeValue === "string" && attributeValue.trim() === ""));
83
86
  };
@@ -265,4 +268,4 @@ var TableColumnsComponent = /** @class */ (function () {
265
268
  return TableColumnsComponent;
266
269
  }());
267
270
  export { TableColumnsComponent };
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0gsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUVsQyxPQUFPLEVBQXNCLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFMUcsT0FBTyxFQUF3QixtQkFBbUIsRUFBNEIsTUFBTSxVQUFVLENBQUM7QUFDL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV2RSxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFPdkI7SUF5QkksK0JBQ3FCLGFBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxTQUEyQixFQUMzQixjQUE4QixFQUNZLGtCQUFzQztRQUpoRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG1CQUFjLEdBQWQsY0FB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O2tFQUFtQztJQUdsRjtRQURDLEtBQUssRUFBRTswREFDa0I7SUFHMUI7UUFEQyxLQUFLLEVBQUU7MkRBQ2M7SUFHdEI7UUFEQyxLQUFLLEVBQUU7eURBVU47SUFuQk8scUJBQXFCO1FBTGpDLFNBQVMsQ0FBQztZQUNQLGduRkFBNkM7WUFFN0MsUUFBUSxFQUFFLGlCQUFpQjs7U0FDOUIsQ0FBQztRQStCTyxXQUFBLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO09BOUJwQyxxQkFBcUIsQ0FxVGpDO0lBQUQsNEJBQUM7Q0FBQSxBQXJURCxJQXFUQztTQXJUWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTWFza0NvbmZpZywgYXBwbHlNYXNrIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9uZzItY3VycmVuY3ktbWFza1wiO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tIFwiYmlnbnVtYmVyLmpzXCI7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcblxuaW1wb3J0IHsgSG9zdFByb2plY3RDb25maWdzLCBIb3N0UHJvamVjdENvbmZpZ3NJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCIuLi8uLi8uLi9hbmd1bGFyLWNvbXBvbmVudHMubW9kdWxlXCI7XG5pbXBvcnQgeyBJVG9rZW4gfSBmcm9tIFwiLi4vLi4vdG9rZW4tbGlzdFwiO1xuaW1wb3J0IHsgQ29sdW1uLCBDb2x1bW5WYWx1ZXMsIEVudW1Db2x1bW5GaWVsZFR5cGUsIFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyB9IGZyb20gXCIuL21vZGVsc1wiO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gXCIuLi8uLi9sb2NhbGUvbG9jYWxlLnNlcnZpY2VcIjtcbmltcG9ydCB7IGNvbnZlcnRUb01vbWVudERhdGVGb3JtYXQgfSBmcm9tIFwiLi4vLi4vdXRpbHMvbG9jYWxlLXV0aWxzXCI7XG5pbXBvcnQgeyBOdW1lcmljU2VydmljZSB9IGZyb20gXCIuLi8uLi9sb2NhbGUvc2VydmljZXMvbnVtZXJpYy5zZXJ2aWNlXCI7XG5cbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi90YWJsZS1jb2x1bW5zLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIHNlbGVjdG9yOiBcInMtdGFibGUtY29sdW1uc1wiLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbHVtbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoXCJjb2x1bW5zVGVtcGxhdGVcIiwgeyBzdGF0aWM6IHRydWUgfSkgY29sdW1uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sdW1ucyE6IENvbHVtbltdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm93VmFsdWUhOiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyA9IHtcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIC4uLnRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGVPcHRpb25zKCkuY2FsZW5kYXIsXG4gICAgICAgICAgICBkYXRlRm9ybWF0OiBjb252ZXJ0VG9Nb21lbnREYXRlRm9ybWF0KHRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGVPcHRpb25zKCkuY2FsZW5kYXIuZGF0ZUZvcm1hdCksXG4gICAgICAgIH0sXG4gICAgICAgIG51bWJlcjoge1xuICAgICAgICAgICAgLi4udGhpcy5sb2NhbGVTZXJ2aWNlLmdldExvY2FsZU9wdGlvbnMoKS5udW1iZXIsXG4gICAgICAgICAgICBzY2FsZTogMCxcbiAgICAgICAgfSxcbiAgICB9O1xuXG4gICAgY2VsbHNEYXRhOiBDZWxsRGF0YVtdID0gW107XG5cbiAgICBmb3JtYXR0ZWRDb2x1bW5zOiBDb2x1bW5WYWx1ZXNbXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2VydmljZTogTG9jYWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBudW1lcmljU2VydmljZTogTnVtZXJpY1NlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoSG9zdFByb2plY3RDb25maWdzSW5qZWN0aW9uVG9rZW4pIHByaXZhdGUgcmVhZG9ubHkgaG9zdFByb2plY3RDb25maWdzOiBIb3N0UHJvamVjdENvbmZpZ3NcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsaWRhdGVDb21wb25lbnRBdHRyaWJ1dGVzKGNoYW5nZXMpO1xuXG4gICAgICAgIGlmIChjaGFuZ2VzLmNvbHVtbnMgJiYgY2hhbmdlcy5jb2x1bW5zLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5jb2x1bW5zLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuc29ydENvbHVtbnNCeVNlcXVlbmNlKGNoYW5nZXMuY29sdW1ucy5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jcmVhdGVDb2x1bW5zVGVtcGxhdGUoY2hhbmdlcyk7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBcnJheSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENlbGxEYXRhKGNvbHVtbjogQ29sdW1uVmFsdWVzKTogQ2VsbERhdGEge1xuICAgICAgICBjb25zdCB7IGNvbHVtblZhbHVlLCBzZXBhcmF0b3IsIHVuaW5mb3JtZWQgfSA9IGNvbHVtbjtcblxuICAgICAgICBpZiAodHlwZW9mIGNvbHVtblZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdHRlZFN0cmluZyA9IGNvbHVtblZhbHVlLnNwbGl0KHNlcGFyYXRvcik7XG5cbiAgICAgICAgICAgIHJldHVybiBzcGxpdHRlZFN0cmluZy5tYXAoKHN0cmluZywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0xhc3RJbmRleCA9IHNwbGl0dGVkU3RyaW5nLmxlbmd0aCAtIDEgPT09IGluZGV4O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgaXNVbmluZm9ybWVkOiBzdHJpbmcgPT09IHVuaW5mb3JtZWQsXG4gICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcjogIWlzTGFzdEluZGV4ID8gc2VwYXJhdG9yIDogbnVsbCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQ29tcG9uZW50QXR0cmlidXRlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5jb2x1bW5zICYmICFjaGFuZ2VzLmNvbHVtbnM/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlICdjb2x1bW5zJyBhdHRyaWJ1dGUgbXVzdCBiZSBpbmZvcm1lZCFcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnJvd1ZhbHVlICYmICFjaGFuZ2VzLnJvd1ZhbHVlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoZSAncm93VmFsdWUnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICAgICAgY29uc3QgY29sdW1uczogQ29sdW1uW10gPSBjaGFuZ2VzLmNvbHVtbnM/LmN1cnJlbnRWYWx1ZSB8fCB0aGlzLmNvbHVtbnM7XG4gICAgICAgIGNvbnN0IHJvd1ZhbHVlOiBvYmplY3QgPSBjaGFuZ2VzLnJvd1ZhbHVlPy5jdXJyZW50VmFsdWUgfHwgdGhpcy5yb3dWYWx1ZTtcbiAgICAgICAgY29uc3QgbG9jYWxlOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMgPSBjaGFuZ2VzLmxvY2FsZT8uY3VycmVudFZhbHVlIHx8IHRoaXMubG9jYWxlO1xuXG4gICAgICAgIHRoaXMuZm9ybWF0dGVkQ29sdW1ucyA9IGNvbHVtbnMubWFwKGNvbHVtbiA9PiB0aGlzLmdldENvbHVtblZhbHVlKGNvbHVtbiwgcm93VmFsdWUsIGxvY2FsZSkpO1xuXG4gICAgICAgIHRoaXMuY2VsbHNEYXRhID0gdGhpcy5mb3JtYXR0ZWRDb2x1bW5zLm1hcChjb2x1bW4gPT4gdGhpcy5nZXRDZWxsRGF0YShjb2x1bW4pKTtcblxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuY29sdW1uc1RlbXBsYXRlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblNlcGFyYXRvcihjb2x1bW46IENvbHVtbikge1xuICAgICAgICByZXR1cm4gY29sdW1uLnNlcGFyYXRvciA/IGNvbHVtbi5zZXBhcmF0b3IgOiBcIiAtIFwiO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VHJhbnNsYXRpb25QcmVmaXgoY29sdW1uOiBDb2x1bW4pIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5wcmVmaXggPyBjb2x1bW4ucHJlZml4IDogYCR7dGhpcy5ob3N0UHJvamVjdENvbmZpZ3MuZG9tYWlufS4ke3RoaXMuaG9zdFByb2plY3RDb25maWdzLnNlcnZpY2V9LmA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0F0dHJpYnV0ZVZhbHVlSW52YWxpZChhdHRyaWJ1dGVWYWx1ZTogYW55KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgKHRoaXMuaXNBcnJheShhdHRyaWJ1dGVWYWx1ZSkgJiYgIWF0dHJpYnV0ZVZhbHVlLmxlbmd0aCkgfHxcbiAgICAgICAgICAgICh0eXBlb2YgYXR0cmlidXRlVmFsdWUgPT09IFwic3RyaW5nXCIgJiYgYXR0cmlidXRlVmFsdWUudHJpbSgpID09PSBcIlwiKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybWF0dGVkQ29sdW1uVmFsdWUoXG4gICAgICAgIGNvbHVtbjogQ29sdW1uLFxuICAgICAgICBjb2x1bW5WYWx1ZTogYW55W10sXG4gICAgICAgIHVuaWZpZWRDb2x1bW5WYWx1ZXM6IHN0cmluZyxcbiAgICAgICAgdW5pbmZvcm1lZFRleHQ6IHN0cmluZyxcbiAgICAgICAgdW5pbmZvcm1lZE51bWJlcjogbnVtYmVyXG4gICAgKSB7XG4gICAgICAgIGlmICh1bmluZm9ybWVkTnVtYmVyID09PSBjb2x1bW4uYXR0cmlidXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmluZm9ybWVkVGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gRW51bUNvbHVtbkZpZWxkVHlwZS5UT0tFTlMpIHtcbiAgICAgICAgICAgIHJldHVybiBbXS5jb25jYXQuYXBwbHkoXG4gICAgICAgICAgICAgICAgW10sXG4gICAgICAgICAgICAgICAgY29sdW1uVmFsdWUuZmlsdGVyKCh2YWx1ZXMpID0+IHZhbHVlcyAhPT0gdW5pbmZvcm1lZFRleHQpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuaWZpZWRDb2x1bW5WYWx1ZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBdHRyaWJ1dGVWYWx1ZShhdHRyaWJ1dGU6IHN0cmluZywgcm93VmFsdWU6IG9iamVjdCkge1xuICAgICAgICBsZXQgYXR0cmlidXRlVmFsdWUhOiBhbnk7XG5cbiAgICAgICAgYXR0cmlidXRlLnNwbGl0KFwiL1wiKS5mb3JFYWNoKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWF0dHJpYnV0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUuc3BsaXQoXCIuXCIpLmZvckVhY2goKHZhbDogc3RyaW5nLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcm93VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9IHJvd1ZhbHVlW3ZhbF07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9IGF0dHJpYnV0ZVZhbHVlW3ZhbF07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TnVtYmVyQ29uZmlncyhjb2x1bW46IENvbHVtbik6IE1hc2tDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGhpcy5sb2NhbGUubnVtYmVyLFxuICAgICAgICAgICAgc2NhbGU6IGNvbHVtbi5zY2FsZSAhPT0gbnVsbCAmJiBjb2x1bW4uc2NhbGUgIT09IHVuZGVmaW5lZCA/IHRoaXMuZ2V0Q29sdW1uU2NhbGUoY29sdW1uLnNjYWxlKSA6IHRoaXMubG9jYWxlLm51bWJlci5zY2FsZSxcbiAgICAgICAgICAgIHByZWZpeDogYCR7dGhpcy5sb2NhbGUubnVtYmVyLmN1cnJlbmN5U3ltYm9sfSBgLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZUZvcm1hdChjb2x1bW46IENvbHVtbiwgbG9jYWxlOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5kYXRlRm9ybWF0ID8gY29sdW1uLmRhdGVGb3JtYXQgOiBsb2NhbGUuY2FsZW5kYXIuZGF0ZUZvcm1hdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblZhbHVlKGNvbHVtbjogQ29sdW1uLCByb3dWYWx1ZTogb2JqZWN0LCBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyk6IENvbHVtblZhbHVlcyB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuZ2V0VHJhbnNsYXRpb25QcmVmaXgoY29sdW1uKTtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gdGhpcy5nZXRDb2x1bW5TZXBhcmF0b3IoY29sdW1uKTtcbiAgICAgICAgY29uc3QgdW5pbmZvcm1lZCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJlZml4ICsgXCJlbXB0eV9sYWJlbFwiKTtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBjb2x1bW4uc3R5bGU7XG5cbiAgICAgICAgY29uc3QgY29sdW1uVmFsdWUgPSBjb2x1bW4uYXR0cmlidXRlcy5tYXAoKGF0dHJpYnV0ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhdHRyaWJ1dGVWYWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlVmFsdWUoYXR0cmlidXRlLCByb3dWYWx1ZSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzQXR0cmlidXRlVmFsdWVJbnZhbGlkKGF0dHJpYnV0ZVZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB1bmluZm9ybWVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBudW1iZXJDb25maWdzID0gdGhpcy5nZXROdW1iZXJDb25maWdzKGNvbHVtbik7XG5cbiAgICAgICAgICAgIHN3aXRjaCAoY29sdW1uLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuRU5VTTpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoY29sdW1uLmVudW1QcmVmaXggKyBhdHRyaWJ1dGVWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkNVUlJFTkNZOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU/Lm9wdGlvbnM/Lm51bWJlckZvcm1hdE9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5udW1lcmljU2VydmljZS5pbnN0YW50KGF0dHJpYnV0ZVZhbHVlLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJGb3JtYXRPcHRpb25zOiBhdHRyaWJ1dGVWYWx1ZS5vcHRpb25zLm51bWJlckZvcm1hdE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGFwcGx5TWFzayhhdHRyaWJ1dGVWYWx1ZSwgbnVtYmVyQ29uZmlncywgdGhpcy5pc051bWJlcihhdHRyaWJ1dGVWYWx1ZSkpO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLkRBVEU6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSB0aGlzLmdldERhdGVGb3JtYXQoY29sdW1uLCBsb2NhbGUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9tZW50KGF0dHJpYnV0ZVZhbHVlKS5mb3JtYXQoZGF0ZUZvcm1hdCk7XG5cbiAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuQk9PTEVBTjpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZSA/IFwieWVzXCIgOiBcIm5vXCI7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHByZWZpeCArIHZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICAgICAgICAgICAgICAgIG51bWJlckNvbmZpZ3MucHJlZml4ID0gXCJcIjtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU/Lm9wdGlvbnM/Lm51bWJlckZvcm1hdE9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5udW1lcmljU2VydmljZS5pbnN0YW50KGF0dHJpYnV0ZVZhbHVlLnZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJGb3JtYXRPcHRpb25zOiBhdHRyaWJ1dGVWYWx1ZS5vcHRpb25zLm51bWJlckZvcm1hdE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbHVtbi5udW1iZXJGb3JtYXRPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5udW1lcmljU2VydmljZS5pbnN0YW50KGF0dHJpYnV0ZVZhbHVlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdE9wdGlvbnM6IGNvbHVtbi5udW1iZXJGb3JtYXRPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwbHlNYXNrKGF0dHJpYnV0ZVZhbHVlLCBudW1iZXJDb25maWdzLCB0aGlzLmlzTnVtYmVyKGF0dHJpYnV0ZVZhbHVlKSk7XG5cbiAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuVE9LRU5TOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUb2tlbnMoYXR0cmlidXRlVmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZVZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCB1bmlmaWVkQ29sdW1uVmFsdWVzID0gY29sdW1uVmFsdWUuam9pbihzZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCB1bmluZm9ybWVkTnVtYmVyID0gdW5pZmllZENvbHVtblZhbHVlcy5zcGxpdChzZXBhcmF0b3IpLmZpbHRlcigodmFsdWUpID0+IHZhbHVlID09PSB1bmluZm9ybWVkKS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZENvbHVtblZhbHVlID0gdGhpcy5nZXRGb3JtYXR0ZWRDb2x1bW5WYWx1ZShjb2x1bW4sIGNvbHVtblZhbHVlLCB1bmlmaWVkQ29sdW1uVmFsdWVzLCB1bmluZm9ybWVkLCB1bmluZm9ybWVkTnVtYmVyKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgICBjb2x1bW5WYWx1ZTogZm9ybWF0dGVkQ29sdW1uVmFsdWUsXG4gICAgICAgICAgICBzZXBhcmF0b3IsXG4gICAgICAgICAgICB1bmluZm9ybWVkLFxuICAgICAgICAgICAgYmFkZ2VDb25maWdzOiBjb2x1bW4/LmJhZGdlQ29uZmlncz8uZmluZChcbiAgICAgICAgICAgICAgICAoYmFkZ2VDb25maWcpID0+IGJhZGdlQ29uZmlnLmVudW1WYWx1ZSA9PT0gcm93VmFsdWVbY29sdW1uLmF0dHJpYnV0ZXNbMF0gPz8gY29sdW1uLmZpZWxkXVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHR5cGU6IGNvbHVtbi50eXBlLFxuICAgICAgICAgICAgdG9vbHRpcDogdGhpcy5nZXRDb2x1bW5Ub29sdGlwKGNvbHVtbi50b29sdGlwKSxcbiAgICAgICAgICAgIGluZm9TaWduOiB0aGlzLmdldENvbHVtbkluZm9TaWduKGNvbHVtbi5pbmZvU2lnbiksXG4gICAgICAgICAgICBvbkxpbmtDbGljazogY29sdW1uLm9uTGlua0NsaWNrLFxuICAgICAgICAgICAgb25Db2x1bW5DbGljazogY29sdW1uLm9uQ29sdW1uQ2xpY2ssXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5TY2FsZShzY2FsZTogbnVtYmVyIHwgKChyb3dWYWx1ZTogYW55KSA9PiBudW1iZXIpKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzY2FsZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc2NhbGUodGhpcy5yb3dWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNjYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uSW5mb1NpZ24oaW5mb1NpZ246IHN0cmluZyB8ICgocm93VmFsdWU6IGFueSkgPT4gc3RyaW5nKSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChpbmZvU2lnbiAhPT0gdW5kZWZpbmVkICYmIGluZm9TaWduICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGluZm9TaWduID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5mb1NpZ24odGhpcy5yb3dWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gaW5mb1NpZ247XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5Ub29sdGlwKHRvb2x0aXA6IHN0cmluZyB8ICgocm93VmFsdWU6IGFueSkgPT4gc3RyaW5nKSk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0b29sdGlwICE9PSB1bmRlZmluZWQgJiYgdG9vbHRpcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0b29sdGlwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9vbHRpcCh0aGlzLnJvd1ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0b29sdGlwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNOdW1iZXIodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIW5ldyBCaWdOdW1iZXIodmFsdWUpLmlzTmFOKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUb2tlbnModmFsdWVzOiBhbnkpOiBJVG9rZW5bXSB7XG4gICAgICAgIGlmICghdGhpcy5pc0FycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRvIHVzZSB0b2tlbnMgYW4gYXJyYXkgbXVzdCBiZSBpbmZvcm1lZFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkVG9rZW5BcnJheSh2YWx1ZXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJOb3QgYSB2YWxpZCB0b2tlbiBhcnJheS4gTXVzdCBiZSBhIHByaW1pdGl2ZSB2YWx1ZXMgYXJyYXkgb3IgYW4gb2JqZWN0cyB3aXRoIGxhYmVsIGF0dHJpYnV0ZSBhcnJheVwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzTGFiZWxPYmplY3RBcnJheSh2YWx1ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlc1xuICAgICAgICAgICAgLmZpbHRlcigodmFsdWU6IGFueSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbClcbiAgICAgICAgICAgIC5tYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHR5cGVvZiB2YWx1ZSA9PT0gXCJzeW1ib2xcIiA/IHZhbHVlLnRvU3RyaW5nKCkgOiBgJHt2YWx1ZX1gO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRUb2tlbkFycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNQcmltaXRpdmVWYWx1ZXNBcnJheSh2YWx1ZXMpIHx8IHRoaXMuaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlcyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ByaW1pdGl2ZVZhbHVlc0FycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gT2JqZWN0KHZhbHVlKSkubGVuZ3RoID09PSB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlczogYW55W10pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZT8ubGFiZWwgIT09IG51bGwgJiYgdmFsdWU/LmxhYmVsICE9PSB1bmRlZmluZWQpLmxlbmd0aCA9PT0gdmFsdWVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNvcnRDb2x1bW5zQnlTZXF1ZW5jZShjb2x1bW5zOiBDb2x1bW5bXSk6IENvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbnMuc29ydCgoYSwgYikgPT4gYS5zZXF1ZW5jZSAtIGIuc2VxdWVuY2UpO1xuICAgIH1cbn1cblxudHlwZSBDZWxsRGF0YSA9IHsgdmFsdWU6IHN0cmluZzsgaXNVbmluZm9ybWVkOiBib29sZWFuOyBzZXBhcmF0b3I6IHN0cmluZyB9W107XG4iXX0=
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy90YWJsZS90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0gsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sU0FBUyxNQUFNLGNBQWMsQ0FBQztBQUNyQyxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUVsQyxPQUFPLEVBQXNCLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFMUcsT0FBTyxFQUF3QixtQkFBbUIsRUFBNEIsTUFBTSxVQUFVLENBQUM7QUFDL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFPdkI7SUF5QkksK0JBQ3FCLGFBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxTQUEyQixFQUMzQixjQUE4QixFQUNZLGtCQUFzQztRQUpoRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNZLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFwQjlGLFdBQU0sR0FBNkI7WUFDdEMsUUFBUSx3QkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxLQUNqRCxVQUFVLEVBQUUseUJBQXlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FDbkc7WUFDRCxNQUFNLHdCQUNDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxNQUFNLEtBQy9DLEtBQUssRUFBRSxDQUFDLEdBQ1g7U0FDSixDQUFDO1FBRUYsY0FBUyxHQUFlLEVBQUUsQ0FBQztRQUUzQixxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO0lBUW5DLENBQUM7SUFFSiwyQ0FBVyxHQUFYLFVBQVksT0FBc0I7UUFDOUIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLElBQUksT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUNuRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzNFO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSx1Q0FBTyxHQUFkLFVBQWUsS0FBVTtRQUNyQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLDJDQUFXLEdBQW5CLFVBQW9CLE1BQW9CO1FBQzVCLElBQUEsZ0NBQVcsRUFBRSw0QkFBUyxFQUFFLDhCQUFVLENBQVk7UUFFdEQsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7WUFDakMsSUFBTSxnQkFBYyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFcEQsT0FBTyxnQkFBYyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU0sRUFBRSxLQUFLO2dCQUNwQyxJQUFNLFdBQVcsR0FBRyxnQkFBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDO2dCQUV4RCxPQUFPO29CQUNILEtBQUssRUFBRSxNQUFNO29CQUNiLFlBQVksRUFBRSxNQUFNLEtBQUssVUFBVTtvQkFDbkMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUk7aUJBQzdDLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLDJEQUEyQixHQUFuQyxVQUFvQyxPQUFzQjs7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksUUFBQyxPQUFPLENBQUMsT0FBTywwQ0FBRSxZQUFZLENBQUEsRUFBRTtZQUNqRCxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7U0FDaEU7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFDLE9BQU8sQ0FBQyxRQUFRLDBDQUFFLFlBQVksQ0FBQSxFQUFFO1lBQ25ELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztTQUNqRTtJQUNMLENBQUM7SUFFTyxxREFBcUIsR0FBN0IsVUFBOEIsT0FBc0I7UUFBcEQsaUJBWUM7O1FBWEcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTlCLElBQU0sT0FBTyxHQUFhLE9BQUEsT0FBTyxDQUFDLE9BQU8sMENBQUUsWUFBWSxLQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEUsSUFBTSxRQUFRLEdBQVcsT0FBQSxPQUFPLENBQUMsUUFBUSwwQ0FBRSxZQUFZLEtBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6RSxJQUFNLE1BQU0sR0FBNkIsT0FBQSxPQUFPLENBQUMsTUFBTSwwQ0FBRSxZQUFZLEtBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUVyRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU0sSUFBSyxPQUFBLEtBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBN0MsQ0FBNkMsQ0FBQyxDQUFDO1FBRS9GLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU0sSUFBSyxPQUFBLEtBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQXhCLENBQXdCLENBQUMsQ0FBQztRQUVqRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTyxrREFBa0IsR0FBMUIsVUFBMkIsTUFBYztRQUNyQyxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBRU8sb0RBQW9CLEdBQTVCLFVBQTZCLE1BQWM7UUFDdkMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxTQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLE1BQUcsQ0FBQztJQUNuSCxDQUFDO0lBRU8sdURBQXVCLEdBQS9CLFVBQWdDLGNBQW1COztRQUMvQyxPQUFPLENBQ0gsY0FBYyxLQUFLLElBQUk7WUFDdkIsY0FBYyxLQUFLLFNBQVM7WUFDNUIsQ0FBQyxPQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxPQUFPLDBDQUFFLG1CQUFtQixLQUFJLGlCQUFpQixDQUFDLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxLQUFLLENBQUMsQ0FBQztZQUMxRixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ3hELENBQUMsT0FBTyxjQUFjLEtBQUssUUFBUSxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FDdkUsQ0FBQztJQUNOLENBQUM7SUFFTyx1REFBdUIsR0FBL0IsVUFDSSxNQUFjLEVBQ2QsV0FBa0IsRUFDbEIsbUJBQTJCLEVBQzNCLGNBQXNCLEVBQ3RCLGdCQUF3QjtRQUV4QixJQUFJLGdCQUFnQixLQUFLLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQy9DLE9BQU8sY0FBYyxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLG1CQUFtQixDQUFDLE1BQU0sRUFBRTtZQUM1QyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUNsQixFQUFFLEVBQ0YsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFDLE1BQU0sSUFBSyxPQUFBLE1BQU0sS0FBSyxjQUFjLEVBQXpCLENBQXlCLENBQUMsQ0FDNUQsQ0FBQztTQUNMO1FBRUQsT0FBTyxtQkFBbUIsQ0FBQztJQUMvQixDQUFDO0lBRU8saURBQWlCLEdBQXpCLFVBQTBCLFNBQWlCLEVBQUUsUUFBZ0I7UUFDekQsSUFBSSxjQUFvQixDQUFDO1FBRXpCLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBYTtZQUN2QyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNqQixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQVcsRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUMsUUFBUSxFQUFFO3dCQUNYLE9BQU87cUJBQ1Y7b0JBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUNULGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ2xDO3lCQUFNO3dCQUNILElBQUksY0FBYyxFQUFFOzRCQUNoQixjQUFjLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3lCQUN4QztxQkFDSjtnQkFDTCxDQUFDLENBQUMsQ0FBQzthQUNOO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGNBQWMsQ0FBQztJQUMxQixDQUFDO0lBRU8sZ0RBQWdCLEdBQXhCLFVBQXlCLE1BQWM7UUFDbkMsNkJBQ08sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQ3JCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFDekgsTUFBTSxFQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsTUFBRyxJQUNqRDtJQUNOLENBQUM7SUFFTyw2Q0FBYSxHQUFyQixVQUFzQixNQUFjLEVBQUUsTUFBZ0M7UUFDbEUsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUM5RSxDQUFDO0lBRU8sOENBQWMsR0FBdEIsVUFBdUIsTUFBYyxFQUFFLFFBQWdCLEVBQUUsTUFBZ0M7UUFBekYsaUJBeUVDOztRQXhFRyxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsSUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQztRQUNsRSxJQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRTNCLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQUMsU0FBaUI7O1lBQ3hELElBQU0sY0FBYyxHQUFHLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFFbkUsSUFBSSxLQUFJLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQzlDLE9BQU8sVUFBVSxDQUFDO2FBQ3JCO1lBRUQsSUFBTSxhQUFhLEdBQUcsS0FBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXBELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtnQkFDakIsS0FBSyxtQkFBbUIsQ0FBQyxJQUFJO29CQUN6QixPQUFPLEtBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBRS9GLEtBQUssbUJBQW1CLENBQUMsUUFBUTtvQkFDN0IsT0FBTyxPQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxPQUFPLDBDQUFFLG1CQUFtQixFQUMvQyxDQUFDLENBQUMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRTt3QkFDOUMsbUJBQW1CLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7cUJBQ2xFLENBQUM7d0JBQ0osQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLEtBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztnQkFFbEYsS0FBSyxtQkFBbUIsQ0FBQyxJQUFJO29CQUN6QixJQUFNLFVBQVUsR0FBRyxLQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztvQkFDdEQsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUVyRCxLQUFLLG1CQUFtQixDQUFDLE9BQU87b0JBQzVCLElBQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7b0JBQzVDLE9BQU8sS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUVsRCxLQUFLLG1CQUFtQixDQUFDLE1BQU07b0JBQzNCLGFBQWEsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO29CQUUxQixPQUFPLE9BQUEsY0FBYyxhQUFkLGNBQWMsdUJBQWQsY0FBYyxDQUFFLE9BQU8sMENBQUUsbUJBQW1CLEVBQy9DLENBQUMsQ0FBQyxLQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFO3dCQUM5QyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtxQkFDbEUsQ0FBQzt3QkFDSixDQUFDLENBQUMsTUFBTSxDQUFDLG1CQUFtQjs0QkFDMUIsQ0FBQyxDQUFDLEtBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtnQ0FDeEMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLG1CQUFtQjs2QkFDbEQsQ0FBQzs0QkFDSixDQUFDLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsS0FBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO2dCQUVwRixLQUFLLG1CQUFtQixDQUFDLE1BQU07b0JBQzNCLE9BQU8sS0FBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFFMUM7b0JBQ0ksT0FBTyxjQUFjLENBQUM7YUFDN0I7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxJQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLEtBQUssVUFBVSxFQUFwQixDQUFvQixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzdHLElBQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFbEksT0FBTztZQUNILEtBQUssT0FBQTtZQUNMLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsU0FBUyxXQUFBO1lBQ1QsVUFBVSxZQUFBO1lBQ1YsWUFBWSxRQUFFLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLDBDQUFFLElBQUksQ0FDcEMsVUFBQyxXQUFXLFlBQUssT0FBQSxXQUFXLENBQUMsU0FBUyxLQUFLLFFBQVEsT0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUEsRUFBQSxDQUM1RjtZQUNELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDOUMsUUFBUSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ2pELFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7U0FDdEMsQ0FBQztJQUNOLENBQUM7SUFFTyw4Q0FBYyxHQUF0QixVQUF1QixLQUEyQztRQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUM3QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDL0I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU8saURBQWlCLEdBQXpCLFVBQTBCLFFBQThDO1FBQ3BFLElBQUksUUFBUSxLQUFLLFNBQVMsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQzdDLElBQUksT0FBTyxRQUFRLEtBQUssVUFBVSxFQUFFO2dCQUNoQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbEM7WUFDRCxPQUFPLFFBQVEsQ0FBQztTQUNuQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxnREFBZ0IsR0FBeEIsVUFBeUIsT0FBNkM7UUFDbEUsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDM0MsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUU7Z0JBQy9CLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNqQztZQUNELE9BQU8sT0FBTyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU8sd0NBQVEsR0FBaEIsVUFBaUIsS0FBVTtRQUN2QixPQUFPLENBQUMsSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVPLHlDQUFTLEdBQWpCLFVBQWtCLE1BQVc7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLG9HQUFvRyxDQUFDLENBQUM7U0FDekg7UUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQyxPQUFPLE1BQU0sQ0FBQztTQUNqQjtRQUVELE9BQU8sTUFBTTthQUNSLE1BQU0sQ0FBQyxVQUFDLEtBQVUsSUFBSyxPQUFBLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksRUFBckMsQ0FBcUMsQ0FBQzthQUM3RCxHQUFHLENBQUMsVUFBQyxLQUFVO1lBQ1osSUFBTSxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUcsS0FBTyxDQUFDO1lBQ3hFLE9BQU87Z0JBQ0gsS0FBSyxPQUFBO2FBQ1IsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLGlEQUFpQixHQUF6QixVQUEwQixNQUFhO1FBQ25DLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRU8sc0RBQXNCLEdBQTlCLFVBQStCLE1BQWE7UUFDeEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUEsS0FBSyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBdkIsQ0FBdUIsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3RGLENBQUM7SUFFTyxrREFBa0IsR0FBMUIsVUFBMkIsTUFBYTtRQUNwQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBQyxLQUFLLElBQUssT0FBQSxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxLQUFLLE1BQUssSUFBSSxJQUFJLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEtBQUssTUFBSyxTQUFTLEVBQW5ELENBQW1ELENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNsSCxDQUFDO0lBRU8scURBQXFCLEdBQTdCLFVBQThCLE9BQWlCO1FBQzNDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFDLENBQUMsRUFBRSxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQXZCLENBQXVCLENBQUMsQ0FBQztJQUMzRCxDQUFDOztnQkExUm1DLGFBQWE7Z0JBQ1YsZ0JBQWdCO2dCQUN2QixnQkFBZ0I7Z0JBQ1gsY0FBYztnREFDOUMsTUFBTSxTQUFDLGdDQUFnQzs7SUE3Qkk7UUFBL0MsU0FBUyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO2tFQUFtQztJQUdsRjtRQURDLEtBQUssRUFBRTswREFDa0I7SUFHMUI7UUFEQyxLQUFLLEVBQUU7MkRBQ2M7SUFHdEI7UUFEQyxLQUFLLEVBQUU7eURBVU47SUFuQk8scUJBQXFCO1FBTGpDLFNBQVMsQ0FBQztZQUNQLGduRkFBNkM7WUFFN0MsUUFBUSxFQUFFLGlCQUFpQjs7U0FDOUIsQ0FBQztRQStCTyxXQUFBLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO09BOUJwQyxxQkFBcUIsQ0FxVGpDO0lBQUQsNEJBQUM7Q0FBQSxBQXJURCxJQXFUQztTQXJUWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTWFza0NvbmZpZywgYXBwbHlNYXNrIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9uZzItY3VycmVuY3ktbWFza1wiO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tIFwiYmlnbnVtYmVyLmpzXCI7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcblxuaW1wb3J0IHsgSG9zdFByb2plY3RDb25maWdzLCBIb3N0UHJvamVjdENvbmZpZ3NJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCIuLi8uLi8uLi9hbmd1bGFyLWNvbXBvbmVudHMubW9kdWxlXCI7XG5pbXBvcnQgeyBJVG9rZW4gfSBmcm9tIFwiLi4vLi4vdG9rZW4tbGlzdFwiO1xuaW1wb3J0IHsgQ29sdW1uLCBDb2x1bW5WYWx1ZXMsIEVudW1Db2x1bW5GaWVsZFR5cGUsIFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyB9IGZyb20gXCIuL21vZGVsc1wiO1xuaW1wb3J0IHsgTG9jYWxlU2VydmljZSB9IGZyb20gXCIuLi8uLi9sb2NhbGUvbG9jYWxlLnNlcnZpY2VcIjtcbmltcG9ydCB7IGNvbnZlcnRUb01vbWVudERhdGVGb3JtYXQgfSBmcm9tIFwiLi4vLi4vdXRpbHMvbG9jYWxlLXV0aWxzXCI7XG5pbXBvcnQgeyBOdW1lcmljU2VydmljZSB9IGZyb20gXCIuLi8uLi9sb2NhbGUvc2VydmljZXMvbnVtZXJpYy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gXCIuLi8uLi91dGlscy91dGlsc1wiO1xuXG5jb25zdCBtb21lbnQgPSBtb21lbnRfO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RhYmxlLWNvbHVtbnMuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vdGFibGUtY29sdW1ucy5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBzZWxlY3RvcjogXCJzLXRhYmxlLWNvbHVtbnNcIixcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5zQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkKFwiY29sdW1uc1RlbXBsYXRlXCIsIHsgc3RhdGljOiB0cnVlIH0pIGNvbHVtbnNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHVtbnMhOiBDb2x1bW5bXTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvd1ZhbHVlITogYW55O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbG9jYWxlOiBUYWJsZUNvbHVtbkxvY2FsZU9wdGlvbnMgPSB7XG4gICAgICAgIGNhbGVuZGFyOiB7XG4gICAgICAgICAgICAuLi50aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TG9jYWxlT3B0aW9ucygpLmNhbGVuZGFyLFxuICAgICAgICAgICAgZGF0ZUZvcm1hdDogY29udmVydFRvTW9tZW50RGF0ZUZvcm1hdCh0aGlzLmxvY2FsZVNlcnZpY2UuZ2V0TG9jYWxlT3B0aW9ucygpLmNhbGVuZGFyLmRhdGVGb3JtYXQpLFxuICAgICAgICB9LFxuICAgICAgICBudW1iZXI6IHtcbiAgICAgICAgICAgIC4uLnRoaXMubG9jYWxlU2VydmljZS5nZXRMb2NhbGVPcHRpb25zKCkubnVtYmVyLFxuICAgICAgICAgICAgc2NhbGU6IDAsXG4gICAgICAgIH0sXG4gICAgfTtcblxuICAgIGNlbGxzRGF0YTogQ2VsbERhdGFbXSA9IFtdO1xuXG4gICAgZm9ybWF0dGVkQ29sdW1uczogQ29sdW1uVmFsdWVzW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNlcnZpY2U6IExvY2FsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbnVtZXJpY1NlcnZpY2U6IE51bWVyaWNTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KEhvc3RQcm9qZWN0Q29uZmlnc0luamVjdGlvblRva2VuKSBwcml2YXRlIHJlYWRvbmx5IGhvc3RQcm9qZWN0Q29uZmlnczogSG9zdFByb2plY3RDb25maWdzXG4gICAgKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQ29tcG9uZW50QXR0cmlidXRlcyhjaGFuZ2VzKTtcblxuICAgICAgICBpZiAoY2hhbmdlcy5jb2x1bW5zICYmIGNoYW5nZXMuY29sdW1ucy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29sdW1ucy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLnNvcnRDb2x1bW5zQnlTZXF1ZW5jZShjaGFuZ2VzLmNvbHVtbnMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1uc1RlbXBsYXRlKGNoYW5nZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0FycmF5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q2VsbERhdGEoY29sdW1uOiBDb2x1bW5WYWx1ZXMpOiBDZWxsRGF0YSB7XG4gICAgICAgIGNvbnN0IHsgY29sdW1uVmFsdWUsIHNlcGFyYXRvciwgdW5pbmZvcm1lZCB9ID0gY29sdW1uO1xuXG4gICAgICAgIGlmICh0eXBlb2YgY29sdW1uVmFsdWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHNwbGl0dGVkU3RyaW5nID0gY29sdW1uVmFsdWUuc3BsaXQoc2VwYXJhdG9yKTtcblxuICAgICAgICAgICAgcmV0dXJuIHNwbGl0dGVkU3RyaW5nLm1hcCgoc3RyaW5nLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzTGFzdEluZGV4ID0gc3BsaXR0ZWRTdHJpbmcubGVuZ3RoIC0gMSA9PT0gaW5kZXg7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICBpc1VuaW5mb3JtZWQ6IHN0cmluZyA9PT0gdW5pbmZvcm1lZCxcbiAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yOiAhaXNMYXN0SW5kZXggPyBzZXBhcmF0b3IgOiBudWxsLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVDb21wb25lbnRBdHRyaWJ1dGVzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbnMgJiYgIWNoYW5nZXMuY29sdW1ucz8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgJ2NvbHVtbnMnIGF0dHJpYnV0ZSBtdXN0IGJlIGluZm9ybWVkIVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMucm93VmFsdWUgJiYgIWNoYW5nZXMucm93VmFsdWU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhlICdyb3dWYWx1ZScgYXR0cmlidXRlIG11c3QgYmUgaW5mb3JtZWQhXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVDb2x1bW5zVGVtcGxhdGUoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgICAgICBjb25zdCBjb2x1bW5zOiBDb2x1bW5bXSA9IGNoYW5nZXMuY29sdW1ucz8uY3VycmVudFZhbHVlIHx8IHRoaXMuY29sdW1ucztcbiAgICAgICAgY29uc3Qgcm93VmFsdWU6IG9iamVjdCA9IGNoYW5nZXMucm93VmFsdWU/LmN1cnJlbnRWYWx1ZSB8fCB0aGlzLnJvd1ZhbHVlO1xuICAgICAgICBjb25zdCBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucyA9IGNoYW5nZXMubG9jYWxlPy5jdXJyZW50VmFsdWUgfHwgdGhpcy5sb2NhbGU7XG5cbiAgICAgICAgdGhpcy5mb3JtYXR0ZWRDb2x1bW5zID0gY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gdGhpcy5nZXRDb2x1bW5WYWx1ZShjb2x1bW4sIHJvd1ZhbHVlLCBsb2NhbGUpKTtcblxuICAgICAgICB0aGlzLmNlbGxzRGF0YSA9IHRoaXMuZm9ybWF0dGVkQ29sdW1ucy5tYXAoKGNvbHVtbikgPT4gdGhpcy5nZXRDZWxsRGF0YShjb2x1bW4pKTtcblxuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuY29sdW1uc1RlbXBsYXRlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblNlcGFyYXRvcihjb2x1bW46IENvbHVtbikge1xuICAgICAgICByZXR1cm4gY29sdW1uLnNlcGFyYXRvciA/IGNvbHVtbi5zZXBhcmF0b3IgOiBcIiAtIFwiO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VHJhbnNsYXRpb25QcmVmaXgoY29sdW1uOiBDb2x1bW4pIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbi5wcmVmaXggPyBjb2x1bW4ucHJlZml4IDogYCR7dGhpcy5ob3N0UHJvamVjdENvbmZpZ3MuZG9tYWlufS4ke3RoaXMuaG9zdFByb2plY3RDb25maWdzLnNlcnZpY2V9LmA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0F0dHJpYnV0ZVZhbHVlSW52YWxpZChhdHRyaWJ1dGVWYWx1ZTogYW55KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBhdHRyaWJ1dGVWYWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgYXR0cmlidXRlVmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgKGF0dHJpYnV0ZVZhbHVlPy5vcHRpb25zPy5udW1iZXJGb3JtYXRPcHRpb25zICYmIGlzTnVsbE9yVW5kZWZpbmVkKGF0dHJpYnV0ZVZhbHVlPy52YWx1ZSkpIHx8XG4gICAgICAgICAgICAodGhpcy5pc0FycmF5KGF0dHJpYnV0ZVZhbHVlKSAmJiAhYXR0cmlidXRlVmFsdWUubGVuZ3RoKSB8fFxuICAgICAgICAgICAgKHR5cGVvZiBhdHRyaWJ1dGVWYWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBhdHRyaWJ1dGVWYWx1ZS50cmltKCkgPT09IFwiXCIpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb3JtYXR0ZWRDb2x1bW5WYWx1ZShcbiAgICAgICAgY29sdW1uOiBDb2x1bW4sXG4gICAgICAgIGNvbHVtblZhbHVlOiBhbnlbXSxcbiAgICAgICAgdW5pZmllZENvbHVtblZhbHVlczogc3RyaW5nLFxuICAgICAgICB1bmluZm9ybWVkVGV4dDogc3RyaW5nLFxuICAgICAgICB1bmluZm9ybWVkTnVtYmVyOiBudW1iZXJcbiAgICApIHtcbiAgICAgICAgaWYgKHVuaW5mb3JtZWROdW1iZXIgPT09IGNvbHVtbi5hdHRyaWJ1dGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHVuaW5mb3JtZWRUZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbHVtbi50eXBlID09PSBFbnVtQ29sdW1uRmllbGRUeXBlLlRPS0VOUykge1xuICAgICAgICAgICAgcmV0dXJuIFtdLmNvbmNhdC5hcHBseShcbiAgICAgICAgICAgICAgICBbXSxcbiAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZS5maWx0ZXIoKHZhbHVlcykgPT4gdmFsdWVzICE9PSB1bmluZm9ybWVkVGV4dClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5pZmllZENvbHVtblZhbHVlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEF0dHJpYnV0ZVZhbHVlKGF0dHJpYnV0ZTogc3RyaW5nLCByb3dWYWx1ZTogb2JqZWN0KSB7XG4gICAgICAgIGxldCBhdHRyaWJ1dGVWYWx1ZSE6IGFueTtcblxuICAgICAgICBhdHRyaWJ1dGUuc3BsaXQoXCIvXCIpLmZvckVhY2goKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmICghYXR0cmlidXRlVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5zcGxpdChcIi5cIikuZm9yRWFjaCgodmFsOiBzdHJpbmcsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyb3dWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gcm93VmFsdWVbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbHVlID0gYXR0cmlidXRlVmFsdWVbdmFsXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROdW1iZXJDb25maWdzKGNvbHVtbjogQ29sdW1uKTogTWFza0NvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50aGlzLmxvY2FsZS5udW1iZXIsXG4gICAgICAgICAgICBzY2FsZTogY29sdW1uLnNjYWxlICE9PSBudWxsICYmIGNvbHVtbi5zY2FsZSAhPT0gdW5kZWZpbmVkID8gdGhpcy5nZXRDb2x1bW5TY2FsZShjb2x1bW4uc2NhbGUpIDogdGhpcy5sb2NhbGUubnVtYmVyLnNjYWxlLFxuICAgICAgICAgICAgcHJlZml4OiBgJHt0aGlzLmxvY2FsZS5udW1iZXIuY3VycmVuY3lTeW1ib2x9IGAsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRlRm9ybWF0KGNvbHVtbjogQ29sdW1uLCBsb2NhbGU6IFRhYmxlQ29sdW1uTG9jYWxlT3B0aW9ucykge1xuICAgICAgICByZXR1cm4gY29sdW1uLmRhdGVGb3JtYXQgPyBjb2x1bW4uZGF0ZUZvcm1hdCA6IGxvY2FsZS5jYWxlbmRhci5kYXRlRm9ybWF0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uVmFsdWUoY29sdW1uOiBDb2x1bW4sIHJvd1ZhbHVlOiBvYmplY3QsIGxvY2FsZTogVGFibGVDb2x1bW5Mb2NhbGVPcHRpb25zKTogQ29sdW1uVmFsdWVzIHtcbiAgICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy5nZXRUcmFuc2xhdGlvblByZWZpeChjb2x1bW4pO1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSB0aGlzLmdldENvbHVtblNlcGFyYXRvcihjb2x1bW4pO1xuICAgICAgICBjb25zdCB1bmluZm9ybWVkID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChwcmVmaXggKyBcImVtcHR5X2xhYmVsXCIpO1xuICAgICAgICBjb25zdCBzdHlsZSA9IGNvbHVtbi5zdHlsZTtcblxuICAgICAgICBjb25zdCBjb2x1bW5WYWx1ZSA9IGNvbHVtbi5hdHRyaWJ1dGVzLm1hcCgoYXR0cmlidXRlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGVWYWx1ZShhdHRyaWJ1dGUsIHJvd1ZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNBdHRyaWJ1dGVWYWx1ZUludmFsaWQoYXR0cmlidXRlVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuaW5mb3JtZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG51bWJlckNvbmZpZ3MgPSB0aGlzLmdldE51bWJlckNvbmZpZ3MoY29sdW1uKTtcblxuICAgICAgICAgICAgc3dpdGNoIChjb2x1bW4udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5FTlVNOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChjb2x1bW4uZW51bVByZWZpeCArIGF0dHJpYnV0ZVZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSk7XG5cbiAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuQ1VSUkVOQ1k6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZT8ub3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLm51bWVyaWNTZXJ2aWNlLmluc3RhbnQoYXR0cmlidXRlVmFsdWUudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdE9wdGlvbnM6IGF0dHJpYnV0ZVZhbHVlLm9wdGlvbnMubnVtYmVyRm9ybWF0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwbHlNYXNrKGF0dHJpYnV0ZVZhbHVlLCBudW1iZXJDb25maWdzLCB0aGlzLmlzTnVtYmVyKGF0dHJpYnV0ZVZhbHVlKSk7XG5cbiAgICAgICAgICAgICAgICBjYXNlIEVudW1Db2x1bW5GaWVsZFR5cGUuREFURTpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0ZUZvcm1hdCA9IHRoaXMuZ2V0RGF0ZUZvcm1hdChjb2x1bW4sIGxvY2FsZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtb21lbnQoYXR0cmlidXRlVmFsdWUpLmZvcm1hdChkYXRlRm9ybWF0KTtcblxuICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5CT09MRUFOOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHJpYnV0ZVZhbHVlID8gXCJ5ZXNcIiA6IFwibm9cIjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQocHJlZml4ICsgdmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtQ29sdW1uRmllbGRUeXBlLk5VTUJFUjpcbiAgICAgICAgICAgICAgICAgICAgbnVtYmVyQ29uZmlncy5wcmVmaXggPSBcIlwiO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhdHRyaWJ1dGVWYWx1ZT8ub3B0aW9ucz8ubnVtYmVyRm9ybWF0T3B0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLm51bWVyaWNTZXJ2aWNlLmluc3RhbnQoYXR0cmlidXRlVmFsdWUudmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckZvcm1hdE9wdGlvbnM6IGF0dHJpYnV0ZVZhbHVlLm9wdGlvbnMubnVtYmVyRm9ybWF0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29sdW1uLm51bWJlckZvcm1hdE9wdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLm51bWVyaWNTZXJ2aWNlLmluc3RhbnQoYXR0cmlidXRlVmFsdWUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0T3B0aW9uczogY29sdW1uLm51bWJlckZvcm1hdE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhcHBseU1hc2soYXR0cmlidXRlVmFsdWUsIG51bWJlckNvbmZpZ3MsIHRoaXMuaXNOdW1iZXIoYXR0cmlidXRlVmFsdWUpKTtcblxuICAgICAgICAgICAgICAgIGNhc2UgRW51bUNvbHVtbkZpZWxkVHlwZS5UT0tFTlM6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFRva2VucyhhdHRyaWJ1dGVWYWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXR0cmlidXRlVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHVuaWZpZWRDb2x1bW5WYWx1ZXMgPSBjb2x1bW5WYWx1ZS5qb2luKHNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IHVuaW5mb3JtZWROdW1iZXIgPSB1bmlmaWVkQ29sdW1uVmFsdWVzLnNwbGl0KHNlcGFyYXRvcikuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHVuaW5mb3JtZWQpLmxlbmd0aDtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkQ29sdW1uVmFsdWUgPSB0aGlzLmdldEZvcm1hdHRlZENvbHVtblZhbHVlKGNvbHVtbiwgY29sdW1uVmFsdWUsIHVuaWZpZWRDb2x1bW5WYWx1ZXMsIHVuaW5mb3JtZWQsIHVuaW5mb3JtZWROdW1iZXIpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdHlsZSxcbiAgICAgICAgICAgIGNvbHVtblZhbHVlOiBmb3JtYXR0ZWRDb2x1bW5WYWx1ZSxcbiAgICAgICAgICAgIHNlcGFyYXRvcixcbiAgICAgICAgICAgIHVuaW5mb3JtZWQsXG4gICAgICAgICAgICBiYWRnZUNvbmZpZ3M6IGNvbHVtbj8uYmFkZ2VDb25maWdzPy5maW5kKFxuICAgICAgICAgICAgICAgIChiYWRnZUNvbmZpZykgPT4gYmFkZ2VDb25maWcuZW51bVZhbHVlID09PSByb3dWYWx1ZVtjb2x1bW4uYXR0cmlidXRlc1swXSA/PyBjb2x1bW4uZmllbGRdXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHlwZTogY29sdW1uLnR5cGUsXG4gICAgICAgICAgICB0b29sdGlwOiB0aGlzLmdldENvbHVtblRvb2x0aXAoY29sdW1uLnRvb2x0aXApLFxuICAgICAgICAgICAgaW5mb1NpZ246IHRoaXMuZ2V0Q29sdW1uSW5mb1NpZ24oY29sdW1uLmluZm9TaWduKSxcbiAgICAgICAgICAgIG9uTGlua0NsaWNrOiBjb2x1bW4ub25MaW5rQ2xpY2ssXG4gICAgICAgICAgICBvbkNvbHVtbkNsaWNrOiBjb2x1bW4ub25Db2x1bW5DbGljayxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblNjYWxlKHNjYWxlOiBudW1iZXIgfCAoKHJvd1ZhbHVlOiBhbnkpID0+IG51bWJlcikpOiBudW1iZXIge1xuICAgICAgICBpZiAodHlwZW9mIHNjYWxlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBzY2FsZSh0aGlzLnJvd1ZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2NhbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5JbmZvU2lnbihpbmZvU2lnbjogc3RyaW5nIHwgKChyb3dWYWx1ZTogYW55KSA9PiBzdHJpbmcpKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGluZm9TaWduICE9PSB1bmRlZmluZWQgJiYgaW5mb1NpZ24gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5mb1NpZ24gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbmZvU2lnbih0aGlzLnJvd1ZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpbmZvU2lnbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblRvb2x0aXAodG9vbHRpcDogc3RyaW5nIHwgKChyb3dWYWx1ZTogYW55KSA9PiBzdHJpbmcpKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRvb2x0aXAgIT09IHVuZGVmaW5lZCAmJiB0b29sdGlwICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRvb2x0aXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b29sdGlwKHRoaXMucm93VmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRvb2x0aXA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc051bWJlcih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhbmV3IEJpZ051bWJlcih2YWx1ZSkuaXNOYU4oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRva2Vucyh2YWx1ZXM6IGFueSk6IElUb2tlbltdIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVG8gdXNlIHRva2VucyBhbiBhcnJheSBtdXN0IGJlIGluZm9ybWVkXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWRUb2tlbkFycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vdCBhIHZhbGlkIHRva2VuIGFycmF5LiBNdXN0IGJlIGEgcHJpbWl0aXZlIHZhbHVlcyBhcnJheSBvciBhbiBvYmplY3RzIHdpdGggbGFiZWwgYXR0cmlidXRlIGFycmF5XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNMYWJlbE9iamVjdEFycmF5KHZhbHVlcykpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWVzXG4gICAgICAgICAgICAuZmlsdGVyKCh2YWx1ZTogYW55KSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKVxuICAgICAgICAgICAgLm1hcCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gdHlwZW9mIHZhbHVlID09PSBcInN5bWJvbFwiID8gdmFsdWUudG9TdHJpbmcoKSA6IGAke3ZhbHVlfWA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNWYWxpZFRva2VuQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ByaW1pdGl2ZVZhbHVlc0FycmF5KHZhbHVlcykgfHwgdGhpcy5pc0xhYmVsT2JqZWN0QXJyYXkodmFsdWVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUHJpbWl0aXZlVmFsdWVzQXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSBPYmplY3QodmFsdWUpKS5sZW5ndGggPT09IHZhbHVlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0xhYmVsT2JqZWN0QXJyYXkodmFsdWVzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzLmZpbHRlcigodmFsdWUpID0+IHZhbHVlPy5sYWJlbCAhPT0gbnVsbCAmJiB2YWx1ZT8ubGFiZWwgIT09IHVuZGVmaW5lZCkubGVuZ3RoID09PSB2YWx1ZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydENvbHVtbnNCeVNlcXVlbmNlKGNvbHVtbnM6IENvbHVtbltdKTogQ29sdW1uW10ge1xuICAgICAgICByZXR1cm4gY29sdW1ucy5zb3J0KChhLCBiKSA9PiBhLnNlcXVlbmNlIC0gYi5zZXF1ZW5jZSk7XG4gICAgfVxufVxuXG50eXBlIENlbGxEYXRhID0geyB2YWx1ZTogc3RyaW5nOyBpc1VuaW5mb3JtZWQ6IGJvb2xlYW47IHNlcGFyYXRvcjogc3RyaW5nIH1bXTtcbiJdfQ==
@@ -4,6 +4,7 @@ import { Subject } from "rxjs";
4
4
  import { takeUntil } from "rxjs/operators";
5
5
  import { TieredMenuEventService } from "../../services/tiered-menu.event.service";
6
6
  import { TieredMenuService } from "../../services/tiered-menu.service";
7
+ import { enableScroll, disabledScroll } from "../../utils";
7
8
  var TieredMenuComponent = /** @class */ (function () {
8
9
  function TieredMenuComponent(_appRef, _componentFactoryResolver, _injector, _changeDetectorRef, tieredMenuService, _tieredMenuEventService) {
9
10
  this._appRef = _appRef;
@@ -71,6 +72,7 @@ var TieredMenuComponent = /** @class */ (function () {
71
72
  TieredMenuComponent.prototype.ngOnInit = function () {
72
73
  this.tieredMenuService.currentItems = this.items;
73
74
  this._subscribeEvents();
75
+ disabledScroll();
74
76
  };
75
77
  TieredMenuComponent.prototype.ngOnDestroy = function () {
76
78
  this._unsubscribe$.next();
@@ -204,6 +206,7 @@ var TieredMenuComponent = /** @class */ (function () {
204
206
  _this.tieredMenuService.currentItem = null;
205
207
  _this.tieredMenuService.currentItems = _this.tieredMenuService.items;
206
208
  _this.tieredMenuService.markAllItemsAsClosed(_this.tieredMenuService.items);
209
+ enableScroll();
207
210
  });
208
211
  // Open item menu event.
209
212
  this._tieredMenuEventService.openItemMenuEvent.pipe(takeUntil(this._unsubscribe$)).subscribe(function (item) {
@@ -242,6 +245,9 @@ var TieredMenuComponent = /** @class */ (function () {
242
245
  if (item.parent) {
243
246
  item.parent.isOpen = false;
244
247
  }
248
+ else {
249
+ enableScroll();
250
+ }
245
251
  _this.tieredMenuService.currentItems = ((_b = (_a = item === null || item === void 0 ? void 0 : item.parent) === null || _a === void 0 ? void 0 : _a.parent) === null || _b === void 0 ? void 0 : _b.submenu) || _this.tieredMenuService.items;
246
252
  _this.tieredMenuService.currentItem = item.parent;
247
253
  _this.destroyRequest.emit(false);
@@ -279,4 +285,4 @@ var TieredMenuComponent = /** @class */ (function () {
279
285
  return TieredMenuComponent;
280
286
  }());
281
287
  export { TieredMenuComponent };
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllcmVkLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdGllcmVkLW1lbnUvY29tcG9uZW50cy90aWVyZWQtbWVudS90aWVyZWQtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osWUFBWSxFQUNaLFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQU92RTtJQWFJLDZCQUNxQixPQUF1QixFQUN2Qix5QkFBbUQsRUFDbkQsU0FBbUIsRUFDbkIsa0JBQXFDLEVBQ3RDLGlCQUFvQyxFQUNuQyx1QkFBK0M7UUFML0MsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUNuRCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBakI3RCxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNULHFCQUFnQixHQUFzQixPQUFPLENBQUM7UUFFN0Msa0JB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LHdCQUF3QjtnQkFDeEMsUUFBUTtnQkFDQyxpQkFBaUI7Z0JBQ25CLGlCQUFpQjtnQkFDVixzQkFBc0I7O0lBUnBFO1FBREMsTUFBTSxFQUFFOytEQUMyQztJQVlwRDtRQURDLFlBQVksQ0FBQyxlQUFlLENBQUM7dURBRzdCO0lBR0Q7UUFEQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs4REFRMUM7SUFHRDtRQURDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDOytEQXFDNUM7SUExRVEsbUJBQW1CO1FBTC9CLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLDRrQkFBMkM7O1NBRTlDLENBQUM7T0FDVyxtQkFBbUIsQ0FxUi9CO0lBQUQsMEJBQUM7Q0FBQSxBQXJSRCxJQXFSQztTQXJSWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uUmVmLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvdGllcmVkLW1lbnUtaXRlbS1pbnRlcm5hbC1kYXRhXCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51RXZlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3RpZXJlZC1tZW51LmV2ZW50LnNlcnZpY2VcIjtcbmltcG9ydCB7IFRpZXJlZE1lbnVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3RpZXJlZC1tZW51LnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy10aWVyZWQtbWVudVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vdGllcmVkLW1lbnUuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vdGllcmVkLW1lbnUuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIFRpZXJlZE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGl0ZW1zOiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YVtdO1xuICAgIHB1YmxpYyB0b3AgPSAwO1xuICAgIHB1YmxpYyBsZWZ0ID0gMDtcbiAgICBwdWJsaWMgbWVudVRyaWdnZXJFdmVudDogXCJjbGlja1wiIHwgXCJob3ZlclwiID0gXCJob3ZlclwiO1xuXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8VGllcmVkTWVudUNvbXBvbmVudD4gPSBudWxsO1xuICAgIHByaXZhdGUgX21lbnVEaXZFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBkZXN0cm95UmVxdWVzdCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9hcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSB0aWVyZWRNZW51U2VydmljZTogVGllcmVkTWVudVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3RpZXJlZE1lbnVFdmVudFNlcnZpY2U6IFRpZXJlZE1lbnVFdmVudFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiKVxuICAgIHB1YmxpYyBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5jbG9zZUFsbE1lbnVzRXZlbnQuZW1pdCgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gICAgcHVibGljIG9uRG9jdW1lbnRDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBDbG9zaW5nIG1lbnUgd2hlbiBjbGlja2VkIG91dHNpZGUuXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBFbGVtZW50O1xuICAgICAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gdGFyZ2V0LmNsb3Nlc3QoXCJzLXRpZXJlZC1tZW51LWl0ZW1cIikgfHwgdGFyZ2V0LmNsb3Nlc3QoXCJzLXRpZXJlZC1tZW51LWRpdmlkZXJcIik7XG4gICAgICAgIGlmICghY2xpY2tlZEluc2lkZSkge1xuICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5jbG9zZUFsbE1lbnVzRXZlbnQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxuICAgIHB1YmxpYyBvbktleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5jbG9zZUFsbE1lbnVzRXZlbnQuZW1pdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLnNlbGVjdEl0ZW1FdmVudC5lbWl0KHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJBcnJvd0xlZnRcIjpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtcy5pbmNsdWRlcyh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLmNsb3NlSXRlbU1lbnVFdmVudC5lbWl0KHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIkFycm93UmlnaHRcIjpcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0uZGlzYWJsZWQgJiYgdGhpcy5pdGVtcy5pbmNsdWRlcyh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLm9wZW5JdGVtTWVudUV2ZW50LmVtaXQodGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtIHx8IHRoaXMuaXRlbXMuaW5jbHVkZXModGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5kZWNyZW1lbnRDdXJyZW50SXRlbUV2ZW50LmVtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSB8fCB0aGlzLml0ZW1zLmluY2x1ZGVzKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuaW5jcmVtZW50Q3VycmVudEl0ZW1FdmVudC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgICAgICB0aGlzLl9zdWJzY3JpYmVFdmVudHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2luY3JlbWVudEN1ckl0ZW0oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zWzBdO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLml0ZW1zLmluY2x1ZGVzKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pKSB7XG4gICAgICAgICAgICAvLyBDaGVja2luZyBpZiBpdCBpcyB0aGUgY3VycmVudCBtZW51LlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMuaW5kZXhPZih0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSArIDE7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zW2N1cnJlbnRJbmRleF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXNbMF07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbS5kaXZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmNyZW1lbnRDdXJJdGVtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZWNyZW1lbnRDdXJJdGVtKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtc1swXTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIENoZWNraW5nIGlmIGl0IGlzIHRoZSBjdXJyZW50IG1lbnUuXG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXRlbXMuaW5jbHVkZXModGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN1ckluZGV4ID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMuaW5kZXhPZih0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSAtIDE7XG5cbiAgICAgICAgaWYgKGN1ckluZGV4ID49IDApIHtcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtc1tjdXJJbmRleF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXNbdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXMubGVuZ3RoIC0gMV07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbS5kaXZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWNyZW1lbnRDdXJJdGVtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVNZW51KGl0ZW1zOiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YVtdLCBwb3NpdGlvbjogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY29tcG9uZW50UmVmICYmIGl0ZW1zKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRpZXJlZE1lbnVDb21wb25lbnQpO1xuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUodGhpcy5faW5qZWN0b3IpO1xuICAgICAgICAgICAgdGhpcy5fYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgICAgICAgICAvLyBTZXR0aW5nIHRoZSBtZW51IGl0ZW1zLlxuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1zID0gaXRlbXM7XG5cbiAgICAgICAgICAgIC8vIFN1YnNjcmliZSBtZW51IGV2ZW50cy5cbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5kZXN0cm95UmVxdWVzdC5zdWJzY3JpYmUoKHByb3BhZ2F0ZTogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Rlc3Ryb3kocHJvcGFnYXRlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLl9tZW51RGl2RWxlbWVudCA9IGRvbUVsZW0ucXVlcnlTZWxlY3RvcihcIi5tZW51XCIpO1xuICAgICAgICAgICAgdGhpcy5fc2V0TWVudVBvc2l0aW9uKHBvc2l0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2Rlc3Ryb3kocHJvcGFnYXRlID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9hcHBSZWYuZGV0YWNoVmlldyh0aGlzLl9jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl9tZW51RGl2RWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJvcGFnYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3lSZXF1ZXN0LmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldE1lbnVQb3NpdGlvbihwb3NpdGlvbjogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IElURU1fSEVJR0hUID0gMzc7XG4gICAgICAgIGNvbnN0IERJVklERVJfSEVJR0hUID0gNTtcbiAgICAgICAgY29uc3QgUEFERElORyA9IDg7XG5cbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgeyB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQgfSA9IHBvc2l0aW9uO1xuXG4gICAgICAgICAgICBjb25zdCBpdGVtc0NvdW50ID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1zPy5yZWR1Y2UoKGNvdW50OiBudW1iZXIsIGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpdGVtLmRpdmlkZXIgPyBjb3VudCArIDEgOiBjb3VudDtcbiAgICAgICAgICAgIH0sIDApO1xuXG4gICAgICAgICAgICBjb25zdCBkaXZpZGVyc0NvdW50ID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLml0ZW1zPy5yZWR1Y2UoKGNvdW50OiBudW1iZXIsIGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZGl2aWRlciA/IGNvdW50ICsgMSA6IGNvdW50O1xuICAgICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgICAgIC8vIEkgbmVlZCB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCBvZiB0aGUgY29tcG9uZW50IGJlY2F1c2UgdGhlIGludGVybmFsIGVsZW1lbnRzIGhhdmUgbm90IGJlZW4gY3JlYXRlZCB5ZXQuXG4gICAgICAgICAgICBjb25zdCBtZW51SGVpZ2h0ID0gaXRlbXNDb3VudCAqIElURU1fSEVJR0hUICsgZGl2aWRlcnNDb3VudCAqIERJVklERVJfSEVJR0hUICsgUEFERElORyArIDg7XG4gICAgICAgICAgICBjb25zdCBtZW51V2lkdGggPSB0aGlzLl9tZW51RGl2RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblxuICAgICAgICAgICAgY29uc3QgcmlnaHRGcmVlU3BhY2UgPSB3aW5kb3cuaW5uZXJXaWR0aCAtIHJpZ2h0O1xuICAgICAgICAgICAgY29uc3QgYm90dG9tRnJlZVNwYWNlID0gd2luZG93LmlubmVySGVpZ2h0IC0gYm90dG9tO1xuXG4gICAgICAgICAgICBpZiAocmlnaHRGcmVlU3BhY2UgPiBtZW51V2lkdGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IHJpZ2h0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UubGVmdCA9IGxlZnQgLSBtZW51V2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChib3R0b21GcmVlU3BhY2UgPD0gbWVudUhlaWdodCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSBNYXRoLm1heCh3aW5kb3cuaW5uZXJIZWlnaHQgLSBtZW51SGVpZ2h0LCB3aW5kb3cuc2Nyb2xsWSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50b3AgPSB3aW5kb3cuc2Nyb2xsWSArIHRvcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3N1YnNjcmliZUV2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgLy8gSW5jcmVtZW50IGN1cnJlbnQgaXRlbSBldmVudC5cbiAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5pbmNyZW1lbnRDdXJyZW50SXRlbUV2ZW50LnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9pbmNyZW1lbnRDdXJJdGVtKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBEZWNyZW1lbnQgY3VycmVudCBpdGVtIGV2ZW50LlxuICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLmRlY3JlbWVudEN1cnJlbnRJdGVtRXZlbnQucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2RlY3JlbWVudEN1ckl0ZW0oKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFNlbGVjdCBpdGVtIGV2ZW50LlxuICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLnNlbGVjdEl0ZW1FdmVudC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbS5zdWJtZW51KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5vcGVuSXRlbU1lbnVFdmVudC5lbWl0KGl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLmNvbW1hbmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLmNsb3NlQWxsTWVudXNFdmVudC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgaXRlbS5jb21tYW5kKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBDbG9zZSBhbGwgbWVudXMgZXZlbnQuXG4gICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuY2xvc2VBbGxNZW51c0V2ZW50LnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5pdGVtcztcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UubWFya0FsbEl0ZW1zQXNDbG9zZWQodGhpcy50aWVyZWRNZW51U2VydmljZS5pdGVtcyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIE9wZW4gaXRlbSBtZW51IGV2ZW50LlxuICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLm9wZW5JdGVtTWVudUV2ZW50LnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoaXRlbTogVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0ucGFyZW50ID09PSBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGllcmVkTWVudVNlcnZpY2Uuc2VhcmNoVGhlSGllcmFyY2h5KHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0ucGFyZW50LCBpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudCA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW07XG5cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudC5pc09wZW4gPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY3VycmVudD8ucGFyZW50ICE9PSBpdGVtLnBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5jbG9zZUl0ZW1NZW51RXZlbnQuZW1pdChjdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpdGVtLnN1Ym1lbnUgJiYgIWl0ZW0uaXNPcGVuICYmIHRoaXMuaXRlbXMuaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHRvcCwgcmlnaHQsIGxlZnQsIGJvdHRvbSB9ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7aXRlbS5pZH1gKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHsgdG9wLCByaWdodCwgbGVmdCwgYm90dG9tIH07XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVNZW51KGl0ZW0uc3VibWVudSwgcG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zID0gaXRlbS5zdWJtZW51O1xuICAgICAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSBpdGVtLnN1Ym1lbnVbMF07XG4gICAgICAgICAgICAgICAgaXRlbS5pc09wZW4gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDbG9zZSBpdGVtIG1lbnUgZXZlbnQuXG4gICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuY2xvc2VJdGVtTWVudUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXMuc29tZSgoaSkgPT4gaS5pZCA9PT0gaXRlbS5pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnBhcmVudC5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcyA9IGl0ZW0/LnBhcmVudD8ucGFyZW50Py5zdWJtZW51IHx8IHRoaXMudGllcmVkTWVudVNlcnZpY2UuaXRlbXM7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSBpdGVtLnBhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZXN0cm95UmVxdWVzdC5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGllcmVkLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvdGllcmVkLW1lbnUvY29tcG9uZW50cy90aWVyZWQtbWVudS90aWVyZWQtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDSCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osWUFBWSxFQUNaLFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQU8zRDtJQWFJLDZCQUNxQixPQUF1QixFQUN2Qix5QkFBbUQsRUFDbkQsU0FBbUIsRUFDbkIsa0JBQXFDLEVBQ3RDLGlCQUFvQyxFQUNuQyx1QkFBK0M7UUFML0MsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUNuRCxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDdEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBakI3RCxRQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsU0FBSSxH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QUFJLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxLQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7O2dCQTFRNkIsY0FBYztnQkFDSSx3QkFBd0I7Z0JBQ3hDLFFBQVE7Z0JBQ0MsaUJBQWlCO2dCQUNuQixpQkFBaUI7Z0JBQ1Ysc0JBQXNCOztJQVJwRTtRQURDLE1BQU0sRUFBRTsrREFDMkM7SUFZcEQ7UUFEQyxZQUFZLENBQUMsZUFBZSxDQUFDO3VEQUc3QjtJQUdEO1FBREMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7OERBUTFDO0lBR0Q7UUFEQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzsrREFxQzVDO0lBMUVRLG1CQUFtQjtRQUwvQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZUFBZTtZQUN6Qiw0a0JBQTJDOztTQUU5QyxDQUFDO09BQ1csbUJBQW1CLENBeVIvQjtJQUFELDBCQUFDO0NBQUEsQUF6UkQsSUF5UkM7U0F6UlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGEgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL3RpZXJlZC1tZW51LWl0ZW0taW50ZXJuYWwtZGF0YVwiO1xuaW1wb3J0IHsgVGllcmVkTWVudUV2ZW50U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90aWVyZWQtbWVudS5ldmVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUaWVyZWRNZW51U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90aWVyZWQtbWVudS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBlbmFibGVTY3JvbGwsIGRpc2FibGVkU2Nyb2xsIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtdGllcmVkLW1lbnVcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3RpZXJlZC1tZW51LmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3RpZXJlZC1tZW51LmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBUaWVyZWRNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBpdGVtczogVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGFbXTtcbiAgICBwdWJsaWMgdG9wID0gMDtcbiAgICBwdWJsaWMgbGVmdCA9IDA7XG4gICAgcHVibGljIG1lbnVUcmlnZ2VyRXZlbnQ6IFwiY2xpY2tcIiB8IFwiaG92ZXJcIiA9IFwiaG92ZXJcIjtcblxuICAgIHByaXZhdGUgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRpZXJlZE1lbnVDb21wb25lbnQ+ID0gbnVsbDtcbiAgICBwcml2YXRlIF9tZW51RGl2RWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZGVzdHJveVJlcXVlc3QgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgdGllcmVkTWVudVNlcnZpY2U6IFRpZXJlZE1lbnVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90aWVyZWRNZW51RXZlbnRTZXJ2aWNlOiBUaWVyZWRNZW51RXZlbnRTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzpyZXNpemVcIilcbiAgICBwdWJsaWMgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuY2xvc2VBbGxNZW51c0V2ZW50LmVtaXQoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6Y2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxuICAgIHB1YmxpYyBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gQ2xvc2luZyBtZW51IHdoZW4gY2xpY2tlZCBvdXRzaWRlLlxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgRWxlbWVudDtcbiAgICAgICAgY29uc3QgY2xpY2tlZEluc2lkZSA9IHRhcmdldC5jbG9zZXN0KFwicy10aWVyZWQtbWVudS1pdGVtXCIpIHx8IHRhcmdldC5jbG9zZXN0KFwicy10aWVyZWQtbWVudS1kaXZpZGVyXCIpO1xuICAgICAgICBpZiAoIWNsaWNrZWRJbnNpZGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuY2xvc2VBbGxNZW51c0V2ZW50LmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDprZXlkb3duXCIsIFtcIiRldmVudFwiXSlcbiAgICBwdWJsaWMgb25LZXlkb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuY2xvc2VBbGxNZW51c0V2ZW50LmVtaXQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5zZWxlY3RJdGVtRXZlbnQuZW1pdCh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiQXJyb3dMZWZ0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXMuaW5jbHVkZXModGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5jbG9zZUl0ZW1NZW51RXZlbnQuZW1pdCh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJBcnJvd1JpZ2h0XCI6XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtLmRpc2FibGVkICYmIHRoaXMuaXRlbXMuaW5jbHVkZXModGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5vcGVuSXRlbU1lbnVFdmVudC5lbWl0KHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSB8fCB0aGlzLml0ZW1zLmluY2x1ZGVzKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuZGVjcmVtZW50Q3VycmVudEl0ZW1FdmVudC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gfHwgdGhpcy5pdGVtcy5pbmNsdWRlcyh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLmluY3JlbWVudEN1cnJlbnRJdGVtRXZlbnQuZW1pdCgpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zID0gdGhpcy5pdGVtcztcbiAgICAgICAgdGhpcy5fc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgICAgIGRpc2FibGVkU2Nyb2xsKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9pbmNyZW1lbnRDdXJJdGVtKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pIHtcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtc1swXTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5pdGVtcy5pbmNsdWRlcyh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSkge1xuICAgICAgICAgICAgLy8gQ2hlY2tpbmcgaWYgaXQgaXMgdGhlIGN1cnJlbnQgbWVudS5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zLmluZGV4T2YodGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkgKyAxO1xuXG4gICAgICAgIGlmIChjdXJyZW50SW5kZXggPCB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtc1tjdXJyZW50SW5kZXhdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0uZGl2aWRlcikge1xuICAgICAgICAgICAgdGhpcy5faW5jcmVtZW50Q3VySXRlbSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGVjcmVtZW50Q3VySXRlbSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXNbMF07XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAvLyBDaGVja2luZyBpZiBpdCBpcyB0aGUgY3VycmVudCBtZW51LlxuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLml0ZW1zLmluY2x1ZGVzKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJJbmRleCA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zLmluZGV4T2YodGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSkgLSAxO1xuXG4gICAgICAgIGlmIChjdXJJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtID0gdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbXNbY3VySW5kZXhdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zW3RoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zLmxlbmd0aCAtIDFdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0uZGl2aWRlcikge1xuICAgICAgICAgICAgdGhpcy5fZGVjcmVtZW50Q3VySXRlbSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlTWVudShpdGVtczogVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGFbXSwgcG9zaXRpb246IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbXBvbmVudFJlZiAmJiBpdGVtcykge1xuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShUaWVyZWRNZW51Q29tcG9uZW50KTtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IGNvbXBvbmVudEZhY3RvcnkuY3JlYXRlKHRoaXMuX2luamVjdG9yKTtcbiAgICAgICAgICAgIHRoaXMuX2FwcFJlZi5hdHRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgICAgICBjb25zdCBkb21FbGVtID0gKHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcblxuICAgICAgICAgICAgLy8gU2V0dGluZyB0aGUgbWVudSBpdGVtcy5cbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5pdGVtcyA9IGl0ZW1zO1xuXG4gICAgICAgICAgICAvLyBTdWJzY3JpYmUgbWVudSBldmVudHMuXG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UuZGVzdHJveVJlcXVlc3Quc3Vic2NyaWJlKChwcm9wYWdhdGU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZXN0cm95KHByb3BhZ2F0ZSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5fbWVudURpdkVsZW1lbnQgPSBkb21FbGVtLnF1ZXJ5U2VsZWN0b3IoXCIubWVudVwiKTtcbiAgICAgICAgICAgIHRoaXMuX3NldE1lbnVQb3NpdGlvbihwb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZXN0cm95KHByb3BhZ2F0ZSA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fYXBwUmVmLmRldGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fbWVudURpdkVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb3BhZ2F0ZSkge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95UmVxdWVzdC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRNZW51UG9zaXRpb24ocG9zaXRpb246IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBJVEVNX0hFSUdIVCA9IDM3O1xuICAgICAgICBjb25zdCBESVZJREVSX0hFSUdIVCA9IDU7XG4gICAgICAgIGNvbnN0IFBBRERJTkcgPSA4O1xuXG4gICAgICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0IH0gPSBwb3NpdGlvbjtcblxuICAgICAgICAgICAgY29uc3QgaXRlbXNDb3VudCA9IHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5pdGVtcz8ucmVkdWNlKChjb3VudDogbnVtYmVyLCBpdGVtOiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhaXRlbS5kaXZpZGVyID8gY291bnQgKyAxIDogY291bnQ7XG4gICAgICAgICAgICB9LCAwKTtcblxuICAgICAgICAgICAgY29uc3QgZGl2aWRlcnNDb3VudCA9IHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5pdGVtcz8ucmVkdWNlKChjb3VudDogbnVtYmVyLCBpdGVtOiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmRpdmlkZXIgPyBjb3VudCArIDEgOiBjb3VudDtcbiAgICAgICAgICAgIH0sIDApO1xuXG4gICAgICAgICAgICAvLyBJIG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudCBiZWNhdXNlIHRoZSBpbnRlcm5hbCBlbGVtZW50cyBoYXZlIG5vdCBiZWVuIGNyZWF0ZWQgeWV0LlxuICAgICAgICAgICAgY29uc3QgbWVudUhlaWdodCA9IGl0ZW1zQ291bnQgKiBJVEVNX0hFSUdIVCArIGRpdmlkZXJzQ291bnQgKiBESVZJREVSX0hFSUdIVCArIFBBRERJTkcgKyA4O1xuICAgICAgICAgICAgY29uc3QgbWVudVdpZHRoID0gdGhpcy5fbWVudURpdkVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0RnJlZVNwYWNlID0gd2luZG93LmlubmVyV2lkdGggLSByaWdodDtcbiAgICAgICAgICAgIGNvbnN0IGJvdHRvbUZyZWVTcGFjZSA9IHdpbmRvdy5pbm5lckhlaWdodCAtIGJvdHRvbTtcblxuICAgICAgICAgICAgaWYgKHJpZ2h0RnJlZVNwYWNlID4gbWVudVdpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSByaWdodDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmxlZnQgPSBsZWZ0IC0gbWVudVdpZHRoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoYm90dG9tRnJlZVNwYWNlIDw9IG1lbnVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gTWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0IC0gbWVudUhlaWdodCwgd2luZG93LnNjcm9sbFkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudG9wID0gd2luZG93LnNjcm9sbFkgKyB0b3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zdWJzY3JpYmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIC8vIEluY3JlbWVudCBjdXJyZW50IGl0ZW0gZXZlbnQuXG4gICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuaW5jcmVtZW50Q3VycmVudEl0ZW1FdmVudC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5faW5jcmVtZW50Q3VySXRlbSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gRGVjcmVtZW50IGN1cnJlbnQgaXRlbSBldmVudC5cbiAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5kZWNyZW1lbnRDdXJyZW50SXRlbUV2ZW50LnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9kZWNyZW1lbnRDdXJJdGVtKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBTZWxlY3QgaXRlbSBldmVudC5cbiAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5zZWxlY3RJdGVtRXZlbnQucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKChpdGVtOiBUaWVyZWRNZW51SXRlbUludGVybmFsRGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uc3VibWVudSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2Uub3Blbkl0ZW1NZW51RXZlbnQuZW1pdChpdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS5jb21tYW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5jbG9zZUFsbE1lbnVzRXZlbnQuZW1pdCgpO1xuICAgICAgICAgICAgICAgIGl0ZW0uY29tbWFuZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gQ2xvc2UgYWxsIG1lbnVzIGV2ZW50LlxuICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLmNsb3NlQWxsTWVudXNFdmVudC5waXBlKHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtcyA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuaXRlbXM7XG4gICAgICAgICAgICB0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLm1hcmtBbGxJdGVtc0FzQ2xvc2VkKHRoaXMudGllcmVkTWVudVNlcnZpY2UuaXRlbXMpO1xuICAgICAgICAgICAgZW5hYmxlU2Nyb2xsKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIE9wZW4gaXRlbSBtZW51IGV2ZW50LlxuICAgICAgICB0aGlzLl90aWVyZWRNZW51RXZlbnRTZXJ2aWNlLm9wZW5JdGVtTWVudUV2ZW50LnBpcGUodGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoaXRlbTogVGllcmVkTWVudUl0ZW1JbnRlcm5hbERhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRpZXJlZE1lbnVTZXJ2aWNlLmN1cnJlbnRJdGVtKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0ucGFyZW50ID09PSBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGllcmVkTWVudVNlcnZpY2Uuc2VhcmNoVGhlSGllcmFyY2h5KHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0ucGFyZW50LCBpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudCA9IHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW07XG5cbiAgICAgICAgICAgICAgICAgICAgY3VycmVudC5pc09wZW4gPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY3VycmVudD8ucGFyZW50ICE9PSBpdGVtLnBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGllcmVkTWVudUV2ZW50U2VydmljZS5jbG9zZUl0ZW1NZW51RXZlbnQuZW1pdChjdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpdGVtLnN1Ym1lbnUgJiYgIWl0ZW0uaXNPcGVuICYmIHRoaXMuaXRlbXMuaW5jbHVkZXMoaXRlbSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHRvcCwgcmlnaHQsIGxlZnQsIGJvdHRvbSB9ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7aXRlbS5pZH1gKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHsgdG9wLCByaWdodCwgbGVmdCwgYm90dG9tIH07XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9jcmVhdGVNZW51KGl0ZW0uc3VibWVudSwgcG9zaXRpb24pO1xuICAgICAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zID0gaXRlbS5zdWJtZW51O1xuICAgICAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW0gPSBpdGVtLnN1Ym1lbnVbMF07XG4gICAgICAgICAgICAgICAgaXRlbS5pc09wZW4gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDbG9zZSBpdGVtIG1lbnUgZXZlbnQuXG4gICAgICAgIHRoaXMuX3RpZXJlZE1lbnVFdmVudFNlcnZpY2UuY2xvc2VJdGVtTWVudUV2ZW50XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW06IFRpZXJlZE1lbnVJdGVtSW50ZXJuYWxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbXMuc29tZSgoaSkgPT4gaS5pZCA9PT0gaXRlbS5pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnBhcmVudC5pc09wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZVNjcm9sbCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGllcmVkTWVudVNlcnZpY2UuY3VycmVudEl0ZW1zID0gaXRlbT8ucGFyZW50Py5wYXJlbnQ/LnN1Ym1lbnUgfHwgdGhpcy50aWVyZWRNZW51U2VydmljZS5pdGVtcztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aWVyZWRNZW51U2VydmljZS5jdXJyZW50SXRlbSA9IGl0ZW0ucGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3lSZXF1ZXN0LmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==