ps-toolkit-ui 1.4.21 → 1.4.22

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.
@@ -358,7 +358,7 @@ export class TableRowComponent {
358
358
  this.table.form.inputs.filter(x => !x.inEditVisible).forEach(x => x.visible = false);
359
359
  }
360
360
  else {
361
- new RequestClass(this.table.environment, this.table.l).send(option.Url.replace('update', 'get').replace('{}', this.row.Data.Id), Method.Post, null, opt, (result) => {
361
+ new RequestClass(this.table.environment, this.table.l).send(option.Url.replace('{}', this.table.permissions.RelatedId).replace('update', 'get').replace('{}', this.row.Data.Id), Method.Post, null, opt, (result) => {
362
362
  this.table.form.name = opt.name;
363
363
  this.table.form.setButtons(this.table.form.onTop, true, this.row.Data.Id);
364
364
  this.table.form.setData(result);
@@ -393,4 +393,4 @@ TableRowComponent.propDecorators = {
393
393
  loadParent: [{ type: Output }],
394
394
  childrenDiv: [{ type: ViewChild, args: ['childrenDiv',] }]
395
395
  };
396
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90YWJsZS9yb3cvdGFibGUucm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxNQUFNLEVBQUUsd0JBQXdCLEVBQ2hDLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixlQUFlLEVBQ2hCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBT2xFLE1BQU0sT0FBTyxpQkFBaUI7SUFxQjVCLFlBQW1CLE9BQWlDO1FBQWpDLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBbkJwRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFekMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFReEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFJeEMsaUJBQVksR0FBZSxJ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QUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ25HLENBQUM7OztZQS9XRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLHEvREFBeUM7O2FBRTFDOzs7WUFSTyx3QkFBd0I7OzswQkFVN0IsTUFBTTt5QkFFTixNQUFNO29CQUVOLEtBQUs7b0JBRUwsS0FBSztrQkFFTCxLQUFLO3lCQUVMLE1BQU07MEJBU04sU0FBUyxTQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHtUYWJsZUNsYXNzLCBUYWJsZUNvbGxDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy90YWJsZS5jbGFzcyc7XHJcbmltcG9ydCB7XHJcbiAgRW51bVV0aWxzLFxyXG4gIElucHV0VHlwZSxcclxuICBNZXRob2QsIFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bSxcclxuICBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLFxyXG4gIFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtLFxyXG4gIFBlcm1pc3Npb25UeXBlRW51bSxcclxuICBUYWJsZUNvbGxUeXBlLFxyXG4gIFRhYmxlT3B0aW9uVHlwZVxyXG59IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtSZXF1ZXN0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7SGVscGVyQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcclxuaW1wb3J0IHtQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge1Blcm1pc3Npb25DbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9wZXJtaXNzaW9uLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlLXJvdycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLnJvdy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUucm93LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVSb3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQE91dHB1dCgpXHJcbiAgY29uZmlybVNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcclxuICBAT3V0cHV0KClcclxuICBjaGFuZ2VSb3dzID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XHJcbiAgQElucHV0KClcclxuICBsZXZlbDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpXHJcbiAgdGFibGU6IFRhYmxlQ2xhc3M7XHJcbiAgQElucHV0KClcclxuICByb3c7XHJcbiAgQE91dHB1dCgpXHJcbiAgbG9hZFBhcmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgZ2V0IHRhYmxlT3B0aW9uVHlwZSgpOiB0eXBlb2YgVGFibGVPcHRpb25UeXBleyByZXR1cm4gVGFibGVPcHRpb25UeXBlOyB9XHJcbiAgb3B0U3RhdHVzOiBJbnB1dENsYXNzO1xyXG4gIHNob3dDaGlsZHJlbjogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgYWRkQ2hpbGRyZW46IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIGNoaWxkcmVuOiBhbnlbXSA9IFtdO1xyXG4gIG9wdGlvbnM6IGFueVtdID0gW107XHJcbiAgQFZpZXdDaGlsZCgnY2hpbGRyZW5EaXYnKSBjaGlsZHJlbkRpdjogRWxlbWVudFJlZjtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogUHNUb29sa2l0VWlDb25maWdTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4pe1xyXG4gICAgICBpZiAoIXRoaXMudGFibGUuY2hpbGRyZW5BdXRvTG9hZCl7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IHRoaXMuZ2V0Q2hpbGRyZW4oKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50YWJsZS5wZXJtaXNzaW9ucy5oYXNBY2Nlc3MoUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLkluc2VydCkpe1xyXG4gICAgICAgIHRoaXMuYWRkQ2hpbGRyZW4gPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsIHRoaXMudGFibGUubmFtZSArICdBZGRTdWJzZXRUaXRsZScsXHJcbiAgICAgICAgICAnZmEtZHVvdG9uZSBmYS1wbHVzIGZhLXJvdGF0ZS05MCcsIElucHV0VHlwZS5JY29uLFxyXG4gICAgICAgICAgJ2dyZWVuIG0taC01IGgtMjUgZC1pYiB2YS1tIGYtdScpO1xyXG4gICAgICAgIHRoaXMuYWRkQ2hpbGRyZW4ub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLm1vZGFsLmhpZGUoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4udHlwZSA9IElucHV0VHlwZS5JY29uO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbih0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLnNob3dJbnNlcnRNb2RhbCh0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2hvd0NoaWxkcmVuID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCB0aGlzLnRhYmxlLm5hbWUgKyAnU3Vic2V0VGl0bGUnLCAnZmEtZHVvdG9uZSBmYS1hbmdsZS1sZWZ0IGYtcy0yMicsXHJcbiAgICAgICAgdGhpcy5yb3cuRGF0YS5Db3VudENoaWxkID4gMCB8fCAoIXRoaXMudGFibGUuY2hpbGRyZW5BdXRvTG9hZCAmJiB0aGlzLmNoaWxkcmVuLmxlbmd0aCA+IDApID8gSW5wdXRUeXBlLkljb24gOiBJbnB1dFR5cGUuSGlkZGVuLCAnaC0yNSBtLWgtNSBkLWliIHZhLW0gZi11Jyk7XHJcbiAgICAgIHRoaXMuc2hvd0NoaWxkcmVuLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCQodGhpcy5jaGlsZHJlbkRpdi5uYXRpdmVFbGVtZW50KS5pcygnOnZpc2libGUnKSl7XHJcbiAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2xpZGVVcCgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYS1kdW90b25lIGZhLWFuZ2xlLWxlZnQgZi1zLTIyJztcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoID09PSAwKXtcclxuICAgICAgICAgIHRoaXMubG9hZENoaWxkcmVuKHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2xpZGVEb3duKCk7XHJcbiAgICAgICAgICB0aGlzLnNob3dDaGlsZHJlbi5pY29uID0gJ2ZhLWR1b3RvbmUgZmEtYW5nbGUtZG93biBmLXMtMjInO1xyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRhYmxlLmhhc1N0YXR1cyl7XHJcbiAgICAgIHRoaXMub3B0U3RhdHVzID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCAnU3RhdHVzJyxcclxuICAgICAgICB0aGlzLnJvdy5EYXRhLkFjdGl2ZSA/ICdmYS10b2dnbGUtb24nIDogJ2ZhLXRvZ2dsZS1vZmYnLCBJbnB1dFR5cGUuSWNvbixcclxuICAgICAgICAnbS1oLTUgaC0yMCAnICsgKHRoaXMucm93LkRhdGEuQWN0aXZlID8gJ2dyZWVuJyA6ICcnKSk7XHJcbiAgICAgIHRoaXMub3B0U3RhdHVzLnJvdyA9IHRoaXMucm93LkRhdGE7XHJcbiAgICAgIHRoaXMub3B0U3RhdHVzLm9uQ2xpY2sgPSAoYnRuKSA9PiB7XHJcbiAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmwpLnNlbmQodGhpcy50YWJsZS51cmwgKyAnL1N0YXR1cy8nICsgYnRuLnJvdy5JZCwgTWV0aG9kLlBvc3QsIG51bGwsIGJ0biwgKHIpID0+IHtcclxuICAgICAgICAgIGJ0bi5jbGFzcyA9ICdtLWgtNSBoLTIwICcgKyAociA/ICdncmVlbicgOiAnJyk7XHJcbiAgICAgICAgICBidG4uaWNvbiA9IHIgPyAnZmEtdG9nZ2xlLW9uJyA6ICdmYS10b2dnbGUtb2ZmJztcclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRhYmxlLnNvcnRhYmxlKXtcclxuICAgICAgdGhpcy5zZXRTb3J0Um93KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldE9wdGlvbnMoKTtcclxuICB9XHJcbiAgbG9hZENoaWxkcmVuKHApOiB2b2lke1xyXG4gICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwpLnNlbmQodGhpcy50YWJsZS51cmwgKyBgLyR7cH1gLCBNZXRob2QuUG9zdCxcclxuICAgICAgbnVsbCwgdGhpcy5zaG93Q2hpbGRyZW4sIChyZXN1bHQpID0+IHtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gcmVzdWx0Lkxpc3Q7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2xpZGVEb3duKCk7XHJcbiAgICAgICAgICB0aGlzLnNob3dDaGlsZHJlbi5pY29uID0gJ2ZhLWR1b3RvbmUgZmEtYW5nbGUtZG93biBmLXMtMjInO1xyXG4gICAgICAgIH0sIDUwKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHNlbGVjdCgpOiB2b2lke1xyXG4gICAgdGhpcy5yb3cuRGF0YS5zZWxlY3RlZCA9ICF0aGlzLnJvdy5EYXRhLnNlbGVjdGVkO1xyXG4gIH1cclxuICBvbkNoYW5nZVJvd3MoZSk6IHZvaWR7XHJcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VSb3dzLmVtaXQoZSk7XHJcbiAgfVxyXG4gIG9uQ29uZmlybVNob3coZSk6IHZvaWR7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maXJtU2hvdy5lbWl0KGUpO1xyXG4gIH1cclxuICBzZXRTb3J0Um93KCk6IHZvaWR7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNvcnRhYmxlKHtcclxuICAgICAgICAgIGF4aXM6ICd5JyxcclxuICAgICAgICAgIGhhbmRsZTogJz4gLnJvdyA+IC5pdGVtLWNvbiA+IC5oYW5kbGUtc29ydGFibGUnLFxyXG4gICAgICAgICAgdXBkYXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBbXTtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc29ydGFibGUoJ3RvQXJyYXknKS5mb3JFYWNoKHggPT4gZGF0YS5wdXNoKHgpKTtcclxuICAgICAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmwpLnNlbmQodGhpcy50YWJsZS51cmwgKyAnL1NvcnQnLCBNZXRob2QuUG9zdCwgZGF0YSwgbnVsbCwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLm9uU29ydCl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLm9uU29ydCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG5cclxuICBzZXRPcHRpb25zKCk6IHZvaWR7XHJcbiAgICBjb25zdCBvcHRzID0gW107XHJcbiAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB0aGlzLnJvdy5PcHRpb25zLmZpbHRlcih4ID0+IHguVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLk9wdGlvbiAmJiB4LklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLklucHV0KSl7XHJcbiAgICAgIGNvbnN0IGlucCA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgbnVsbCwgbnVsbCwgSW5wdXRUeXBlLkNoZWNrLCAnaC0yNSB3aXRob3V0LWJvcmRlciBtLWgtNSBwLTAgdy11JywgdGhpcy5yb3cuRGF0YVtvcHRpb24uQWN0aW9uXSA9PT0gdHJ1ZSk7XHJcbiAgICAgIGlucC5yb3cgPSB0aGlzLnJvdztcclxuICAgICAgaW5wLnRvb2x0aXAgPSBvcHRpb24uTmFtZTtcclxuICAgICAgaW5wLm9uQ2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMucm93LkRhdGFbb3B0aW9uLkFjdGlvbl0gPSAhaW5wLmRhdGEoKTtcclxuICAgICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCkuc2VuZChvcHRpb24udXJsICsgJy8nICsgdGhpcy5yb3cuRGF0YS5JZCwgTWV0aG9kLlBvc3QsIG51bGwsIG51bGwsICgpID0+IHtcclxuICAgICAgICB9KTtcclxuICAgICAgfTtcclxuICAgICAgaW5wLmRpc3BsYXlMYWJlbCA9IGZhbHNlO1xyXG4gICAgICBvcHRzLnB1c2goaW5wKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmFkZENoaWxkcmVuICE9PSBudWxsICYmICh0aGlzLnRhYmxlLmxldmVsID09PSBudWxsIHx8IHRoaXMudGFibGUubGV2ZWwgPiB0aGlzLmxldmVsKSl7XHJcbiAgICAgIG9wdHMucHVzaCh0aGlzLmFkZENoaWxkcmVuKTtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMucm93Lk9wdGlvbnMuZmlsdGVyKHggPT4geC5UeXBlID09PSBQZXJtaXNzaW9uVHlwZUVudW0uT3B0aW9uICYmIHguSW5wdXRBY3Rpb24gIT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uSW5wdXQpKXtcclxuICAgICAgY29uc3Qgb3B0ID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCBvcHRpb24uTmFtZSwgb3B0aW9uLkljb24sXHJcbiAgICAgICAgb3B0aW9uLklucHV0VHlwZSA9PT0gUGVybWlzc2lvbklucHV0VHlwZUVudW0uSWNvbiA/IElucHV0VHlwZS5JY29uIDogSW5wdXRUeXBlLkJ1dHRvbiwgJ2JsdWUgaC0yNSBtLWgtNSBkLWliIHZhLW0gZi11Jyk7XHJcbiAgICAgIG9wdC5yb3cgPSB0aGlzLnJvdztcclxuICAgICAgaWYgKG9wdGlvbi5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uVXBkYXRlKXtcclxuICAgICAgICBpZiAodGhpcy50YWJsZS5mb3JtKXtcclxuICAgICAgICAgIG9wdC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0udXJsID0gb3B0aW9uLlVybC5yZXBsYWNlKCd7fScsIHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkKS5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbiAmJiB0aGlzLnJvdy5EYXRhLlBhcmVudElkICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuY2hpbGRyZW5BdXRvTG9hZCl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZFBhcmVudC5lbWl0KHRoaXMucm93LkRhdGEuUGFyZW50SWQpO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLm9uU3VjY2Vzc0Jhc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFibGUuZm9ybS5vblRvcCl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLmNsZWFyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdChvcHQsIG9wdGlvbik7XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHQudXJsID0gb3B0aW9uLlVybCArICcvJyArIHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uRGVsZXRlKXtcclxuICAgICAgICBvcHQuY2xhc3MgPSBvcHQuY2xhc3MucmVwbGFjZSgnYmx1ZScsICdyZWQnKTtcclxuICAgICAgICBvcHQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uY2xlYXIoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5Gb3JtKXtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5yb3dzID0gdGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+IHguSWQgIT09IHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZVJvd3MuZW1pdCh0aGlzLnJvdy5EYXRhKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybVNob3cuZW1pdCh7dXJsOiBvcHRpb24uVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCksIGFjY2VwdDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4gJiYgdGhpcy50YWJsZS5jaGlsZHJlbkF1dG9Mb2FkICYmIHRoaXMucm93LkRhdGEuUGFyZW50SWQgIT0gbnVsbCApe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRQYXJlbnQuZW1pdCh0aGlzLnJvdy5EYXRhLlBhcmVudElkKTtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9fSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uQWNjZXNzVHlwZSA9PT0gUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLlJlcG9ydCl7XHJcbiAgICAgICAgb3B0LnVybCA9ICcvUmVwb3J0JyArIG9wdGlvbi5VcmwgKyAnLycgKyB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgIG9wdC51cmxOZXdUYWIgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5MaW5rIHx8IG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5MaW5rTmV3VGFiKXtcclxuICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgIG9wdC51cmwgPSBvcHRpb24uVXJsICsgJy8nICsgdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICBvcHQudXJsTmV3VGFiID0gb3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLkxpbmtOZXdUYWI7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLk1vZGFsKXtcclxuICAgICAgICBvcHQubW9kYWwgPSB0aGlzLnRhYmxlLm9wdGlvbnNBY3Rpb25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG9wdGlvbi5BY3Rpb24pO1xyXG4gICAgICAgIG9wdC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKG9wdC5tb2RhbC50YWJsZSl7XHJcbiAgICAgICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgICAgIHAuUmVsYXRlZElkID0gdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgICAgICBwLkNvbnRyb2xsZXIgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAgIHAuQWN0aW9uID0gb3B0aW9uLkFjdGlvbjtcclxuICAgICAgICAgICAgcC5BY2Nlc3NlcyA9IHRoaXMucm93Lk9wdGlvbnMuZmlsdGVyKHggPT4geC5QYXJlbnRJZCA9PT0gb3B0aW9uLklkKTtcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLnRhYmxlLnBlcm1pc3Npb25zID0gcDtcclxuICAgICAgICAgICAgaWYgKG9wdC5tb2RhbC50YWJsZS5mb3JtKXtcclxuICAgICAgICAgICAgICBvcHQubW9kYWwudGFibGUuZm9ybS51cmwgPSBvcHRpb24uVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCkgKyAnLWluc2VydCc7XHJcbiAgICAgICAgICAgICAgb3B0Lm1vZGFsLnRhYmxlLmZvcm0uYmFzZVVybCA9IG9wdGlvbi5VcmwucmVwbGFjZSgne30nLCB0aGlzLnJvdy5EYXRhLklkKSArICctaW5zZXJ0JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBvcHQubW9kYWwudGFibGUuc2V0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob3B0Lm1vZGFsLmZvcm0pe1xyXG4gICAgICAgICAgICBvcHQubW9kYWwuZm9ybS5uYW1lID0gb3B0aW9uLk5hbWU7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC5mb3JtLnVybCA9IG9wdGlvbi5VcmwucmVwbGFjZSgne30nLCB0aGlzLnJvdy5EYXRhLklkKSArICctdXBkYXRlJztcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0ubG9hZERhdGEob3B0aW9uLlVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpICsgJy1nZXQnKTtcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICBvcHQubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKG9wdC5tb2RhbC5hY2NvcmRpb24pe1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHIgb2Ygb3B0Lm1vZGFsLmFjY29yZGlvbi5yb3dzKXtcclxuICAgICAgICAgICAgICBpZiAoci50YWJsZSl7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgICAgICAgICAgcC5Db250cm9sbGVyID0gb3B0aW9uLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAgICAgICBwLkFjdGlvbiA9IHIubmFtZTtcclxuICAgICAgICAgICAgICAgIHAuQWNjZXNzZXMgPSB0aGlzLnJvdy5PcHRpb25zLmZpbHRlcih4ID0+IHguUGFyZW50SWQgPT09IG9wdGlvbi5JZCk7XHJcbiAgICAgICAgICAgICAgICByLnRhYmxlLnBlcm1pc3Npb25zID0gcDtcclxuICAgICAgICAgICAgICAgIGlmIChyLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICAgICAgICByLnRhYmxlLmZvcm0udXJsID0gb3B0aW9uLlVybCArICdpbnNlcnQnO1xyXG4gICAgICAgICAgICAgICAgICByLnRhYmxlLmZvcm0uYmFzZVVybCA9IG9wdGlvbi5VcmwgKyAnaW5zZXJ0JztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHIudGFibGUuc2V0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uRmlsZSl7XHJcbiAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICBwLlJlbGF0ZWRJZCA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkO1xyXG4gICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICBwLkNvbnRyb2xsZXIgPSBvcHRpb24uQ29udHJvbGxlcjtcclxuICAgICAgICBwLkFjdGlvbiA9IG9wdGlvbi5BY3Rpb247XHJcbiAgICAgICAgb3B0LnVybCA9ICcvRmlsZScgKyBvcHRpb24uVXJsICsgJy8nICsgdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICBvcHQudXJsTmV3VGFiID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uQ29uZmlybSl7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZDtcclxuICAgICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zaG93Q29uZmlybSh0aGlzLnRhYmxlLmwob3B0aW9uLkFjdGlvbiArICdDb25maXJtJyksIG9wdGlvbi5VcmwgKyAnLycgKyB0aGlzLnJvdy5EYXRhLklkLCBudWxsLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uT25DbGljayl7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoYnRuKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLm9wdGlvbnNBY3Rpb25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG9wdGlvbi5BY3Rpb24pLm9uQ2xpY2soYnRuKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIG9wdHMucHVzaChvcHQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vcHRpb25zID0gb3B0cztcclxuICAgIC8vIHJldHVybiAodGhpcy5hZGRDaGlsZHJlbiAhPT0gbnVsbCAmJiAodGhpcy50YWJsZS5sZXZlbCA9PT0gbnVsbCB8fCB0aGlzLnRhYmxlLmxldmVsID4gdGhpcy5sZXZlbCkgPyBbdGhpcy5hZGRDaGlsZHJlbl0gOiBbXSlcclxuICAgIC8vICAgLmNvbmNhdCh0aGlzLnRhYmxlLm9wdGlvbnMuZmlsdGVyKHggPT4geC5jb25kaXRpb24gPT0gbnVsbCB8fFxyXG4gICAgLy8gICAgICh4LmNvbmRpdGlvbi5zdGFydHNXaXRoKCchJykgPyAhdGhpcy5yb3cuRGF0YVt4LmNvbmRpdGlvbi5zdWJzdHJpbmcoMSldIDogdGhpcy5yb3cuRGF0YVt4LmNvbmRpdGlvbl0pKS5tYXAoKG8pID0+IHtcclxuICAgIC8vICAgICBjb25zdCBpID0gSGVscGVyQ2xhc3MuY2xvbmUobyk7XHJcbiAgICAvLyAgICAgaWYgKGkudXJsKXtcclxuICAgIC8vICAgICAgIGkudXJsID0gaS51cmwucmVwbGFjZSgne30nLCB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgaS5yb3cgPSB0aGlzLnJvdy5EYXRhO1xyXG4gICAgLy8gICAgIGkuY2xhc3MgPSBpLmNsYXNzICsgJyBtLWgtNSBoLTI1IGQtaWIgdmEtbSBmLXUnO1xyXG4gICAgLy8gICAgIHJldHVybiBpO1xyXG4gICAgLy8gfSkpLmNvbmNhdCh0aGlzLnRhYmxlLmhhc1N0YXR1cyA/IFt0aGlzLm9wdFN0YXR1c10gOiBbXSlcclxuICAgIC8vICAgICAuY29uY2F0KHRoaXMudGFibGUucGVybWlzc2lvbnMuaGFzQWNjZXNzKCdVcGRhdGUnKSA/IFt0aGlzLm9wdEVkaXRdIDogW10pXHJcbiAgICAvLyAgICAgLmNvbmNhdCh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLmhhc0FjY2VzcygnRGVsZXRlJykgPyBbdGhpcy5vcHREZWxldGVdIDogW10pO1xyXG4gIH1cclxuICBnZXRDZWxsKGNvbDogVGFibGVDb2xsQ2xhc3MpOiBhbnl7XHJcbiAgICBjb25zb2xlLmxvZygnZ2V0Q2VsbCcpO1xyXG4gICAgY29uc3QgY3YgPSBfLmdldCh0aGlzLnJvdy5EYXRhLCBjb2wubmFtZSk7XHJcbiAgICBpZiAoY29sLmZ1biAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBjb2wuZnVuKHRoaXMucm93LkRhdGEpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wuZW51bSAhPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50YWJsZS5sKEVudW1VdGlscy5nZXRLZXlCeVZhbHVlKGNvbC5lbnVtLCBjdikpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5EYXRlRGlmKSB7XHJcbiAgICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXREYXRlRGlmKHRoaXMudGFibGUubCwgY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5EYXRlKSB7XHJcbiAgICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXREYXRlKGN2KTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuRGF0ZVRpbWUpIHtcclxuICAgICAgcmV0dXJuIEhlbHBlckNsYXNzLmdldERhdGVUaW1lKGN2KTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuVGltZSkge1xyXG4gICAgICByZXR1cm4gSGVscGVyQ2xhc3MuZ2V0VGltZShjdik7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkNvbG9yKSB7XHJcbiAgICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImNvbG9yXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiAnICsgY3YgKyAnOyBjb2xvcjogJyArIEhlbHBlckNsYXNzLmdldENvbG9yQnlCZ0NvbG9yKGN2KSArICdcIj4nICsgY3YgKyAnPC9kaXY+JztcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuVXJsKSB7XHJcbiAgICAgIHJldHVybiAnPGEgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJsdHJcIiBocmVmPVwiJyArIGN2ICsgJ1wiPicgKyBjdiArICc8L2E+JztcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuSW1hZ2UpIHtcclxuICAgICAgcmV0dXJuICc8aW1nIGNsYXNzPVwiaC0xMDBcIiBhbHQ9XCJcIiBzcmM9XCInICsgdGhpcy5zZXJ2aWNlLmVudmlyb25tZW50LnVybCArIGN2ICsgJ1wiLz4nO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5GaWxlU2l6ZSkge1xyXG4gICAgICByZXR1cm4gSGVscGVyQ2xhc3MuZ2V0RmlsZVNpemUoY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5QcmljZSkge1xyXG4gICAgICByZXR1cm4gY3YudG9Mb2NhbGVTdHJpbmcoKSArICcgJyArIHRoaXMudGFibGUubCgnUmlhbCcpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5QbGFxdWUpIHtcclxuICAgICAgY29uc3QgcGFydHMgPSBjdi5zcGxpdCgnXycpO1xyXG4gICAgICBpZiAocGFydHMubGVuZ3RoID09PSA0KSB7XHJcbiAgICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPVwicGxhcXVlJyArIChwYXJ0c1sxXSA9PT0gJ9i5JyA/ICcgcCcgOiAnJykgKyAocGFydHNbMV0gPT09ICfYp9mE2YEnID8gJyBnJyA6ICcnKSArICdcIj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDFcIj4nICsgcGFydHNbMF0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQyXCI+JyArIHBhcnRzWzFdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJwYXJ0M1wiPicgKyBwYXJ0c1syXSArICc8L2Rpdj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDRcIj4nICsgcGFydHNbM10gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPC9kaXY+JztcclxuICAgICAgfSBlbHNlIGlmIChwYXJ0cy5sZW5ndGggPT09IDIgJiYgcGFydHMuZXZlcnkoeCA9PiAvXlswLTldKyQvLnRlc3QoeCkpKXtcclxuICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9XCJwbGFxdWUgcGxhcXVlLW1cIj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDFcIj4nICsgcGFydHNbMF0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQyXCI+JyArIHBhcnRzWzFdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzwvZGl2Pic7XHJcbiAgICAgIH0gZWxzZSBpZiAocGFydHMubGVuZ3RoID09PSAyKXtcclxuICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9XCJwbGFxdWUgcGxhcXVlLWZcIj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDFcIj4nICsgcGFydHNbMF0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQyXCI+JyArIHBhcnRzWzFdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzwvZGl2Pic7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuUGxhcXVlVGV4dCkge1xyXG4gICAgICBjb25zdCBwYXJ0cyA9IGN2LnNwbGl0KCdfJyk7XHJcbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDQpe1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImx0clwiPiR7cGFydHNbMF19ICR7cGFydHNbMV19JmxybTsgJHtwYXJ0c1syXX0gJHtwYXJ0c1szXX08L2Rpdj5gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZS5sKGN2KTtcclxuICB9XHJcbiAgZ2V0Q29sKG4pOiBzdHJpbmd7XHJcbiAgICBsZXQgYyA9IHRoaXMucm93LkRhdGE7XHJcbiAgICBuLnNwbGl0KCcuJykuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICBjID0gY1t4XTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGM7XHJcbiAgfVxyXG4gIGVkaXQob3B0OiBJbnB1dENsYXNzLCBvcHRpb246IFBlcm1pc3Npb25DbGFzcyk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy50YWJsZS5wZXJtaXNzaW9ucy5UeXBlID09PSBQZXJtaXNzaW9uVHlwZUVudW0uRm9ybSl7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5uYW1lID0gb3B0Lm5hbWU7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5zZXREYXRhKHRoaXMucm93LkRhdGEpO1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0uc2V0QnV0dG9ucyh0aGlzLnRhYmxlLmZvcm0ub25Ub3AsIHRydWUsIHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICB0aGlzLnRhYmxlLmZvcm0uaW5wdXRzLmZpbHRlcih4ID0+IHguaW5FZGl0RGlzYWJsZWQpLmZvckVhY2goeCA9PiB4LmRpc2FibGVkID0gdHJ1ZSk7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5pbnB1dHMuZmlsdGVyKHggPT4gIXguaW5FZGl0VmlzaWJsZSkuZm9yRWFjaCh4ID0+IHgudmlzaWJsZSA9IGZhbHNlKTtcclxuICAgIH1lbHNle1xyXG4gICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCkuc2VuZChvcHRpb24uVXJsLnJlcGxhY2UoJ3VwZGF0ZScsICdnZXQnKS5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpLCBNZXRob2QuUG9zdCxcclxuICAgICAgICBudWxsLCBvcHQsIChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5uYW1lID0gb3B0Lm5hbWU7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uc2V0QnV0dG9ucyh0aGlzLnRhYmxlLmZvcm0ub25Ub3AsIHRydWUsIHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5mb3JtLnNldERhdGEocmVzdWx0KTtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5pbnB1dHMuZmlsdGVyKHggPT4geC5pbkVkaXREaXNhYmxlZCkuZm9yRWFjaCh4ID0+IHguZGlzYWJsZWQgPSB0cnVlKTtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5pbnB1dHMuZmlsdGVyKHggPT4gIXguaW5FZGl0VmlzaWJsZSkuZm9yRWFjaCh4ID0+IHgudmlzaWJsZSA9IGZhbHNlKTtcclxuICAgICAgICAgIGlmICh0aGlzLnRhYmxlLm1vZGFsKXtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5tb2RhbC5zaG93KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldENoaWxkcmVuKCk6IGFueVtde1xyXG4gICAgcmV0dXJuIHRoaXMucm93LkRhdGEuSWQgPyB0aGlzLnRhYmxlLnJvd3MuZmlsdGVyKHggPT4geC5EYXRhLlBhcmVudElkID09PSB0aGlzLnJvdy5EYXRhLklkKSA6IFtdO1xyXG4gIH1cclxufVxyXG4iXX0=
396
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy90YWJsZS9yb3cvdGFibGUucm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxNQUFNLEVBQUUsd0JBQXdCLEVBQ2hDLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixlQUFlLEVBQ2hCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDMUUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBT2xFLE1BQU0sT0FBTyxpQkFBaUI7SUFxQjVCLFlBQW1CLE9BQWlDO1FBQWpDLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBbkJwRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFekMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFReEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFJeEMsaUJBQVksR0FBZSxJ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Q3pCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFDRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbkcsQ0FBQzs7O1lBL1dGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIscS9EQUF5Qzs7YUFFMUM7OztZQVJPLHdCQUF3Qjs7OzBCQVU3QixNQUFNO3lCQUVOLE1BQU07b0JBRU4sS0FBSztvQkFFTCxLQUFLO2tCQUVMLEtBQUs7eUJBRUwsTUFBTTswQkFTTixTQUFTLFNBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQge1RhYmxlQ2xhc3MsIFRhYmxlQ29sbENsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3RhYmxlLmNsYXNzJztcclxuaW1wb3J0IHtcclxuICBFbnVtVXRpbHMsXHJcbiAgSW5wdXRUeXBlLFxyXG4gIE1ldGhvZCwgUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLFxyXG4gIFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0sXHJcbiAgUGVybWlzc2lvbklucHV0VHlwZUVudW0sXHJcbiAgUGVybWlzc2lvblR5cGVFbnVtLFxyXG4gIFRhYmxlQ29sbFR5cGUsXHJcbiAgVGFibGVPcHRpb25UeXBlXHJcbn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge1JlcXVlc3RDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9yZXF1ZXN0LmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5pbXBvcnQge1BzVG9vbGtpdFVpQ29uZmlnU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7UGVybWlzc2lvbkNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3Blcm1pc3Npb24uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUtcm93JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUucm93LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5yb3cuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVJvd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBAT3V0cHV0KClcclxuICBjb25maXJtU2hvdyA9IG5ldyBFdmVudEVtaXR0ZXI8b2JqZWN0PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZVJvd3MgPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcclxuICBASW5wdXQoKVxyXG4gIGxldmVsOiBudW1iZXI7XHJcbiAgQElucHV0KClcclxuICB0YWJsZTogVGFibGVDbGFzcztcclxuICBASW5wdXQoKVxyXG4gIHJvdztcclxuICBAT3V0cHV0KClcclxuICBsb2FkUGFyZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgZ2V0IHR5cGUoKTogdHlwZW9mIElucHV0VHlwZSB7IHJldHVybiBJbnB1dFR5cGU7IH1cclxuICBnZXQgdGFibGVPcHRpb25UeXBlKCk6IHR5cGVvZiBUYWJsZU9wdGlvblR5cGV7IHJldHVybiBUYWJsZU9wdGlvblR5cGU7IH1cclxuICBvcHRTdGF0dXM6IElucHV0Q2xhc3M7XHJcbiAgc2hvd0NoaWxkcmVuOiBJbnB1dENsYXNzID0gbnVsbDtcclxuICBhZGRDaGlsZHJlbjogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgY2hpbGRyZW46IGFueVtdID0gW107XHJcbiAgb3B0aW9uczogYW55W10gPSBbXTtcclxuICBAVmlld0NoaWxkKCdjaGlsZHJlbkRpdicpIGNoaWxkcmVuRGl2OiBFbGVtZW50UmVmO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlOiBQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2UpIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbil7XHJcbiAgICAgIGlmICghdGhpcy50YWJsZS5jaGlsZHJlbkF1dG9Mb2FkKXtcclxuICAgICAgICB0aGlzLmNoaWxkcmVuID0gdGhpcy5nZXRDaGlsZHJlbigpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLmhhc0FjY2VzcyhQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uSW5zZXJ0KSl7XHJcbiAgICAgICAgdGhpcy5hZGRDaGlsZHJlbiA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgdGhpcy50YWJsZS5uYW1lICsgJ0FkZFN1YnNldFRpdGxlJyxcclxuICAgICAgICAgICdmYS1kdW90b25lIGZhLXBsdXMgZmEtcm90YXRlLTkwJywgSW5wdXRUeXBlLkljb24sXHJcbiAgICAgICAgICAnZ3JlZW4gbS1oLTUgaC0yNSBkLWliIHZhLW0gZi11Jyk7XHJcbiAgICAgICAgdGhpcy5hZGRDaGlsZHJlbi5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5mb3JtLm9uU3VjY2Vzc0Jhc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dDaGlsZHJlbi50eXBlID0gSW5wdXRUeXBlLkljb247XHJcbiAgICAgICAgICAgIHRoaXMubG9hZENoaWxkcmVuKHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMudGFibGUuc2hvd0luc2VydE1vZGFsKHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93Q2hpbGRyZW4gPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsIHRoaXMudGFibGUubmFtZSArICdTdWJzZXRUaXRsZScsICdmYS1kdW90b25lIGZhLWFuZ2xlLWxlZnQgZi1zLTIyJyxcclxuICAgICAgICB0aGlzLnJvdy5EYXRhLkNvdW50Q2hpbGQgPiAwIHx8ICghdGhpcy50YWJsZS5jaGlsZHJlbkF1dG9Mb2FkICYmIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMCkgPyBJbnB1dFR5cGUuSWNvbiA6IElucHV0VHlwZS5IaWRkZW4sICdoLTI1IG0taC01IGQtaWIgdmEtbSBmLXUnKTtcclxuICAgICAgdGhpcy5zaG93Q2hpbGRyZW4ub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICBpZiAoJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLmlzKCc6dmlzaWJsZScpKXtcclxuICAgICAgICAgICQodGhpcy5jaGlsZHJlbkRpdi5uYXRpdmVFbGVtZW50KS5zbGlkZVVwKCk7XHJcbiAgICAgICAgICB0aGlzLnNob3dDaGlsZHJlbi5pY29uID0gJ2ZhLWR1b3RvbmUgZmEtYW5nbGUtbGVmdCBmLXMtMjInO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jaGlsZHJlbi5sZW5ndGggPT09IDApe1xyXG4gICAgICAgICAgdGhpcy5sb2FkQ2hpbGRyZW4odGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICQodGhpcy5jaGlsZHJlbkRpdi5uYXRpdmVFbGVtZW50KS5zbGlkZURvd24oKTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NoaWxkcmVuLmljb24gPSAnZmEtZHVvdG9uZSBmYS1hbmdsZS1kb3duIGYtcy0yMic7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGFibGUuaGFzU3RhdHVzKXtcclxuICAgICAgdGhpcy5vcHRTdGF0dXMgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsICdTdGF0dXMnLFxyXG4gICAgICAgIHRoaXMucm93LkRhdGEuQWN0aXZlID8gJ2ZhLXRvZ2dsZS1vbicgOiAnZmEtdG9nZ2xlLW9mZicsIElucHV0VHlwZS5JY29uLFxyXG4gICAgICAgICdtLWgtNSBoLTIwICcgKyAodGhpcy5yb3cuRGF0YS5BY3RpdmUgPyAnZ3JlZW4nIDogJycpKTtcclxuICAgICAgdGhpcy5vcHRTdGF0dXMucm93ID0gdGhpcy5yb3cuRGF0YTtcclxuICAgICAgdGhpcy5vcHRTdGF0dXMub25DbGljayA9IChidG4pID0+IHtcclxuICAgICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUubCkuc2VuZCh0aGlzLnRhYmxlLnVybCArICcvU3RhdHVzLycgKyBidG4ucm93LklkLCBNZXRob2QuUG9zdCwgbnVsbCwgYnRuLCAocikgPT4ge1xyXG4gICAgICAgICAgYnRuLmNsYXNzID0gJ20taC01IGgtMjAgJyArIChyID8gJ2dyZWVuJyA6ICcnKTtcclxuICAgICAgICAgIGJ0bi5pY29uID0gciA/ICdmYS10b2dnbGUtb24nIDogJ2ZhLXRvZ2dsZS1vZmYnO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudGFibGUuc29ydGFibGUpe1xyXG4gICAgICB0aGlzLnNldFNvcnRSb3coKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gIH1cclxuICBsb2FkQ2hpbGRyZW4ocCk6IHZvaWR7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCkuc2VuZCh0aGlzLnRhYmxlLnVybCArIGAvJHtwfWAsIE1ldGhvZC5Qb3N0LFxyXG4gICAgICBudWxsLCB0aGlzLnNob3dDaGlsZHJlbiwgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSByZXN1bHQuTGlzdDtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICQodGhpcy5jaGlsZHJlbkRpdi5uYXRpdmVFbGVtZW50KS5zbGlkZURvd24oKTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NoaWxkcmVuLmljb24gPSAnZmEtZHVvdG9uZSBmYS1hbmdsZS1kb3duIGYtcy0yMic7XHJcbiAgICAgICAgfSwgNTApO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgc2VsZWN0KCk6IHZvaWR7XHJcbiAgICB0aGlzLnJvdy5EYXRhLnNlbGVjdGVkID0gIXRoaXMucm93LkRhdGEuc2VsZWN0ZWQ7XHJcbiAgfVxyXG4gIG9uQ2hhbmdlUm93cyhlKTogdm9pZHtcclxuICAgIHJldHVybiB0aGlzLmNoYW5nZVJvd3MuZW1pdChlKTtcclxuICB9XHJcbiAgb25Db25maXJtU2hvdyhlKTogdm9pZHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpcm1TaG93LmVtaXQoZSk7XHJcbiAgfVxyXG4gIHNldFNvcnRSb3coKTogdm9pZHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbikge1xyXG4gICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc29ydGFibGUoe1xyXG4gICAgICAgICAgYXhpczogJ3knLFxyXG4gICAgICAgICAgaGFuZGxlOiAnPiAucm93ID4gLml0ZW0tY29uID4gLmhhbmRsZS1zb3J0YWJsZScsXHJcbiAgICAgICAgICB1cGRhdGU6ICgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IFtdO1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICQodGhpcy5jaGlsZHJlbkRpdi5uYXRpdmVFbGVtZW50KS5zb3J0YWJsZSgndG9BcnJheScpLmZvckVhY2goeCA9PiBkYXRhLnB1c2goeCkpO1xyXG4gICAgICAgICAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUubCkuc2VuZCh0aGlzLnRhYmxlLnVybCArICcvU29ydCcsIE1ldGhvZC5Qb3N0LCBkYXRhLCBudWxsLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUub25Tb3J0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUub25Tb3J0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIHNldE9wdGlvbnMoKTogdm9pZHtcclxuICAgIGNvbnN0IG9wdHMgPSBbXTtcclxuICAgIGZvciAoY29uc3Qgb3B0aW9uIG9mIHRoaXMucm93Lk9wdGlvbnMuZmlsdGVyKHggPT4geC5UeXBlID09PSBQZXJtaXNzaW9uVHlwZUVudW0uT3B0aW9uICYmIHguSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uSW5wdXQpKXtcclxuICAgICAgY29uc3QgaW5wID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCBudWxsLCBudWxsLCBJbnB1dFR5cGUuQ2hlY2ssICdoLTI1IHdpdGhvdXQtYm9yZGVyIG0taC01IHAtMCB3LXUnLCB0aGlzLnJvdy5EYXRhW29wdGlvbi5BY3Rpb25dID09PSB0cnVlKTtcclxuICAgICAgaW5wLnJvdyA9IHRoaXMucm93O1xyXG4gICAgICBpbnAudG9vbHRpcCA9IG9wdGlvbi5OYW1lO1xyXG4gICAgICBpbnAub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5yb3cuRGF0YVtvcHRpb24uQWN0aW9uXSA9ICFpbnAuZGF0YSgpO1xyXG4gICAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sKS5zZW5kKG9wdGlvbi51cmwgKyAnLycgKyB0aGlzLnJvdy5EYXRhLklkLCBNZXRob2QuUG9zdCwgbnVsbCwgbnVsbCwgKCkgPT4ge1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9O1xyXG4gICAgICBpbnAuZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgICAgIG9wdHMucHVzaChpbnApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWRkQ2hpbGRyZW4gIT09IG51bGwgJiYgKHRoaXMudGFibGUubGV2ZWwgPT09IG51bGwgfHwgdGhpcy50YWJsZS5sZXZlbCA+IHRoaXMubGV2ZWwpKXtcclxuICAgICAgb3B0cy5wdXNoKHRoaXMuYWRkQ2hpbGRyZW4pO1xyXG4gICAgfVxyXG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgdGhpcy5yb3cuT3B0aW9ucy5maWx0ZXIoeCA9PiB4LlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5PcHRpb24gJiYgeC5JbnB1dEFjdGlvbiAhPT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5JbnB1dCkpe1xyXG4gICAgICBjb25zdCBvcHQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsIG9wdGlvbi5OYW1lLCBvcHRpb24uSWNvbixcclxuICAgICAgICBvcHRpb24uSW5wdXRUeXBlID09PSBQZXJtaXNzaW9uSW5wdXRUeXBlRW51bS5JY29uID8gSW5wdXRUeXBlLkljb24gOiBJbnB1dFR5cGUuQnV0dG9uLCAnYmx1ZSBoLTI1IG0taC01IGQtaWIgdmEtbSBmLXUnKTtcclxuICAgICAgb3B0LnJvdyA9IHRoaXMucm93O1xyXG4gICAgICBpZiAob3B0aW9uLkFjY2Vzc1R5cGUgPT09IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5VcGRhdGUpe1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZm9ybS51cmwgPSBvcHRpb24uVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQpLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmhhc0NoaWxkcmVuICYmIHRoaXMucm93LkRhdGEuUGFyZW50SWQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YWJsZS5jaGlsZHJlbkF1dG9Mb2FkKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkUGFyZW50LmVtaXQodGhpcy5yb3cuRGF0YS5QYXJlbnRJZCk7XHJcbiAgICAgICAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5sb2FkKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy50YWJsZS5mb3JtLm9uVG9wKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZS5tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uY2xlYXIoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5lZGl0KG9wdCwgb3B0aW9uKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9wdC51cmwgPSBvcHRpb24uVXJsICsgJy8nICsgdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLkFjY2Vzc1R5cGUgPT09IFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bS5EZWxldGUpe1xyXG4gICAgICAgIG9wdC5jbGFzcyA9IG9wdC5jbGFzcy5yZXBsYWNlKCdibHVlJywgJ3JlZCcpO1xyXG4gICAgICAgIG9wdC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMudGFibGUuZm9ybSl7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5jbGVhcigpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHRoaXMudGFibGUucGVybWlzc2lvbnMuVHlwZSA9PT0gUGVybWlzc2lvblR5cGVFbnVtLkZvcm0pe1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLnJvd3MgPSB0aGlzLnRhYmxlLnJvd3MuZmlsdGVyKHggPT4geC5JZCAhPT0gdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlUm93cy5lbWl0KHRoaXMucm93LkRhdGEpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jb25maXJtU2hvdy5lbWl0KHt1cmw6IG9wdGlvbi5VcmwucmVwbGFjZSgne30nLCB0aGlzLnJvdy5EYXRhLklkKSwgYWNjZXB0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbiAmJiB0aGlzLnRhYmxlLmNoaWxkcmVuQXV0b0xvYWQgJiYgdGhpcy5yb3cuRGF0YS5QYXJlbnRJZCAhPSBudWxsICl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZFBhcmVudC5lbWl0KHRoaXMucm93LkRhdGEuUGFyZW50SWQpO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH19KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uUmVwb3J0KXtcclxuICAgICAgICBvcHQudXJsID0gJy9SZXBvcnQnICsgb3B0aW9uLlVybCArICcvJyArIHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgb3B0LnVybE5ld1RhYiA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAob3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLkxpbmsgfHwgb3B0aW9uLklucHV0QWN0aW9uID09PSBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLkxpbmtOZXdUYWIpe1xyXG4gICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgb3B0LnVybCA9IG9wdGlvbi5VcmwgKyAnLycgKyB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgIG9wdC51cmxOZXdUYWIgPSBvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTGlua05ld1RhYjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTW9kYWwpe1xyXG4gICAgICAgIG9wdC5tb2RhbCA9IHRoaXMudGFibGUub3B0aW9uc0FjdGlvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gb3B0aW9uLkFjdGlvbik7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAob3B0Lm1vZGFsLnRhYmxlKXtcclxuICAgICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICAgIHAuQ29udHJvbGxlciA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQ29udHJvbGxlcjtcclxuICAgICAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgICAgICBwLkFjY2Vzc2VzID0gdGhpcy5yb3cuT3B0aW9ucy5maWx0ZXIoeCA9PiB4LlBhcmVudElkID09PSBvcHRpb24uSWQpO1xyXG4gICAgICAgICAgICBvcHQubW9kYWwudGFibGUucGVybWlzc2lvbnMgPSBwO1xyXG4gICAgICAgICAgICBpZiAob3B0Lm1vZGFsLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICAgIG9wdC5tb2RhbC50YWJsZS5mb3JtLnVybCA9IG9wdGlvbi5VcmwucmVwbGFjZSgne30nLCB0aGlzLnJvdy5EYXRhLklkKSArICctaW5zZXJ0JztcclxuICAgICAgICAgICAgICBvcHQubW9kYWwudGFibGUuZm9ybS5iYXNlVXJsID0gb3B0aW9uLlVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpICsgJy1pbnNlcnQnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC50YWJsZS5zZXQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChvcHQubW9kYWwuZm9ybSl7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC5mb3JtLm5hbWUgPSBvcHRpb24uTmFtZTtcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0udXJsID0gb3B0aW9uLlVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpICsgJy11cGRhdGUnO1xyXG4gICAgICAgICAgICBvcHQubW9kYWwuZm9ybS5sb2FkRGF0YShvcHRpb24uVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCkgKyAnLWdldCcpO1xyXG4gICAgICAgICAgICBvcHQubW9kYWwuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9wdC5tb2RhbC5oaWRlKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAob3B0Lm1vZGFsLmFjY29yZGlvbil7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgciBvZiBvcHQubW9kYWwuYWNjb3JkaW9uLnJvd3Mpe1xyXG4gICAgICAgICAgICAgIGlmIChyLnRhYmxlKXtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgICAgICAgICBwLlJlbGF0ZWRJZCA9IHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICAgICAgICBwLkNvbnRyb2xsZXIgPSBvcHRpb24uQ29udHJvbGxlcjtcclxuICAgICAgICAgICAgICAgIHAuQWN0aW9uID0gci5uYW1lO1xyXG4gICAgICAgICAgICAgICAgcC5BY2Nlc3NlcyA9IHRoaXMucm93Lk9wdGlvbnMuZmlsdGVyKHggPT4geC5QYXJlbnRJZCA9PT0gb3B0aW9uLklkKTtcclxuICAgICAgICAgICAgICAgIHIudGFibGUucGVybWlzc2lvbnMgPSBwO1xyXG4gICAgICAgICAgICAgICAgaWYgKHIudGFibGUuZm9ybSl7XHJcbiAgICAgICAgICAgICAgICAgIHIudGFibGUuZm9ybS51cmwgPSBvcHRpb24uVXJsICsgJ2luc2VydCc7XHJcbiAgICAgICAgICAgICAgICAgIHIudGFibGUuZm9ybS5iYXNlVXJsID0gb3B0aW9uLlVybCArICdpbnNlcnQnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgci50YWJsZS5zZXQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5GaWxlKXtcclxuICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgIHAuUmVsYXRlZElkID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5SZWxhdGVkSWQ7XHJcbiAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgIHAuQWN0aW9uID0gb3B0aW9uLkFjdGlvbjtcclxuICAgICAgICBvcHQudXJsID0gJy9GaWxlJyArIG9wdGlvbi5VcmwgKyAnLycgKyB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgIG9wdC51cmxOZXdUYWIgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5Db25maXJtKXtcclxuICAgICAgICBvcHQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHAgPSBuZXcgUGVybWlzc2lvbkNsYXNzKCk7XHJcbiAgICAgICAgICBwLlJlbGF0ZWRJZCA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkO1xyXG4gICAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgICAgcC5Db250cm9sbGVyID0gb3B0aW9uLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgICBwLkFjdGlvbiA9IG9wdGlvbi5BY3Rpb247XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLnNob3dDb25maXJtKHRoaXMudGFibGUubChvcHRpb24uQWN0aW9uICsgJ0NvbmZpcm0nKSwgb3B0aW9uLlVybCArICcvJyArIHRoaXMucm93LkRhdGEuSWQsIG51bGwsICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5sb2FkKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5JbnB1dEFjdGlvbiA9PT0gUGVybWlzc2lvbklucHV0QWN0aW9uRW51bS5PbkNsaWNrKXtcclxuICAgICAgICBvcHQub25DbGljayA9IChidG4pID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUub3B0aW9uc0FjdGlvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gb3B0aW9uLkFjdGlvbikub25DbGljayhidG4pO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgb3B0cy5wdXNoKG9wdCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRzO1xyXG4gICAgLy8gcmV0dXJuICh0aGlzLmFkZENoaWxkcmVuICE9PSBudWxsICYmICh0aGlzLnRhYmxlLmxldmVsID09PSBudWxsIHx8IHRoaXMudGFibGUubGV2ZWwgPiB0aGlzLmxldmVsKSA/IFt0aGlzLmFkZENoaWxkcmVuXSA6IFtdKVxyXG4gICAgLy8gICAuY29uY2F0KHRoaXMudGFibGUub3B0aW9ucy5maWx0ZXIoeCA9PiB4LmNvbmRpdGlvbiA9PSBudWxsIHx8XHJcbiAgICAvLyAgICAgKHguY29uZGl0aW9uLnN0YXJ0c1dpdGgoJyEnKSA/ICF0aGlzLnJvdy5EYXRhW3guY29uZGl0aW9uLnN1YnN0cmluZygxKV0gOiB0aGlzLnJvdy5EYXRhW3guY29uZGl0aW9uXSkpLm1hcCgobykgPT4ge1xyXG4gICAgLy8gICAgIGNvbnN0IGkgPSBIZWxwZXJDbGFzcy5jbG9uZShvKTtcclxuICAgIC8vICAgICBpZiAoaS51cmwpe1xyXG4gICAgLy8gICAgICAgaS51cmwgPSBpLnVybC5yZXBsYWNlKCd7fScsIHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICBpLnJvdyA9IHRoaXMucm93LkRhdGE7XHJcbiAgICAvLyAgICAgaS5jbGFzcyA9IGkuY2xhc3MgKyAnIG0taC01IGgtMjUgZC1pYiB2YS1tIGYtdSc7XHJcbiAgICAvLyAgICAgcmV0dXJuIGk7XHJcbiAgICAvLyB9KSkuY29uY2F0KHRoaXMudGFibGUuaGFzU3RhdHVzID8gW3RoaXMub3B0U3RhdHVzXSA6IFtdKVxyXG4gICAgLy8gICAgIC5jb25jYXQodGhpcy50YWJsZS5wZXJtaXNzaW9ucy5oYXNBY2Nlc3MoJ1VwZGF0ZScpID8gW3RoaXMub3B0RWRpdF0gOiBbXSlcclxuICAgIC8vICAgICAuY29uY2F0KHRoaXMudGFibGUucGVybWlzc2lvbnMuaGFzQWNjZXNzKCdEZWxldGUnKSA/IFt0aGlzLm9wdERlbGV0ZV0gOiBbXSk7XHJcbiAgfVxyXG4gIGdldENlbGwoY29sOiBUYWJsZUNvbGxDbGFzcyk6IGFueXtcclxuICAgIGNvbnNvbGUubG9nKCdnZXRDZWxsJyk7XHJcbiAgICBjb25zdCBjdiA9IF8uZ2V0KHRoaXMucm93LkRhdGEsIGNvbC5uYW1lKTtcclxuICAgIGlmIChjb2wuZnVuICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIGNvbC5mdW4odGhpcy5yb3cuRGF0YSk7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC5lbnVtICE9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRhYmxlLmwoRW51bVV0aWxzLmdldEtleUJ5VmFsdWUoY29sLmVudW0sIGN2KSk7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkRhdGVEaWYpIHtcclxuICAgICAgcmV0dXJuIEhlbHBlckNsYXNzLmdldERhdGVEaWYodGhpcy50YWJsZS5sLCBjdik7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkRhdGUpIHtcclxuICAgICAgcmV0dXJuIEhlbHBlckNsYXNzLmdldERhdGUoY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5EYXRlVGltZSkge1xyXG4gICAgICByZXR1cm4gSGVscGVyQ2xhc3MuZ2V0RGF0ZVRpbWUoY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5UaW1lKSB7XHJcbiAgICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXRUaW1lKGN2KTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuQ29sb3IpIHtcclxuICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPVwiY29sb3JcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6ICcgKyBjdiArICc7IGNvbG9yOiAnICsgSGVscGVyQ2xhc3MuZ2V0Q29sb3JCeUJnQ29sb3IoY3YpICsgJ1wiPicgKyBjdiArICc8L2Rpdj4nO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5VcmwpIHtcclxuICAgICAgcmV0dXJuICc8YSB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImx0clwiIGhyZWY9XCInICsgY3YgKyAnXCI+JyArIGN2ICsgJzwvYT4nO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5JbWFnZSkge1xyXG4gICAgICByZXR1cm4gJzxpbWcgY2xhc3M9XCJoLTEwMFwiIGFsdD1cIlwiIHNyYz1cIicgKyB0aGlzLnNlcnZpY2UuZW52aXJvbm1lbnQudXJsICsgY3YgKyAnXCIvPic7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkZpbGVTaXplKSB7XHJcbiAgICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXRGaWxlU2l6ZShjdik7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLlByaWNlKSB7XHJcbiAgICAgIHJldHVybiBjdi50b0xvY2FsZVN0cmluZygpICsgJyAnICsgdGhpcy50YWJsZS5sKCdSaWFsJyk7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLlBsYXF1ZSkge1xyXG4gICAgICBjb25zdCBwYXJ0cyA9IGN2LnNwbGl0KCdfJyk7XHJcbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDQpIHtcclxuICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9XCJwbGFxdWUnICsgKHBhcnRzWzFdID09PSAn2LknID8gJyBwJyA6ICcnKSArIChwYXJ0c1sxXSA9PT0gJ9in2YTZgScgPyAnIGcnIDogJycpICsgJ1wiPicgK1xyXG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJwYXJ0MVwiPicgKyBwYXJ0c1swXSArICc8L2Rpdj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDJcIj4nICsgcGFydHNbMV0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQzXCI+JyArIHBhcnRzWzJdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJwYXJ0NFwiPicgKyBwYXJ0c1szXSArICc8L2Rpdj4nICtcclxuICAgICAgICAgICc8L2Rpdj4nO1xyXG4gICAgICB9IGVsc2UgaWYgKHBhcnRzLmxlbmd0aCA9PT0gMiAmJiBwYXJ0cy5ldmVyeSh4ID0+IC9eWzAtOV0rJC8udGVzdCh4KSkpe1xyXG4gICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz1cInBsYXF1ZSBwbGFxdWUtbVwiPicgK1xyXG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJwYXJ0MVwiPicgKyBwYXJ0c1swXSArICc8L2Rpdj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDJcIj4nICsgcGFydHNbMV0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPC9kaXY+JztcclxuICAgICAgfSBlbHNlIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpe1xyXG4gICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz1cInBsYXF1ZSBwbGFxdWUtZlwiPicgK1xyXG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJwYXJ0MVwiPicgKyBwYXJ0c1swXSArICc8L2Rpdj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDJcIj4nICsgcGFydHNbMV0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPC9kaXY+JztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5QbGFxdWVUZXh0KSB7XHJcbiAgICAgIGNvbnN0IHBhcnRzID0gY3Yuc3BsaXQoJ18nKTtcclxuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gNCl7XHJcbiAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibHRyXCI+JHtwYXJ0c1swXX0gJHtwYXJ0c1sxXX0mbHJtOyAke3BhcnRzWzJdfSAke3BhcnRzWzNdfTwvZGl2PmA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnRhYmxlLmwoY3YpO1xyXG4gIH1cclxuICBnZXRDb2wobik6IHN0cmluZ3tcclxuICAgIGxldCBjID0gdGhpcy5yb3cuRGF0YTtcclxuICAgIG4uc3BsaXQoJy4nKS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGMgPSBjW3hdO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYztcclxuICB9XHJcbiAgZWRpdChvcHQ6IElucHV0Q2xhc3MsIG9wdGlvbjogUGVybWlzc2lvbkNsYXNzKTogdm9pZHtcclxuICAgIGlmICh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5Gb3JtKXtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLm5hbWUgPSBvcHQubmFtZTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLnNldERhdGEodGhpcy5yb3cuRGF0YSk7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5zZXRCdXR0b25zKHRoaXMudGFibGUuZm9ybS5vblRvcCwgdHJ1ZSwgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5pbnB1dHMuZmlsdGVyKHggPT4geC5pbkVkaXREaXNhYmxlZCkuZm9yRWFjaCh4ID0+IHguZGlzYWJsZWQgPSB0cnVlKTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiAheC5pbkVkaXRWaXNpYmxlKS5mb3JFYWNoKHggPT4geC52aXNpYmxlID0gZmFsc2UpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sKS5zZW5kKG9wdGlvbi5VcmwucmVwbGFjZSgne30nLCB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZCkucmVwbGFjZSgndXBkYXRlJywgJ2dldCcpLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCksIE1ldGhvZC5Qb3N0LFxyXG4gICAgICAgIG51bGwsIG9wdCwgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5mb3JtLm5hbWUgPSBvcHQubmFtZTtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5zZXRCdXR0b25zKHRoaXMudGFibGUuZm9ybS5vblRvcCwgdHJ1ZSwgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uc2V0RGF0YShyZXN1bHQpO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiB4LmluRWRpdERpc2FibGVkKS5mb3JFYWNoKHggPT4geC5kaXNhYmxlZCA9IHRydWUpO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiAheC5pbkVkaXRWaXNpYmxlKS5mb3JFYWNoKHggPT4geC52aXNpYmxlID0gZmFsc2UpO1xyXG4gICAgICAgICAgaWYgKHRoaXMudGFibGUubW9kYWwpe1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLm1vZGFsLnNob3coKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0Q2hpbGRyZW4oKTogYW55W117XHJcbiAgICByZXR1cm4gdGhpcy5yb3cuRGF0YS5JZCA/IHRoaXMudGFibGUucm93cy5maWx0ZXIoeCA9PiB4LkRhdGEuUGFyZW50SWQgPT09IHRoaXMucm93LkRhdGEuSWQpIDogW107XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2260,7 +2260,7 @@ class TableRowComponent {
2260
2260
  this.table.form.inputs.filter(x => !x.inEditVisible).forEach(x => x.visible = false);
2261
2261
  }
2262
2262
  else {
2263
- new RequestClass(this.table.environment, this.table.l).send(option.Url.replace('update', 'get').replace('{}', this.row.Data.Id), Method.Post, null, opt, (result) => {
2263
+ new RequestClass(this.table.environment, this.table.l).send(option.Url.replace('{}', this.table.permissions.RelatedId).replace('update', 'get').replace('{}', this.row.Data.Id), Method.Post, null, opt, (result) => {
2264
2264
  this.table.form.name = opt.name;
2265
2265
  this.table.form.setButtons(this.table.form.onTop, true, this.row.Data.Id);
2266
2266
  this.table.form.setData(result);