survery-lib 0.1.39 → 0.1.41

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.
@@ -70,6 +70,12 @@ export class QuestionMatrixTemplateComponent {
70
70
  }
71
71
  });
72
72
  });
73
+ this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {
74
+ this.fCtrls.isDisabled.setValue(x.isDisabled);
75
+ });
76
+ this._surveyLibService.questionIsShowObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {
77
+ this.fCtrls.isShow.setValue(x.isShow);
78
+ });
73
79
  }
74
80
  onChangeAnswer(question, answer) {
75
81
  const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);
@@ -95,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
95
101
  }], setQuestion: [{
96
102
  type: Input
97
103
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQXdCLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVF2RSxNQUFNLE9BQU8sK0JBQStCO0lBSzFDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUlELElBQWEsV0FBVyxDQUFDLEtBQXdCO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ3BCLEVBQUUsRUFBRSxLQUFLLENBQUMs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QUFPLE9BQXNCLENBQUM7SUFDaEMsQ0FBQzs4R0F4RlUsK0JBQStCO2tHQUEvQiwrQkFBK0IsNklDcEI1QyxpMURBb0NNOzsyRkRoQk8sK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLDhCQUE4QjtpSUFpQjlCLE9BQU87c0JBQWhCLE1BQU07Z0JBRU0sV0FBVztzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0BuZy1zdGFjay9mb3Jtcyc7XG5pbXBvcnQgeyBTdXJ2ZXlBbnN3ZXJEdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktYW5zd2VyLmR0byc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkdyb3VwRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLWdyb3VwLmR0byc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xuaW1wb3J0IHsgU3VydmV5U3ViUXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktc3ViLXF1ZXN0aW9uLmR0byc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL3F1ZXN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZSwgU3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xuaW1wb3J0IHsgdjQgYXMgZ3VpZEdlbmVyYXRvciB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3MvZGVmYXVsdC1xdWVzdGlvbi1hbnN3ZXJzLmR0byc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N1cnZleS1saWIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGVsZW1JZCA9IGd1aWRHZW5lcmF0b3IoKSBhcyBzdHJpbmc7XG4gIHN1cnZleVF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bztcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgQE91dHB1dCgpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXN0aW9uQW5zd2VyTW9kZWw+KCk7XG5cbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xuICAgIHRoaXMuc3VydmV5UXVlc3Rpb24gPSB2YWx1ZTtcbiAgICB0aGlzLnJGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgaWQ6IHZhbHVlLnF1ZXN0aW9uSWQsXG4gICAgICB0eXBlSWQ6IHZhbHVlLnF1ZXN0aW9uVHlwZUlkICxcbiAgICAgIGlzRGlzYWJsZWQ6IHZhbHVlLmlzUmVhZE9ubHksXG4gICAgICBpc1Nob3c6IHZhbHVlLmlzVmlzYWJsZVxuICAgIH0pO1xuXG4gICAgdmFsdWUuc3VydmV5U3ViUXVlc3Rpb25zLmZvckVhY2goeCA9PiB7XG4gICAgICB2YXIgZ3JvdXAgPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT4oe1xuICAgICAgICBzdWJRdWVzdGlvbklkOiBbeC5xdWVzdGlvbklkXSxcbiAgICAgICAgcXVlc3Rpb25UaXRsZTogW3gucXVlc3Rpb25UaXRsZV0sXG4gICAgICAgIGFuc3dlcjogW251bGxdLFxuICAgICAgfSk7XG5cbiAgICAgIGlmICh2YWx1ZS5pc1JlcXVpcmVkID09IHRydWUpIHtcbiAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cblxuICAgICAgZ3JvdXAuY29udHJvbHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICAgICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgICAgIFF1ZXN0aW9uSWQ6IGdyb3VwLnZhbHVlLnN1YlF1ZXN0aW9uSWQsXG4gICAgICAgICAgQW5zd2VyOiBncm91cC52YWx1ZS5hbnN3ZXIsXG4gICAgICAgICAgSXNWYWxpZDogZ3JvdXAuY29udHJvbHMuYW5zd2VyLnZhbGlkXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkucHVzaChncm91cCk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIgLCBwcml2YXRlIF9zdXJ2ZXlMaWJTZXJ2aWNlOlN1cnZleUxpYlNlcnZpY2UpIHtcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcbiAgICAgIGlkOiBbbnVsbF0sXG4gICAgICB0eXBlSWQ6IFtudWxsXSxcbiAgICAgIGlzRGlzYWJsZWQ6W2ZhbHNlXSxcbiAgICAgIGlzU2hvdyA6IFt0cnVlXSxcbiAgICAgIHN1YlF1ZXN0aW9uQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PFN1YlF1ZXN0aW9uQ2hpbGRPZlF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlPihbXSlcbiAgICB9KTsgIFxuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc3VydmV5QW5zd2Vyc09ic3J2XG4gICAgLnBpcGUobWFwKHg9PiB4LmRlZmF1bHRBbnN3ZXJzLmZpbHRlcih4PT54LlBhcmVudFF1ZXN0aW9uSWQgPT0gdGhpcy5mQ3RybHMuaWQudmFsdWUpKSlcbiAgICAucGlwZShmaWx0ZXIoeD0+eC5sZW5ndGggID4gMCkpXG4gICAgLnN1YnNjcmliZShhbnN3ZXJzPT57XG4gICAgICBjb25zb2xlLmxvZyhhbnN3ZXJzKTtcbiAgICAgIHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkuY29udHJvbHMuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgIHZhciBhbnN3ZXIgPSBhbnN3ZXJzLmZpbmQoeCA9PiB4LlF1ZXN0aW9uSWQgPT0gZ3JvdXAudmFsdWUuc3ViUXVlc3Rpb25JZCk7XG4gICAgICAgIGlmIChhbnN3ZXIgIT0gbnVsbCkge1xuICAgICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci5zZXRWYWx1ZShhbnN3ZXIuQW5zd2VySWQpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBvbkNoYW5nZUFuc3dlcihxdWVzdGlvbjogU3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2UsIGFuc3dlcjogU3VydmV5QW5zd2VyRHRvKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHguc3ViUXVlc3Rpb25JZCA9PSBxdWVzdGlvbi5zdWJRdWVzdGlvbklkKTtcbiAgICB2YXIgc3ViUXVlc3Rpb25Hcm91cCA9IHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkuY29udHJvbHNbaW5kZXhdO1xuXG4gICAgc3ViUXVlc3Rpb25Hcm91cC5jb250cm9scy5hbnN3ZXIuc2V0VmFsdWUoYW5zd2VyLmFuc3dlcklkKTtcblxuICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcbiAgICAgIFF1ZXN0aW9uSWQ6IHN1YlF1ZXN0aW9uR3JvdXAudmFsdWUuc3ViUXVlc3Rpb25JZCxcbiAgICAgIEFuc3dlcjogc3ViUXVlc3Rpb25Hcm91cC52YWx1ZS5hbnN3ZXIsXG4gICAgICBJc1ZhbGlkOiBzdWJRdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlci52YWxpZFxuICAgIH0pO1xuICB9XG5cbiAgY29udmVydFRvRm9ybUNvbnRyb2woZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIGVsZW1lbnQgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiIHN0eWxlPVwiIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XCJcbltuZ0NsYXNzXT1cInsnZC1ub25lJzpmQ3RybHMuaXNTaG93LnZhbHVlICE9IHRydWV9XCI+XG4gIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxuICAgIHt7c3VydmV5UXVlc3Rpb24/LnF1ZXN0aW9uVGl0bGV9fVxuICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZDtcIiAqbmdJZj1cInN1cnZleVF1ZXN0aW9uLmlzUmVxdWlyZWRcIj4qPC9zcGFuPlxuICA8L2gzPlxuICA8ZGl2IGNsYXNzPVwibWF0cml4LXF1ZXN0aW9uXCIgW2Zvcm1Hcm91cF09XCJyRm9ybVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtdGFibGVcIiBmb3JtQXJyYXlOYW1lPVwic3ViUXVlc3Rpb25BcnJheVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1oZWFkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWNvbFwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1jb2xcIiAqbmdGb3I9XCJsZXQgYW5zd2VycyBvZiBzdXJ2ZXlRdWVzdGlvbj8uc3VydmV5QW5zd2Vyc1wiPlxuICAgICAgICAgIHt7YW5zd2Vycy5hbnN3ZXJUaXRsZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtcm93XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHF1ZXN0aW9uR3JvdXAgb2YgZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkuY29udHJvbHMgO2xldCBzdWJRdWVzdGlvbkluZGV4ID0gaW5kZXhcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J2ludmFsaWQtcXVlc3Rpb24nOiBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlci5pbnZhbGlkfVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWNvbCBtYXRyaXgtc3ViLXF1YXN0aW9uXCI+XG4gICAgICAgICAge3txdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVGl0bGV9fSBcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtY29sIGFuc3dlcl9fY29udGFpbmVyXCIgKm5nRm9yPVwibGV0IGFuc3dlciBvZiBzdXJ2ZXlRdWVzdGlvbj8uc3VydmV5QW5zd2VycztsZXQgYW5zd2VySW5kZXggPSBpbmRleFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2stcmFkaW8gZm9ybS1jaGVjay1pbmxpbmVcIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuLW9wdGlvbl97e3N1YlF1ZXN0aW9uSW5kZXh9fVwiXG4gICAgICAgICAgICAgIGlkPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuX3t7c3ViUXVlc3Rpb25JbmRleH19X3t7YW5zd2VySW5kZXh9fVwiIChjaGFuZ2UpPVwib25DaGFuZ2VBbnN3ZXIocXVlc3Rpb25Hcm91cC52YWx1ZSAsYW5zd2VyKVwiXG4gICAgICAgICAgICAgIHZhbHVlPVwie3thbnN3ZXIuYW5zd2VySWR9fVwiICBbY2hlY2tlZF09XCJhbnN3ZXIuYW5zd2VySWQgPT0gcXVlc3Rpb25Hcm91cC52YWx1ZS5hbnN3ZXJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgZC1pbmxpbmUgZC1sZy1ub25lXCJcbiAgICAgICAgICAgICAgZm9yPVwie3tlbGVtSWR9fV9fcmFkaW8tYnRuX3t7c3ViUXVlc3Rpb25JbmRleH19X3t7YW5zd2VySW5kZXh9fVwiPiB7e2Fuc3dlci5hbnN3ZXJUaXRsZX19PC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuXG4gIDwvZGl2PlxuPC9kaXY+Il19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQXdCLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVF2RSxNQUFNLE9BQU8sK0JBQStCO0lBSzFDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUlELElBQWEsV0FBVyxDQUFDLEtBQXdCO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQ3BCLEVBQUUsRUFBRSxLQUFLLENBQUMs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RUFBRSxNQUF1QjtRQUNyRyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRyxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUNoQixVQUFVLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGFBQWE7WUFDaEQsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ3JDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUs7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQVk7UUFDL0IsT0FBTyxPQUFzQixDQUFDO0lBQ2hDLENBQUM7OEdBaEdVLCtCQUErQjtrR0FBL0IsK0JBQStCLDZJQ3BCNUMsaTFEQW9DTTs7MkZEaEJPLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSw4QkFBOEI7aUlBaUI5QixPQUFPO3NCQUFoQixNQUFNO2dCQUVNLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xuaW1wb3J0IHsgU3VydmV5QW5zd2VyRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LWFuc3dlci5kdG8nO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25Hcm91cER0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi1ncm91cC5kdG8nO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFN1cnZleVN1YlF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXN1Yi1xdWVzdGlvbi5kdG8nO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2UsIFN1YlF1ZXN0aW9uQ2hpbGRPZlF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IHY0IGFzIGd1aWRHZW5lcmF0b3IgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFN1cnZleUxpYlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdXJ2ZXktbGliLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBlbGVtSWQgPSBndWlkR2VuZXJhdG9yKCkgYXMgc3RyaW5nO1xuICBzdXJ2ZXlRdWVzdGlvbjogU3VydmV5UXVlc3Rpb25EdG87XG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+O1xuXG4gIGdldCBmQ3RybHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuckZvcm0uY29udHJvbHM7XG4gIH1cblxuICBnZXQgcXVlc3Rpb25UeXBlRW51bSgpIHtcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBlbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxRdWVzdGlvbkFuc3dlck1vZGVsPigpO1xuXG4gIEBJbnB1dCgpIHNldCBzZXRRdWVzdGlvbih2YWx1ZTogU3VydmV5UXVlc3Rpb25EdG8pIHtcbiAgICB0aGlzLnN1cnZleVF1ZXN0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxuICAgICAgdHlwZUlkOiB2YWx1ZS5xdWVzdGlvblR5cGVJZCAsXG4gICAgICBpc0Rpc2FibGVkOiB2YWx1ZS5pc1JlYWRPbmx5LFxuICAgICAgaXNTaG93OiB2YWx1ZS5pc1Zpc2FibGVcbiAgICB9KTtcblxuICAgIHZhbHVlLnN1cnZleVN1YlF1ZXN0aW9ucy5mb3JFYWNoKHggPT4ge1xuICAgICAgdmFyIGdyb3VwID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8U3ViUXVlc3Rpb25DaGlsZE9mUXVlc3Rpb25NYXRyaXhUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgc3ViUXVlc3Rpb25JZDogW3gucXVlc3Rpb25JZF0sXG4gICAgICAgIHF1ZXN0aW9uVGl0bGU6IFt4LnF1ZXN0aW9uVGl0bGVdLFxuICAgICAgICBhbnN3ZXI6IFtudWxsXSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9XG5cbiAgICAgIGdyb3VwLmNvbnRyb2xzLmFuc3dlci52YWx1ZUNoYW5nZXMucGlwZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XG4gICAgICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcbiAgICAgICAgICBRdWVzdGlvbklkOiBncm91cC52YWx1ZS5zdWJRdWVzdGlvbklkLFxuICAgICAgICAgIEFuc3dlcjogZ3JvdXAudmFsdWUuYW5zd2VyLFxuICAgICAgICAgIElzVmFsaWQ6IGdyb3VwLmNvbnRyb2xzLmFuc3dlci52YWxpZFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LnB1c2goZ3JvdXApO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyICwgcHJpdmF0ZSBfc3VydmV5TGliU2VydmljZTpTdXJ2ZXlMaWJTZXJ2aWNlKSB7XG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgdHlwZUlkOiBbbnVsbF0sXG4gICAgICBpc0Rpc2FibGVkOltmYWxzZV0sXG4gICAgICBpc1Nob3cgOiBbdHJ1ZV0sXG4gICAgICBzdWJRdWVzdGlvbkFycmF5OiB0aGlzLl9mb3JtQnVpbGRlci5hcnJheTxTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZT4oW10pXG4gICAgfSk7ICBcbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnN1cnZleUFuc3dlcnNPYnNydlxuICAgIC5waXBlKG1hcCh4PT4geC5kZWZhdWx0QW5zd2Vycy5maWx0ZXIoeD0+eC5QYXJlbnRRdWVzdGlvbklkID09IHRoaXMuZkN0cmxzLmlkLnZhbHVlKSkpXG4gICAgLnBpcGUoZmlsdGVyKHg9PngubGVuZ3RoICA+IDApKVxuICAgIC5zdWJzY3JpYmUoYW5zd2Vycz0+e1xuICAgICAgY29uc29sZS5sb2coYW5zd2Vycyk7XG4gICAgICB0aGlzLmZDdHJscy5zdWJRdWVzdGlvbkFycmF5LmNvbnRyb2xzLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgICB2YXIgYW5zd2VyID0gYW5zd2Vycy5maW5kKHggPT4geC5RdWVzdGlvbklkID09IGdyb3VwLnZhbHVlLnN1YlF1ZXN0aW9uSWQpO1xuICAgICAgICBpZiAoYW5zd2VyICE9IG51bGwpIHtcbiAgICAgICAgICBncm91cC5jb250cm9scy5hbnN3ZXIuc2V0VmFsdWUoYW5zd2VyLkFuc3dlcklkKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KTtcblxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2UucXVlc3Rpb25Jc0Rpc2FibGVkT2JzcnYucGlwZShmaWx0ZXIoeD0+eC5xdWVzdGlvbklkID09IHRoaXMuZkN0cmxzLmlkLnZhbHVlKSkuc3Vic2NyaWJlKHg9PntcbiAgICAgIHRoaXMuZkN0cmxzLmlzRGlzYWJsZWQuc2V0VmFsdWUoeC5pc0Rpc2FibGVkKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2UucXVlc3Rpb25Jc1Nob3dPYnNydi5waXBlKGZpbHRlcih4PT54LnF1ZXN0aW9uSWQgPT0gdGhpcy5mQ3RybHMuaWQudmFsdWUpKS5zdWJzY3JpYmUoeD0+e1xuICAgICAgdGhpcy5mQ3RybHMuaXNTaG93LnNldFZhbHVlKHguaXNTaG93KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uQ2hhbmdlQW5zd2VyKHF1ZXN0aW9uOiBTdWJRdWVzdGlvbkNoaWxkT2ZRdWVzdGlvbk1hdHJpeFRlbXBsYXRlRm9ybUludGVyZmFjZSwgYW5zd2VyOiBTdXJ2ZXlBbnN3ZXJEdG8pIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZkN0cmxzLnN1YlF1ZXN0aW9uQXJyYXkudmFsdWUuZmluZEluZGV4KHggPT4geC5zdWJRdWVzdGlvbklkID09IHF1ZXN0aW9uLnN1YlF1ZXN0aW9uSWQpO1xuICAgIHZhciBzdWJRdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMuc3ViUXVlc3Rpb25BcnJheS5jb250cm9sc1tpbmRleF07XG5cbiAgICBzdWJRdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmFuc3dlci5zZXRWYWx1ZShhbnN3ZXIuYW5zd2VySWQpO1xuXG4gICAgdGhpcy5lbWl0dGVyLmVtaXQoe1xuICAgICAgUXVlc3Rpb25JZDogc3ViUXVlc3Rpb25Hcm91cC52YWx1ZS5zdWJRdWVzdGlvbklkLFxuICAgICAgQW5zd2VyOiBzdWJRdWVzdGlvbkdyb3VwLnZhbHVlLmFuc3dlcixcbiAgICAgIElzVmFsaWQ6IHN1YlF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VyLnZhbGlkXG4gICAgfSk7XG4gIH1cblxuICBjb252ZXJ0VG9Gb3JtQ29udHJvbChlbGVtZW50OiBhbnkpIHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2F0dHIuaWRdPVwiJ3F1ZXN0aW9uXycrZkN0cmxzLmlkLnZhbHVlXCIgc3R5bGU9XCIgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcIlxuW25nQ2xhc3NdPVwieydkLW5vbmUnOmZDdHJscy5pc1Nob3cudmFsdWUgIT0gdHJ1ZX1cIj5cbiAgPGgzIGNsYXNzPVwicXVhc3Rpb24tdGl0bGUgXCI+XG4gICAge3tzdXJ2ZXlRdWVzdGlvbj8ucXVlc3Rpb25UaXRsZX19XG4gICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkO1wiICpuZ0lmPVwic3VydmV5UXVlc3Rpb24uaXNSZXF1aXJlZFwiPio8L3NwYW4+XG4gIDwvaDM+XG4gIDxkaXYgY2xhc3M9XCJtYXRyaXgtcXVlc3Rpb25cIiBbZm9ybUdyb3VwXT1cInJGb3JtXCI+XG4gICAgPGRpdiBjbGFzcz1cIm1hdHJpeC10YWJsZVwiIGZvcm1BcnJheU5hbWU9XCJzdWJRdWVzdGlvbkFycmF5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWhlYWQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtY29sXCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWF0cml4LWNvbFwiICpuZ0Zvcj1cImxldCBhbnN3ZXJzIG9mIHN1cnZleVF1ZXN0aW9uPy5zdXJ2ZXlBbnN3ZXJzXCI+XG4gICAgICAgICAge3thbnN3ZXJzLmFuc3dlclRpdGxlfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1yb3dcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgcXVlc3Rpb25Hcm91cCBvZiBmQ3RybHMuc3ViUXVlc3Rpb25BcnJheS5jb250cm9scyA7bGV0IHN1YlF1ZXN0aW9uSW5kZXggPSBpbmRleFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnaW52YWxpZC1xdWVzdGlvbic6IHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VyLmludmFsaWR9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXRyaXgtY29sIG1hdHJpeC1zdWItcXVhc3Rpb25cIj5cbiAgICAgICAgICB7e3F1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25UaXRsZX19IFxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hdHJpeC1jb2wgYW5zd2VyX19jb250YWluZXJcIiAqbmdGb3I9XCJsZXQgYW5zd2VyIG9mIHN1cnZleVF1ZXN0aW9uPy5zdXJ2ZXlBbnN3ZXJzO2xldCBhbnN3ZXJJbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1jaGVjay1yYWRpbyBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJ7e2VsZW1JZH19X19yYWRpby1idG4tb3B0aW9uX3t7c3ViUXVlc3Rpb25JbmRleH19XCJcbiAgICAgICAgICAgICAgaWQ9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tzdWJRdWVzdGlvbkluZGV4fX1fe3thbnN3ZXJJbmRleH19XCIgKGNoYW5nZSk9XCJvbkNoYW5nZUFuc3dlcihxdWVzdGlvbkdyb3VwLnZhbHVlICxhbnN3ZXIpXCJcbiAgICAgICAgICAgICAgdmFsdWU9XCJ7e2Fuc3dlci5hbnN3ZXJJZH19XCIgIFtjaGVja2VkXT1cImFuc3dlci5hbnN3ZXJJZCA9PSBxdWVzdGlvbkdyb3VwLnZhbHVlLmFuc3dlclwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBkLWlubGluZSBkLWxnLW5vbmVcIlxuICAgICAgICAgICAgICBmb3I9XCJ7e2VsZW1JZH19X19yYWRpby1idG5fe3tzdWJRdWVzdGlvbkluZGV4fX1fe3thbnN3ZXJJbmRleH19XCI+IHt7YW5zd2VyLmFuc3dlclRpdGxlfX08L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -85,7 +85,6 @@ export class SurveryLibComponent {
85
85
  this.fCtrls.questionArray.clear();
86
86
  this.fCtrls.ruleQuestionArray.clear();
87
87
  this.surveyData = null;
88
- console.log(survey);
89
88
  if (survey != null) {
90
89
  this.surveyData = survey;
91
90
  this.loadQuestions(survey);
@@ -100,13 +99,16 @@ export class SurveryLibComponent {
100
99
  });
101
100
  }
102
101
  onPaggingNext() {
103
- var isHaveInvalidRecords = this.haveInValidateQuestions();
104
- if (isHaveInvalidRecords == false) {
102
+ var invalidRecords = this.haveInValidateQuestions();
103
+ if (invalidRecords.length == 0) {
105
104
  const nextPageIndex = this.getNextShowedPage();
106
105
  if (nextPageIndex != null) {
107
106
  this.fCtrls.currentPageIndex.setValue(nextPageIndex);
107
+ setTimeout(() => {
108
+ this.loadQuestionUpdates(nextPageIndex);
109
+ });
108
110
  $('html, body').animate({
109
- scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top
111
+ scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top - 120
110
112
  }, 2000);
111
113
  }
112
114
  else {
@@ -123,6 +125,12 @@ export class SurveryLibComponent {
123
125
  this.surveyResultEmit.emit(questionArr);
124
126
  }
125
127
  }
128
+ else {
129
+ var firstQuestion = invalidRecords[0];
130
+ $('html, body').animate({
131
+ scrollTop: $(`#question_${firstQuestion.questionId}`).offset().top - 120
132
+ }, 2000);
133
+ }
126
134
  }
127
135
  onPaggingBack() {
128
136
  const prevPageIndex = this.getPrevShowedPage();
@@ -176,15 +184,11 @@ export class SurveryLibComponent {
176
184
  haveInValidateQuestions() {
177
185
  const currentPageIndex = this.fCtrls.currentPageIndex.value;
178
186
  var invalidRecords = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == currentPageIndex
179
- && x.isRequired == true && x.isValid != true
180
- && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);
187
+ && x.isRequired == true && x.isValid != true && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);
181
188
  if (invalidRecords.length > 0) {
182
189
  $(`#survey-page_${currentPageIndex}`).addClass('survey-page_submitted');
183
190
  }
184
- if (invalidRecords.length > 0) {
185
- console.log(invalidRecords);
186
- }
187
- return invalidRecords.length > 0;
191
+ return invalidRecords;
188
192
  }
189
193
  checkRules() {
190
194
  this.surveyData.surveyRules.forEach(rule => {
@@ -303,6 +307,12 @@ export class SurveryLibComponent {
303
307
  });
304
308
  }
305
309
  }
310
+ loadQuestionUpdates(pageIndex) {
311
+ this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == pageIndex).forEach(question => {
312
+ this._surveyLibService.setQuestionIsShow(question.questionId, question.isShow);
313
+ this._surveyLibService.setQuestionIsDisabled(question.questionId, question.isDisabled);
314
+ });
315
+ }
306
316
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SurveryLibComponent, deps: [{ token: i1.SurveyLibService }, { token: i2.FormBuilder }, { token: i3.CheckRuleExpsUsecase }], target: i0.ɵɵFactoryTarget.Component }); }
307
317
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SurveryLibComponent, selector: "lib-survery-lib", inputs: { isPre: "isPre", surveyLanguageId: "surveyLanguageId", applicantKey: "applicantKey" }, outputs: { surveyResultEmit: "surveyResultEmit", selectLanguageEmit: "selectLanguageEmit" }, ngImport: i0, template: "<div id=\"survery-card-{{surveryLibraryDivId}}\" class=\"survay-card\" >\r\n <div class=\"alert alert-warning text-center\" role=\"alert\" *ngIf=\"isPre == true && surveyData != null\">\r\n <h4 class=\"alert-heading mb-0\">This survey in review phase </h4>\r\n </div>\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\"\r\n [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template #questionBooleanTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\">\r\n </lib-question-boolean-template>\r\n\r\n <lib-question-text-template #questionTextTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template #questionRadioButtonTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\">\r\n </lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"></lib-question-dropdown-template>\r\n\r\n <lib-question-dropdown-multi-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDownMulti\">\r\n </lib-question-dropdown-multi-template>\r\n\r\n <lib-question-check-box-template #questionCheckBoxTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\">\r\n </lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template #questionMatrixTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\">\r\n </lib-question-matrix-template>\r\n\r\n <lib-question-cascade-template #questionCascadeTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Cascade\"\r\n [applicantKey]=\"applicantKey\" [isPre]=\"isPre\" [surveyLanguageId]=\"surveyLanguageId\" \r\n [pageIndex]=\"surveyPageIndex\"></lib-question-cascade-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\">\r\n <span>{{curruntShowedSurveyPages}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{showedSurveyPages?.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}.quastion{padding:10px}.quastion .quastion-title{color:var(--dark-100, #363636);text-align:right;font-family:Almarai;font-size:18px;font-style:normal;font-weight:700;line-height:20.6px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: ["isTextArea", "setQuestion", "isDisabled"], outputs: ["emitter"] }, { kind: "component", type: i6.QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i7.QuestionCheckBoxTemplateComponent, selector: "lib-question-check-box-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i8.QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i9.QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i10.QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i11.QuestionDropdownMultiTemplateComponent, selector: "lib-question-dropdown-multi-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: i12.QuestionCascadeTemplateComponent, selector: "lib-question-cascade-template", inputs: ["pageIndex", "isPre", "surveyLanguageId", "applicantKey", "setQuestion"], outputs: ["emitter"] }] }); }
308
318
  }
@@ -320,4 +330,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
320
330
  }], selectLanguageEmit: [{
321
331
  type: Output
322
332
  }] } });
323
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmVyeS1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zdXJ2ZXJ5LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3N1cnZleS1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBS3ZILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxZQUFZLEVBQUUsb0JBQW9CLEVBQU0sTUFBTSxNQUFNLENBQUM7QUFJMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQXFCcEUsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksVUFB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QUFJLENBQUM7b0JBQ2hCLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQztvQkFDbkIsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDO29CQUNsQixVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0JBQ2YsVUFBVSxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztvQkFDcEMsTUFBTSxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztvQkFDL0Isa0JBQWtCLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO29CQUM1QyxjQUFjLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO2lCQUN4QyxDQUFDLENBQUMsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDOzhHQXRVVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixvUENqQ2hDLG0rSEFrRU07OzJGRGpDTyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCO29LQWtFbEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc3VydmV5LWxpYi5zZXJ2aWNlJztcbmltcG9ydCB7IFN1cnZleUR0byB9IGZyb20gJy4uL3NoYXJlZC9kdG9zL3N1cnZleS5kdG8nO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0BuZy1zdGFjay9mb3Jtcyc7XG5pbXBvcnQgeyBRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZSwgUnVsZVF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlLCBTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZSB9IGZyb20gJy4uL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvc3VydmVyeS1saWIuZm9ybS1pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgdjQgYXMgZ3VpZEdlbmVyYXRvciB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMb2dpY1Byb3BlcnR5RW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9Mb2dpYy1Qcm9wZXJ0eS5lbnVtJztcbmltcG9ydCB7IFJ1bGVFeHBEdG8gfSBmcm9tICcuLi9zaGFyZWQvZHRvcy9ydWxlLWV4cC5kdG8nO1xuaW1wb3J0IHsgT3BlcmF0b3JFbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL29wZXJhdG9yLmVudW0nO1xuaW1wb3J0IHsgTG9naWNBY3Rpb25FbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL2xvZ2ljLWFjdGlvbi5lbnVtJztcbmltcG9ydCB7IENoZWNrUnVsZUV4cHNVc2VjYXNlIH0gZnJvbSAnLi91c2VjYXNlcy9jaGVjay1ydWxlLWV4cHMudXNlY2FzZSc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvblJlc3VsdCB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvc3VydmVyeS1xdWVzdGlvbi1yZXN1bHQubW9kZWwnO1xuaW1wb3J0IHsgRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3MvZGVmYXVsdC1xdWVzdGlvbi1hbnN3ZXJzLmR0byc7XG5pbXBvcnQgeyBRdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlL3F1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uVGV4dFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZS9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uRHJvcGRvd25UZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS9xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25DaGVja0JveFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZS9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uTWF0cml4VGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3VydmV5TGFuZ3VhZ2VEdG8gfSBmcm9tICcuLi9zaGFyZWQvZHRvcy9zdXJ2ZXktbGFuZ3VhZ2UuZHRvJztcbmltcG9ydCB7IFN1cnZleVNlY3Rpb25FbnVtIH0gZnJvbSAnLi4vc2hhcmVkL2VudW1zL3N1cnZleS1zZWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1cnZleVF1ZXN0aW9uRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3Mvc3VydmV5LXF1ZXN0aW9uLmR0byc7XG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdXJ2ZXJ5LWxpYicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXktbGliLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3VydmV5LWxpYi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN1cnZlcnlMaWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHN1cnZlcnlMaWJyYXJ5RGl2SWQgPSBndWlkR2VuZXJhdG9yKCkgYXMgc3RyaW5nO1xuICByZWxvYWREZWZhdWx0QW5zd2VySWQgPSBndWlkR2VuZXJhdG9yKCkgYXMgc3RyaW5nO1xuICBzdXJ2ZXlEYXRhOiBTdXJ2ZXlEdG87XG4gIGRlZmF1bHRBbnN3ZXJzOiBEZWZhdWx0UXVlc3Rpb25BbnN3ZXJEdG9bXTtcbiAgckZvcm06IEZvcm1Hcm91cDxTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT47XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgZ2V0IGlzRmlyc3RQYWdlKCkge1xuICAgIGlmICh0aGlzLnNob3dlZFN1cnZleVBhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLnNob3dlZFN1cnZleVBhZ2VzLmZpbmRJbmRleCh4ID0+IHggPT0gdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZSkgPT0gMDtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXQgaXNMYXN0UGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcy5maW5kSW5kZXgoeCA9PiB4ID09IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUpID09ICh0aGlzLnNob3dlZFN1cnZleVBhZ2VzLmxlbmd0aCAtIDEpXG4gIH1cblxuICBnZXQgc2hvd2VkU3VydmV5UGFnZXMoKTogbnVtYmVyW10ge1xuICAgIHZhciBwYWdlQXJyOiBudW1iZXJbXSA9IFtdO1xuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgcXVlc3Rpb24gPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlW2luZGV4XTtcbiAgICAgIGlmIChxdWVzdGlvbi5pc1Nob3cgPT0gdHJ1ZSAmJiAocXVlc3Rpb24ucXVlc3Rpb25UeXBlICE9IHRoaXMucXVlc3Rpb25UeXBlRW51bS5NYXRyaXggfHwgcXVlc3Rpb24uaXNNYXRyaXhHcm91cCA9PSB0cnVlKSkge1xuICAgICAgICBwYWdlQXJyLnB1c2gocXVlc3Rpb24uc3VydmV5UGFnZUluZGV4KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaXN0aW5jdEFycmF5ID0gcGFnZUFyci5maWx0ZXIoKG4sIGkpID0+IHBhZ2VBcnIuaW5kZXhPZihuKSA9PT0gaSk7XG5cbiAgICByZXR1cm4gZGlzdGluY3RBcnJheS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gIH1cblxuICBnZXQgY3VycnVudFNob3dlZFN1cnZleVBhZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnNob3dlZFN1cnZleVBhZ2VzLmZpbmRJbmRleCh4ID0+IHggPT0gdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZSkgKyAxO1xuICB9XG5cbiAgZ2V0IHN1cnZleVJlc3VsdCgpOiB7IGFuc3dlcnM6IFN1cnZleVF1ZXN0aW9uUmVzdWx0W10sIGN1cnJlbnRQYWdlSW5kZXg6IG51bWJlciB9IHtcbiAgICByZXR1cm4ge1xuICAgICAgY3VycmVudFBhZ2VJbmRleDogdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZSxcbiAgICAgIGFuc3dlcnM6XG4gICAgICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmlsdGVyKHggPT4geC5pc01hdHJpeEdyb3VwICE9IHRydWUpLm1hcCh4ID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU3VydmV5UGFnZUluZGV4OiB4LnN1cnZleVBhZ2VJbmRleCxcbiAgICAgICAgICAgIFF1ZXN0aW9uSWQ6IHgucXVlc3Rpb25JZCxcbiAgICAgICAgICAgIFF1ZXN0aW9uVHlwZTogeC5xdWVzdGlvblR5cGUsXG4gICAgICAgICAgICBBbnN3ZXJJZDogeC5hbnN3ZXJJZCxcbiAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcbiAgICAgICAgICAgIEFuc3dlcklkQXJyOiB4LmFuc3dlcklkQXJyXG4gICAgICAgICAgfSBhcyBTdXJ2ZXlRdWVzdGlvblJlc3VsdFxuICAgICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIGlzUHJlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN1cnZleUxhbmd1YWdlSWQ6IG51bWJlciA9IG51bGw7XG4gIEBJbnB1dCgpIGFwcGxpY2FudEtleTogc3RyaW5nID0gbnVsbDtcblxuICBAT3V0cHV0KCkgc3VydmV5UmVzdWx0RW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3VydmV5UXVlc3Rpb25SZXN1bHRbXT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdExhbmd1YWdlRW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6IFN1cnZleUxpYlNlcnZpY2VcbiAgICAsIHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfY2hlY2tSdWxlRXhwc1VzZWNhc2U6IENoZWNrUnVsZUV4cHNVc2VjYXNlKSB7XG5cbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8U3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IFswXSxcbiAgICAgIHF1ZXN0aW9uQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPihbXSksXG4gICAgICBydWxlUXVlc3Rpb25BcnJheTogdGhpcy5fZm9ybUJ1aWxkZXIuYXJyYXk8UnVsZVF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPihbXSlcbiAgICB9KTtcbiAgfVxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnN1cnZleURhdGFPYnNydi5waXBlKGRlYm91bmNlVGltZSgzMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUoc3VydmV5ID0+IHtcbiAgICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuY2xlYXIoKTtcbiAgICAgIHRoaXMuZkN0cmxzLnJ1bGVRdWVzdGlvbkFycmF5LmNsZWFyKCk7XG4gICAgICB0aGlzLnN1cnZleURhdGEgPSBudWxsO1xuICAgICAgY29uc29sZS5sb2coc3VydmV5KTtcblxuICAgICAgaWYgKHN1cnZleSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuc3VydmV5RGF0YSA9IHN1cnZleTtcbiAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKHN1cnZleSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLmFkZFF1ZXN0aW9uT2JzcnYuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmFkZFF1ZXN0aW9uR3JvdXAocmVzLnF1ZXN0aW9uLCByZXMucGFnZUluZGV4KTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2UucmVtb3ZlUXVlc3Rpb25PYnNydi5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzLnF1ZXN0aW9uSWQpO1xuICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIG9uUGFnZ2luZ05leHQoKSB7XG4gICAgdmFyIGlzSGF2ZUludmFsaWRSZWNvcmRzID0gdGhpcy5oYXZlSW5WYWxpZGF0ZVF1ZXN0aW9ucygpO1xuICAgIGlmIChpc0hhdmVJbnZhbGlkUmVjb3JkcyA9PSBmYWxzZSkge1xuXG4gICAgICBjb25zdCBuZXh0UGFnZUluZGV4ID0gdGhpcy5nZXROZXh0U2hvd2VkUGFnZSgpO1xuXG4gICAgICBpZiAobmV4dFBhZ2VJbmRleCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXguc2V0VmFsdWUobmV4dFBhZ2VJbmRleCk7XG5cbiAgICAgICAgJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoe1xuICAgICAgICAgIHNjcm9sbFRvcDogJChgI3N1cnZlcnktY2FyZC0ke3RoaXMuc3VydmVyeUxpYnJhcnlEaXZJZH1gKS5vZmZzZXQoKS50b3BcbiAgICAgICAgfSwgMjAwMCk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBxdWVzdGlvbkFyciA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmlsdGVyKHggPT4geC5pc01hdHJpeEdyb3VwICE9IHRydWUpLm1hcCh4ID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU3VydmV5UGFnZUluZGV4OiB4LnN1cnZleVBhZ2VJbmRleCxcbiAgICAgICAgICAgIFF1ZXN0aW9uSWQ6IHgucXVlc3Rpb25JZCxcbiAgICAgICAgICAgIFF1ZXN0aW9uVHlwZTogeC5xdWVzdGlvblR5cGUsXG4gICAgICAgICAgICBBbnN3ZXJJZDogeC5hbnN3ZXJJZCxcbiAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcbiAgICAgICAgICAgIEFuc3dlcklkQXJyOiB4LmFuc3dlcklkQXJyXG4gICAgICAgICAgfSBhcyBTdXJ2ZXlRdWVzdGlvblJlc3VsdFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdXJ2ZXlSZXN1bHRFbWl0LmVtaXQocXVlc3Rpb25BcnIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uUGFnZ2luZ0JhY2soKSB7XG4gICAgY29uc3QgcHJldlBhZ2VJbmRleCA9IHRoaXMuZ2V0UHJldlNob3dlZFBhZ2UoKTtcbiAgICBpZiAocHJldlBhZ2VJbmRleCAhPSBudWxsKSB7XG4gICAgICB0aGlzLmZDdHJscy5jdXJyZW50UGFnZUluZGV4LnNldFZhbHVlKHByZXZQYWdlSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIG9uVXBkYXRlQW5zd2Vycyhtb2RlbDogUXVlc3Rpb25BbnN3ZXJNb2RlbFtdKSB7XG4gICAgbW9kZWwuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIHRoaXMub25VcGRhdGVBbnN3ZXIoZWxlbSk7XG4gICAgfSk7XG4gIH1cblxuICBvblVwZGF0ZUFuc3dlcihtb2RlbDogUXVlc3Rpb25BbnN3ZXJNb2RlbCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gbW9kZWwuUXVlc3Rpb25JZCk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5jb250cm9sc1tpbmRleF07XG4gICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzVmFsaWQuc2V0VmFsdWUobW9kZWwuSXNWYWxpZCk7XG5cbiAgICAgIGlmIChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVHlwZSA9PSB0aGlzLnF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0KSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgYW5zd2VySWQ6IG1vZGVsLlN1cnZleUFuc3dlcklkLFxuICAgICAgICAgIGFuc3dlclRleHQ6IG1vZGVsLkFuc3dlclxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvblR5cGUgPT0gdGhpcy5xdWVzdGlvblR5cGVFbnVtLkNoZWNrQm94IHx8IHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25UeXBlID09IHRoaXMucXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93bk11bHRpKSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWRBcnIuc2V0VmFsdWUobW9kZWwuQW5zd2VyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWQuc2V0VmFsdWUobW9kZWwuQW5zd2VyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZkN0cmxzLnJ1bGVRdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSBtb2RlbC5RdWVzdGlvbklkKSA+IC0xKSB7XG4gICAgICAgIHRoaXMuY2hlY2tSdWxlcygpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUXVlc3Rpb25zKHN1cnZleTogU3VydmV5RHRvKSB7XG4gICAgc3VydmV5LnN1cnZleVBhZ2VzLmZvckVhY2goKHBhZ2UsIHBhZ2VJbmRleCkgPT4ge1xuXG4gICAgICBwYWdlLnN1cnZleVF1ZXN0aW9uR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuXG4gICAgICAgIGdyb3VwLnN1cnZleVF1ZXN0aW9ucy5mb3JFYWNoKHF1ZXN0aW9uID0+IHtcbiAgICAgICAgICB0aGlzLmFkZFF1ZXN0aW9uR3JvdXAocXVlc3Rpb24sIHBhZ2VJbmRleCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBzdXJ2ZXkuc3VydmV5UnVsZXMuZm9yRWFjaChydWxlID0+IHtcbiAgICAgIHJ1bGUucnVsZUV4cHMuZm9yRWFjaChydWxlRXhwID0+IHtcbiAgICAgICAgdGhpcy5mQ3RybHMucnVsZVF1ZXN0aW9uQXJyYXkucHVzaCh0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxSdWxlUXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgICBxdWVzdGlvbklkOiBydWxlRXhwLnF1ZXN0aW9uSWRcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaGF2ZUluVmFsaWRhdGVRdWVzdGlvbnMoKSB7XG4gICAgY29uc3QgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG4gICAgdmFyIGludmFsaWRSZWNvcmRzID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maWx0ZXIoeCA9PiB4LnN1cnZleVBhZ2VJbmRleCA9PSBjdXJyZW50UGFnZUluZGV4XG4gICAgICAmJiB4LmlzUmVxdWlyZWQgPT0gdHJ1ZSAmJiB4LmlzVmFsaWQgIT0gdHJ1ZVxuICAgICAgJiYgeC5pc0Rpc2FibGVkID09IGZhbHNlICYmIHguaXNTaG93ID09IHRydWUgJiYgeC5pc01hdHJpeEdyb3VwICE9IHRydWUpO1xuICAgIGlmIChpbnZhbGlkUmVjb3Jkcy5sZW5ndGggPiAwKSB7XG4gICAgICAkKGAjc3VydmV5LXBhZ2VfJHtjdXJyZW50UGFnZUluZGV4fWApLmFkZENsYXNzKCdzdXJ2ZXktcGFnZV9zdWJtaXR0ZWQnKTtcbiAgICB9XG5cbiAgICBpZiAoaW52YWxpZFJlY29yZHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5sb2coaW52YWxpZFJlY29yZHMpO1xuICAgIH1cbiAgICByZXR1cm4gaW52YWxpZFJlY29yZHMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tSdWxlcygpIHtcblxuICAgIHRoaXMuc3VydmV5RGF0YS5zdXJ2ZXlSdWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgICAgdGhpcy5fY2hlY2tSdWxlRXhwc1VzZWNhc2UuZXhlY3V0ZSh7XG4gICAgICAgIHJ1bGVFeHBzOiBydWxlLnJ1bGVFeHBzLFxuICAgICAgICBxdWVzdGlvbnM6IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWVcbiAgICAgIH0pLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuXG4gICAgICAgIHZhciBpc1Bhc3NlZCA9IHJlc3VsdC5leHByZXN0aW9uUmVzdWx0QXJyLmZpbHRlcih4ID0+IHggPT0gZmFsc2UpLmxlbmd0aCA9PSAwO1xuICAgICAgICBpZiAoaXNQYXNzZWQpIHtcblxuICAgICAgICAgIHJ1bGUucnVsZVJlc3VsdFF1ZXN0aW9ucy5mb3JFYWNoKHJlc3VsdFF1ZXN0aW9uID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzdWx0UXVlc3Rpb24ucXVlc3Rpb25JZCk7XG4gICAgICAgICAgICB2YXIgcXVlc3Rpb25Hcm91cCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkuYXQoaW5kZXgpO1xuICAgICAgICAgICAgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uU2hvdykge1xuICAgICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzU2hvdy5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzU2hvdyhxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uSWQsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkhpZGUpIHtcbiAgICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5pc1Nob3cuc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICAgICAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnNldFF1ZXN0aW9uSXNTaG93KHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25JZCwgZmFsc2UpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkVuYWJsZSkge1xuICAgICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzRGlzYWJsZWQuc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICAgICAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnNldFF1ZXN0aW9uSXNEaXNhYmxlZChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uSWQsIGZhbHNlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5EaXNhYmxlKSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNEaXNhYmxlZC5zZXRWYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzRGlzYWJsZWQocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvbklkLCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TZXRBbnN3ZXIpIHtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcnVsZS5ydWxlUmVzdWx0UXVlc3Rpb25zLmZvckVhY2gocmVzdWx0UXVlc3Rpb24gPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkKTtcbiAgICAgICAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5hdChpbmRleCk7XG4gICAgICAgICAgICBxdWVzdGlvbkdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICBpc1Nob3c6IHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNTaG93X2RlZmF1bHQsXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQ6IHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNEaXNhYmxlZF9kZWZhdWx0XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc2V0UXVlc3Rpb25Jc0Rpc2FibGVkKHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25JZCwgcXVlc3Rpb25Hcm91cC52YWx1ZS5pc0Rpc2FibGVkX2RlZmF1bHQpO1xuICAgICAgICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzU2hvdyhxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uSWQsIHF1ZXN0aW9uR3JvdXAudmFsdWUuaXNTaG93X2RlZmF1bHQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROZXh0U2hvd2VkUGFnZSgpIHtcbiAgICB2YXIgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG4gICAgdmFyIHNob3dlZFBhZ2VzID0gdGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcztcbiAgICB2YXIgbmV4dFNob3dlZFBhZ2VzID0gc2hvd2VkUGFnZXMuZmlsdGVyKHggPT4geCA+IGN1cnJlbnRQYWdlSW5kZXgpO1xuICAgIGlmIChuZXh0U2hvd2VkUGFnZXMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIG5leHRTaG93ZWRQYWdlc1swXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldFByZXZTaG93ZWRQYWdlKCkge1xuICAgIHZhciBjdXJyZW50UGFnZUluZGV4ID0gdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZTtcbiAgICB2YXIgc2hvd2VkUGFnZXMgPSB0aGlzLnNob3dlZFN1cnZleVBhZ2VzO1xuICAgIHZhciBwcmV2U2hvd2VkUGFnZXMgPSBzaG93ZWRQYWdlcy5maWx0ZXIoeCA9PiB4IDwgY3VycmVudFBhZ2VJbmRleCk7XG4gICAgaWYgKHByZXZTaG93ZWRQYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gcHJldlNob3dlZFBhZ2VzW3ByZXZTaG93ZWRQYWdlcy5sZW5ndGggLSAxXTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFkZFF1ZXN0aW9uR3JvdXAocXVlc3Rpb246IFN1cnZleVF1ZXN0aW9uRHRvLCBwYWdlSW5kZXg6IG51bWJlcikge1xuICAgIGlmIChxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCAhPSA2KSB7XG4gICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgc3VydmV5UGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgICAgIHF1ZXN0aW9uSWQ6IFtxdWVzdGlvbi5xdWVzdGlvbklkXSxcbiAgICAgICAgcXVlc3Rpb25UeXBlOiBbcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWRdLFxuICAgICAgICBpc01hdHJpeEdyb3VwOiBbZmFsc2VdLFxuICAgICAgICBhbnN3ZXJJZDogW251bGxdLFxuICAgICAgICBhbnN3ZXJJZEFycjogW251bGxdLFxuICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgIGlzUmVxdWlyZWQ6IFtxdWVzdGlvbi5pc1JlcXVpcmVkXSxcbiAgICAgICAgaXNWYWxpZDogW251bGxdLFxuICAgICAgICBpc0Rpc2FibGVkOiBbcXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgIGlzU2hvdzogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogW3F1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3F1ZXN0aW9uLmlzVmlzYWJsZV1cbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICAgIHN1cnZleVBhZ2VJbmRleDogcGFnZUluZGV4LFxuICAgICAgICBxdWVzdGlvbklkOiBbcXVlc3Rpb24ucXVlc3Rpb25JZF0sXG4gICAgICAgIHF1ZXN0aW9uVHlwZTogW3F1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkXSxcbiAgICAgICAgaXNNYXRyaXhHcm91cDogW3RydWVdLFxuICAgICAgICBhbnN3ZXJJZDogW251bGxdLFxuICAgICAgICBhbnN3ZXJJZEFycjogW251bGxdLFxuICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgIGlzUmVxdWlyZWQ6IFtxdWVzdGlvbi5pc1JlcXVpcmVkXSxcbiAgICAgICAgaXNWYWxpZDogW251bGxdLFxuICAgICAgICBpc0Rpc2FibGVkOiBbcXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgIGlzU2hvdzogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogW3F1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3F1ZXN0aW9uLmlzVmlzYWJsZV0sXG4gICAgICB9KSk7XG5cbiAgICAgIHF1ZXN0aW9uLnN1cnZleVN1YlF1ZXN0aW9ucy5mb3JFYWNoKHN1YlF1ZXN0aW9uID0+IHtcbiAgICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5wdXNoKHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFF1ZXN0aW9uQ2hpbGRPZlN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICAgICAgc3VydmV5UGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgICAgICAgcXVlc3Rpb25JZDogW3N1YlF1ZXN0aW9uLnF1ZXN0aW9uSWRdLFxuICAgICAgICAgIHF1ZXN0aW9uVHlwZTogW3N1YlF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkXSxcbiAgICAgICAgICBpc01hdHJpeEdyb3VwOiBbZmFsc2VdLFxuICAgICAgICAgIGFuc3dlcklkOiBbbnVsbF0sXG4gICAgICAgICAgYW5zd2VySWRBcnI6IFtudWxsXSxcbiAgICAgICAgICBhbnN3ZXJUZXh0OiBbbnVsbF0sXG4gICAgICAgICAgaXNSZXF1aXJlZDogW3F1ZXN0aW9uLmlzUmVxdWlyZWRdLFxuICAgICAgICAgIGlzVmFsaWQ6IFtudWxsXSxcbiAgICAgICAgICBpc0Rpc2FibGVkOiBbc3ViUXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgICAgaXNTaG93OiBbc3ViUXVlc3Rpb24uaXNWaXNhYmxlXSxcbiAgICAgICAgICBpc0Rpc2FibGVkX2RlZmF1bHQ6IFtzdWJRdWVzdGlvbi5pc1JlYWRPbmx5XSxcbiAgICAgICAgICBpc1Nob3dfZGVmYXVsdDogW3N1YlF1ZXN0aW9uLmlzVmlzYWJsZV1cbiAgICAgICAgfSkpO1xuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgaWQ9XCJzdXJ2ZXJ5LWNhcmQte3tzdXJ2ZXJ5TGlicmFyeURpdklkfX1cIiBjbGFzcz1cInN1cnZheS1jYXJkXCIgPlxyXG4gIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC13YXJuaW5nIHRleHQtY2VudGVyXCIgcm9sZT1cImFsZXJ0XCIgKm5nSWY9XCJpc1ByZSA9PSB0cnVlICYmIHN1cnZleURhdGEgIT0gbnVsbFwiPlxyXG4gICAgPGg0IGNsYXNzPVwiYWxlcnQtaGVhZGluZyBtYi0wXCI+VGhpcyBzdXJ2ZXkgaW4gcmV2aWV3IHBoYXNlIDwvaDQ+XHJcbiAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBzdXJ2ZXlQYWdlIG9mIHN1cnZleURhdGE/LnN1cnZleVBhZ2VzOyBsZXQgc3VydmV5UGFnZUluZGV4ID0gaW5kZXhcIlxyXG4gICAgICBbYXR0ci5pZF09XCInc3VydmV5LXBhZ2VfJytzdXJ2ZXlQYWdlSW5kZXhcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7J2Qtbm9uZSc6IHN1cnZleVBhZ2VJbmRleCAhPSBmQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZX1cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzdXJ2ZXlQYWdlLnN1cnZleVF1ZXN0aW9uR3JvdXBzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LWNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmF5LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJncm91cC10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2l0ZW0ucXVlc3Rpb25Hcm91cE5hbWV9fVxyXG4gICAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ3JvdXAtc3ViLXRpdGxlIFwiPlxyXG4gICAgICAgICAgICAgICAgICB7e2l0ZW0ucXVlc3Rpb25Hcm91cERlc2NyaXB0aW9ufX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBpdGVtLnN1cnZleVF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlICNxdWVzdGlvbkJvb2xlYW5UZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLkJvb2xlYW5cIj5cclxuICAgICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLWJvb2xlYW4tdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi10ZXh0LXRlbXBsYXRlICNxdWVzdGlvblRleHRUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLlRleHRJbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgIFtpc1RleHRBcmVhXT1cInF1ZXN0aW9uLmlzQWR2YW5jZVRleHRBcmVhXCI+PC9saWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZSAjcXVlc3Rpb25SYWRpb0J1dHRvblRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uUmFkaW9CdXR0b25cIj5cclxuICAgICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLXJhZGlvLWJ1dHRvbi10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlICNxdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93blwiPjwvbGliLXF1ZXN0aW9uLWRyb3Bkb3duLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tZHJvcGRvd24tbXVsdGktdGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93bk11bHRpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2xpYi1xdWVzdGlvbi1kcm9wZG93bi1tdWx0aS10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZSAjcXVlc3Rpb25DaGVja0JveFRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uQ2hlY2tCb3hcIj5cclxuICAgICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLWNoZWNrLWJveC10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZSAjcXVlc3Rpb25NYXRyaXhUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLk1hdHJpeFwiPlxyXG4gICAgICAgICAgICAgICAgPC9saWItcXVlc3Rpb24tbWF0cml4LXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlICNxdWVzdGlvbkNhc2NhZGVUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLkNhc2NhZGVcIlxyXG4gICAgICAgICAgICAgICAgICBbYXBwbGljYW50S2V5XT1cImFwcGxpY2FudEtleVwiIFtpc1ByZV09XCJpc1ByZVwiIFtzdXJ2ZXlMYW5ndWFnZUlkXT1cInN1cnZleUxhbmd1YWdlSWRcIiBcclxuICAgICAgICAgICAgICAgICAgW3BhZ2VJbmRleF09XCJzdXJ2ZXlQYWdlSW5kZXhcIj48L2xpYi1xdWVzdGlvbi1jYXNjYWRlLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkLWZvb3RyXCIgKm5nSWY9XCJzdXJ2ZXlEYXRhICE9IG51bGxcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiIGp1c3RpZnktY29udGVudDogc3RhcnQ7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1wYWdpbmF0aW9uIGZ3LWJvbGRcIj5cclxuICAgICAgICAgIDxzcGFuPnt7Y3VycnVudFNob3dlZFN1cnZleVBhZ2VzfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWUtMlwiPm9mPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+e3tzaG93ZWRTdXJ2ZXlQYWdlcz8ubGVuZ3RofX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmVyeS1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi9zdXJ2ZXJ5LWxpYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3N1cnZleS1saWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTJCLE1BQU0sZUFBZSxDQUFDO0FBS3ZILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxFQUFFLElBQUksYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxZQUFZLEVBQUUsb0JBQW9CLEVBQU0sTUFBTSxNQUFNLENBQUM7QUFJMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQXFCcEUsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUksVUFB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Q0FBQzs4R0FqVlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsb1BDakNoQyxtK0hBa0VNOzsyRkRqQ08sbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjtvS0FrRWxCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1cnZleUxpYlNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3N1cnZleS1saWIuc2VydmljZSc7XG5pbXBvcnQgeyBTdXJ2ZXlEdG8gfSBmcm9tICcuLi9zaGFyZWQvZHRvcy9zdXJ2ZXkuZHRvJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xuaW1wb3J0IHsgUXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2UsIFJ1bGVRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZSwgU3VydmVyeUxpYkZvcm1JbnRlcmZhY2UgfSBmcm9tICcuLi9zaGFyZWQvZm9ybS1pbnRlcmZhY2VzL3N1cnZlcnktbGliLmZvcm0taW50ZXJmYWNlJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IHY0IGFzIGd1aWRHZW5lcmF0b3IgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFF1ZXN0aW9uQW5zd2VyTW9kZWwgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3F1ZXN0aW9uLWFuc3dlci5tb2RlbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9naWNQcm9wZXJ0eUVudW0gfSBmcm9tICcuLi9zaGFyZWQvZW51bXMvTG9naWMtUHJvcGVydHkuZW51bSc7XG5pbXBvcnQgeyBSdWxlRXhwRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3MvcnVsZS1leHAuZHRvJztcbmltcG9ydCB7IE9wZXJhdG9yRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9vcGVyYXRvci5lbnVtJztcbmltcG9ydCB7IExvZ2ljQWN0aW9uRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9sb2dpYy1hY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBDaGVja1J1bGVFeHBzVXNlY2FzZSB9IGZyb20gJy4vdXNlY2FzZXMvY2hlY2stcnVsZS1leHBzLnVzZWNhc2UnO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25SZXN1bHQgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3N1cnZlcnktcXVlc3Rpb24tcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xuaW1wb3J0IHsgUXVlc3Rpb25Cb29sZWFuVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZS9xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWVzdGlvblRleHRUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUvcXVlc3Rpb24tcmFkaW8tYnV0dG9uLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWVzdGlvbkRyb3Bkb3duVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUvcXVlc3Rpb24tZHJvcGRvd24tdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uQ2hlY2tCb3hUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUvcXVlc3Rpb24tY2hlY2stYm94LXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBRdWVzdGlvbk1hdHJpeFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3F1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZS9xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFN1cnZleUxhbmd1YWdlRHRvIH0gZnJvbSAnLi4vc2hhcmVkL2R0b3Mvc3VydmV5LWxhbmd1YWdlLmR0byc7XG5pbXBvcnQgeyBTdXJ2ZXlTZWN0aW9uRW51bSB9IGZyb20gJy4uL3NoYXJlZC9lbnVtcy9zdXJ2ZXktc2VjdGlvbi5lbnVtJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xuZGVjbGFyZSB2YXIgJDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc3VydmVyeS1saWInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3VydmV5LWxpYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N1cnZleS1saWIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTdXJ2ZXJ5TGliQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBzdXJ2ZXJ5TGlicmFyeURpdklkID0gZ3VpZEdlbmVyYXRvcigpIGFzIHN0cmluZztcbiAgcmVsb2FkRGVmYXVsdEFuc3dlcklkID0gZ3VpZEdlbmVyYXRvcigpIGFzIHN0cmluZztcbiAgc3VydmV5RGF0YTogU3VydmV5RHRvO1xuICBkZWZhdWx0QW5zd2VyczogRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvW107XG4gIHJGb3JtOiBGb3JtR3JvdXA8U3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+O1xuXG4gIGdldCBmQ3RybHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuckZvcm0uY29udHJvbHM7XG4gIH1cblxuICBnZXQgcXVlc3Rpb25UeXBlRW51bSgpIHtcbiAgICByZXR1cm4gUXVlc3Rpb25UeXBlRW51bTtcbiAgfVxuXG4gIGdldCBpc0ZpcnN0UGFnZSgpIHtcbiAgICBpZiAodGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcy5maW5kSW5kZXgoeCA9PiB4ID09IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUpID09IDA7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZ2V0IGlzTGFzdFBhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd2VkU3VydmV5UGFnZXMuZmluZEluZGV4KHggPT4geCA9PSB0aGlzLmZDdHJscy5jdXJyZW50UGFnZUluZGV4LnZhbHVlKSA9PSAodGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcy5sZW5ndGggLSAxKVxuICB9XG5cbiAgZ2V0IHNob3dlZFN1cnZleVBhZ2VzKCk6IG51bWJlcltdIHtcbiAgICB2YXIgcGFnZUFycjogbnVtYmVyW10gPSBbXTtcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IHF1ZXN0aW9uID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZVtpbmRleF07XG4gICAgICBpZiAocXVlc3Rpb24uaXNTaG93ID09IHRydWUgJiYgKHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZSAhPSB0aGlzLnF1ZXN0aW9uVHlwZUVudW0uTWF0cml4IHx8IHF1ZXN0aW9uLmlzTWF0cml4R3JvdXAgPT0gdHJ1ZSkpIHtcbiAgICAgICAgcGFnZUFyci5wdXNoKHF1ZXN0aW9uLnN1cnZleVBhZ2VJbmRleCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGlzdGluY3RBcnJheSA9IHBhZ2VBcnIuZmlsdGVyKChuLCBpKSA9PiBwYWdlQXJyLmluZGV4T2YobikgPT09IGkpO1xuXG4gICAgcmV0dXJuIGRpc3RpbmN0QXJyYXkuc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICB9XG5cbiAgZ2V0IGN1cnJ1bnRTaG93ZWRTdXJ2ZXlQYWdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93ZWRTdXJ2ZXlQYWdlcy5maW5kSW5kZXgoeCA9PiB4ID09IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUpICsgMTtcbiAgfVxuXG4gIGdldCBzdXJ2ZXlSZXN1bHQoKTogeyBhbnN3ZXJzOiBTdXJ2ZXlRdWVzdGlvblJlc3VsdFtdLCBjdXJyZW50UGFnZUluZGV4OiBudW1iZXIgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGN1cnJlbnRQYWdlSW5kZXg6IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWUsXG4gICAgICBhbnN3ZXJzOlxuICAgICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbHRlcih4ID0+IHguaXNNYXRyaXhHcm91cCAhPSB0cnVlKS5tYXAoeCA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFN1cnZleVBhZ2VJbmRleDogeC5zdXJ2ZXlQYWdlSW5kZXgsXG4gICAgICAgICAgICBRdWVzdGlvbklkOiB4LnF1ZXN0aW9uSWQsXG4gICAgICAgICAgICBRdWVzdGlvblR5cGU6IHgucXVlc3Rpb25UeXBlLFxuICAgICAgICAgICAgQW5zd2VySWQ6IHguYW5zd2VySWQsXG4gICAgICAgICAgICBBbnN3ZXJUZXh0OiB4LmFuc3dlclRleHQsXG4gICAgICAgICAgICBBbnN3ZXJJZEFycjogeC5hbnN3ZXJJZEFyclxuICAgICAgICAgIH0gYXMgU3VydmV5UXVlc3Rpb25SZXN1bHRcbiAgICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBpc1ByZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdXJ2ZXlMYW5ndWFnZUlkOiBudW1iZXIgPSBudWxsO1xuICBASW5wdXQoKSBhcHBsaWNhbnRLZXk6IHN0cmluZyA9IG51bGw7XG5cbiAgQE91dHB1dCgpIHN1cnZleVJlc3VsdEVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1cnZleVF1ZXN0aW9uUmVzdWx0W10+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RMYW5ndWFnZUVtaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdXJ2ZXlMaWJTZXJ2aWNlOiBTdXJ2ZXlMaWJTZXJ2aWNlXG4gICAgLCBwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX2NoZWNrUnVsZUV4cHNVc2VjYXNlOiBDaGVja1J1bGVFeHBzVXNlY2FzZSkge1xuXG4gICAgdGhpcy5yRm9ybSA9IHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwPFN1cnZlcnlMaWJGb3JtSW50ZXJmYWNlPih7XG4gICAgICBjdXJyZW50UGFnZUluZGV4OiBbMF0sXG4gICAgICBxdWVzdGlvbkFycmF5OiB0aGlzLl9mb3JtQnVpbGRlci5hcnJheTxRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oW10pLFxuICAgICAgcnVsZVF1ZXN0aW9uQXJyYXk6IHRoaXMuX2Zvcm1CdWlsZGVyLmFycmF5PFJ1bGVRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oW10pXG4gICAgfSk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zdXJ2ZXlEYXRhT2JzcnYucGlwZShkZWJvdW5jZVRpbWUoMzAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKHN1cnZleSA9PiB7XG4gICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LmNsZWFyKCk7XG4gICAgICB0aGlzLmZDdHJscy5ydWxlUXVlc3Rpb25BcnJheS5jbGVhcigpO1xuICAgICAgdGhpcy5zdXJ2ZXlEYXRhID0gbnVsbDtcblxuICAgICAgaWYgKHN1cnZleSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuc3VydmV5RGF0YSA9IHN1cnZleTtcbiAgICAgICAgdGhpcy5sb2FkUXVlc3Rpb25zKHN1cnZleSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLmFkZFF1ZXN0aW9uT2JzcnYuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmFkZFF1ZXN0aW9uR3JvdXAocmVzLnF1ZXN0aW9uLCByZXMucGFnZUluZGV4KTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2UucmVtb3ZlUXVlc3Rpb25PYnNydi5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gcmVzLnF1ZXN0aW9uSWQpO1xuICAgICAgdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIG9uUGFnZ2luZ05leHQoKSB7XG4gICAgdmFyIGludmFsaWRSZWNvcmRzID0gdGhpcy5oYXZlSW5WYWxpZGF0ZVF1ZXN0aW9ucygpO1xuICAgIGlmIChpbnZhbGlkUmVjb3Jkcy5sZW5ndGggPT0gMCkge1xuXG4gICAgICBjb25zdCBuZXh0UGFnZUluZGV4ID0gdGhpcy5nZXROZXh0U2hvd2VkUGFnZSgpO1xuXG4gICAgICBpZiAobmV4dFBhZ2VJbmRleCAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXguc2V0VmFsdWUobmV4dFBhZ2VJbmRleCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZFF1ZXN0aW9uVXBkYXRlcyhuZXh0UGFnZUluZGV4KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoe1xuICAgICAgICAgIHNjcm9sbFRvcDogJChgI3N1cnZlcnktY2FyZC0ke3RoaXMuc3VydmVyeUxpYnJhcnlEaXZJZH1gKS5vZmZzZXQoKS50b3AgLSAxMjBcbiAgICAgICAgfSwgMjAwMCk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBxdWVzdGlvbkFyciA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmlsdGVyKHggPT4geC5pc01hdHJpeEdyb3VwICE9IHRydWUpLm1hcCh4ID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgU3VydmV5UGFnZUluZGV4OiB4LnN1cnZleVBhZ2VJbmRleCxcbiAgICAgICAgICAgIFF1ZXN0aW9uSWQ6IHgucXVlc3Rpb25JZCxcbiAgICAgICAgICAgIFF1ZXN0aW9uVHlwZTogeC5xdWVzdGlvblR5cGUsXG4gICAgICAgICAgICBBbnN3ZXJJZDogeC5hbnN3ZXJJZCxcbiAgICAgICAgICAgIEFuc3dlclRleHQ6IHguYW5zd2VyVGV4dCxcbiAgICAgICAgICAgIEFuc3dlcklkQXJyOiB4LmFuc3dlcklkQXJyXG4gICAgICAgICAgfSBhcyBTdXJ2ZXlRdWVzdGlvblJlc3VsdFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdXJ2ZXlSZXN1bHRFbWl0LmVtaXQocXVlc3Rpb25BcnIpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZmlyc3RRdWVzdGlvbiA9IGludmFsaWRSZWNvcmRzWzBdO1xuICAgICAgJCgnaHRtbCwgYm9keScpLmFuaW1hdGUoe1xuICAgICAgICBzY3JvbGxUb3A6ICQoYCNxdWVzdGlvbl8ke2ZpcnN0UXVlc3Rpb24ucXVlc3Rpb25JZH1gKS5vZmZzZXQoKS50b3AgLSAxMjBcbiAgICAgIH0sIDIwMDApO1xuICAgIH1cbiAgfVxuXG4gIG9uUGFnZ2luZ0JhY2soKSB7XG4gICAgY29uc3QgcHJldlBhZ2VJbmRleCA9IHRoaXMuZ2V0UHJldlNob3dlZFBhZ2UoKTtcbiAgICBpZiAocHJldlBhZ2VJbmRleCAhPSBudWxsKSB7XG4gICAgICB0aGlzLmZDdHJscy5jdXJyZW50UGFnZUluZGV4LnNldFZhbHVlKHByZXZQYWdlSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIG9uVXBkYXRlQW5zd2Vycyhtb2RlbDogUXVlc3Rpb25BbnN3ZXJNb2RlbFtdKSB7XG4gICAgbW9kZWwuZm9yRWFjaChlbGVtID0+IHtcbiAgICAgIHRoaXMub25VcGRhdGVBbnN3ZXIoZWxlbSk7XG4gICAgfSk7XG4gIH1cblxuICBvblVwZGF0ZUFuc3dlcihtb2RlbDogUXVlc3Rpb25BbnN3ZXJNb2RlbCkge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maW5kSW5kZXgoeCA9PiB4LnF1ZXN0aW9uSWQgPT0gbW9kZWwuUXVlc3Rpb25JZCk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5jb250cm9sc1tpbmRleF07XG4gICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzVmFsaWQuc2V0VmFsdWUobW9kZWwuSXNWYWxpZCk7XG5cbiAgICAgIGlmIChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uVHlwZSA9PSB0aGlzLnF1ZXN0aW9uVHlwZUVudW0uVGV4dElucHV0KSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgYW5zd2VySWQ6IG1vZGVsLlN1cnZleUFuc3dlcklkLFxuICAgICAgICAgIGFuc3dlclRleHQ6IG1vZGVsLkFuc3dlclxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvblR5cGUgPT0gdGhpcy5xdWVzdGlvblR5cGVFbnVtLkNoZWNrQm94IHx8IHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25UeXBlID09IHRoaXMucXVlc3Rpb25UeXBlRW51bS5Ecm9wRG93bk11bHRpKSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWRBcnIuc2V0VmFsdWUobW9kZWwuQW5zd2VyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuYW5zd2VySWQuc2V0VmFsdWUobW9kZWwuQW5zd2VyKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZkN0cmxzLnJ1bGVRdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSBtb2RlbC5RdWVzdGlvbklkKSA+IC0xKSB7XG4gICAgICAgIHRoaXMuY2hlY2tSdWxlcygpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkUXVlc3Rpb25zKHN1cnZleTogU3VydmV5RHRvKSB7XG4gICAgc3VydmV5LnN1cnZleVBhZ2VzLmZvckVhY2goKHBhZ2UsIHBhZ2VJbmRleCkgPT4ge1xuXG4gICAgICBwYWdlLnN1cnZleVF1ZXN0aW9uR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuXG4gICAgICAgIGdyb3VwLnN1cnZleVF1ZXN0aW9ucy5mb3JFYWNoKHF1ZXN0aW9uID0+IHtcbiAgICAgICAgICB0aGlzLmFkZFF1ZXN0aW9uR3JvdXAocXVlc3Rpb24sIHBhZ2VJbmRleCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBzdXJ2ZXkuc3VydmV5UnVsZXMuZm9yRWFjaChydWxlID0+IHtcbiAgICAgIHJ1bGUucnVsZUV4cHMuZm9yRWFjaChydWxlRXhwID0+IHtcbiAgICAgICAgdGhpcy5mQ3RybHMucnVsZVF1ZXN0aW9uQXJyYXkucHVzaCh0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxSdWxlUXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgICBxdWVzdGlvbklkOiBydWxlRXhwLnF1ZXN0aW9uSWRcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaGF2ZUluVmFsaWRhdGVRdWVzdGlvbnMoKSB7XG4gICAgY29uc3QgY3VycmVudFBhZ2VJbmRleCA9IHRoaXMuZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWU7XG4gICAgdmFyIGludmFsaWRSZWNvcmRzID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZS5maWx0ZXIoeCA9PiB4LnN1cnZleVBhZ2VJbmRleCA9PSBjdXJyZW50UGFnZUluZGV4XG4gICAgICAmJiB4LmlzUmVxdWlyZWQgPT0gdHJ1ZSAmJiB4LmlzVmFsaWQgIT0gdHJ1ZSAmJiB4LmlzRGlzYWJsZWQgPT0gZmFsc2UgJiYgeC5pc1Nob3cgPT0gdHJ1ZSAmJiB4LmlzTWF0cml4R3JvdXAgIT0gdHJ1ZSk7XG5cbiAgICBpZiAoaW52YWxpZFJlY29yZHMubGVuZ3RoID4gMCkge1xuICAgICAgJChgI3N1cnZleS1wYWdlXyR7Y3VycmVudFBhZ2VJbmRleH1gKS5hZGRDbGFzcygnc3VydmV5LXBhZ2Vfc3VibWl0dGVkJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGludmFsaWRSZWNvcmRzO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1J1bGVzKCkge1xuXG4gICAgdGhpcy5zdXJ2ZXlEYXRhLnN1cnZleVJ1bGVzLmZvckVhY2gocnVsZSA9PiB7XG4gICAgICB0aGlzLl9jaGVja1J1bGVFeHBzVXNlY2FzZS5leGVjdXRlKHtcbiAgICAgICAgcnVsZUV4cHM6IHJ1bGUucnVsZUV4cHMsXG4gICAgICAgIHF1ZXN0aW9uczogdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS52YWx1ZVxuICAgICAgfSkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG5cbiAgICAgICAgdmFyIGlzUGFzc2VkID0gcmVzdWx0LmV4cHJlc3Rpb25SZXN1bHRBcnIuZmlsdGVyKHggPT4geCA9PSBmYWxzZSkubGVuZ3RoID09IDA7XG4gICAgICAgIGlmIChpc1Bhc3NlZCkge1xuXG4gICAgICAgICAgcnVsZS5ydWxlUmVzdWx0UXVlc3Rpb25zLmZvckVhY2gocmVzdWx0UXVlc3Rpb24gPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnZhbHVlLmZpbmRJbmRleCh4ID0+IHgucXVlc3Rpb25JZCA9PSByZXN1bHRRdWVzdGlvbi5xdWVzdGlvbklkKTtcbiAgICAgICAgICAgIHZhciBxdWVzdGlvbkdyb3VwID0gdGhpcy5mQ3RybHMucXVlc3Rpb25BcnJheS5hdChpbmRleCk7XG4gICAgICAgICAgICBpZiAocnVsZS5sb2dpY0FjdGlvbklkID09IExvZ2ljQWN0aW9uRW51bS5TaG93KSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNTaG93LnNldFZhbHVlKHRydWUpO1xuICAgICAgICAgICAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnNldFF1ZXN0aW9uSXNTaG93KHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25JZCwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uSGlkZSkge1xuICAgICAgICAgICAgICBxdWVzdGlvbkdyb3VwLmNvbnRyb2xzLmlzU2hvdy5zZXRWYWx1ZShmYWxzZSk7XG4gICAgICAgICAgICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc2V0UXVlc3Rpb25Jc1Nob3cocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvbklkLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJ1bGUubG9naWNBY3Rpb25JZCA9PSBMb2dpY0FjdGlvbkVudW0uRW5hYmxlKSB7XG4gICAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAuY29udHJvbHMuaXNEaXNhYmxlZC5zZXRWYWx1ZShmYWxzZSk7XG4gICAgICAgICAgICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc2V0UXVlc3Rpb25Jc0Rpc2FibGVkKHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25JZCwgZmFsc2UpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLkRpc2FibGUpIHtcbiAgICAgICAgICAgICAgcXVlc3Rpb25Hcm91cC5jb250cm9scy5pc0Rpc2FibGVkLnNldFZhbHVlKHRydWUpO1xuICAgICAgICAgICAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnNldFF1ZXN0aW9uSXNEaXNhYmxlZChxdWVzdGlvbkdyb3VwLnZhbHVlLnF1ZXN0aW9uSWQsIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChydWxlLmxvZ2ljQWN0aW9uSWQgPT0gTG9naWNBY3Rpb25FbnVtLlNldEFuc3dlcikge1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBydWxlLnJ1bGVSZXN1bHRRdWVzdGlvbnMuZm9yRWFjaChyZXN1bHRRdWVzdGlvbiA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmluZEluZGV4KHggPT4geC5xdWVzdGlvbklkID09IHJlc3VsdFF1ZXN0aW9uLnF1ZXN0aW9uSWQpO1xuICAgICAgICAgICAgdmFyIHF1ZXN0aW9uR3JvdXAgPSB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LmF0KGluZGV4KTtcbiAgICAgICAgICAgIHF1ZXN0aW9uR3JvdXAucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICAgIGlzU2hvdzogcXVlc3Rpb25Hcm91cC52YWx1ZS5pc1Nob3dfZGVmYXVsdCxcbiAgICAgICAgICAgICAgaXNEaXNhYmxlZDogcXVlc3Rpb25Hcm91cC52YWx1ZS5pc0Rpc2FibGVkX2RlZmF1bHRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zZXRRdWVzdGlvbklzRGlzYWJsZWQocXVlc3Rpb25Hcm91cC52YWx1ZS5xdWVzdGlvbklkLCBxdWVzdGlvbkdyb3VwLnZhbHVlLmlzRGlzYWJsZWRfZGVmYXVsdCk7XG4gICAgICAgICAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnNldFF1ZXN0aW9uSXNTaG93KHF1ZXN0aW9uR3JvdXAudmFsdWUucXVlc3Rpb25JZCwgcXVlc3Rpb25Hcm91cC52YWx1ZS5pc1Nob3dfZGVmYXVsdCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldE5leHRTaG93ZWRQYWdlKCkge1xuICAgIHZhciBjdXJyZW50UGFnZUluZGV4ID0gdGhpcy5mQ3RybHMuY3VycmVudFBhZ2VJbmRleC52YWx1ZTtcbiAgICB2YXIgc2hvd2VkUGFnZXMgPSB0aGlzLnNob3dlZFN1cnZleVBhZ2VzO1xuICAgIHZhciBuZXh0U2hvd2VkUGFnZXMgPSBzaG93ZWRQYWdlcy5maWx0ZXIoeCA9PiB4ID4gY3VycmVudFBhZ2VJbmRleCk7XG4gICAgaWYgKG5leHRTaG93ZWRQYWdlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gbmV4dFNob3dlZFBhZ2VzWzBdO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJldlNob3dlZFBhZ2UoKSB7XG4gICAgdmFyIGN1cnJlbnRQYWdlSW5kZXggPSB0aGlzLmZDdHJscy5jdXJyZW50UGFnZUluZGV4LnZhbHVlO1xuICAgIHZhciBzaG93ZWRQYWdlcyA9IHRoaXMuc2hvd2VkU3VydmV5UGFnZXM7XG4gICAgdmFyIHByZXZTaG93ZWRQYWdlcyA9IHNob3dlZFBhZ2VzLmZpbHRlcih4ID0+IHggPCBjdXJyZW50UGFnZUluZGV4KTtcbiAgICBpZiAocHJldlNob3dlZFBhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBwcmV2U2hvd2VkUGFnZXNbcHJldlNob3dlZFBhZ2VzLmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUXVlc3Rpb25Hcm91cChxdWVzdGlvbjogU3VydmV5UXVlc3Rpb25EdG8sIHBhZ2VJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkICE9IDYpIHtcbiAgICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkucHVzaCh0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvbkNoaWxkT2ZTdXJ2ZXJ5TGliRm9ybUludGVyZmFjZT4oe1xuICAgICAgICBzdXJ2ZXlQYWdlSW5kZXg6IHBhZ2VJbmRleCxcbiAgICAgICAgcXVlc3Rpb25JZDogW3F1ZXN0aW9uLnF1ZXN0aW9uSWRdLFxuICAgICAgICBxdWVzdGlvblR5cGU6IFtxdWVzdGlvbi5xdWVzdGlvblR5cGVJZF0sXG4gICAgICAgIGlzTWF0cml4R3JvdXA6IFtmYWxzZV0sXG4gICAgICAgIGFuc3dlcklkOiBbbnVsbF0sXG4gICAgICAgIGFuc3dlcklkQXJyOiBbbnVsbF0sXG4gICAgICAgIGFuc3dlclRleHQ6IFtudWxsXSxcbiAgICAgICAgaXNSZXF1aXJlZDogW3F1ZXN0aW9uLmlzUmVxdWlyZWRdLFxuICAgICAgICBpc1ZhbGlkOiBbbnVsbF0sXG4gICAgICAgIGlzRGlzYWJsZWQ6IFtxdWVzdGlvbi5pc1JlYWRPbmx5XSxcbiAgICAgICAgaXNTaG93OiBbcXVlc3Rpb24uaXNWaXNhYmxlXSxcbiAgICAgICAgaXNEaXNhYmxlZF9kZWZhdWx0OiBbcXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgIGlzU2hvd19kZWZhdWx0OiBbcXVlc3Rpb24uaXNWaXNhYmxlXVxuICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgc3VydmV5UGFnZUluZGV4OiBwYWdlSW5kZXgsXG4gICAgICAgIHF1ZXN0aW9uSWQ6IFtxdWVzdGlvbi5xdWVzdGlvbklkXSxcbiAgICAgICAgcXVlc3Rpb25UeXBlOiBbcXVlc3Rpb24ucXVlc3Rpb25UeXBlSWRdLFxuICAgICAgICBpc01hdHJpeEdyb3VwOiBbdHJ1ZV0sXG4gICAgICAgIGFuc3dlcklkOiBbbnVsbF0sXG4gICAgICAgIGFuc3dlcklkQXJyOiBbbnVsbF0sXG4gICAgICAgIGFuc3dlclRleHQ6IFtudWxsXSxcbiAgICAgICAgaXNSZXF1aXJlZDogW3F1ZXN0aW9uLmlzUmVxdWlyZWRdLFxuICAgICAgICBpc1ZhbGlkOiBbbnVsbF0sXG4gICAgICAgIGlzRGlzYWJsZWQ6IFtxdWVzdGlvbi5pc1JlYWRPbmx5XSxcbiAgICAgICAgaXNTaG93OiBbcXVlc3Rpb24uaXNWaXNhYmxlXSxcbiAgICAgICAgaXNEaXNhYmxlZF9kZWZhdWx0OiBbcXVlc3Rpb24uaXNSZWFkT25seV0sXG4gICAgICAgIGlzU2hvd19kZWZhdWx0OiBbcXVlc3Rpb24uaXNWaXNhYmxlXSxcbiAgICAgIH0pKTtcblxuICAgICAgcXVlc3Rpb24uc3VydmV5U3ViUXVlc3Rpb25zLmZvckVhY2goc3ViUXVlc3Rpb24gPT4ge1xuICAgICAgICB0aGlzLmZDdHJscy5xdWVzdGlvbkFycmF5LnB1c2godGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25DaGlsZE9mU3VydmVyeUxpYkZvcm1JbnRlcmZhY2U+KHtcbiAgICAgICAgICBzdXJ2ZXlQYWdlSW5kZXg6IHBhZ2VJbmRleCxcbiAgICAgICAgICBxdWVzdGlvbklkOiBbc3ViUXVlc3Rpb24ucXVlc3Rpb25JZF0sXG4gICAgICAgICAgcXVlc3Rpb25UeXBlOiBbc3ViUXVlc3Rpb24ucXVlc3Rpb25UeXBlSWRdLFxuICAgICAgICAgIGlzTWF0cml4R3JvdXA6IFtmYWxzZV0sXG4gICAgICAgICAgYW5zd2VySWQ6IFtudWxsXSxcbiAgICAgICAgICBhbnN3ZXJJZEFycjogW251bGxdLFxuICAgICAgICAgIGFuc3dlclRleHQ6IFtudWxsXSxcbiAgICAgICAgICBpc1JlcXVpcmVkOiBbcXVlc3Rpb24uaXNSZXF1aXJlZF0sXG4gICAgICAgICAgaXNWYWxpZDogW251bGxdLFxuICAgICAgICAgIGlzRGlzYWJsZWQ6IFtzdWJRdWVzdGlvbi5pc1JlYWRPbmx5XSxcbiAgICAgICAgICBpc1Nob3c6IFtzdWJRdWVzdGlvbi5pc1Zpc2FibGVdLFxuICAgICAgICAgIGlzRGlzYWJsZWRfZGVmYXVsdDogW3N1YlF1ZXN0aW9uLmlzUmVhZE9ubHldLFxuICAgICAgICAgIGlzU2hvd19kZWZhdWx0OiBbc3ViUXVlc3Rpb24uaXNWaXNhYmxlXVxuICAgICAgICB9KSk7XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFF1ZXN0aW9uVXBkYXRlcyhwYWdlSW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZkN0cmxzLnF1ZXN0aW9uQXJyYXkudmFsdWUuZmlsdGVyKHggPT4geC5zdXJ2ZXlQYWdlSW5kZXggPT0gcGFnZUluZGV4KS5mb3JFYWNoKHF1ZXN0aW9uID0+IHtcbiAgICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc2V0UXVlc3Rpb25Jc1Nob3cocXVlc3Rpb24ucXVlc3Rpb25JZCwgcXVlc3Rpb24uaXNTaG93KTtcbiAgICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2Uuc2V0UXVlc3Rpb25Jc0Rpc2FibGVkKHF1ZXN0aW9uLnF1ZXN0aW9uSWQsIHF1ZXN0aW9uLmlzRGlzYWJsZWQpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGlkPVwic3VydmVyeS1jYXJkLXt7c3VydmVyeUxpYnJhcnlEaXZJZH19XCIgY2xhc3M9XCJzdXJ2YXktY2FyZFwiID5cclxuICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtd2FybmluZyB0ZXh0LWNlbnRlclwiIHJvbGU9XCJhbGVydFwiICpuZ0lmPVwiaXNQcmUgPT0gdHJ1ZSAmJiBzdXJ2ZXlEYXRhICE9IG51bGxcIj5cclxuICAgIDxoNCBjbGFzcz1cImFsZXJ0LWhlYWRpbmcgbWItMFwiPlRoaXMgc3VydmV5IGluIHJldmlldyBwaGFzZSA8L2g0PlxyXG4gIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgc3VydmV5UGFnZSBvZiBzdXJ2ZXlEYXRhPy5zdXJ2ZXlQYWdlczsgbGV0IHN1cnZleVBhZ2VJbmRleCA9IGluZGV4XCJcclxuICAgICAgW2F0dHIuaWRdPVwiJ3N1cnZleS1wYWdlXycrc3VydmV5UGFnZUluZGV4XCJcclxuICAgICAgW25nQ2xhc3NdPVwieydkLW5vbmUnOiBzdXJ2ZXlQYWdlSW5kZXggIT0gZkN0cmxzLmN1cnJlbnRQYWdlSW5kZXgudmFsdWV9XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3VydmV5UGFnZS5zdXJ2ZXlRdWVzdGlvbkdyb3Vwc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2YXktY2FyZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1jYXJkLWJvZHlcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZheS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZ3JvdXAtdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgICAge3tpdGVtLnF1ZXN0aW9uR3JvdXBOYW1lfX1cclxuICAgICAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdyb3VwLXN1Yi10aXRsZSBcIj5cclxuICAgICAgICAgICAgICAgICAge3tpdGVtLnF1ZXN0aW9uR3JvdXBEZXNjcmlwdGlvbn19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcXVlc3Rpb24gb2YgaXRlbS5zdXJ2ZXlRdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tYm9vbGVhbi10ZW1wbGF0ZSAjcXVlc3Rpb25Cb29sZWFuVGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5Cb29sZWFuXCI+XHJcbiAgICAgICAgICAgICAgICA8L2xpYi1xdWVzdGlvbi1ib29sZWFuLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZSAjcXVlc3Rpb25UZXh0VGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5UZXh0SW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICBbaXNUZXh0QXJlYV09XCJxdWVzdGlvbi5pc0FkdmFuY2VUZXh0QXJlYVwiPjwvbGliLXF1ZXN0aW9uLXRleHQtdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGUgI3F1ZXN0aW9uUmFkaW9CdXR0b25UZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLlJhZGlvQnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICA8L2xpYi1xdWVzdGlvbi1yYWRpby1idXR0b24tdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZSAjcXVlc3Rpb25Ecm9wZG93blRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIiAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uRHJvcERvd25cIj48L2xpYi1xdWVzdGlvbi1kcm9wZG93bi10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bGliLXF1ZXN0aW9uLWRyb3Bkb3duLW11bHRpLXRlbXBsYXRlIFtzZXRRdWVzdGlvbl09XCJxdWVzdGlvblwiIChlbWl0dGVyKT1cIm9uVXBkYXRlQW5zd2VyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLnF1ZXN0aW9uVHlwZUlkID09IHF1ZXN0aW9uVHlwZUVudW0uRHJvcERvd25NdWx0aVwiPlxyXG4gICAgICAgICAgICAgICAgPC9saWItcXVlc3Rpb24tZHJvcGRvd24tbXVsdGktdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGUgI3F1ZXN0aW9uQ2hlY2tCb3hUZW1wbGF0ZSBbc2V0UXVlc3Rpb25dPVwicXVlc3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoZW1pdHRlcik9XCJvblVwZGF0ZUFuc3dlcigkZXZlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5xdWVzdGlvblR5cGVJZCA9PSBxdWVzdGlvblR5cGVFbnVtLkNoZWNrQm94XCI+XHJcbiAgICAgICAgICAgICAgICA8L2xpYi1xdWVzdGlvbi1jaGVjay1ib3gtdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpYi1xdWVzdGlvbi1tYXRyaXgtdGVtcGxhdGUgI3F1ZXN0aW9uTWF0cml4VGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5NYXRyaXhcIj5cclxuICAgICAgICAgICAgICAgIDwvbGliLXF1ZXN0aW9uLW1hdHJpeC10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxsaWItcXVlc3Rpb24tY2FzY2FkZS10ZW1wbGF0ZSAjcXVlc3Rpb25DYXNjYWRlVGVtcGxhdGUgW3NldFF1ZXN0aW9uXT1cInF1ZXN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGVtaXR0ZXIpPVwib25VcGRhdGVBbnN3ZXIoJGV2ZW50KVwiICpuZ0lmPVwicXVlc3Rpb24ucXVlc3Rpb25UeXBlSWQgPT0gcXVlc3Rpb25UeXBlRW51bS5DYXNjYWRlXCJcclxuICAgICAgICAgICAgICAgICAgW2FwcGxpY2FudEtleV09XCJhcHBsaWNhbnRLZXlcIiBbaXNQcmVdPVwiaXNQcmVcIiBbc3VydmV5TGFuZ3VhZ2VJZF09XCJzdXJ2ZXlMYW5ndWFnZUlkXCIgXHJcbiAgICAgICAgICAgICAgICAgIFtwYWdlSW5kZXhdPVwic3VydmV5UGFnZUluZGV4XCI+PC9saWItcXVlc3Rpb24tY2FzY2FkZS10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzdXJ2YXktY2FyZC1mb290clwiICpuZ0lmPVwic3VydmV5RGF0YSAhPSBudWxsXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cIiBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2YXktcGFnaW5hdGlvbiBmdy1ib2xkXCI+XHJcbiAgICAgICAgICA8c3Bhbj57e2N1cnJ1bnRTaG93ZWRTdXJ2ZXlQYWdlc319PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1lLTJcIj5vZjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPnt7c2hvd2VkU3VydmV5UGFnZXM/Lmxlbmd0aH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -752,6 +752,12 @@ class QuestionMatrixTemplateComponent {
752
752
  }
753
753
  });
754
754
  });
755
+ this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {
756
+ this.fCtrls.isDisabled.setValue(x.isDisabled);
757
+ });
758
+ this._surveyLibService.questionIsShowObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {
759
+ this.fCtrls.isShow.setValue(x.isShow);
760
+ });
755
761
  }
756
762
  onChangeAnswer(question, answer) {
757
763
  const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);
@@ -1150,7 +1156,6 @@ class SurveryLibComponent {
1150
1156
  this.fCtrls.questionArray.clear();
1151
1157
  this.fCtrls.ruleQuestionArray.clear();
1152
1158
  this.surveyData = null;
1153
- console.log(survey);
1154
1159
  if (survey != null) {
1155
1160
  this.surveyData = survey;
1156
1161
  this.loadQuestions(survey);
@@ -1165,13 +1170,16 @@ class SurveryLibComponent {
1165
1170
  });
1166
1171
  }
1167
1172
  onPaggingNext() {
1168
- var isHaveInvalidRecords = this.haveInValidateQuestions();
1169
- if (isHaveInvalidRecords == false) {
1173
+ var invalidRecords = this.haveInValidateQuestions();
1174
+ if (invalidRecords.length == 0) {
1170
1175
  const nextPageIndex = this.getNextShowedPage();
1171
1176
  if (nextPageIndex != null) {
1172
1177
  this.fCtrls.currentPageIndex.setValue(nextPageIndex);
1178
+ setTimeout(() => {
1179
+ this.loadQuestionUpdates(nextPageIndex);
1180
+ });
1173
1181
  $('html, body').animate({
1174
- scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top
1182
+ scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top - 120
1175
1183
  }, 2000);
1176
1184
  }
1177
1185
  else {
@@ -1188,6 +1196,12 @@ class SurveryLibComponent {
1188
1196
  this.surveyResultEmit.emit(questionArr);
1189
1197
  }
1190
1198
  }
1199
+ else {
1200
+ var firstQuestion = invalidRecords[0];
1201
+ $('html, body').animate({
1202
+ scrollTop: $(`#question_${firstQuestion.questionId}`).offset().top - 120
1203
+ }, 2000);
1204
+ }
1191
1205
  }
1192
1206
  onPaggingBack() {
1193
1207
  const prevPageIndex = this.getPrevShowedPage();
@@ -1241,15 +1255,11 @@ class SurveryLibComponent {
1241
1255
  haveInValidateQuestions() {
1242
1256
  const currentPageIndex = this.fCtrls.currentPageIndex.value;
1243
1257
  var invalidRecords = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == currentPageIndex
1244
- && x.isRequired == true && x.isValid != true
1245
- && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);
1258
+ && x.isRequired == true && x.isValid != true && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);
1246
1259
  if (invalidRecords.length > 0) {
1247
1260
  $(`#survey-page_${currentPageIndex}`).addClass('survey-page_submitted');
1248
1261
  }
1249
- if (invalidRecords.length > 0) {
1250
- console.log(invalidRecords);
1251
- }
1252
- return invalidRecords.length > 0;
1262
+ return invalidRecords;
1253
1263
  }
1254
1264
  checkRules() {
1255
1265
  this.surveyData.surveyRules.forEach(rule => {
@@ -1368,6 +1378,12 @@ class SurveryLibComponent {
1368
1378
  });
1369
1379
  }
1370
1380
  }
1381
+ loadQuestionUpdates(pageIndex) {
1382
+ this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == pageIndex).forEach(question => {
1383
+ this._surveyLibService.setQuestionIsShow(question.questionId, question.isShow);
1384
+ this._surveyLibService.setQuestionIsDisabled(question.questionId, question.isDisabled);
1385
+ });
1386
+ }
1371
1387
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SurveryLibComponent, deps: [{ token: SurveyLibService }, { token: i1.FormBuilder }, { token: CheckRuleExpsUsecase }], target: i0.ɵɵFactoryTarget.Component }); }
1372
1388
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SurveryLibComponent, selector: "lib-survery-lib", inputs: { isPre: "isPre", surveyLanguageId: "surveyLanguageId", applicantKey: "applicantKey" }, outputs: { surveyResultEmit: "surveyResultEmit", selectLanguageEmit: "selectLanguageEmit" }, ngImport: i0, template: "<div id=\"survery-card-{{surveryLibraryDivId}}\" class=\"survay-card\" >\r\n <div class=\"alert alert-warning text-center\" role=\"alert\" *ngIf=\"isPre == true && surveyData != null\">\r\n <h4 class=\"alert-heading mb-0\">This survey in review phase </h4>\r\n </div>\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\"\r\n [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\">\r\n {{item.questionGroupName}}\r\n </h2>\r\n <span class=\"group-sub-title \">\r\n {{item.questionGroupDescription}}\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template #questionBooleanTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\">\r\n </lib-question-boolean-template>\r\n\r\n <lib-question-text-template #questionTextTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isTextArea]=\"question.isAdvanceTextArea\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template #questionRadioButtonTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\">\r\n </lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"></lib-question-dropdown-template>\r\n\r\n <lib-question-dropdown-multi-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDownMulti\">\r\n </lib-question-dropdown-multi-template>\r\n\r\n <lib-question-check-box-template #questionCheckBoxTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\">\r\n </lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template #questionMatrixTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\">\r\n </lib-question-matrix-template>\r\n\r\n <lib-question-cascade-template #questionCascadeTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Cascade\"\r\n [applicantKey]=\"applicantKey\" [isPre]=\"isPre\" [surveyLanguageId]=\"surveyLanguageId\" \r\n [pageIndex]=\"surveyPageIndex\"></lib-question-cascade-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\">\r\n <span>{{curruntShowedSurveyPages}}</span>\r\n <span class=\"ms-2 me-2\">of</span>\r\n <span>{{showedSurveyPages?.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".disable__btn{background-color:gray!important;cursor:not-allowed}.quastion{padding:10px}.quastion .quastion-title{color:var(--dark-100, #363636);text-align:right;font-family:Almarai;font-size:18px;font-style:normal;font-weight:700;line-height:20.6px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QuestionTextTemplateComponent, selector: "lib-question-text-template", inputs: ["isTextArea", "setQuestion", "isDisabled"], outputs: ["emitter"] }, { kind: "component", type: QuestionRadioButtonTemplateComponent, selector: "lib-question-radio-button-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionCheckBoxTemplateComponent, selector: "lib-question-check-box-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionDropdownTemplateComponent, selector: "lib-question-dropdown-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionMatrixTemplateComponent, selector: "lib-question-matrix-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionBooleanTemplateComponent, selector: "lib-question-boolean-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionDropdownMultiTemplateComponent, selector: "lib-question-dropdown-multi-template", inputs: ["setQuestion"], outputs: ["emitter"] }, { kind: "component", type: QuestionCascadeTemplateComponent, selector: "lib-question-cascade-template", inputs: ["pageIndex", "isPre", "surveyLanguageId", "applicantKey", "setQuestion"], outputs: ["emitter"] }] }); }
1373
1389
  }