qms-angular 2.0.10 → 2.0.11

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.
@@ -120,10 +120,12 @@ export class QMSNavDrawerComponent {
120
120
  }
121
121
  onClickNode(node) {
122
122
  this.activeNode = this.getActiveNode(node.id, node.parentId);
123
+ this.treeControl.collapseAll();
123
124
  this.onClickNodeEvent.emit(node);
124
125
  this.scrollIntoNode$.next(this.activeNode);
125
126
  }
126
127
  onExpandNode(node) {
128
+ this.treeControl.toggle(node);
127
129
  this.openNodes = [];
128
130
  if (this.treeControl.isExpanded(node)) {
129
131
  this.treeControl.expand(node);
@@ -210,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
210
212
  }], addLocationEvent: [{
211
213
  type: Output
212
214
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3Ftcy1uYXYtZHJhd2VyL3Ftcy1uYXYtZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtbmF2LWRyYXdlci9xbXMtbmF2LWRyYXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBa0UsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNsTSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFVM0MsTUFBTSxPQUFPLHFCQUFxQjtJQTBCaEMsWUFBbUIsbUJBQXlDLEVBQVUsS0FBd0IsRUFBVSxlQUFnQztRQUFySCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUF4Qi9ILG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDM0Qsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNCLGFBQVEsR0FBNkIsRUFBRSxDQUFDO1FBQ3hDLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFJeEIsb0JBQWUsR0FB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QyxFQUFFLEtBQUssSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDdkUsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztZQUVILENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25CLENBQUM7UUFFSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQXJOVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix3WENkbEMsKzhJQXlGVzs7NEZEM0VFLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTTt1SkFPdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGF0VHJlZUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBJdGVyYWJsZUNoYW5nZXMsIEl0ZXJhYmxlRGlmZmVycywgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBGbGF0Tm9kZU5hdkRyYXdlciwgVHJlZU5vZGVOYXZEcmF3ZXIgfSBmcm9tICcuL21vZGVscy9xbXMtbmF2LWRyYXdlci5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU1RyZWVHbG9iYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcW1zLXRyZWUtZ2xvYmFsLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Ftcy1uYXYtZHJhd2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Ftcy1uYXYtZHJhd2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBRTVNOYXZEcmF3ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgcmVhZG9ubHkgc2Nyb2xsSW50b05vZGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuICBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBASW5wdXQoKSB0cmVlRGF0YTogQXJyYXk8VHJlZU5vZGVOYXZEcmF3ZXI+ID0gW107XHJcbiAgQElucHV0KCkgb3Blbk5vZGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGZhdm9yaXRlQWN0aW9uOiBhbnk7XHJcbiAgQElucHV0KCkgYWRkTG9jYXRpb25BY3Rpb246IGFueTtcclxuXHJcbiAgQE91dHB1dCgpIG5vZGVFeHBhbmRFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQ2xpY2tOb2RlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSB1cGRhdGVGYXZvcml0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgYWRkTG9jYXRpb25FdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cclxuICB0cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8RmxhdE5vZGVOYXZEcmF3ZXI+KG5vZGUgPT4gbm9kZS5sZXZlbCwgbm9kZSA9PiBub2RlLmV4cGFuZGFibGUpO1xyXG4gIHRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcih0aGlzLl90cmFuc2Zvcm1lciwgbm9kZSA9PiBub2RlLmxldmVsLCBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSwgbm9kZSA9PiBub2RlLmNoaWxkcmVuKTtcclxuICBkYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSh0aGlzLnRyZWVDb250cm9sLCB0aGlzLnRyZWVGbGF0dGVuZXIpO1xyXG4gIGV4cGFuZGluZ05vZGVzOiBGbGF0Tm9kZU5hdkRyYXdlcltdID0gW107XHJcbiAgYWN0aXZlTm9kZTogc3RyaW5nO1xyXG4gIGd1aWRIZWxwZXIgPSB7XHJcbiAgICBlbXB0eTogJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCdcclxuICB9O1xyXG5cclxuICBpdGVyYWJsZURpZmZlcjtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHFtc05hdkRyYXdlclNlcnZpY2U6IFFNU1RyZWVHbG9iYWxTZXJ2aWNlLCBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBpdGVyYWJsZURpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycykge1xyXG4gICAgdGhpcy5pdGVyYWJsZURpZmZlciA9IGl0ZXJhYmxlRGlmZmVycy5maW5kKFtdKS5jcmVhdGUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBfdHJhbnNmb3JtZXIobm9kZTogVHJlZU5vZGVOYXZEcmF3ZXIsIGxldmVsOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGV4cGFuZGFibGU6ICghIW5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB8fCAoISFub2RlLmNoaWxkQ291bnQpLFxyXG4gICAgICBuYW1lOiBub2RlLm5hbWUsXHJcbiAgICAgIGxldmVsLFxyXG4gICAgICBpZDogbm9kZS5pZCxcclxuICAgICAgcGFyZW50SWQ6IG5vZGUucGFyZW50SWQsXHJcbiAgICAgIGl0ZW1JY29uOiBub2RlLml0ZW1JY29uLFxyXG4gICAgICBpdGVtTWF0SWNvbjogbm9kZS5pdGVtTWF0SWNvbixcclxuICAgICAgaXRlbUljb25Tdmc6IG5vZGUuaXRlbUljb25TdmcsXHJcbiAgICAgIGlzRmlsZTogbm9kZS5pc0ZpbGUsXHJcbiAgICAgIG1hcmtlZEdldENoaWxkcmVuOiBub2RlLm1hcmtlZEdldENoaWxkcmVuLFxyXG4gICAgICBpc0Zhdm9yaXRlOiBub2RlLmlzRmF2b3JpdGVcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IEZsYXROb2RlTmF2RHJhd2VyKSA9PiBub2RlLmV4cGFuZGFibGU7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHJcbiAgICBpZiAoY2hhbmdlcy50cmVlRGF0YSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLnRyZWVEYXRhLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXMudHJlZURhdGEucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLnRyZWVEYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzLm9wZW5Ob2RlcyAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLm9wZW5Ob2Rlcy5jdXJyZW50VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzLm9wZW5Ob2Rlcy5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLmZpbmRBbmRFeHBhbmROb2RlcygpO1xyXG4gICAgICB0aGlzLl9hY3RpdmVOb2RlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucW1zTmF2RHJhd2VyU2VydmljZS5nZXRJdGVtc0NoaWxkcmVuJC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzLmxlbmd0aCkge1xyXG5cclxuICAgICAgICBsZXQgbmV3Tm9kZXNDaGlsZHJlbiA9IFtdO1xyXG5cclxuICAgICAgICByZXMuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50cmVlRGF0YS5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIGl0ZW0gPT4gaXRlbS5pZCA9PT0geC5pZCAmJiBpdGVtLnBhcmVudElkID09PSB4LnBhcmVudElkKTtcclxuICAgICAgICAgIGlmIChpbmRleCA8IDApIHtcclxuICAgICAgICAgICAgbmV3Tm9kZXNDaGlsZHJlbi5wdXNoKHgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBBZGQgY2hpbGRyZW4gdG8gdHJlZURhdGFcclxuICAgICAgICBpZiAobmV3Tm9kZXNDaGlsZHJlbi5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMudHJlZURhdGEgPSBbLi4udGhpcy50cmVlRGF0YSwgLi4ubmV3Tm9kZXNDaGlsZHJlbl07XHJcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMuY29udmVydFRyZWVEYXRhKHRoaXMudHJlZURhdGEpO1xyXG4gICAgICAgICAgdGhpcy5maW5kQW5kRXhwYW5kTm9kZXModHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMuZm9yRWFjaChub2RlID0+IHtcclxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZmluZEluZGV4KHggPT4geC5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiB4LmlkID09PSBub2RlLmlkKTtcclxuICAgICAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2luZGV4XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgdGhpcy5zY3JvbGxJbnRvTm9kZSQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXQtdHJlZS1ub2RlLmFjdGl2ZScpO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCAyMDApO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hY3RpdmVOb2RlKCkge1xyXG4gICAgY29uc3QgY3Vyck5vZGUgPSB0aGlzLm9wZW5Ob2Rlc1t0aGlzLm9wZW5Ob2Rlcy5sZW5ndGggLSAxXTtcclxuICAgIGNvbnN0IGlkeFBhcmVudCA9IHRoaXMub3Blbk5vZGVzLmxlbmd0aCA+PSAyID8gdGhpcy5vcGVuTm9kZXMubGVuZ3RoIC0gMiA6ICcnO1xyXG4gICAgY29uc3QgcGFyZW50Tm9kZSA9IGlkeFBhcmVudCAhPT0gJycgPyB0aGlzLm9wZW5Ob2Rlc1tpZHhQYXJlbnRdIDogJyc7XHJcbiAgICB0aGlzLmFjdGl2ZU5vZGUgPSB0aGlzLmdldEFjdGl2ZU5vZGUoY3Vyck5vZGUsIHBhcmVudE5vZGUpO1xyXG4gICAgdGhpcy5zY3JvbGxJbnRvTm9kZSQubmV4dCh0aGlzLmFjdGl2ZU5vZGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZlTm9kZShpZCwgcGFyZW50SWQpIHtcclxuICAgIGNvbnN0IF9pZCA9IGlkID8gaWQgOiAnJztcclxuICAgIGNvbnN0IF9wYXJlbnRJZCA9IHBhcmVudElkICYmIChwYXJlbnRJZCAhPT0gdGhpcy5ndWlkSGVscGVyLmVtcHR5KSA/IHBhcmVudElkIDogJyc7XHJcbiAgICByZXR1cm4gYCR7X2lkfS0ke19wYXJlbnRJZH1gO1xyXG4gIH1cclxuXHJcbiAgZmluZEFuZEV4cGFuZE5vZGVzKGV4cGFuZE5ld0NoaWxkOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5vcGVuTm9kZXMuZm9yRWFjaChlbCA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldLmlkID09PSBlbCkge1xyXG4gICAgICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5wdXNoKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2FjdGl2ZU5vZGUoKTtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25DbGlja05vZGUobm9kZTogRmxhdE5vZGVOYXZEcmF3ZXIpIHtcclxuICAgIHRoaXMuYWN0aXZlTm9kZSA9IHRoaXMuZ2V0QWN0aXZlTm9kZShub2RlLmlkLCBub2RlLnBhcmVudElkKTtcclxuICAgIHRoaXMub25DbGlja05vZGVFdmVudC5lbWl0KG5vZGUpO1xyXG4gICAgdGhpcy5zY3JvbGxJbnRvTm9kZSQubmV4dCh0aGlzLmFjdGl2ZU5vZGUpO1xyXG4gIH1cclxuXHJcbiAgb25FeHBhbmROb2RlKG5vZGU6IEZsYXROb2RlTmF2RHJhd2VyKSB7XHJcbiAgICB0aGlzLm9wZW5Ob2RlcyA9IFtdO1xyXG4gICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSkge1xyXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcclxuICAgICAgdGhpcy5fYWRkRXhwYW5kaW5nTm9kZShub2RlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuY29sbGFwc2Uobm9kZSk7XHJcbiAgICAgIHRoaXMuX3JlbW92ZUV4cGFuZGluZ05vZGVzKG5vZGUuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghbm9kZS5tYXJrZWRHZXRDaGlsZHJlbikge1xyXG4gICAgICBub2RlLm1hcmtlZEdldENoaWxkcmVuID0gdHJ1ZTtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICBpZiAoeC5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiB4LmlkID09PSBub2RlLmlkKSB7XHJcbiAgICAgICAgICB4Lm1hcmtlZEdldENoaWxkcmVuID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm5vZGVFeHBhbmRFdmVudC5lbWl0KHsgbm9kZSwgaXNFeHBhbmQ6IHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZUZhdm9yaXRlKG5vZGU6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgbm9kZS5pc0Zhdm9yaXRlID0gIW5vZGUuaXNGYXZvcml0ZTtcclxuICAgIHRoaXMudXBkYXRlRmF2b3JpdGVFdmVudC5lbWl0KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgYWRkTG9jYXRpb24obm9kZTogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmFkZExvY2F0aW9uRXZlbnQuZW1pdChub2RlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FkZEV4cGFuZGluZ05vZGUobm9kZTogRmxhdE5vZGVOYXZEcmF3ZXIpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5leHBhbmRpbmdOb2Rlcy5zb21lKHggPT4geC5pZCA9PT0gbm9kZS5pZCkpIHtcclxuICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5wdXNoKG5vZGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVtb3ZlRXhwYW5kaW5nTm9kZXMobm9kZUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMgPSB0aGlzLmV4cGFuZGluZ05vZGVzLmZpbHRlcih4ID0+IHguaWQgIT09IG5vZGVJZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRUcmVlRGF0YShsaXN0KSB7XHJcbiAgICBsZXQgbWFwID0ge30sIG5vZGUsIHJvb3RzID0gW10sIGk7XHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICBtYXBbYCR7bGlzdFtpXS5pZH0tJHtsaXN0W2ldLnBhcmVudElkfWBdID0gaSAvLyBpbml0aWFsaXplIHRoZSBtYXBcclxuICAgICAgbGlzdFtpXS5jaGlsZHJlbiA9IFtdOyAvLyBpbml0aWFsaXplIHRoZSBjaGlsZHJlblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICBub2RlID0gbGlzdFtpXTtcclxuICAgICAgY29uc3Qgc3RyS2V5ID0gYCR7bGlzdFtpXS5pZH0tJHtsaXN0W2ldLnBhcmVudElkfWA7XHJcblxyXG4gICAgICBpZiAobm9kZS5wYXJlbnRJZCAmJiAobm9kZS5wYXJlbnRJZCAhPT0gdGhpcy5ndWlkSGVscGVyLmVtcHR5KSAmJiBsaXN0W21hcFtzdHJLZXldXSkge1xyXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGxpc3QuZmlsdGVyKHggPT4geC5pZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiAheC5pc0ZpbGUpWzBdXHJcbiAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByb290cy5wdXNoKG5vZGUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByb290cztcclxuICB9XHJcblxyXG59IiwiPG1hdC10cmVlIGNsYXNzPVwicW1zLW5hdi1kcmF3ZXItY29udGFpbmVyXCIgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIFt0cmVlQ29udHJvbF09XCJ0cmVlQ29udHJvbFwiPlxuICA8IS0tIFRoaXMgaXMgdGhlIHRyZWUgbm9kZSB0ZW1wbGF0ZSBmb3IgbGVhZiBub2RlcyAtLT5cbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIiBtYXRUcmVlTm9kZVRvZ2dsZSBtYXRUcmVlTm9kZVBhZGRpbmcgW25nQ2xhc3NdPVwie1xuICAgICAgYWN0aXZlOiBhY3RpdmVOb2RlID09PSBnZXRBY3RpdmVOb2RlKG5vZGUuaWQsIG5vZGUucGFyZW50SWQpXG4gICAgfVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cbiAgICAgIDxidXR0b24gYXJpYS1sYWJlbD1cImRpc2FibGVkXCIgbWF0LWljb24tYnV0dG9uIGRpc2FibGVkPjwvYnV0dG9uPlxuICAgICAgPGltZyAqbmdJZj1cIm5vZGUuaXRlbUljb25TdmdcIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHR5cGUtaWNvbiBjdXJzb3ItcG9pbnRlclwiIFtzcmNdPVwibm9kZS5pdGVtSWNvblN2Z1wiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrTm9kZShub2RlKVwiIGFsdD1cIkltYWdlIGljb25cIiAvPlxuICAgICAgPHNwYW4gKm5nSWY9XCJub2RlLml0ZW1JY29uXCIgW2NsYXNzXT1cIm5vZGUuaXRlbUljb25cIiBbcW1zVHJhbnNmb3JtSWNvbl09XCJub2RlLml0ZW1JY29uXCJcbiAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCB0eXBlLWljb24gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25DbGlja05vZGUobm9kZSlcIj48L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cIm5vZGUuaXRlbU1hdEljb25cIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkIHR5cGUtaWNvbiBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrTm9kZShub2RlKVwiPnt7XG4gICAgICAgIG5vZGUuaXRlbU1hdEljb24gfX1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5hbWUgY3Vyc29yLXBvaW50ZXIgbXgtMlwiIChjbGljayk9XCJvbkNsaWNrTm9kZShub2RlKVwiPnt7IG5vZGUubmFtZSB9fTwvc3Bhbj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZhdm9yaXRlQWN0aW9uXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tYWN0aW9uXCIgYXJpYS1sYWJlbD1cIkFkZCBvciByZW1vdmUgZmF2b3JpdGVcIiAoY2xpY2spPVwidXBkYXRlRmF2b3JpdGUobm9kZSwgJGV2ZW50KVwiXG4gICAgICAgICAgcW1zLWJ0bi1pY29uIGNvbG9yPVwibGlnaHRcIlxuICAgICAgICAgIHFtcy10b29sLXRpcD1cInt7bm9kZS5pc0Zhdm9yaXRlID8gZmF2b3JpdGVBY3Rpb24udG9vbHRpcFJlbW92ZUZhdm9yaXRlIDogZmF2b3JpdGVBY3Rpb24udG9vbHRpcEFkZEZhdm9yaXRlfX1cIlxuICAgICAgICAgIG1vZGU9XCJkYXJrXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIiBbbmdDbGFzc109XCJ7J3ByaW1hcnknOiBub2RlLmlzRmF2b3JpdGV9XCI+XG4gICAgICAgICAgICB7e25vZGUuaXNGYXZvcml0ZSA/ICdzdGFyJyA6ICdzdGFyX291dGxpbmUnIH19XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZExvY2F0aW9uQWN0aW9uXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tYWN0aW9uXCIgYXJpYS1sYWJlbD1cIkFkZCBsb2NhdGlvblwiIChjbGljayk9XCJhZGRMb2NhdGlvbihub2RlLCAkZXZlbnQpXCIgcW1zLWJ0bi1pY29uXG4gICAgICAgICAgY29sb3I9XCJsaWdodFwiIHFtcy10b29sLXRpcD1cInt7YWRkTG9jYXRpb25BY3Rpb24udG9vbHRpcEFkZExvY2F0aW9ufX1cIiBtb2RlPVwiZGFya1wiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+XG4gICAgICAgICAgICBhZGRcbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPC9kaXY+XG5cblxuICA8L21hdC10cmVlLW5vZGU+XG4gIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBleHBhbmRhYmxlIG5vZGVzIC0tPlxuICA8bWF0LXRyZWUtbm9kZSAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTsgd2hlbjogaGFzQ2hpbGRcIiBtYXRUcmVlTm9kZVBhZGRpbmcgW25nQ2xhc3NdPVwie1xuICAgICAgJ2V4cGFuZC1ub2RlJzogdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSxcbiAgICAgICdjb2xsYXBzZS1ub2RlJzogIXRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSksXG4gICAgICBhY3RpdmU6IGFjdGl2ZU5vZGUgPT09IGdldEFjdGl2ZU5vZGUobm9kZS5pZCwgbm9kZS5wYXJlbnRJZClcbiAgICB9XCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB3LTEwMFwiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIlRvZ2dsZSBleHBhbmRcIiAoY2xpY2spPVwib25FeHBhbmROb2RlKG5vZGUpXCIgbWF0VHJlZU5vZGVUb2dnbGU+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5cbiAgICAgICAgICB7eyB0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gXCJleHBhbmRfbW9yZVwiIDogXCJjaGV2cm9uX3JpZ2h0XCIgfX1cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8aW1nICpuZ0lmPVwibm9kZS5pdGVtSWNvblN2Z1wiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgdHlwZS1pY29uIGN1cnNvci1wb2ludGVyXCIgW3NyY109XCJub2RlLml0ZW1JY29uU3ZnXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tOb2RlKG5vZGUpXCIgYWx0PVwiSW1hZ2UgaWNvblwiIC8+XG4gICAgICA8c3BhbiAqbmdJZj1cIm5vZGUuaXRlbUljb25cIiBbY2xhc3NdPVwibm9kZS5pdGVtSWNvblwiIFtxbXNUcmFuc2Zvcm1JY29uXT1cIm5vZGUuaXRlbUljb25cIlxuICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkIHR5cGUtaWNvbiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvbkNsaWNrTm9kZShub2RlKVwiPjwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwibm9kZS5pdGVtTWF0SWNvblwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgdHlwZS1pY29uIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tOb2RlKG5vZGUpXCI+e3tcbiAgICAgICAgbm9kZS5pdGVtTWF0SWNvbiB9fVxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtbmFtZSBjdXJzb3ItcG9pbnRlciBteC0yXCIgKGNsaWNrKT1cIm9uQ2xpY2tOb2RlKG5vZGUpXCI+e3sgbm9kZS5uYW1lIH19PC9zcGFuPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmF2b3JpdGVBY3Rpb25cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1hY3Rpb25cIiBhcmlhLWxhYmVsPVwiQWRkIG9yIHJlbW92ZSBmYXZvcml0ZVwiIChjbGljayk9XCJ1cGRhdGVGYXZvcml0ZShub2RlLCAkZXZlbnQpXCJcbiAgICAgICAgICBxbXMtYnRuLWljb24gY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgcW1zLXRvb2wtdGlwPVwie3tub2RlLmlzRmF2b3JpdGUgPyBmYXZvcml0ZUFjdGlvbi50b29sdGlwUmVtb3ZlRmF2b3JpdGUgOiBmYXZvcml0ZUFjdGlvbi50b29sdGlwQWRkRmF2b3JpdGV9fVwiXG4gICAgICAgICAgbW9kZT1cImRhcmtcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiIFtuZ0NsYXNzXT1cInsncHJpbWFyeSc6IG5vZGUuaXNGYXZvcml0ZX1cIj5cbiAgICAgICAgICAgIHt7bm9kZS5pc0Zhdm9yaXRlID8gJ3N0YXInIDogJ3N0YXJfb3V0bGluZScgfX1cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWRkTG9jYXRpb25BY3Rpb25cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1hY3Rpb25cIiBhcmlhLWxhYmVsPVwiQWRkIGxvY2F0aW9uXCIgKGNsaWNrKT1cImFkZExvY2F0aW9uKG5vZGUsICRldmVudClcIiBxbXMtYnRuLWljb25cbiAgICAgICAgICBjb2xvcj1cImxpZ2h0XCIgcW1zLXRvb2wtdGlwPVwie3thZGRMb2NhdGlvbkFjdGlvbi50b29sdGlwQWRkTG9jYXRpb259fVwiIG1vZGU9XCJkYXJrXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgIGFkZFxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXRyZWUtbm9kZT5cbjwvbWF0LXRyZWU+Il19
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3Ftcy1uYXYtZHJhd2VyL3Ftcy1uYXYtZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9xbXMtbmF2LWRyYXdlci9xbXMtbmF2LWRyYXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBa0UsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNsTSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFVM0MsTUFBTSxPQUFPLHFCQUFxQjtJQTBCaEMsWUFBbUIsbUJBQXlDLEVBQVUsS0FBd0IsRUFBVSxlQUFnQztRQUFySCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUF4Qi9ILG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDM0Qsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNCLGFBQVEsR0FBNkIsRUFBRSxDQUFDO1FBQ3hDLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFJeEIsb0JBQWUsR0FB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TSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNwRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN2RSxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBRUgsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsQ0FBQztRQUVILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7K0dBek5VLHFCQUFxQjttR0FBckIscUJBQXFCLHdYQ2RsQywrOElBeUZXOzs0RkQzRUUscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNO3VKQU90QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIEl0ZXJhYmxlQ2hhbmdlcywgSXRlcmFibGVEaWZmZXJzLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VHJlZUZsYXREYXRhU291cmNlLCBNYXRUcmVlRmxhdHRlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZsYXROb2RlTmF2RHJhd2VyLCBUcmVlTm9kZU5hdkRyYXdlciB9IGZyb20gJy4vbW9kZWxzL3Ftcy1uYXYtZHJhd2VyLm1vZGVsJztcclxuaW1wb3J0IHsgUU1TVHJlZUdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xbXMtdHJlZS1nbG9iYWwuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncW1zLW5hdi1kcmF3ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9xbXMtbmF2LWRyYXdlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcW1zLW5hdi1kcmF3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFFNU05hdkRyYXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICByZWFkb25seSBzY3JvbGxJbnRvTm9kZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG4gIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIEBJbnB1dCgpIHRyZWVEYXRhOiBBcnJheTxUcmVlTm9kZU5hdkRyYXdlcj4gPSBbXTtcclxuICBASW5wdXQoKSBvcGVuTm9kZXM6IHN0cmluZ1tdID0gW107XHJcbiAgQElucHV0KCkgZmF2b3JpdGVBY3Rpb246IGFueTtcclxuICBASW5wdXQoKSBhZGRMb2NhdGlvbkFjdGlvbjogYW55O1xyXG5cclxuICBAT3V0cHV0KCkgbm9kZUV4cGFuZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25DbGlja05vZGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHVwZGF0ZUZhdm9yaXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBhZGRMb2NhdGlvbkV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblxyXG4gIHRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxGbGF0Tm9kZU5hdkRyYXdlcj4obm9kZSA9PiBub2RlLmxldmVsLCBub2RlID0+IG5vZGUuZXhwYW5kYWJsZSk7XHJcbiAgdHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKHRoaXMuX3RyYW5zZm9ybWVyLCBub2RlID0+IG5vZGUubGV2ZWwsIG5vZGUgPT4gbm9kZS5leHBhbmRhYmxlLCBub2RlID0+IG5vZGUuY2hpbGRyZW4pO1xyXG4gIGRhdGFTb3VyY2UgPSBuZXcgTWF0VHJlZUZsYXREYXRhU291cmNlKHRoaXMudHJlZUNvbnRyb2wsIHRoaXMudHJlZUZsYXR0ZW5lcik7XHJcbiAgZXhwYW5kaW5nTm9kZXM6IEZsYXROb2RlTmF2RHJhd2VyW10gPSBbXTtcclxuICBhY3RpdmVOb2RlOiBzdHJpbmc7XHJcbiAgZ3VpZEhlbHBlciA9IHtcclxuICAgIGVtcHR5OiAnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJ1xyXG4gIH07XHJcblxyXG4gIGl0ZXJhYmxlRGlmZmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcW1zTmF2RHJhd2VyU2VydmljZTogUU1TVHJlZUdsb2JhbFNlcnZpY2UsIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGl0ZXJhYmxlRGlmZmVyczogSXRlcmFibGVEaWZmZXJzKSB7XHJcbiAgICB0aGlzLml0ZXJhYmxlRGlmZmVyID0gaXRlcmFibGVEaWZmZXJzLmZpbmQoW10pLmNyZWF0ZShudWxsKTtcclxuICB9XHJcblxyXG4gIF90cmFuc2Zvcm1lcihub2RlOiBUcmVlTm9kZU5hdkRyYXdlciwgbGV2ZWw6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXhwYW5kYWJsZTogKCEhbm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHx8ICghIW5vZGUuY2hpbGRDb3VudCksXHJcbiAgICAgIG5hbWU6IG5vZGUubmFtZSxcclxuICAgICAgbGV2ZWwsXHJcbiAgICAgIGlkOiBub2RlLmlkLFxyXG4gICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZCxcclxuICAgICAgaXRlbUljb246IG5vZGUuaXRlbUljb24sXHJcbiAgICAgIGl0ZW1NYXRJY29uOiBub2RlLml0ZW1NYXRJY29uLFxyXG4gICAgICBpdGVtSWNvblN2Zzogbm9kZS5pdGVtSWNvblN2ZyxcclxuICAgICAgaXNGaWxlOiBub2RlLmlzRmlsZSxcclxuICAgICAgbWFya2VkR2V0Q2hpbGRyZW46IG5vZGUubWFya2VkR2V0Q2hpbGRyZW4sXHJcbiAgICAgIGlzRmF2b3JpdGU6IG5vZGUuaXNGYXZvcml0ZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGhhc0NoaWxkID0gKF86IG51bWJlciwgbm9kZTogRmxhdE5vZGVOYXZEcmF3ZXIpID0+IG5vZGUuZXhwYW5kYWJsZTtcclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG5cclxuICAgIGlmIChjaGFuZ2VzLnRyZWVEYXRhICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMudHJlZURhdGEuY3VycmVudFZhbHVlKSAhPT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlcy50cmVlRGF0YS5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMudHJlZURhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMub3Blbk5vZGVzICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXMub3Blbk5vZGVzLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXMub3Blbk5vZGVzLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuZmluZEFuZEV4cGFuZE5vZGVzKCk7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZU5vZGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5xbXNOYXZEcmF3ZXJTZXJ2aWNlLmdldEl0ZW1zQ2hpbGRyZW4kLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMubGVuZ3RoKSB7XHJcblxyXG4gICAgICAgIGxldCBuZXdOb2Rlc0NoaWxkcmVuID0gW107XHJcblxyXG4gICAgICAgIHJlcy5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnRyZWVEYXRhLmZpbmRJbmRleChcclxuICAgICAgICAgICAgaXRlbSA9PiBpdGVtLmlkID09PSB4LmlkICYmIGl0ZW0ucGFyZW50SWQgPT09IHgucGFyZW50SWQpO1xyXG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xyXG4gICAgICAgICAgICBuZXdOb2Rlc0NoaWxkcmVuLnB1c2goeCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEFkZCBjaGlsZHJlbiB0byB0cmVlRGF0YVxyXG4gICAgICAgIGlmIChuZXdOb2Rlc0NoaWxkcmVuLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy50cmVlRGF0YSA9IFsuLi50aGlzLnRyZWVEYXRhLCAuLi5uZXdOb2Rlc0NoaWxkcmVuXTtcclxuICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5jb252ZXJ0VHJlZURhdGEodGhpcy50cmVlRGF0YSk7XHJcbiAgICAgICAgICB0aGlzLmZpbmRBbmRFeHBhbmROb2Rlcyh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kSW5kZXgoeCA9PiB4LnBhcmVudElkID09PSBub2RlLnBhcmVudElkICYmIHguaWQgPT09IG5vZGUuaWQpO1xyXG4gICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaW5kZXhdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLnNjcm9sbEludG9Ob2RlJC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1hdC10cmVlLW5vZGUuYWN0aXZlJyk7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDIwMCk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FjdGl2ZU5vZGUoKSB7XHJcbiAgICBjb25zdCBjdXJyTm9kZSA9IHRoaXMub3Blbk5vZGVzW3RoaXMub3Blbk5vZGVzLmxlbmd0aCAtIDFdO1xyXG4gICAgY29uc3QgaWR4UGFyZW50ID0gdGhpcy5vcGVuTm9kZXMubGVuZ3RoID49IDIgPyB0aGlzLm9wZW5Ob2Rlcy5sZW5ndGggLSAyIDogJyc7XHJcbiAgICBjb25zdCBwYXJlbnROb2RlID0gaWR4UGFyZW50ICE9PSAnJyA/IHRoaXMub3Blbk5vZGVzW2lkeFBhcmVudF0gOiAnJztcclxuICAgIHRoaXMuYWN0aXZlTm9kZSA9IHRoaXMuZ2V0QWN0aXZlTm9kZShjdXJyTm9kZSwgcGFyZW50Tm9kZSk7XHJcbiAgICB0aGlzLnNjcm9sbEludG9Ob2RlJC5uZXh0KHRoaXMuYWN0aXZlTm9kZSk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmVOb2RlKGlkLCBwYXJlbnRJZCkge1xyXG4gICAgY29uc3QgX2lkID0gaWQgPyBpZCA6ICcnO1xyXG4gICAgY29uc3QgX3BhcmVudElkID0gcGFyZW50SWQgJiYgKHBhcmVudElkICE9PSB0aGlzLmd1aWRIZWxwZXIuZW1wdHkpID8gcGFyZW50SWQgOiAnJztcclxuICAgIHJldHVybiBgJHtfaWR9LSR7X3BhcmVudElkfWA7XHJcbiAgfVxyXG5cclxuICBmaW5kQW5kRXhwYW5kTm9kZXMoZXhwYW5kTmV3Q2hpbGQ6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICB0aGlzLm9wZW5Ob2Rlcy5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgICBpZiAodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0uaWQgPT09IGVsKSB7XHJcbiAgICAgICAgICB0aGlzLmV4cGFuZGluZ05vZGVzLnB1c2godGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fYWN0aXZlTm9kZSgpO1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrTm9kZShub2RlOiBGbGF0Tm9kZU5hdkRyYXdlcikge1xyXG4gICAgdGhpcy5hY3RpdmVOb2RlID0gdGhpcy5nZXRBY3RpdmVOb2RlKG5vZGUuaWQsIG5vZGUucGFyZW50SWQpO1xyXG4gICAgdGhpcy50cmVlQ29udHJvbC5jb2xsYXBzZUFsbCgpO1xyXG5cclxuICAgIHRoaXMub25DbGlja05vZGVFdmVudC5lbWl0KG5vZGUpO1xyXG4gICAgdGhpcy5zY3JvbGxJbnRvTm9kZSQubmV4dCh0aGlzLmFjdGl2ZU5vZGUpO1xyXG4gIH1cclxuXHJcbiAgb25FeHBhbmROb2RlKG5vZGU6IEZsYXROb2RlTmF2RHJhd2VyKSB7XHJcbiAgICB0aGlzLnRyZWVDb250cm9sLnRvZ2dsZShub2RlKTtcclxuXHJcbiAgICB0aGlzLm9wZW5Ob2RlcyA9IFtdO1xyXG4gICAgaWYgKHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSkge1xyXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcclxuICAgICAgdGhpcy5fYWRkRXhwYW5kaW5nTm9kZShub2RlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuY29sbGFwc2Uobm9kZSk7XHJcbiAgICAgIHRoaXMuX3JlbW92ZUV4cGFuZGluZ05vZGVzKG5vZGUuaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghbm9kZS5tYXJrZWRHZXRDaGlsZHJlbikge1xyXG4gICAgICBub2RlLm1hcmtlZEdldENoaWxkcmVuID0gdHJ1ZTtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICBpZiAoeC5wYXJlbnRJZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiB4LmlkID09PSBub2RlLmlkKSB7XHJcbiAgICAgICAgICB4Lm1hcmtlZEdldENoaWxkcmVuID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm5vZGVFeHBhbmRFdmVudC5lbWl0KHsgbm9kZSwgaXNFeHBhbmQ6IHRoaXMudHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZUZhdm9yaXRlKG5vZGU6IGFueSwgZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgbm9kZS5pc0Zhdm9yaXRlID0gIW5vZGUuaXNGYXZvcml0ZTtcclxuICAgIHRoaXMudXBkYXRlRmF2b3JpdGVFdmVudC5lbWl0KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgYWRkTG9jYXRpb24obm9kZTogYW55LCBldmVudDogYW55KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmFkZExvY2F0aW9uRXZlbnQuZW1pdChub2RlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FkZEV4cGFuZGluZ05vZGUobm9kZTogRmxhdE5vZGVOYXZEcmF3ZXIpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5leHBhbmRpbmdOb2Rlcy5zb21lKHggPT4geC5pZCA9PT0gbm9kZS5pZCkpIHtcclxuICAgICAgdGhpcy5leHBhbmRpbmdOb2Rlcy5wdXNoKG5vZGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVtb3ZlRXhwYW5kaW5nTm9kZXMobm9kZUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZXhwYW5kaW5nTm9kZXMgPSB0aGlzLmV4cGFuZGluZ05vZGVzLmZpbHRlcih4ID0+IHguaWQgIT09IG5vZGVJZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRUcmVlRGF0YShsaXN0KSB7XHJcbiAgICBsZXQgbWFwID0ge30sIG5vZGUsIHJvb3RzID0gW10sIGk7XHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICBtYXBbYCR7bGlzdFtpXS5pZH0tJHtsaXN0W2ldLnBhcmVudElkfWBdID0gaSAvLyBpbml0aWFsaXplIHRoZSBtYXBcclxuICAgICAgbGlzdFtpXS5jaGlsZHJlbiA9IFtdOyAvLyBpbml0aWFsaXplIHRoZSBjaGlsZHJlblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkgKz0gMSkge1xyXG4gICAgICBub2RlID0gbGlzdFtpXTtcclxuICAgICAgY29uc3Qgc3RyS2V5ID0gYCR7bGlzdFtpXS5pZH0tJHtsaXN0W2ldLnBhcmVudElkfWA7XHJcblxyXG4gICAgICBpZiAobm9kZS5wYXJlbnRJZCAmJiAobm9kZS5wYXJlbnRJZCAhPT0gdGhpcy5ndWlkSGVscGVyLmVtcHR5KSAmJiBsaXN0W21hcFtzdHJLZXldXSkge1xyXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IGxpc3QuZmlsdGVyKHggPT4geC5pZCA9PT0gbm9kZS5wYXJlbnRJZCAmJiAheC5pc0ZpbGUpWzBdXHJcbiAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgcGFyZW50LmNoaWxkcmVuLnB1c2gobm9kZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByb290cy5wdXNoKG5vZGUpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByb290cztcclxuICB9XHJcblxyXG59IiwiPG1hdC10cmVlIGNsYXNzPVwicW1zLW5hdi1kcmF3ZXItY29udGFpbmVyXCIgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiIFt0cmVlQ29udHJvbF09XCJ0cmVlQ29udHJvbFwiPlxuICA8IS0tIFRoaXMgaXMgdGhlIHRyZWUgbm9kZSB0ZW1wbGF0ZSBmb3IgbGVhZiBub2RlcyAtLT5cbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIiBtYXRUcmVlTm9kZVRvZ2dsZSBtYXRUcmVlTm9kZVBhZGRpbmcgW25nQ2xhc3NdPVwie1xuICAgICAgYWN0aXZlOiBhY3RpdmVOb2RlID09PSBnZXRBY3RpdmVOb2RlKG5vZGUuaWQsIG5vZGUucGFyZW50SWQpXG4gICAgfVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDBcIj5cbiAgICAgIDxidXR0b24gYXJpYS1sYWJlbD1cImRpc2FibGVkXCIgbWF0LWljb24tYnV0dG9uIGRpc2FibGVkPjwvYnV0dG9uPlxuICAgICAgPGltZyAqbmdJZj1cIm5vZGUuaXRlbUljb25TdmdcIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHR5cGUtaWNvbiBjdXJzb3ItcG9pbnRlclwiIFtzcmNdPVwibm9kZS5pdGVtSWNvblN2Z1wiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrTm9kZShub2RlKVwiIGFsdD1cIkltYWdlIGljb25cIiAvPlxuICAgICAgPHNwYW4gKm5nSWY9XCJub2RlLml0ZW1JY29uXCIgW2NsYXNzXT1cIm5vZGUuaXRlbUljb25cIiBbcW1zVHJhbnNmb3JtSWNvbl09XCJub2RlLml0ZW1JY29uXCJcbiAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZCB0eXBlLWljb24gY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25DbGlja05vZGUobm9kZSlcIj48L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cIm5vZGUuaXRlbU1hdEljb25cIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkIHR5cGUtaWNvbiBjdXJzb3ItcG9pbnRlclwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrTm9kZShub2RlKVwiPnt7XG4gICAgICAgIG5vZGUuaXRlbU1hdEljb24gfX1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5hbWUgY3Vyc29yLXBvaW50ZXIgbXgtMlwiIChjbGljayk9XCJvbkNsaWNrTm9kZShub2RlKVwiPnt7IG5vZGUubmFtZSB9fTwvc3Bhbj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZhdm9yaXRlQWN0aW9uXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tYWN0aW9uXCIgYXJpYS1sYWJlbD1cIkFkZCBvciByZW1vdmUgZmF2b3JpdGVcIiAoY2xpY2spPVwidXBkYXRlRmF2b3JpdGUobm9kZSwgJGV2ZW50KVwiXG4gICAgICAgICAgcW1zLWJ0bi1pY29uIGNvbG9yPVwibGlnaHRcIlxuICAgICAgICAgIHFtcy10b29sLXRpcD1cInt7bm9kZS5pc0Zhdm9yaXRlID8gZmF2b3JpdGVBY3Rpb24udG9vbHRpcFJlbW92ZUZhdm9yaXRlIDogZmF2b3JpdGVBY3Rpb24udG9vbHRpcEFkZEZhdm9yaXRlfX1cIlxuICAgICAgICAgIG1vZGU9XCJkYXJrXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIiBbbmdDbGFzc109XCJ7J3ByaW1hcnknOiBub2RlLmlzRmF2b3JpdGV9XCI+XG4gICAgICAgICAgICB7e25vZGUuaXNGYXZvcml0ZSA/ICdzdGFyJyA6ICdzdGFyX291dGxpbmUnIH19XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkZExvY2F0aW9uQWN0aW9uXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tYWN0aW9uXCIgYXJpYS1sYWJlbD1cIkFkZCBsb2NhdGlvblwiIChjbGljayk9XCJhZGRMb2NhdGlvbihub2RlLCAkZXZlbnQpXCIgcW1zLWJ0bi1pY29uXG4gICAgICAgICAgY29sb3I9XCJsaWdodFwiIHFtcy10b29sLXRpcD1cInt7YWRkTG9jYXRpb25BY3Rpb24udG9vbHRpcEFkZExvY2F0aW9ufX1cIiBtb2RlPVwiZGFya1wiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+XG4gICAgICAgICAgICBhZGRcbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPC9kaXY+XG5cblxuICA8L21hdC10cmVlLW5vZGU+XG4gIDwhLS0gVGhpcyBpcyB0aGUgdHJlZSBub2RlIHRlbXBsYXRlIGZvciBleHBhbmRhYmxlIG5vZGVzIC0tPlxuICA8bWF0LXRyZWUtbm9kZSAqbWF0VHJlZU5vZGVEZWY9XCJsZXQgbm9kZTsgd2hlbjogaGFzQ2hpbGRcIiBtYXRUcmVlTm9kZVBhZGRpbmcgW25nQ2xhc3NdPVwie1xuICAgICAgJ2V4cGFuZC1ub2RlJzogdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSxcbiAgICAgICdjb2xsYXBzZS1ub2RlJzogIXRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSksXG4gICAgICBhY3RpdmU6IGFjdGl2ZU5vZGUgPT09IGdldEFjdGl2ZU5vZGUobm9kZS5pZCwgbm9kZS5wYXJlbnRJZClcbiAgICB9XCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB3LTEwMFwiPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIlRvZ2dsZSBleHBhbmRcIiAoY2xpY2spPVwib25FeHBhbmROb2RlKG5vZGUpXCIgbWF0VHJlZU5vZGVUb2dnbGU+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5cbiAgICAgICAgICB7eyB0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gXCJleHBhbmRfbW9yZVwiIDogXCJjaGV2cm9uX3JpZ2h0XCIgfX1cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8aW1nICpuZ0lmPVwibm9kZS5pdGVtSWNvblN2Z1wiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgdHlwZS1pY29uIGN1cnNvci1wb2ludGVyXCIgW3NyY109XCJub2RlLml0ZW1JY29uU3ZnXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tOb2RlKG5vZGUpXCIgYWx0PVwiSW1hZ2UgaWNvblwiIC8+XG4gICAgICA8c3BhbiAqbmdJZj1cIm5vZGUuaXRlbUljb25cIiBbY2xhc3NdPVwibm9kZS5pdGVtSWNvblwiIFtxbXNUcmFuc2Zvcm1JY29uXT1cIm5vZGUuaXRlbUljb25cIlxuICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkIHR5cGUtaWNvbiBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvbkNsaWNrTm9kZShub2RlKVwiPjwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwibm9kZS5pdGVtTWF0SWNvblwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgdHlwZS1pY29uIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2tOb2RlKG5vZGUpXCI+e3tcbiAgICAgICAgbm9kZS5pdGVtTWF0SWNvbiB9fVxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtbmFtZSBjdXJzb3ItcG9pbnRlciBteC0yXCIgKGNsaWNrKT1cIm9uQ2xpY2tOb2RlKG5vZGUpXCI+e3sgbm9kZS5uYW1lIH19PC9zcGFuPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmF2b3JpdGVBY3Rpb25cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1hY3Rpb25cIiBhcmlhLWxhYmVsPVwiQWRkIG9yIHJlbW92ZSBmYXZvcml0ZVwiIChjbGljayk9XCJ1cGRhdGVGYXZvcml0ZShub2RlLCAkZXZlbnQpXCJcbiAgICAgICAgICBxbXMtYnRuLWljb24gY29sb3I9XCJsaWdodFwiXG4gICAgICAgICAgcW1zLXRvb2wtdGlwPVwie3tub2RlLmlzRmF2b3JpdGUgPyBmYXZvcml0ZUFjdGlvbi50b29sdGlwUmVtb3ZlRmF2b3JpdGUgOiBmYXZvcml0ZUFjdGlvbi50b29sdGlwQWRkRmF2b3JpdGV9fVwiXG4gICAgICAgICAgbW9kZT1cImRhcmtcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1pY29ucy1vdXRsaW5lZFwiIFtuZ0NsYXNzXT1cInsncHJpbWFyeSc6IG5vZGUuaXNGYXZvcml0ZX1cIj5cbiAgICAgICAgICAgIHt7bm9kZS5pc0Zhdm9yaXRlID8gJ3N0YXInIDogJ3N0YXJfb3V0bGluZScgfX1cbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWRkTG9jYXRpb25BY3Rpb25cIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1hY3Rpb25cIiBhcmlhLWxhYmVsPVwiQWRkIGxvY2F0aW9uXCIgKGNsaWNrKT1cImFkZExvY2F0aW9uKG5vZGUsICRldmVudClcIiBxbXMtYnRuLWljb25cbiAgICAgICAgICBjb2xvcj1cImxpZ2h0XCIgcW1zLXRvb2wtdGlwPVwie3thZGRMb2NhdGlvbkFjdGlvbi50b29sdGlwQWRkTG9jYXRpb259fVwiIG1vZGU9XCJkYXJrXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgICAgICAgIGFkZFxuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXRyZWUtbm9kZT5cbjwvbWF0LXRyZWU+Il19
@@ -35574,10 +35574,12 @@ class QMSNavDrawerComponent {
35574
35574
  }
35575
35575
  onClickNode(node) {
35576
35576
  this.activeNode = this.getActiveNode(node.id, node.parentId);
35577
+ this.treeControl.collapseAll();
35577
35578
  this.onClickNodeEvent.emit(node);
35578
35579
  this.scrollIntoNode$.next(this.activeNode);
35579
35580
  }
35580
35581
  onExpandNode(node) {
35582
+ this.treeControl.toggle(node);
35581
35583
  this.openNodes = [];
35582
35584
  if (this.treeControl.isExpanded(node)) {
35583
35585
  this.treeControl.expand(node);