@seniorsistemas/yms-integration 1.18.3 → 1.18.4

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.
@@ -44,7 +44,7 @@ let VisitanteFormComponent = class VisitanteFormComponent {
44
44
  if (!this.formGroup.valid) {
45
45
  return this.validateAllFormFields(this.formGroup);
46
46
  }
47
- const visitante = this.formGroup.value;
47
+ const visitante = this.formGroup.getRawValue();
48
48
  visitante.id = this.id;
49
49
  this.close(visitante);
50
50
  }
@@ -81,4 +81,4 @@ VisitanteFormComponent = tslib_1.__decorate([
81
81
  DynamicDialogConfig])
82
82
  ], VisitanteFormComponent);
83
83
  export { VisitanteFormComponent };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1lZGl0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9zYW0tc2VuaW9yL2NvbXBvbmVudHMvdmlzaXRvci1lZGl0L3Zpc2l0b3ItZWRpdC1mb3JtL3Zpc2l0YW50ZS1mb3JtL3Zpc2l0b3ItZWRpdC1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU0zQyxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtJQVcvQixZQUNJLEVBQWUsRUFDUCxTQUEyQixFQUMzQixZQUFpQztRQURqQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFYNUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3BELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwQixpQkFBWSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVELGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBT25DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN0QixJQUFJLEVBQUUs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O2lCQUFNLElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRTtnQkFDckMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNILE1BQU0sb0JBQW9CLENBQUM7YUFDOUI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0osQ0FBQTtBQXhFYTtJQUFULE1BQU0sRUFBRTtzQ0FBZSxZQUFZOzREQUErQjtBQU4xRCxzQkFBc0I7SUFKbEMsU0FBUyxDQUFDO1FBQ1AscWlFQUFpRDtRQUNqRCxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztLQUNuQyxDQUFDOzZDQWFVLFdBQVc7UUFDSSxnQkFBZ0I7UUFDYixtQkFBbUI7R0FkcEMsc0JBQXNCLENBOEVsQztTQTlFWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6IFwiLi92aXNpdG9yLWVkaXQtZm9ybS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNpdGFudGVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgaWQ6IGFueTtcbiAgICBAT3V0cHV0KCkgbm90U2F2ZWREYXRhOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgcHJpdmF0ZSBhY3R1YWxWYWx1ZTogYW55O1xuICAgIHB1YmxpYyBhY3R1YWxDaGFuZ2VkID0gZmFsc2U7XG4gICAgcHVibGljIGlzRm9ybU1vZGlmaWVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogRHluYW1pY0RpYWxvZ1JlZixcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWdcbiAgICApIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSBmYi5ncm91cCh7XG4gICAgICAgICAgICBuYW1lOiBbdW5kZWZpbmVkLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXG4gICAgICAgICAgICBkb2N1bWVudDogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxuICAgICAgICAgICAgY29udGFjdDogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSB0aGlzLmRpYWxvZ0NvbmZpZztcbiAgICAgICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5pZCA9IGRhdGEuaWQ7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJuYW1lXCIpLnNldFZhbHVlKGRhdGEubmFtZSk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJkb2N1bWVudFwiKS5zZXRWYWx1ZShkYXRhLmRvY3VtZW50KTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImNvbnRhY3RcIikuc2V0VmFsdWUoZGF0YS5jb250YWN0KTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuZG9jdW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImRvY3VtZW50XCIpLmRpc2FibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubm90U2F2ZWREYXRhXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbCkgPT4gKHRoaXMuYWN0dWFsQ2hhbmdlZCA9IHZhbCkpO1xuXG4gICAgICAgIGNvbnN0IHJzID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICAgICAgcnMuc3Vic2NyaWJlKChpc0ludGFjdDogYm9vbGVhbikgPT4gKHRoaXMuaXNGb3JtTW9kaWZpZWQgPSAhaXNJbnRhY3QpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHNhdmUoKSB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm1Hcm91cCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2aXNpdGFudGUgPSB0aGlzLmZvcm1Hcm91cC52YWx1ZTtcbiAgICAgICAgdmlzaXRhbnRlLmlkID0gdGhpcy5pZDtcbiAgICAgICAgdGhpcy5jbG9zZSh2aXNpdGFudGUpO1xuICAgIH1cblxuICAgIGNsb3NlKGRhdGE/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoZGF0YSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuXG4gICAgICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93ICdJbnN0YW5jZSBmb3QgZm91bmQnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBmb3JtR3JvdXAubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICB9XG59XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1lZGl0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9zYW0tc2VuaW9yL2NvbXBvbmVudHMvdmlzaXRvci1lZGl0L3Zpc2l0b3ItZWRpdC1mb3JtL3Zpc2l0YW50ZS1mb3JtL3Zpc2l0b3ItZWRpdC1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU0zQyxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtJQVcvQixZQUNJLEVBQWUsRUFDUCxTQUEyQixFQUMzQixZQUFpQztRQURqQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFYNUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3BELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwQixpQkFBWSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVELGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBT25DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN0QixJQUFJLEVBQUUs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YUFDM0M7aUJBQU0sSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO2dCQUNyQyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0gsTUFBTSxvQkFBb0IsQ0FBQzthQUM5QjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDSixDQUFBO0FBeEVhO0lBQVQsTUFBTSxFQUFFO3NDQUFlLFlBQVk7NERBQStCO0FBTjFELHNCQUFzQjtJQUpsQyxTQUFTLENBQUM7UUFDUCxxaUVBQWlEO1FBQ2pELFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO0tBQ25DLENBQUM7NkNBYVUsV0FBVztRQUNJLGdCQUFnQjtRQUNiLG1CQUFtQjtHQWRwQyxzQkFBc0IsQ0E4RWxDO1NBOUVZLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3Zpc2l0b3ItZWRpdC1mb3JtLmNvbXBvbmVudC5odG1sXCIsXG4gICAgcHJvdmlkZXJzOiBbQ29uZmlybWF0aW9uU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFZpc2l0YW50ZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBpZDogYW55O1xuICAgIEBPdXRwdXQoKSBub3RTYXZlZERhdGE6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBwcml2YXRlIGFjdHVhbFZhbHVlOiBhbnk7XG4gICAgcHVibGljIGFjdHVhbENoYW5nZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNGb3JtTW9kaWZpZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nUmVmOiBEeW5hbWljRGlhbG9nUmVmLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0NvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZ1xuICAgICkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IGZiLmdyb3VwKHtcbiAgICAgICAgICAgIG5hbWU6IFt1bmRlZmluZWQsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcbiAgICAgICAgICAgIGRvY3VtZW50OiBbdW5kZWZpbmVkLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXG4gICAgICAgICAgICBjb250YWN0OiBbdW5kZWZpbmVkLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IHRoaXMuZGlhbG9nQ29uZmlnO1xuICAgICAgICBpZiAoZGF0YSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmlkID0gZGF0YS5pZDtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcIm5hbWVcIikuc2V0VmFsdWUoZGF0YS5uYW1lKTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImRvY3VtZW50XCIpLnNldFZhbHVlKGRhdGEuZG9jdW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY29udGFjdFwiKS5zZXRWYWx1ZShkYXRhLmNvbnRhY3QpO1xuXG4gICAgICAgICAgICBpZiAoZGF0YS5kb2N1bWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiZG9jdW1lbnRcIikuZGlzYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ub3RTYXZlZERhdGFcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsKSA9PiAodGhpcy5hY3R1YWxDaGFuZ2VkID0gdmFsKSk7XG5cbiAgICAgICAgY29uc3QgcnMgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigpO1xuICAgICAgICBycy5zdWJzY3JpYmUoKGlzSW50YWN0OiBib29sZWFuKSA9PiAodGhpcy5pc0Zvcm1Nb2RpZmllZCA9ICFpc0ludGFjdCkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgc2F2ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZpc2l0YW50ZSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIHZpc2l0YW50ZS5pZCA9IHRoaXMuaWQ7XG4gICAgICAgIHRoaXMuY2xvc2UodmlzaXRhbnRlKTtcbiAgICB9XG5cbiAgICBjbG9zZShkYXRhPzogYW55KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcblxuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyAnSW5zdGFuY2UgZm90IGZvdW5kJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9ybUdyb3VwLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgfVxufVxuIl19
@@ -143,6 +143,16 @@ let VisitanteComponent = class VisitanteComponent {
143
143
  .subscribe((visitante) => this.adicionaVisitanteParaSalvar(visitante));
144
144
  }
145
145
  adicionaVisitanteParaSalvar(visitante) {
146
+ this.visitanteGridData.forEach(visitor => {
147
+ if (visitor.document === visitante.document) {
148
+ visitor.contact = visitante.contact;
149
+ visitor.name = visitante.name;
150
+ this.visitorFound = true;
151
+ }
152
+ });
153
+ if (this.visitorFound) {
154
+ return;
155
+ }
146
156
  this.visitanteGridLoading = true;
147
157
  visitante.documentType = this.getDocumentType();
148
158
  if (visitante.visitorSituation === undefined) {
@@ -351,4 +361,4 @@ VisitanteComponent = tslib_1.__decorate([
351
361
  IntegrationEventsCallback])
352
362
  ], VisitanteComponent);
353
363
  export { VisitanteComponent };
354
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9zYW0tc2VuaW9yL2NvbXBvbmVudHMvdmlzaXRvci1lZGl0L3Zpc2l0b3ItZWRpdC1saXN0L3Zpc2l0b3ItZWRpdC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUNMLGNBQWMsR0FFZixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRyx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUTFFLElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBZ0I3QixZQUNVLFNBQTJCLEVBQzNCLGFBQTRCLEVBQzNCLG1CQUE4QztRQUYvQyxj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QVEsRUFBRSxxQkFBcUI7UUFDL0IsODhLQUFpRDs7S0FFbEQsQ0FBQzs2Q0FrQnFCLGdCQUFnQjtRQUNaLGFBQWE7UUFDTix5QkFBeUI7R0FuQjlDLGtCQUFrQixDQWlhOUI7U0FqYVksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlzaXRvckNyZWRlbnRpYWxzRHRvIH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvdmlzaXRvci1jcmVkZW50aWFscy1kdG8nO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFZpc2l0b3IgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL3Zpc2l0b3JcIjtcbmltcG9ydCB7IFN1YmplY3QsIGVtcHR5IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gIENhcmRUZWNobm9sb2d5LFxuICBDcmVkZW50aWFsQ2FyZCxcbn0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9jYXJkLWNyZWRlbnRpYWxcIjtcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsLCBtZXJnZU1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgVmlzaXRvclNpdHVhdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvdmlzaXRvci1zaXR1YXRpb25cIjtcbmltcG9ydCB7IE1vdG9yaXN0YSB9IGZyb20gXCIuLi8uLi8uLi8uLi9lcnAtc2VuaW9yL2NvcmUvZW50aXRpZXMvbW90b3Jpc3RhL21vdG9yaXN0YVwiO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgQ3JlZGVuY2lhbEZvcm1Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY3JlZGVuY2lhbC1mb3JtL2NyZWRlbmNpYWwtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7IFZpc2l0YW50ZUZvcm1Db21wb25lbnQgfSBmcm9tIFwiLi4vdmlzaXRvci1lZGl0LWZvcm0vdmlzaXRhbnRlLWZvcm0vdmlzaXRvci1lZGl0LWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBkaWFsb2dDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHMvdXRpbHNcIjtcbmltcG9ydCB7ICBJbnRlZ3JhdGlvbkV2ZW50c0NhbGxiYWNrIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy95bXMtcm91dGluZXNcIjtcbmltcG9ydCB7IFZpc2l0b3JEdG8gfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy92aXNpdG9yLWR0byc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpc2l0YW50ZS1jb21wb25lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aXNpdG9yLWVkaXQtbGlzdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNpdGFudGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICBASW5wdXQoKSBwcml2YXRlIG1vdG9yaXN0YTogTW90b3Jpc3RhO1xuICBASW5wdXQoKSBwcml2YXRlIHZpc2l0b3JzOiBWaXNpdG9yQ3JlZGVudGlhbHNEdG9bXSA9IFtdO1xuICBAT3V0cHV0KCkgdmlzaXRvcnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFZpc2l0b3JDcmVkZW50aWFsc0R0b1tdPigpO1xuICBAT3V0cHV0KCkgaGFzQ2hhbmdlICA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgdmlzaXRhbnRlR3JpZERhdGE6IFZpc2l0b3JEdG9bXTtcbiAgcHVibGljIHZpc2l0YW50ZUdyaWRDb2x1bW5zOiBhbnlbXTtcbiAgcHVibGljIHZpc2l0YW50ZVRvdGFsUmVjb3JkczogbnVtYmVyO1xuICBwdWJsaWMgdmlzaXRhbnRlR3JpZExvYWRpbmc6IGJvb2xlYW47XG5cblxuICBwcml2YXRlIHJlYWRvbmx5IF9pbnRlZ3JhdGlvbkNhbGxiYWNrOiBJbnRlZ3JhdGlvbkV2ZW50c0NhbGxiYWNrO1xuICBwcml2YXRlIHJlYWRvbmx5IHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHJlYWRvbmx5IGludGVncmF0aW9uQ2FsbGJhY2s6IEludGVncmF0aW9uRXZlbnRzQ2FsbGJhY2tcbiAgKSB7XG4gICAgdGhpcy5faW50ZWdyYXRpb25DYWxsYmFjayA9IGludGVncmF0aW9uQ2FsbGJhY2s7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbnN0cm9pQ2FtcG9zVGFiZWxhVmlzdGFudGUoKTtcbiAgICB0aGlzLnZpc2l0YW50ZVRvdGFsUmVjb3JkcyA9IDA7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52aXNpdGFudGVHcmlkTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuYWRpY2lvbmFWaXNpdGFudGVzR3JpZCgpO1xuICAgIHRoaXMuX2ludGVncmF0aW9uQ2FsbGJhY2tcbiAgICAgIC5vbkFnZW5kYW1lbnRvTW90b3Jpc3RhQ2hhbmdlZCgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSxcbiAgICAgICAgbWVyZ2VNYXAoKG1vdG9yaXN0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuYXR1YWxpemFNb3RvcmlzdGEobW90b3Jpc3RhKTtcbiAgICAgICAgICByZXR1cm4gZW1wdHkoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR1YWxpemFNb3RvcmlzdGEobW90OiBNb3RvcmlzdGEpIHtcbiAgICBjb25zdCBtb3RvcmlzdGFWaXNpdGFudGUgPSB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmZpbmQoXG4gICAgICAoaXRlbSkgPT4gaXRlbS5kcml2ZXJcbiAgICApO1xuXG4gICAgaWYgKG1vdG9yaXN0YVZpc2l0YW50ZSAmJiBtb3RvcmlzdGFWaXNpdGFudGUuZG9jdW1lbnRUeXBlID09PSB0aGlzLmdldERvY3VtZW50VHlwZSgpICYmICBtb3RvcmlzdGFWaXNpdGFudGUuZG9jdW1lbnQgPT09IG1vdC5jcGYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52aXNpdGFudGVHcmlkRGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhWzBdID0ge1xuICAgICAgICBuYW1lOiBtb3Qubm9tZSxcbiAgICAgICAgZG9jdW1lbnQ6IG1vdC5jcGYsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YShtb3QpLFxuICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiBWaXNpdG9yU2l0dWF0aW9uLkNIRUNLX0lOX1BFTkRJTkcsXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgZHJpdmVyOiB0cnVlXG4gICAgICB9OyAgICAgIFxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaCh7XG4gICAgICAgIG5hbWU6IG1vdC5ub21lLFxuICAgICAgICBkb2N1bWVudDogbW90LmNwZixcbiAgICAgICAgY29udGFjdDogdGhpcy5nZXRDb250YXRvTW90b3Jpc3RhKG1vdCksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORyxcbiAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgICBcbiAgfVxuXG4gIHByaXZhdGUgYWRpY2lvbmFWaXNpdGFudGVzR3JpZCgpIHtcbiAgICBpZiAodGhpcy52aXNpdG9ycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEgPSBbXTtcbiAgICAgIHRoaXMuYWRpY2lvbmFNb3RvcmlzdGFOb1Zpc2l0YW50ZUdyaWREYXRhKCk7XG5cbiAgICAgIHRoaXMudmlzaXRvcnMuZm9yRWFjaCgodmlzaXRvcjogYW55KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm1vdG9yaXN0YS5jcGYgIT09IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudCkge1xuICAgICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaCh7XG4gICAgICAgICAgICBpZDogdmlzaXRvci52aXNpdG9yLmlkLFxuICAgICAgICAgICAgbmFtZTogdmlzaXRvci52aXNpdG9yLm5hbWUsXG4gICAgICAgICAgICBkb2N1bWVudDogdmlzaXRvci52aXNpdG9yLmRvY3VtZW50LFxuICAgICAgICAgICAgY29udGFjdDogdmlzaXRvci52aXNpdG9yLmNvbnRhY3QsXG4gICAgICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiB0aGlzLmdldFZpc2l0b3JTaXR1YXRpb24oXG4gICAgICAgICAgICAgIHZpc2l0b3IudmlzaXRvci52aXNpdG9yU2l0dWF0aW9uXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICAgICAgZHJpdmVyOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZpc2l0YW50ZVRvdGFsUmVjb3JkcyA9IHRoaXMudmlzaXRvcnMubGVuZ3RoO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEgPSBbXTtcbiAgICAgIGNvbnN0IG5vdm9fdmlzaXRhbnRlID0gbmV3IFZpc2l0b3JDcmVkZW50aWFsc0R0bygpXG4gICAgICBub3ZvX3Zpc2l0YW50ZS52aXNpdG9yID0ge1xuICAgICAgICBuYW1lOiB0aGlzLm1vdG9yaXN0YS5ub21lLFxuICAgICAgICBkb2N1bWVudDogdGhpcy5tb3RvcmlzdGEuY3BmLFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEodGhpcy5tb3RvcmlzdGEpLFxuICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORyxcbiAgICAgICAgZHJpdmVyOiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZpc2l0YW50ZUJ1c2NhbmRvID0gdGhpcy52aXNpdGFudGVHcmlkRGF0YS5maW5kKFxuICAgICAgICAodmlzaXRhbnRlTmFMaXN0YSkgPT4gbm92b192aXNpdGFudGUudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRhbnRlTmFMaXN0YS5kb2N1bWVudFxuICAgICAgICApO1xuICAgICAgICBpZiAodmlzaXRhbnRlQnVzY2FuZG8gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaChub3ZvX3Zpc2l0YW50ZS52aXNpdG9yKTsgICAgICAgIFxuICAgICAgICAgIHRoaXMudmlzaXRvcnMucHVzaChub3ZvX3Zpc2l0YW50ZSk7XG4gICAgICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzID0gMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRMb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaXNDcmVkZW50aWFsQ2FyZHNFbXB0eSh2aXNpdG9yOiBWaXNpdG9yKSB7XG4gICAgY29uc3QgdmlzaXRhbnRlc0VuY29udHJhZG9zID0gdGhpcy52aXNpdG9ycy5maW5kKFxuICAgICAgKHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMpID0+XG4gICAgICAgIHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRvci5kb2N1bWVudFxuICAgICk7XG5cbiAgICBpZiAodmlzaXRhbnRlc0VuY29udHJhZG9zID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmlzaXRhbnRlc0VuY29udHJhZG9zLmNyZWRlbnRpYWxDYXJkcy5maWx0ZXIoXG4gICAgICAoY3JlZGVudGlhbENhcmQ6IENyZWRlbnRpYWxDYXJkKSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhjcmVkZW50aWFsQ2FyZCkubGVuZ3RoICE9PSAwXG4gICAgKS5sZW5ndGggPiAwXG4gICAgICA/IHRydWVcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGFkaWNpb25hTW90b3Jpc3RhTm9WaXNpdGFudGVHcmlkRGF0YSgpIHtcbiAgICBjb25zdCBtb3RvcmlzdGFWaXNpdGFudGUgPSB0aGlzLnZpc2l0b3JzLmZpbmQoXG4gICAgICAodmlzaXRvcikgPT4gdGhpcy5tb3RvcmlzdGEuY3BmID09PSB2aXNpdG9yLnZpc2l0b3IuZG9jdW1lbnRcbiAgICApO1xuXG4gICAgaWYgKG1vdG9yaXN0YVZpc2l0YW50ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLnB1c2goe1xuICAgICAgICBuYW1lOiB0aGlzLm1vdG9yaXN0YS5ub21lLFxuICAgICAgICBkb2N1bWVudDogdGhpcy5tb3RvcmlzdGEuY3BmLFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEodGhpcy5tb3RvcmlzdGEpLFxuICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiBWaXNpdG9yU2l0dWF0aW9uLkNIRUNLX0lOX1BFTkRJTkcsXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgZHJpdmVyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaCh7XG4gICAgICAgIGlkOiBtb3RvcmlzdGFWaXNpdGFudGUudmlzaXRvci5pZCxcbiAgICAgICAgbmFtZTogbW90b3Jpc3RhVmlzaXRhbnRlLnZpc2l0b3IubmFtZSxcbiAgICAgICAgZG9jdW1lbnQ6IG1vdG9yaXN0YVZpc2l0YW50ZS52aXNpdG9yLmRvY3VtZW50LFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEodGhpcy5tb3RvcmlzdGEpLFxuICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiB0aGlzLmdldFZpc2l0b3JTaXR1YXRpb24oXG4gICAgICAgICAgbW90b3Jpc3RhVmlzaXRhbnRlLnZpc2l0b3IudmlzaXRvclNpdHVhdGlvblxuICAgICAgICApLFxuICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIGRyaXZlcjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmlhck91QXR1YWxpemFyVmlzaXRhbnRlKHZpc2l0b3I6IFZpc2l0b3IpIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgIC5vcGVuKFZpc2l0YW50ZUZvcm1Db21wb25lbnQsIHtcbiAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgIFwieW1zLnBhdGlvLm1vdG9yaXN0YV9hZGljaW9uYXJfdmlzaXRhbnRlXCJcbiAgICAgICAgKSxcbiAgICAgICAgLi4uZGlhbG9nQ29uZmlnLFxuICAgICAgICAuLi50aGlzLmNvbnN0cm9pVmlzaXRhbnRlKHZpc2l0b3IpLFxuICAgICAgfSlcbiAgICAgIC5vbkNsb3NlLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiAhIXZhbHVlKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmlzaXRhbnRlKSA9PiB0aGlzLmFkaWNpb25hVmlzaXRhbnRlUGFyYVNhbHZhcih2aXNpdGFudGUpKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGljaW9uYVZpc2l0YW50ZVBhcmFTYWx2YXIodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgdGhpcy52aXNpdGFudGVHcmlkTG9hZGluZyA9IHRydWU7XG5cbiAgICB2aXNpdGFudGUuZG9jdW1lbnRUeXBlID0gdGhpcy5nZXREb2N1bWVudFR5cGUoKTtcblxuICAgIGlmICh2aXNpdGFudGUudmlzaXRvclNpdHVhdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2aXNpdGFudGUudmlzaXRvclNpdHVhdGlvbiA9IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORztcbiAgICB9XG5cbiAgICB0aGlzLmFkZFZpc2l0YW50ZU5hVGFiZWxhKHZpc2l0YW50ZSk7XG5cbiAgICB0aGlzLnZpc2l0YW50ZVRvdGFsUmVjb3JkcysrO1xuICAgIHRoaXMudmlzaXRhbnRlR3JpZExvYWRpbmcgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vdm9fdmlzaXRhbnRlID0gbmV3IFZpc2l0b3JDcmVkZW50aWFsc0R0bygpXG4gICAgbm92b192aXNpdGFudGUudmlzaXRvciA9IHtcbiAgICAgIG5hbWUgOiB2aXNpdGFudGUubmFtZSxcbiAgICAgIGRvY3VtZW50IDogdmlzaXRhbnRlLmRvY3VtZW50LFxuICAgICAgY29udGFjdDogdmlzaXRhbnRlLmNvbnRhY3QsXG4gICAgICBkb2N1bWVudFR5cGUgOiB2aXNpdGFudGUuZG9jdW1lbnRUeXBlLFxuICAgICAgdmlzaXRvclNpdHVhdGlvbiA6IHZpc2l0YW50ZS52aXNpdG9yU2l0dWF0aW9uLFxuICAgICAgZHJpdmVyOiBmYWxzZVxuICAgIH1cblxuICAgIHRoaXMudmlzaXRvcnMucHVzaChub3ZvX3Zpc2l0YW50ZSlcbiAgICB0aGlzLnZpc2l0b3JzQ2hhbmdlLmVtaXQodGhpcy52aXNpdG9ycylcbiAgICB0aGlzLmhhc0NoYW5nZS5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG1vZGVsKHZpc2l0YW50ZTogVmlzaXRvcikge1xuICAgIGNvbnN0IGlzRHJpdmVyID0gdmlzaXRhbnRlLmRvY3VtZW50ID09PSB0aGlzLm1vdG9yaXN0YS5jcGY7XG5cbiAgICBjb25zdCBmaW5kVmlzaXRvciA9IHRoaXMudmlzaXRvcnMuZmluZChcbiAgICAgICh2aXNpdG9yV2l0aENyZWRlbnRpYWxzKSA9PlxuICAgICAgICB2aXNpdG9yV2l0aENyZWRlbnRpYWxzLnZpc2l0b3IuZG9jdW1lbnQgPT09IHZpc2l0YW50ZS5kb2N1bWVudFxuICAgICk7XG5cbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneW1zLnBhdGlvLm1vdG9yaXN0YV9lZGl0YXJfdmlzaXRhbnRlJyksXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuZWRpdGFyVmlzaXRhbnRlKHZpc2l0YW50ZSksXG4gICAgICAgIHZpc2libGUgOiAhaXNEcml2ZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5bXMucGF0aW8uZGVsZXRlJyksXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuZGVsZXRhclZpc2l0YW50ZSh2aXNpdGFudGUpLFxuICAgICAgICB2aXNpYmxlIDogIWlzRHJpdmVyXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneW1zLnBhdGlvLm1vdG9yaXN0YV92aXNpdGFudGVfZW50cmVnYXJfY3JlZGVuY2lhbCcpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmVudHJlZ2FyQ3JlZGVuY2lhbCh2aXNpdGFudGUpLFxuICAgICAgICB2aXNpYmxlIDogaXNEcml2ZXIgfHwgIWlzRHJpdmVyXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneW1zLnBhdGlvLnJlbW92ZXJfY3JlZGVuY2lhaXMnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5kZWxldGFyQ3JlZGVuY2lhaXMoZmluZFZpc2l0b3IpLFxuICAgICAgICB2aXNpYmxlIDogZmluZFZpc2l0b3IgIT0gbnVsbCAmJiBmaW5kVmlzaXRvci5jcmVkZW50aWFsQ2FyZHMgIT0gbnVsbCAmJiBmaW5kVmlzaXRvci5jcmVkZW50aWFsQ2FyZHMubGVuZ3RoID4gMFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRWaXNpdGFudGVOYVRhYmVsYSh2aXNpdGFudGU6IGFueSkge1xuICAgIGlmICh2aXNpdGFudGUuaWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhID0gdGhpcy52aXNpdGFudGVHcmlkRGF0YS5tYXAoKHZpc2l0YW50ZUdyaWQpID0+IHtcbiAgICAgICAgICAgIGlmICh2aXNpdGFudGVHcmlkLmlkID09PSB2aXNpdGFudGUuaWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmlzaXRhbnRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZpc2l0YW50ZUdyaWQ7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaCh2aXNpdGFudGUpO1xuICAgIH1cbn1cblxuICBwdWJsaWMgZW50cmVnYXJDcmVkZW5jaWFsKHZpc2l0YW50ZTogVmlzaXRvcikge1xuICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgLm9wZW4oQ3JlZGVuY2lhbEZvcm1Db21wb25lbnQsIHtcbiAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgIFwieW1zLnBhdGlvLm1vdG9yaXN0YV92aXNpdGFudGVfY3JlZGVuY2lhbFwiXG4gICAgICAgICksXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB2aXNpdGFudGU6IHZpc2l0YW50ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAub25DbG9zZS5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gISF2YWx1ZSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZpc2l0b3JDcmVkZW50aWFsQ2FyZDogYW55KSA9PiBcbiAgICAgIHRoaXMuYWRpY2lvbmFDcmVkZW5jaWFsUGFyYUVudHJlZ2FyKHZpc2l0b3JDcmVkZW50aWFsQ2FyZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGljaW9uYUNyZWRlbmNpYWxQYXJhRW50cmVnYXIodmlzaXRvckNyZWRlbnRpYWxDYXJkOiBhbnkpIHtcbiAgICBjb25zdCB2aXNpdG9yV2l0aENyZWRlbmNpYWwgPSB0aGlzLnZpc2l0b3JzLmZpbmQoXG4gICAgICAodmlzaXRvcikgPT4gdmlzaXRvci52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdG9yQ3JlZGVudGlhbENhcmQudmlzaXRvci5kb2N1bWVudFxuICAgICk7XG5cbiAgICBpZiAodmlzaXRvcldpdGhDcmVkZW5jaWFsID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmlzaXRvcnMucHVzaCh7XG4gICAgICAgIHZpc2l0b3I6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC52aXNpdG9yLFxuICAgICAgICBjcmVkZW50aWFsQ2FyZHM6IFt0aGlzLmNyZWF0ZUNyZWRlbnRpYWxDYXJkKHZpc2l0b3JDcmVkZW50aWFsQ2FyZCldLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZpc2l0b3JXaXRoQ3JlZGVuY2lhbC5jcmVkZW50aWFsQ2FyZHMucHVzaCh0aGlzLmNyZWF0ZUNyZWRlbnRpYWxDYXJkKHZpc2l0b3JDcmVkZW50aWFsQ2FyZCkpO1xuICAgIH1cbiAgICB0aGlzLmhhc0NoYW5nZS5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIGVkaXRhclZpc2l0YW50ZSh2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICB0aGlzLmNyaWFyT3VBdHVhbGl6YXJWaXNpdGFudGUodmlzaXRhbnRlKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGFyVmlzaXRhbnRlKHZpc2l0YW50ZTogVmlzaXRvcikge1xuICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEuZm9yRWFjaCgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICBpZiAodmFsdWUuZG9jdW1lbnQgPT09IHZpc2l0YW50ZS5kb2N1bWVudCkge1xuICAgICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgICAgY29uc3QgcmVtb3ZlVmlzaXRvciA9IHRoaXMudmlzaXRvcnMuZmluZEluZGV4KCh2aXNpdG9yKSA9PiB2aXNpdG9yLnZpc2l0b3IuZG9jdW1lbnQgPT09IHZhbHVlLmRvY3VtZW50KTtcbiAgICAgICAgaWYocmVtb3ZlVmlzaXRvciAhPT0gLTEpIHtcbiAgICAgICAgICB0aGlzLnZpc2l0b3JzLnNwbGljZShyZW1vdmVWaXNpdG9yLCAxKTtcbiAgICAgICAgICB0aGlzLmhhc0NoYW5nZS5lbWl0KHRydWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRhckNyZWRlbmNpYWlzKHZpaXNpdG9yQ3JlZGVudGlhbDogVmlzaXRvckNyZWRlbnRpYWxzRHRvKSB7XG4gICAgdmlpc2l0b3JDcmVkZW50aWFsLmNyZWRlbnRpYWxDYXJkcy5zcGxpY2UoMCwgdmlpc2l0b3JDcmVkZW50aWFsLmNyZWRlbnRpYWxDYXJkcy5sZW5ndGgpO1xuICAgIHRoaXMuaGFzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRhdG9Nb3RvcmlzdGEobW90b3Jpc3RhOiBNb3RvcmlzdGEpIHtcbiAgICByZXR1cm4gbW90b3Jpc3RhLnRlbGVmb25lID09PSB1bmRlZmluZWQgPyBcIjBcIiA6IG1vdG9yaXN0YS50ZWxlZm9uZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDcmVkZW50aWFsQ2FyZHModmlzaXRvcjogVmlzaXRvcikge1xuICAgIGlmICh0aGlzLnZpc2l0b3JzLmxlbmd0aCA8PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudmlzaXRvcnNcbiAgICAgIC5maW5kKFxuICAgICAgICAodmlzaXRvcldpdGhDcmVkZW50aWFscykgPT5cbiAgICAgICAgICB2aXNpdG9yV2l0aENyZWRlbnRpYWxzLnZpc2l0b3IuZG9jdW1lbnQgPT09IHZpc2l0b3IuZG9jdW1lbnRcbiAgICAgIClcbiAgICAgIC5jcmVkZW50aWFsQ2FyZHMuZmlsdGVyKFxuICAgICAgICAoY3JlZGVudGlhbENhcmQpID0+IE9iamVjdC5rZXlzKGNyZWRlbnRpYWxDYXJkKS5sZW5ndGggIT09IDBcbiAgICAgIClcbiAgICAgIC5tYXAoKGNyZWRlbnRpYWxDYXJkOiBDcmVkZW50aWFsQ2FyZCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNhcmRUZWNobm9sb2d5OiB0aGlzLmdldFRlY25vbG9naWFDcmFjaGFUcmFkdXppZGEoXG4gICAgICAgICAgICBjcmVkZW50aWFsQ2FyZC5jYXJkVGVjaG5vbG9neVxuICAgICAgICAgICksXG4gICAgICAgICAgY2FyZE51bWJlcjogY3JlZGVudGlhbENhcmQuY2FyZE51bWJlcixcbiAgICAgICAgICBlbmREYXRlOiBjcmVkZW50aWFsQ2FyZC5lbmREYXRlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cm9pVmlzaXRhbnRlKHZpc2l0YW50ZTogVmlzaXRvcikge1xuICAgIGxldCB2aXNpdGFudGVEYXRhID0geyBkYXRhOiB7fSB9O1xuICAgIGlmICh2aXNpdGFudGUgIT09IHVuZGVmaW5lZCAmJiB2aXNpdGFudGUgIT09IG51bGwpIHtcbiAgICAgIHZpc2l0YW50ZURhdGEgPSB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBpZDogdmlzaXRhbnRlLmlkLFxuICAgICAgICAgIG5hbWU6IHZpc2l0YW50ZS5uYW1lLFxuICAgICAgICAgIGRvY3VtZW50OiB2aXNpdGFudGUuZG9jdW1lbnQsXG4gICAgICAgICAgY29udGFjdDogdmlzaXRhbnRlLmNvbnRhY3QsXG4gICAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogdGhpcy5nZXRWaXNpdG9yU2l0dWF0aW9uKFxuICAgICAgICAgICAgdmlzaXRhbnRlLnZpc2l0b3JTaXR1YXRpb25cbiAgICAgICAgICApLFxuICAgICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB2aXNpdGFudGVEYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDcmVkZW50aWFsQ2FyZCh2aXNpdG9yQ3JlZGVudGlhbENhcmQ6IENyZWRlbnRpYWxDYXJkKTogQ3JlZGVudGlhbENhcmQge1xuICAgIHJldHVybiB7XG4gICAgICB2aXNpdG9yOiB2aXNpdG9yQ3JlZGVudGlhbENhcmQuaWQsXG4gICAgICBjYXJkVGVjaG5vbG9neTogdmlzaXRvckNyZWRlbnRpYWxDYXJkLmNhcmRUZWNobm9sb2d5LFxuICAgICAgY2FyZE51bWJlcjogdmlzaXRvckNyZWRlbnRpYWxDYXJkLmNhcmROdW1iZXIsXG4gICAgICBlbmREYXRlOiB2aXNpdG9yQ3JlZGVudGlhbENhcmQuZW5kRGF0ZSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUZWNub2xvZ2lhQ3JhY2hhVHJhZHV6aWRhKGNhcmRUZWNobm9sb2d5OiBDYXJkVGVjaG5vbG9neSk6IHN0cmluZyB7XG4gICAgaWYgKGNhcmRUZWNobm9sb2d5ID09PSBDYXJkVGVjaG5vbG9neS5CQVJDT0RFX0NBUkQpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICBcInltcy5wYXRpby5jYXJ0YW9fY3JlZGVuY2lhbF9jb2RpZ29fYmFycmFzXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGNhcmRUZWNobm9sb2d5ID09PSBDYXJkVGVjaG5vbG9neS5SRklEX0NBUkQpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLnBhdGlvLmNhcnRhb19jcmVkZW5jaWFsX3JmaWRcIik7XG4gICAgfVxuXG4gICAgaWYgKGNhcmRUZWNobm9sb2d5ID09PSBDYXJkVGVjaG5vbG9neS5TTUFSVF9DQVJEKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5wYXRpby5jYXJ0YW9fY3JlZGVuY2lhbF9zbWFydFwiKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFZpc2l0b3JTaXR1YXRpb24odmlzaXRvclNpdHVhdGlvbjogVmlzaXRvclNpdHVhdGlvbikge1xuICAgIHJldHVybiB2aXNpdG9yU2l0dWF0aW9uID09PSB1bmRlZmluZWRcbiAgICAgID8gVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HXG4gICAgICA6IHZpc2l0b3JTaXR1YXRpb247XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cm9pQ2FtcG9zVGFiZWxhVmlzdGFudGUoKSB7XG4gICAgdGhpcy52aXNpdGFudGVHcmlkQ29sdW1ucyA9IFtcbiAgICAgIHtcbiAgICAgICAgZmllbGQ6IFwibmFtZVwiLFxuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9ub21lXCIpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmllbGQ6IFwiZG9jdW1lbnRcIixcbiAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgIFwieW1zLnBhdGlvLm1vdG9yaXN0YV92aXNpdGFudGVfZG9jdW1lbnRvXCJcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGZpZWxkOiBcImNvbnRhY3RcIixcbiAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLnBhdGlvLm1vdG9yaXN0YV92aXNpdGFudGVfY29udGF0b1wiKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RG9jdW1lbnRUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiY3BmXCI7XG4gIH1cbn0iXX0=
364
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9zYW0tc2VuaW9yL2NvbXBvbmVudHMvdmlzaXRvci1lZGl0L3Zpc2l0b3ItZWRpdC1saXN0L3Zpc2l0b3ItZWRpdC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUNMLGNBQWMsR0FFZixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRyx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUTFFLElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBZ0I3QixZQUNVLFNBQTJCLEVBQzNCLGFBQTRCLEVBQzNCLG1CQUE4QztRQUYvQyxj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Q0UsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQzthQUN4RTtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sZUFBZTtRQUNyQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRixDQUFBO0FBM2FVO0lBQVIsS0FBSyxFQUFFOztxREFBOEI7QUFDN0I7SUFBUixLQUFLLEVBQUU7O29EQUFnRDtBQUM5QztJQUFULE1BQU0sRUFBRTs7MERBQThEO0FBQzdEO0lBQVQsTUFBTSxFQUFFOztxREFBMEM7QUFKeEMsa0JBQWtCO0lBTDlCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsODhLQUFpRDs7S0FFbEQsQ0FBQzs2Q0FrQnFCLGdCQUFnQjtRQUNaLGFBQWE7UUFDTix5QkFBeUI7R0FuQjlDLGtCQUFrQixDQTRhOUI7U0E1YVksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlzaXRvckNyZWRlbnRpYWxzRHRvIH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvdmlzaXRvci1jcmVkZW50aWFscy1kdG8nO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFZpc2l0b3IgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL3Zpc2l0b3JcIjtcbmltcG9ydCB7IFN1YmplY3QsIGVtcHR5IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gIENhcmRUZWNobm9sb2d5LFxuICBDcmVkZW50aWFsQ2FyZCxcbn0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9jYXJkLWNyZWRlbnRpYWxcIjtcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsLCBtZXJnZU1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgVmlzaXRvclNpdHVhdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvdmlzaXRvci1zaXR1YXRpb25cIjtcbmltcG9ydCB7IE1vdG9yaXN0YSB9IGZyb20gXCIuLi8uLi8uLi8uLi9lcnAtc2VuaW9yL2NvcmUvZW50aXRpZXMvbW90b3Jpc3RhL21vdG9yaXN0YVwiO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgQ3JlZGVuY2lhbEZvcm1Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY3JlZGVuY2lhbC1mb3JtL2NyZWRlbmNpYWwtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7IFZpc2l0YW50ZUZvcm1Db21wb25lbnQgfSBmcm9tIFwiLi4vdmlzaXRvci1lZGl0LWZvcm0vdmlzaXRhbnRlLWZvcm0vdmlzaXRvci1lZGl0LWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBkaWFsb2dDb25maWcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHMvdXRpbHNcIjtcbmltcG9ydCB7ICBJbnRlZ3JhdGlvbkV2ZW50c0NhbGxiYWNrIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy95bXMtcm91dGluZXNcIjtcbmltcG9ydCB7IFZpc2l0b3JEdG8gfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy92aXNpdG9yLWR0byc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Zpc2l0YW50ZS1jb21wb25lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92aXNpdG9yLWVkaXQtbGlzdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNpdGFudGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICBASW5wdXQoKSBwcml2YXRlIG1vdG9yaXN0YTogTW90b3Jpc3RhO1xuICBASW5wdXQoKSBwcml2YXRlIHZpc2l0b3JzOiBWaXNpdG9yQ3JlZGVudGlhbHNEdG9bXSA9IFtdO1xuICBAT3V0cHV0KCkgdmlzaXRvcnNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFZpc2l0b3JDcmVkZW50aWFsc0R0b1tdPigpO1xuICBAT3V0cHV0KCkgaGFzQ2hhbmdlICA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgdmlzaXRhbnRlR3JpZERhdGE6IFZpc2l0b3JEdG9bXTtcbiAgcHVibGljIHZpc2l0YW50ZUdyaWRDb2x1bW5zOiBhbnlbXTtcbiAgcHVibGljIHZpc2l0YW50ZVRvdGFsUmVjb3JkczogbnVtYmVyO1xuICBwdWJsaWMgdmlzaXRhbnRlR3JpZExvYWRpbmc6IGJvb2xlYW47XG4gIHB1YmxpYyB2aXNpdG9yRm91bmQ6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW50ZWdyYXRpb25DYWxsYmFjazogSW50ZWdyYXRpb25FdmVudHNDYWxsYmFjaztcbiAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICByZWFkb25seSBpbnRlZ3JhdGlvbkNhbGxiYWNrOiBJbnRlZ3JhdGlvbkV2ZW50c0NhbGxiYWNrXG4gICkge1xuICAgIHRoaXMuX2ludGVncmF0aW9uQ2FsbGJhY2sgPSBpbnRlZ3JhdGlvbkNhbGxiYWNrO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jb25zdHJvaUNhbXBvc1RhYmVsYVZpc3RhbnRlKCk7XG4gICAgdGhpcy52aXNpdGFudGVUb3RhbFJlY29yZHMgPSAwO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmlzaXRhbnRlR3JpZExvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmFkaWNpb25hVmlzaXRhbnRlc0dyaWQoKTtcbiAgICB0aGlzLl9pbnRlZ3JhdGlvbkNhbGxiYWNrXG4gICAgICAub25BZ2VuZGFtZW50b01vdG9yaXN0YUNoYW5nZWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksXG4gICAgICAgIG1lcmdlTWFwKChtb3RvcmlzdGEpID0+IHtcbiAgICAgICAgICB0aGlzLmF0dWFsaXphTW90b3Jpc3RhKG1vdG9yaXN0YSk7XG4gICAgICAgICAgcmV0dXJuIGVtcHR5KCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGF0dWFsaXphTW90b3Jpc3RhKG1vdDogTW90b3Jpc3RhKSB7XG4gICAgY29uc3QgbW90b3Jpc3RhVmlzaXRhbnRlID0gdGhpcy52aXNpdGFudGVHcmlkRGF0YS5maW5kKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uZHJpdmVyXG4gICAgKTtcblxuICAgIGlmIChtb3RvcmlzdGFWaXNpdGFudGUgJiYgbW90b3Jpc3RhVmlzaXRhbnRlLmRvY3VtZW50VHlwZSA9PT0gdGhpcy5nZXREb2N1bWVudFR5cGUoKSAmJiAgbW90b3Jpc3RhVmlzaXRhbnRlLmRvY3VtZW50ID09PSBtb3QuY3BmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudmlzaXRhbnRlR3JpZERhdGEubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YVswXSA9IHtcbiAgICAgICAgbmFtZTogbW90Lm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiBtb3QuY3BmLFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEobW90KSxcbiAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HLFxuICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIGRyaXZlcjogdHJ1ZVxuICAgICAgfTsgICAgICBcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLnB1c2goe1xuICAgICAgICBuYW1lOiBtb3Qubm9tZSxcbiAgICAgICAgZG9jdW1lbnQ6IG1vdC5jcGYsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YShtb3QpLFxuICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiBWaXNpdG9yU2l0dWF0aW9uLkNIRUNLX0lOX1BFTkRJTkcsXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgZHJpdmVyOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gICAgXG4gIH1cblxuICBwcml2YXRlIGFkaWNpb25hVmlzaXRhbnRlc0dyaWQoKSB7XG4gICAgaWYgKHRoaXMudmlzaXRvcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhID0gW107XG4gICAgICB0aGlzLmFkaWNpb25hTW90b3Jpc3RhTm9WaXNpdGFudGVHcmlkRGF0YSgpO1xuXG4gICAgICB0aGlzLnZpc2l0b3JzLmZvckVhY2goKHZpc2l0b3I6IGFueSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5tb3RvcmlzdGEuY3BmICE9PSB2aXNpdG9yLnZpc2l0b3IuZG9jdW1lbnQpIHtcbiAgICAgICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLnB1c2goe1xuICAgICAgICAgICAgaWQ6IHZpc2l0b3IudmlzaXRvci5pZCxcbiAgICAgICAgICAgIG5hbWU6IHZpc2l0b3IudmlzaXRvci5uYW1lLFxuICAgICAgICAgICAgZG9jdW1lbnQ6IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudCxcbiAgICAgICAgICAgIGNvbnRhY3Q6IHZpc2l0b3IudmlzaXRvci5jb250YWN0LFxuICAgICAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogdGhpcy5nZXRWaXNpdG9yU2l0dWF0aW9uKFxuICAgICAgICAgICAgICB2aXNpdG9yLnZpc2l0b3IudmlzaXRvclNpdHVhdGlvblxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgICAgIGRyaXZlcjogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52aXNpdGFudGVUb3RhbFJlY29yZHMgPSB0aGlzLnZpc2l0b3JzLmxlbmd0aDtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhID0gW107XG4gICAgICBjb25zdCBub3ZvX3Zpc2l0YW50ZSA9IG5ldyBWaXNpdG9yQ3JlZGVudGlhbHNEdG8oKVxuICAgICAgbm92b192aXNpdGFudGUudmlzaXRvciA9IHtcbiAgICAgICAgbmFtZTogdGhpcy5tb3RvcmlzdGEubm9tZSxcbiAgICAgICAgZG9jdW1lbnQ6IHRoaXMubW90b3Jpc3RhLmNwZixcbiAgICAgICAgY29udGFjdDogdGhpcy5nZXRDb250YXRvTW90b3Jpc3RhKHRoaXMubW90b3Jpc3RhKSxcbiAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiBWaXNpdG9yU2l0dWF0aW9uLkNIRUNLX0lOX1BFTkRJTkcsXG4gICAgICAgIGRyaXZlcjogdHJ1ZVxuICAgICAgfVxuXG4gICAgICBjb25zdCB2aXNpdGFudGVCdXNjYW5kbyA9IHRoaXMudmlzaXRhbnRlR3JpZERhdGEuZmluZChcbiAgICAgICAgKHZpc2l0YW50ZU5hTGlzdGEpID0+IG5vdm9fdmlzaXRhbnRlLnZpc2l0b3IuZG9jdW1lbnQgPT09IHZpc2l0YW50ZU5hTGlzdGEuZG9jdW1lbnRcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHZpc2l0YW50ZUJ1c2NhbmRvID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLnB1c2gobm92b192aXNpdGFudGUudmlzaXRvcik7ICAgICAgICBcbiAgICAgICAgICB0aGlzLnZpc2l0b3JzLnB1c2gobm92b192aXNpdGFudGUpO1xuICAgICAgICB0aGlzLnZpc2l0YW50ZVRvdGFsUmVjb3JkcyA9IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy52aXNpdGFudGVHcmlkTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGlzQ3JlZGVudGlhbENhcmRzRW1wdHkodmlzaXRvcjogVmlzaXRvcikge1xuICAgIGNvbnN0IHZpc2l0YW50ZXNFbmNvbnRyYWRvcyA9IHRoaXMudmlzaXRvcnMuZmluZChcbiAgICAgICh2aXNpdG9yV2l0aENyZWRlbnRpYWxzKSA9PlxuICAgICAgICB2aXNpdG9yV2l0aENyZWRlbnRpYWxzLnZpc2l0b3IuZG9jdW1lbnQgPT09IHZpc2l0b3IuZG9jdW1lbnRcbiAgICApO1xuXG4gICAgaWYgKHZpc2l0YW50ZXNFbmNvbnRyYWRvcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc2l0YW50ZXNFbmNvbnRyYWRvcy5jcmVkZW50aWFsQ2FyZHMuZmlsdGVyKFxuICAgICAgKGNyZWRlbnRpYWxDYXJkOiBDcmVkZW50aWFsQ2FyZCkgPT5cbiAgICAgICAgT2JqZWN0LmtleXMoY3JlZGVudGlhbENhcmQpLmxlbmd0aCAhPT0gMFxuICAgICkubGVuZ3RoID4gMFxuICAgICAgPyB0cnVlXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGljaW9uYU1vdG9yaXN0YU5vVmlzaXRhbnRlR3JpZERhdGEoKSB7XG4gICAgY29uc3QgbW90b3Jpc3RhVmlzaXRhbnRlID0gdGhpcy52aXNpdG9ycy5maW5kKFxuICAgICAgKHZpc2l0b3IpID0+IHRoaXMubW90b3Jpc3RhLmNwZiA9PT0gdmlzaXRvci52aXNpdG9yLmRvY3VtZW50XG4gICAgKTtcblxuICAgIGlmIChtb3RvcmlzdGFWaXNpdGFudGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgbmFtZTogdGhpcy5tb3RvcmlzdGEubm9tZSxcbiAgICAgICAgZG9jdW1lbnQ6IHRoaXMubW90b3Jpc3RhLmNwZixcbiAgICAgICAgY29udGFjdDogdGhpcy5nZXRDb250YXRvTW90b3Jpc3RhKHRoaXMubW90b3Jpc3RhKSxcbiAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HLFxuICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIGRyaXZlcjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLnB1c2goe1xuICAgICAgICBpZDogbW90b3Jpc3RhVmlzaXRhbnRlLnZpc2l0b3IuaWQsXG4gICAgICAgIG5hbWU6IG1vdG9yaXN0YVZpc2l0YW50ZS52aXNpdG9yLm5hbWUsXG4gICAgICAgIGRvY3VtZW50OiBtb3RvcmlzdGFWaXNpdGFudGUudmlzaXRvci5kb2N1bWVudCxcbiAgICAgICAgY29udGFjdDogdGhpcy5nZXRDb250YXRvTW90b3Jpc3RhKHRoaXMubW90b3Jpc3RhKSxcbiAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogdGhpcy5nZXRWaXNpdG9yU2l0dWF0aW9uKFxuICAgICAgICAgIG1vdG9yaXN0YVZpc2l0YW50ZS52aXNpdG9yLnZpc2l0b3JTaXR1YXRpb25cbiAgICAgICAgKSxcbiAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICBkcml2ZXI6IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY3JpYXJPdUF0dWFsaXphclZpc2l0YW50ZSh2aXNpdG9yOiBWaXNpdG9yKSB7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAub3BlbihWaXNpdGFudGVGb3JtQ29tcG9uZW50LCB7XG4gICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICBcInltcy5wYXRpby5tb3RvcmlzdGFfYWRpY2lvbmFyX3Zpc2l0YW50ZVwiXG4gICAgICAgICksXG4gICAgICAgIC4uLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgLi4udGhpcy5jb25zdHJvaVZpc2l0YW50ZSh2aXNpdG9yKSxcbiAgICAgIH0pXG4gICAgICAub25DbG9zZS5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gISF2YWx1ZSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZpc2l0YW50ZSkgPT4gdGhpcy5hZGljaW9uYVZpc2l0YW50ZVBhcmFTYWx2YXIodmlzaXRhbnRlKSk7XG4gIH1cblxuICBwdWJsaWMgYWRpY2lvbmFWaXNpdGFudGVQYXJhU2FsdmFyKHZpc2l0YW50ZTogVmlzaXRvcikge1xuICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEuZm9yRWFjaCh2aXNpdG9yID0+IHtcbiAgICAgIGlmKHZpc2l0b3IuZG9jdW1lbnQgPT09IHZpc2l0YW50ZS5kb2N1bWVudCkge1xuICAgICAgICB2aXNpdG9yLmNvbnRhY3QgPSB2aXNpdGFudGUuY29udGFjdDtcbiAgICAgICAgdmlzaXRvci5uYW1lID0gdmlzaXRhbnRlLm5hbWU7XG4gICAgICAgIHRoaXMudmlzaXRvckZvdW5kID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmKHRoaXMudmlzaXRvckZvdW5kKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudmlzaXRhbnRlR3JpZExvYWRpbmcgPSB0cnVlO1xuXG4gICAgdmlzaXRhbnRlLmRvY3VtZW50VHlwZSA9IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCk7XG5cbiAgICBpZiAodmlzaXRhbnRlLnZpc2l0b3JTaXR1YXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmlzaXRhbnRlLnZpc2l0b3JTaXR1YXRpb24gPSBWaXNpdG9yU2l0dWF0aW9uLkNIRUNLX0lOX1BFTkRJTkc7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRWaXNpdGFudGVOYVRhYmVsYSh2aXNpdGFudGUpO1xuXG4gICAgdGhpcy52aXNpdGFudGVUb3RhbFJlY29yZHMrKztcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRMb2FkaW5nID0gZmFsc2U7XG5cbiAgICBjb25zdCBub3ZvX3Zpc2l0YW50ZSA9IG5ldyBWaXNpdG9yQ3JlZGVudGlhbHNEdG8oKVxuICAgIG5vdm9fdmlzaXRhbnRlLnZpc2l0b3IgPSB7XG4gICAgICBuYW1lIDogdmlzaXRhbnRlLm5hbWUsXG4gICAgICBkb2N1bWVudCA6IHZpc2l0YW50ZS5kb2N1bWVudCxcbiAgICAgIGNvbnRhY3Q6IHZpc2l0YW50ZS5jb250YWN0LFxuICAgICAgZG9jdW1lbnRUeXBlIDogdmlzaXRhbnRlLmRvY3VtZW50VHlwZSxcbiAgICAgIHZpc2l0b3JTaXR1YXRpb24gOiB2aXNpdGFudGUudmlzaXRvclNpdHVhdGlvbixcbiAgICAgIGRyaXZlcjogZmFsc2VcbiAgICB9XG5cbiAgICB0aGlzLnZpc2l0b3JzLnB1c2gobm92b192aXNpdGFudGUpXG4gICAgdGhpcy52aXNpdG9yc0NoYW5nZS5lbWl0KHRoaXMudmlzaXRvcnMpXG4gICAgdGhpcy5oYXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RlbCh2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICBjb25zdCBpc0RyaXZlciA9IHZpc2l0YW50ZS5kb2N1bWVudCA9PT0gdGhpcy5tb3RvcmlzdGEuY3BmO1xuXG4gICAgY29uc3QgZmluZFZpc2l0b3IgPSB0aGlzLnZpc2l0b3JzLmZpbmQoXG4gICAgICAodmlzaXRvcldpdGhDcmVkZW50aWFscykgPT5cbiAgICAgICAgdmlzaXRvcldpdGhDcmVkZW50aWFscy52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdGFudGUuZG9jdW1lbnRcbiAgICApO1xuXG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ltcy5wYXRpby5tb3RvcmlzdGFfZWRpdGFyX3Zpc2l0YW50ZScpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmVkaXRhclZpc2l0YW50ZSh2aXNpdGFudGUpLFxuICAgICAgICB2aXNpYmxlIDogIWlzRHJpdmVyXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneW1zLnBhdGlvLmRlbGV0ZScpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmRlbGV0YXJWaXNpdGFudGUodmlzaXRhbnRlKSxcbiAgICAgICAgdmlzaWJsZSA6ICFpc0RyaXZlclxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX2VudHJlZ2FyX2NyZWRlbmNpYWwnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5lbnRyZWdhckNyZWRlbmNpYWwodmlzaXRhbnRlKSxcbiAgICAgICAgdmlzaWJsZSA6IGlzRHJpdmVyIHx8ICFpc0RyaXZlclxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ltcy5wYXRpby5yZW1vdmVyX2NyZWRlbmNpYWlzJyksXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuZGVsZXRhckNyZWRlbmNpYWlzKGZpbmRWaXNpdG9yKSxcbiAgICAgICAgdmlzaWJsZSA6IGZpbmRWaXNpdG9yICE9IG51bGwgJiYgZmluZFZpc2l0b3IuY3JlZGVudGlhbENhcmRzICE9IG51bGwgJiYgZmluZFZpc2l0b3IuY3JlZGVudGlhbENhcmRzLmxlbmd0aCA+IDBcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVmlzaXRhbnRlTmFUYWJlbGEodmlzaXRhbnRlOiBhbnkpIHtcbiAgICBpZiAodmlzaXRhbnRlLmlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YSA9IHRoaXMudmlzaXRhbnRlR3JpZERhdGEubWFwKCh2aXNpdGFudGVHcmlkKSA9PiB7XG4gICAgICAgICAgICBpZiAodmlzaXRhbnRlR3JpZC5pZCA9PT0gdmlzaXRhbnRlLmlkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZpc2l0YW50ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2aXNpdGFudGVHcmlkO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLnB1c2godmlzaXRhbnRlKTtcbiAgICB9XG59XG5cbiAgcHVibGljIGVudHJlZ2FyQ3JlZGVuY2lhbCh2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgIC5vcGVuKENyZWRlbmNpYWxGb3JtQ29tcG9uZW50LCB7XG4gICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICBcInltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX2NyZWRlbmNpYWxcIlxuICAgICAgICApLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdmlzaXRhbnRlOiB2aXNpdGFudGUsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLm9uQ2xvc2UucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+ICEhdmFsdWUpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2aXNpdG9yQ3JlZGVudGlhbENhcmQ6IGFueSkgPT4gXG4gICAgICB0aGlzLmFkaWNpb25hQ3JlZGVuY2lhbFBhcmFFbnRyZWdhcih2aXNpdG9yQ3JlZGVudGlhbENhcmQpKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRpY2lvbmFDcmVkZW5jaWFsUGFyYUVudHJlZ2FyKHZpc2l0b3JDcmVkZW50aWFsQ2FyZDogYW55KSB7XG4gICAgY29uc3QgdmlzaXRvcldpdGhDcmVkZW5jaWFsID0gdGhpcy52aXNpdG9ycy5maW5kKFxuICAgICAgKHZpc2l0b3IpID0+IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRvckNyZWRlbnRpYWxDYXJkLnZpc2l0b3IuZG9jdW1lbnRcbiAgICApO1xuXG4gICAgaWYgKHZpc2l0b3JXaXRoQ3JlZGVuY2lhbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnZpc2l0b3JzLnB1c2goe1xuICAgICAgICB2aXNpdG9yOiB2aXNpdG9yQ3JlZGVudGlhbENhcmQudmlzaXRvcixcbiAgICAgICAgY3JlZGVudGlhbENhcmRzOiBbdGhpcy5jcmVhdGVDcmVkZW50aWFsQ2FyZCh2aXNpdG9yQ3JlZGVudGlhbENhcmQpXSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2aXNpdG9yV2l0aENyZWRlbmNpYWwuY3JlZGVudGlhbENhcmRzLnB1c2godGhpcy5jcmVhdGVDcmVkZW50aWFsQ2FyZCh2aXNpdG9yQ3JlZGVudGlhbENhcmQpKTtcbiAgICB9XG4gICAgdGhpcy5oYXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0YXJWaXNpdGFudGUodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgdGhpcy5jcmlhck91QXR1YWxpemFyVmlzaXRhbnRlKHZpc2l0YW50ZSk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRhclZpc2l0YW50ZSh2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHZhbHVlLmRvY3VtZW50ID09PSB2aXNpdGFudGUuZG9jdW1lbnQpIHtcbiAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIGNvbnN0IHJlbW92ZVZpc2l0b3IgPSB0aGlzLnZpc2l0b3JzLmZpbmRJbmRleCgodmlzaXRvcikgPT4gdmlzaXRvci52aXNpdG9yLmRvY3VtZW50ID09PSB2YWx1ZS5kb2N1bWVudCk7XG4gICAgICAgIGlmKHJlbW92ZVZpc2l0b3IgIT09IC0xKSB7XG4gICAgICAgICAgdGhpcy52aXNpdG9ycy5zcGxpY2UocmVtb3ZlVmlzaXRvciwgMSk7XG4gICAgICAgICAgdGhpcy5oYXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0YXJDcmVkZW5jaWFpcyh2aWlzaXRvckNyZWRlbnRpYWw6IFZpc2l0b3JDcmVkZW50aWFsc0R0bykge1xuICAgIHZpaXNpdG9yQ3JlZGVudGlhbC5jcmVkZW50aWFsQ2FyZHMuc3BsaWNlKDAsIHZpaXNpdG9yQ3JlZGVudGlhbC5jcmVkZW50aWFsQ2FyZHMubGVuZ3RoKTtcbiAgICB0aGlzLmhhc0NoYW5nZS5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250YXRvTW90b3Jpc3RhKG1vdG9yaXN0YTogTW90b3Jpc3RhKSB7XG4gICAgcmV0dXJuIG1vdG9yaXN0YS50ZWxlZm9uZSA9PT0gdW5kZWZpbmVkID8gXCIwXCIgOiBtb3RvcmlzdGEudGVsZWZvbmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3JlZGVudGlhbENhcmRzKHZpc2l0b3I6IFZpc2l0b3IpIHtcbiAgICBpZiAodGhpcy52aXNpdG9ycy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnZpc2l0b3JzXG4gICAgICAuZmluZChcbiAgICAgICAgKHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMpID0+XG4gICAgICAgICAgdmlzaXRvcldpdGhDcmVkZW50aWFscy52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdG9yLmRvY3VtZW50XG4gICAgICApXG4gICAgICAuY3JlZGVudGlhbENhcmRzLmZpbHRlcihcbiAgICAgICAgKGNyZWRlbnRpYWxDYXJkKSA9PiBPYmplY3Qua2V5cyhjcmVkZW50aWFsQ2FyZCkubGVuZ3RoICE9PSAwXG4gICAgICApXG4gICAgICAubWFwKChjcmVkZW50aWFsQ2FyZDogQ3JlZGVudGlhbENhcmQpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjYXJkVGVjaG5vbG9neTogdGhpcy5nZXRUZWNub2xvZ2lhQ3JhY2hhVHJhZHV6aWRhKFxuICAgICAgICAgICAgY3JlZGVudGlhbENhcmQuY2FyZFRlY2hub2xvZ3lcbiAgICAgICAgICApLFxuICAgICAgICAgIGNhcmROdW1iZXI6IGNyZWRlbnRpYWxDYXJkLmNhcmROdW1iZXIsXG4gICAgICAgICAgZW5kRGF0ZTogY3JlZGVudGlhbENhcmQuZW5kRGF0ZSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJvaVZpc2l0YW50ZSh2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICBsZXQgdmlzaXRhbnRlRGF0YSA9IHsgZGF0YToge30gfTtcbiAgICBpZiAodmlzaXRhbnRlICE9PSB1bmRlZmluZWQgJiYgdmlzaXRhbnRlICE9PSBudWxsKSB7XG4gICAgICB2aXNpdGFudGVEYXRhID0ge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaWQ6IHZpc2l0YW50ZS5pZCxcbiAgICAgICAgICBuYW1lOiB2aXNpdGFudGUubmFtZSxcbiAgICAgICAgICBkb2N1bWVudDogdmlzaXRhbnRlLmRvY3VtZW50LFxuICAgICAgICAgIGNvbnRhY3Q6IHZpc2l0YW50ZS5jb250YWN0LFxuICAgICAgICAgIHZpc2l0b3JTaXR1YXRpb246IHRoaXMuZ2V0VmlzaXRvclNpdHVhdGlvbihcbiAgICAgICAgICAgIHZpc2l0YW50ZS52aXNpdG9yU2l0dWF0aW9uXG4gICAgICAgICAgKSxcbiAgICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdmlzaXRhbnRlRGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ3JlZGVudGlhbENhcmQodmlzaXRvckNyZWRlbnRpYWxDYXJkOiBDcmVkZW50aWFsQ2FyZCk6IENyZWRlbnRpYWxDYXJkIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmlzaXRvcjogdmlzaXRvckNyZWRlbnRpYWxDYXJkLmlkLFxuICAgICAgY2FyZFRlY2hub2xvZ3k6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC5jYXJkVGVjaG5vbG9neSxcbiAgICAgIGNhcmROdW1iZXI6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC5jYXJkTnVtYmVyLFxuICAgICAgZW5kRGF0ZTogdmlzaXRvckNyZWRlbnRpYWxDYXJkLmVuZERhdGUsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGVjbm9sb2dpYUNyYWNoYVRyYWR1emlkYShjYXJkVGVjaG5vbG9neTogQ2FyZFRlY2hub2xvZ3kpOiBzdHJpbmcge1xuICAgIGlmIChjYXJkVGVjaG5vbG9neSA9PT0gQ2FyZFRlY2hub2xvZ3kuQkFSQ09ERV9DQVJEKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgXCJ5bXMucGF0aW8uY2FydGFvX2NyZWRlbmNpYWxfY29kaWdvX2JhcnJhc1wiXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjYXJkVGVjaG5vbG9neSA9PT0gQ2FyZFRlY2hub2xvZ3kuUkZJRF9DQVJEKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5wYXRpby5jYXJ0YW9fY3JlZGVuY2lhbF9yZmlkXCIpO1xuICAgIH1cblxuICAgIGlmIChjYXJkVGVjaG5vbG9neSA9PT0gQ2FyZFRlY2hub2xvZ3kuU01BUlRfQ0FSRCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8uY2FydGFvX2NyZWRlbmNpYWxfc21hcnRcIik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRWaXNpdG9yU2l0dWF0aW9uKHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24pIHtcbiAgICByZXR1cm4gdmlzaXRvclNpdHVhdGlvbiA9PT0gdW5kZWZpbmVkXG4gICAgICA/IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElOR1xuICAgICAgOiB2aXNpdG9yU2l0dWF0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJvaUNhbXBvc1RhYmVsYVZpc3RhbnRlKCkge1xuICAgIHRoaXMudmlzaXRhbnRlR3JpZENvbHVtbnMgPSBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkOiBcIm5hbWVcIixcbiAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLnBhdGlvLm1vdG9yaXN0YV92aXNpdGFudGVfbm9tZVwiKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGZpZWxkOiBcImRvY3VtZW50XCIsXG4gICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICBcInltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX2RvY3VtZW50b1wiXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBmaWVsZDogXCJjb250YWN0XCIsXG4gICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX2NvbnRhdG9cIiksXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGdldERvY3VtZW50VHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBcImNwZlwiO1xuICB9XG59Il19
@@ -45,7 +45,7 @@ var VisitanteFormComponent = /** @class */ (function () {
45
45
  if (!this.formGroup.valid) {
46
46
  return this.validateAllFormFields(this.formGroup);
47
47
  }
48
- var visitante = this.formGroup.value;
48
+ var visitante = this.formGroup.getRawValue();
49
49
  visitante.id = this.id;
50
50
  this.close(visitante);
51
51
  };
@@ -84,4 +84,4 @@ var VisitanteFormComponent = /** @class */ (function () {
84
84
  return VisitanteFormComponent;
85
85
  }());
86
86
  export { VisitanteFormComponent };
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1lZGl0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9zYW0tc2VuaW9yL2NvbXBvbmVudHMvdmlzaXRvci1lZGl0L3Zpc2l0b3ItZWRpdC1mb3JtL3Zpc2l0YW50ZS1mb3JtL3Zpc2l0b3ItZWRpdC1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU0zQztJQVdJLGdDQUNJLEVBQWUsRUFDUCxTQUEyQixFQUMzQixZQUFpQztRQURqQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFYNUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3BELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwQixpQkFBWSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVELGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBT25DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN0QixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU8s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QztpQkFBTSxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7Z0JBQ3JDLEtBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2QztpQkFBTTtnQkFDSCxNQUFNLG9CQUFvQixDQUFDO2FBQzlCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQXZFUztRQUFULE1BQU0sRUFBRTswQ0FBZSxZQUFZO2dFQUErQjtJQU4xRCxzQkFBc0I7UUFKbEMsU0FBUyxDQUFDO1lBQ1AscWlFQUFpRDtZQUNqRCxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztTQUNuQyxDQUFDO2lEQWFVLFdBQVc7WUFDSSxnQkFBZ0I7WUFDYixtQkFBbUI7T0FkcEMsc0JBQXNCLENBOEVsQztJQUFELDZCQUFDO0NBQUEsQUE5RUQsSUE4RUM7U0E5RVksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiBcIi4vdmlzaXRvci1lZGl0LWZvcm0uY29tcG9uZW50Lmh0bWxcIixcbiAgICBwcm92aWRlcnM6IFtDb25maXJtYXRpb25TZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaXRhbnRlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcml2YXRlIGlkOiBhbnk7XG4gICAgQE91dHB1dCgpIG5vdFNhdmVkRGF0YTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHByaXZhdGUgYWN0dWFsVmFsdWU6IGFueTtcbiAgICBwdWJsaWMgYWN0dWFsQ2hhbmdlZCA9IGZhbHNlO1xuICAgIHB1YmxpYyBpc0Zvcm1Nb2RpZmllZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGZiOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dSZWY6IER5bmFtaWNEaWFsb2dSZWYsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nQ29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gZmIuZ3JvdXAoe1xuICAgICAgICAgICAgbmFtZTogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxuICAgICAgICAgICAgZG9jdW1lbnQ6IFt1bmRlZmluZWQsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcbiAgICAgICAgICAgIGNvbnRhY3Q6IFt1bmRlZmluZWQsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gdGhpcy5kaWFsb2dDb25maWc7XG4gICAgICAgIGlmIChkYXRhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBkYXRhLmlkO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwibmFtZVwiKS5zZXRWYWx1ZShkYXRhLm5hbWUpO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KFwiZG9jdW1lbnRcIikuc2V0VmFsdWUoZGF0YS5kb2N1bWVudCk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjb250YWN0XCIpLnNldFZhbHVlKGRhdGEuY29udGFjdCk7XG5cbiAgICAgICAgICAgIGlmIChkYXRhLmRvY3VtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJkb2N1bWVudFwiKS5kaXNhYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5vdFNhdmVkRGF0YVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWwpID0+ICh0aGlzLmFjdHVhbENoYW5nZWQgPSB2YWwpKTtcblxuICAgICAgICBjb25zdCBycyA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgICAgIHJzLnN1YnNjcmliZSgoaXNJbnRhY3Q6IGJvb2xlYW4pID0+ICh0aGlzLmlzRm9ybU1vZGlmaWVkID0gIWlzSW50YWN0KSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBzYXZlKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtR3JvdXApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmlzaXRhbnRlID0gdGhpcy5mb3JtR3JvdXAudmFsdWU7XG4gICAgICAgIHZpc2l0YW50ZS5pZCA9IHRoaXMuaWQ7XG4gICAgICAgIHRoaXMuY2xvc2UodmlzaXRhbnRlKTtcbiAgICB9XG5cbiAgICBjbG9zZShkYXRhPzogYW55KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGRhdGEpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogRm9ybUdyb3VwKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcblxuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aHJvdyAnSW5zdGFuY2UgZm90IGZvdW5kJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgZm9ybUdyb3VwLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgfVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1lZGl0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9zYW0tc2VuaW9yL2NvbXBvbmVudHMvdmlzaXRvci1lZGl0L3Zpc2l0b3ItZWRpdC1mb3JtL3Zpc2l0YW50ZS1mb3JtL3Zpc2l0b3ItZWRpdC1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU0zQztJQVdJLGdDQUNJLEVBQWUsRUFDUCxTQUEyQixFQUMzQixZQUFpQztRQURqQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFYNUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3BELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwQixpQkFBWSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVELGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBT25DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN0QixJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE9BQU8s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O2FBQzNDO2lCQUFNLElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRTtnQkFDckMsS0FBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNILE1BQU0sb0JBQW9CLENBQUM7YUFDOUI7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBdkVTO1FBQVQsTUFBTSxFQUFFOzBDQUFlLFlBQVk7Z0VBQStCO0lBTjFELHNCQUFzQjtRQUpsQyxTQUFTLENBQUM7WUFDUCxxaUVBQWlEO1lBQ2pELFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO1NBQ25DLENBQUM7aURBYVUsV0FBVztZQUNJLGdCQUFnQjtZQUNiLG1CQUFtQjtPQWRwQyxzQkFBc0IsQ0E4RWxDO0lBQUQsNkJBQUM7Q0FBQSxBQTlFRCxJQThFQztTQTlFWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6IFwiLi92aXNpdG9yLWVkaXQtZm9ybS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHByb3ZpZGVyczogW0NvbmZpcm1hdGlvblNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBWaXNpdGFudGVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgaWQ6IGFueTtcbiAgICBAT3V0cHV0KCkgbm90U2F2ZWREYXRhOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgcHJpdmF0ZSBhY3R1YWxWYWx1ZTogYW55O1xuICAgIHB1YmxpYyBhY3R1YWxDaGFuZ2VkID0gZmFsc2U7XG4gICAgcHVibGljIGlzRm9ybU1vZGlmaWVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogRHluYW1pY0RpYWxvZ1JlZixcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWdcbiAgICApIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSBmYi5ncm91cCh7XG4gICAgICAgICAgICBuYW1lOiBbdW5kZWZpbmVkLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXG4gICAgICAgICAgICBkb2N1bWVudDogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxuICAgICAgICAgICAgY29udGFjdDogW3VuZGVmaW5lZCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSldLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSB0aGlzLmRpYWxvZ0NvbmZpZztcbiAgICAgICAgaWYgKGRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5pZCA9IGRhdGEuaWQ7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJuYW1lXCIpLnNldFZhbHVlKGRhdGEubmFtZSk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJkb2N1bWVudFwiKS5zZXRWYWx1ZShkYXRhLmRvY3VtZW50KTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImNvbnRhY3RcIikuc2V0VmFsdWUoZGF0YS5jb250YWN0KTtcblxuICAgICAgICAgICAgaWYgKGRhdGEuZG9jdW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImRvY3VtZW50XCIpLmRpc2FibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubm90U2F2ZWREYXRhXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbCkgPT4gKHRoaXMuYWN0dWFsQ2hhbmdlZCA9IHZhbCkpO1xuXG4gICAgICAgIGNvbnN0IHJzID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICAgICAgcnMuc3Vic2NyaWJlKChpc0ludGFjdDogYm9vbGVhbikgPT4gKHRoaXMuaXNGb3JtTW9kaWZpZWQgPSAhaXNJbnRhY3QpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHNhdmUoKSB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyh0aGlzLmZvcm1Hcm91cCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2aXNpdGFudGUgPSB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuICAgICAgICB2aXNpdGFudGUuaWQgPSB0aGlzLmlkO1xuICAgICAgICB0aGlzLmNsb3NlKHZpc2l0YW50ZSk7XG4gICAgfVxuXG4gICAgY2xvc2UoZGF0YT86IGFueSkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZShkYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG5cbiAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgJ0luc3RhbmNlIGZvdCBmb3VuZCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvcm1Hcm91cC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -151,6 +151,17 @@ var VisitanteComponent = /** @class */ (function () {
151
151
  .subscribe(function (visitante) { return _this.adicionaVisitanteParaSalvar(visitante); });
152
152
  };
153
153
  VisitanteComponent.prototype.adicionaVisitanteParaSalvar = function (visitante) {
154
+ var _this = this;
155
+ this.visitanteGridData.forEach(function (visitor) {
156
+ if (visitor.document === visitante.document) {
157
+ visitor.contact = visitante.contact;
158
+ visitor.name = visitante.name;
159
+ _this.visitorFound = true;
160
+ }
161
+ });
162
+ if (this.visitorFound) {
163
+ return;
164
+ }
154
165
  this.visitanteGridLoading = true;
155
166
  visitante.documentType = this.getDocumentType();
156
167
  if (visitante.visitorSituation === undefined) {
@@ -370,4 +381,4 @@ var VisitanteComponent = /** @class */ (function () {
370
381
  return VisitanteComponent;
371
382
  }());
372
383
  export { VisitanteComponent };
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9zYW0tc2VuaW9yL2NvbXBvbmVudHMvdmlzaXRvci1lZGl0L3Zpc2l0b3ItZWRpdC1saXN0L3Zpc2l0b3ItZWRpdC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUNMLGNBQWMsR0FFZixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRyx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUTFFO0lBZ0JFLDRCQUNVLFNBQTJCLEVBQzNCLGFBQTRCLEVBQzNCLG1CQUE4QztRQUYvQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixrQkFB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QkFDaEIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHVDQUF1QyxDQUFDO2FBQ3hFO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyw0Q0FBZSxHQUF2QjtRQUNFLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQS9aUTtRQUFSLEtBQUssRUFBRTs7eURBQThCO0lBQzdCO1FBQVIsS0FBSyxFQUFFOzt3REFBZ0Q7SUFDOUM7UUFBVCxNQUFNLEVBQUU7OzhEQUE4RDtJQUM3RDtRQUFULE1BQU0sRUFBRTs7eURBQTBDO0lBSnhDLGtCQUFrQjtRQUw5QixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLDg4S0FBaUQ7O1NBRWxELENBQUM7aURBa0JxQixnQkFBZ0I7WUFDWixhQUFhO1lBQ04seUJBQXlCO09BbkI5QyxrQkFBa0IsQ0FpYTlCO0lBQUQseUJBQUM7Q0FBQSxBQWphRCxJQWlhQztTQWphWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWaXNpdG9yQ3JlZGVudGlhbHNEdG8gfSBmcm9tICcuLi8uLi8uLi9lbnRpdGllcy92aXNpdG9yLWNyZWRlbnRpYWxzLWR0byc7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgVmlzaXRvciB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvdmlzaXRvclwiO1xuaW1wb3J0IHsgU3ViamVjdCwgZW1wdHkgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtcbiAgQ2FyZFRlY2hub2xvZ3ksXG4gIENyZWRlbnRpYWxDYXJkLFxufSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2NhcmQtY3JlZGVudGlhbFwiO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwsIG1lcmdlTWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBWaXNpdG9yU2l0dWF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy92aXNpdG9yLXNpdHVhdGlvblwiO1xuaW1wb3J0IHsgTW90b3Jpc3RhIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2VycC1zZW5pb3IvY29yZS9lbnRpdGllcy9tb3RvcmlzdGEvbW90b3Jpc3RhXCI7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBDcmVkZW5jaWFsRm9ybUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jcmVkZW5jaWFsLWZvcm0vY3JlZGVuY2lhbC1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgVmlzaXRhbnRlRm9ybUNvbXBvbmVudCB9IGZyb20gXCIuLi92aXNpdG9yLWVkaXQtZm9ybS92aXNpdGFudGUtZm9ybS92aXNpdG9yLWVkaXQtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7IGRpYWxvZ0NvbmZpZyB9IGZyb20gXCIuLi8uLi8uLi8uLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgIEludGVncmF0aW9uRXZlbnRzQ2FsbGJhY2sgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL3ltcy1yb3V0aW5lc1wiO1xuaW1wb3J0IHsgVmlzaXRvckR0byB9IGZyb20gJy4uLy4uLy4uL2VudGl0aWVzL3Zpc2l0b3ItZHRvJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmlzaXRhbnRlLWNvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92aXNpdG9yLWVkaXQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Zpc2l0b3ItZWRpdC1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFZpc2l0YW50ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHByaXZhdGUgbW90b3Jpc3RhOiBNb3RvcmlzdGE7XG4gIEBJbnB1dCgpIHByaXZhdGUgdmlzaXRvcnM6IFZpc2l0b3JDcmVkZW50aWFsc0R0b1tdID0gW107XG4gIEBPdXRwdXQoKSB2aXNpdG9yc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VmlzaXRvckNyZWRlbnRpYWxzRHRvW10+KCk7XG4gIEBPdXRwdXQoKSBoYXNDaGFuZ2UgID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyB2aXNpdGFudGVHcmlkRGF0YTogVmlzaXRvckR0b1tdO1xuICBwdWJsaWMgdmlzaXRhbnRlR3JpZENvbHVtbnM6IGFueVtdO1xuICBwdWJsaWMgdmlzaXRhbnRlVG90YWxSZWNvcmRzOiBudW1iZXI7XG4gIHB1YmxpYyB2aXNpdGFudGVHcmlkTG9hZGluZzogYm9vbGVhbjtcblxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGVncmF0aW9uQ2FsbGJhY2s6IEludGVncmF0aW9uRXZlbnRzQ2FsbGJhY2s7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgcmVhZG9ubHkgaW50ZWdyYXRpb25DYWxsYmFjazogSW50ZWdyYXRpb25FdmVudHNDYWxsYmFja1xuICApIHtcbiAgICB0aGlzLl9pbnRlZ3JhdGlvbkNhbGxiYWNrID0gaW50ZWdyYXRpb25DYWxsYmFjaztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uc3Ryb2lDYW1wb3NUYWJlbGFWaXN0YW50ZSgpO1xuICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzID0gMDtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5hZGljaW9uYVZpc2l0YW50ZXNHcmlkKCk7XG4gICAgdGhpcy5faW50ZWdyYXRpb25DYWxsYmFja1xuICAgICAgLm9uQWdlbmRhbWVudG9Nb3RvcmlzdGFDaGFuZ2VkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICBtZXJnZU1hcCgobW90b3Jpc3RhKSA9PiB7XG4gICAgICAgICAgdGhpcy5hdHVhbGl6YU1vdG9yaXN0YShtb3RvcmlzdGEpO1xuICAgICAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHVhbGl6YU1vdG9yaXN0YShtb3Q6IE1vdG9yaXN0YSkge1xuICAgIGNvbnN0IG1vdG9yaXN0YVZpc2l0YW50ZSA9IHRoaXMudmlzaXRhbnRlR3JpZERhdGEuZmluZChcbiAgICAgIChpdGVtKSA9PiBpdGVtLmRyaXZlclxuICAgICk7XG5cbiAgICBpZiAobW90b3Jpc3RhVmlzaXRhbnRlICYmIG1vdG9yaXN0YVZpc2l0YW50ZS5kb2N1bWVudFR5cGUgPT09IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCkgJiYgIG1vdG9yaXN0YVZpc2l0YW50ZS5kb2N1bWVudCA9PT0gbW90LmNwZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGFbMF0gPSB7XG4gICAgICAgIG5hbWU6IG1vdC5ub21lLFxuICAgICAgICBkb2N1bWVudDogbW90LmNwZixcbiAgICAgICAgY29udGFjdDogdGhpcy5nZXRDb250YXRvTW90b3Jpc3RhKG1vdCksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORyxcbiAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgIH07ICAgICAgXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgbmFtZTogbW90Lm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiBtb3QuY3BmLFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEobW90KSxcbiAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HLFxuICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIGRyaXZlcjogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICAgIFxuICB9XG5cbiAgcHJpdmF0ZSBhZGljaW9uYVZpc2l0YW50ZXNHcmlkKCkge1xuICAgIGlmICh0aGlzLnZpc2l0b3JzLmxlbmd0aCkge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YSA9IFtdO1xuICAgICAgdGhpcy5hZGljaW9uYU1vdG9yaXN0YU5vVmlzaXRhbnRlR3JpZERhdGEoKTtcblxuICAgICAgdGhpcy52aXNpdG9ycy5mb3JFYWNoKCh2aXNpdG9yOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubW90b3Jpc3RhLmNwZiAhPT0gdmlzaXRvci52aXNpdG9yLmRvY3VtZW50KSB7XG4gICAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgICAgIGlkOiB2aXNpdG9yLnZpc2l0b3IuaWQsXG4gICAgICAgICAgICBuYW1lOiB2aXNpdG9yLnZpc2l0b3IubmFtZSxcbiAgICAgICAgICAgIGRvY3VtZW50OiB2aXNpdG9yLnZpc2l0b3IuZG9jdW1lbnQsXG4gICAgICAgICAgICBjb250YWN0OiB2aXNpdG9yLnZpc2l0b3IuY29udGFjdCxcbiAgICAgICAgICAgIHZpc2l0b3JTaXR1YXRpb246IHRoaXMuZ2V0VmlzaXRvclNpdHVhdGlvbihcbiAgICAgICAgICAgICAgdmlzaXRvci52aXNpdG9yLnZpc2l0b3JTaXR1YXRpb25cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzID0gdGhpcy52aXNpdG9ycy5sZW5ndGg7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YSA9IFtdO1xuICAgICAgY29uc3Qgbm92b192aXNpdGFudGUgPSBuZXcgVmlzaXRvckNyZWRlbnRpYWxzRHRvKClcbiAgICAgIG5vdm9fdmlzaXRhbnRlLnZpc2l0b3IgPSB7XG4gICAgICAgIG5hbWU6IHRoaXMubW90b3Jpc3RhLm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiB0aGlzLm1vdG9yaXN0YS5jcGYsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YSh0aGlzLm1vdG9yaXN0YSksXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HLFxuICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmlzaXRhbnRlQnVzY2FuZG8gPSB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmZpbmQoXG4gICAgICAgICh2aXNpdGFudGVOYUxpc3RhKSA9PiBub3ZvX3Zpc2l0YW50ZS52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdGFudGVOYUxpc3RhLmRvY3VtZW50XG4gICAgICAgICk7XG4gICAgICAgIGlmICh2aXNpdGFudGVCdXNjYW5kbyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKG5vdm9fdmlzaXRhbnRlLnZpc2l0b3IpOyAgICAgICAgXG4gICAgICAgICAgdGhpcy52aXNpdG9ycy5wdXNoKG5vdm9fdmlzaXRhbnRlKTtcbiAgICAgICAgdGhpcy52aXNpdGFudGVUb3RhbFJlY29yZHMgPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudmlzaXRhbnRlR3JpZExvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NyZWRlbnRpYWxDYXJkc0VtcHR5KHZpc2l0b3I6IFZpc2l0b3IpIHtcbiAgICBjb25zdCB2aXNpdGFudGVzRW5jb250cmFkb3MgPSB0aGlzLnZpc2l0b3JzLmZpbmQoXG4gICAgICAodmlzaXRvcldpdGhDcmVkZW50aWFscykgPT5cbiAgICAgICAgdmlzaXRvcldpdGhDcmVkZW50aWFscy52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdG9yLmRvY3VtZW50XG4gICAgKTtcblxuICAgIGlmICh2aXNpdGFudGVzRW5jb250cmFkb3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpdGFudGVzRW5jb250cmFkb3MuY3JlZGVudGlhbENhcmRzLmZpbHRlcihcbiAgICAgIChjcmVkZW50aWFsQ2FyZDogQ3JlZGVudGlhbENhcmQpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKGNyZWRlbnRpYWxDYXJkKS5sZW5ndGggIT09IDBcbiAgICApLmxlbmd0aCA+IDBcbiAgICAgID8gdHJ1ZVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRpY2lvbmFNb3RvcmlzdGFOb1Zpc2l0YW50ZUdyaWREYXRhKCkge1xuICAgIGNvbnN0IG1vdG9yaXN0YVZpc2l0YW50ZSA9IHRoaXMudmlzaXRvcnMuZmluZChcbiAgICAgICh2aXNpdG9yKSA9PiB0aGlzLm1vdG9yaXN0YS5jcGYgPT09IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudFxuICAgICk7XG5cbiAgICBpZiAobW90b3Jpc3RhVmlzaXRhbnRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaCh7XG4gICAgICAgIG5hbWU6IHRoaXMubW90b3Jpc3RhLm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiB0aGlzLm1vdG9yaXN0YS5jcGYsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YSh0aGlzLm1vdG9yaXN0YSksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORyxcbiAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICBkcml2ZXI6IHRydWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgaWQ6IG1vdG9yaXN0YVZpc2l0YW50ZS52aXNpdG9yLmlkLFxuICAgICAgICBuYW1lOiBtb3RvcmlzdGFWaXNpdGFudGUudmlzaXRvci5uYW1lLFxuICAgICAgICBkb2N1bWVudDogbW90b3Jpc3RhVmlzaXRhbnRlLnZpc2l0b3IuZG9jdW1lbnQsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YSh0aGlzLm1vdG9yaXN0YSksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IHRoaXMuZ2V0VmlzaXRvclNpdHVhdGlvbihcbiAgICAgICAgICBtb3RvcmlzdGFWaXNpdGFudGUudmlzaXRvci52aXNpdG9yU2l0dWF0aW9uXG4gICAgICAgICksXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgZHJpdmVyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNyaWFyT3VBdHVhbGl6YXJWaXNpdGFudGUodmlzaXRvcjogVmlzaXRvcikge1xuICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgLm9wZW4oVmlzaXRhbnRlRm9ybUNvbXBvbmVudCwge1xuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgXCJ5bXMucGF0aW8ubW90b3Jpc3RhX2FkaWNpb25hcl92aXNpdGFudGVcIlxuICAgICAgICApLFxuICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgIC4uLnRoaXMuY29uc3Ryb2lWaXNpdGFudGUodmlzaXRvciksXG4gICAgICB9KVxuICAgICAgLm9uQ2xvc2UucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+ICEhdmFsdWUpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2aXNpdGFudGUpID0+IHRoaXMuYWRpY2lvbmFWaXNpdGFudGVQYXJhU2FsdmFyKHZpc2l0YW50ZSkpO1xuICB9XG5cbiAgcHVibGljIGFkaWNpb25hVmlzaXRhbnRlUGFyYVNhbHZhcih2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRMb2FkaW5nID0gdHJ1ZTtcblxuICAgIHZpc2l0YW50ZS5kb2N1bWVudFR5cGUgPSB0aGlzLmdldERvY3VtZW50VHlwZSgpO1xuXG4gICAgaWYgKHZpc2l0YW50ZS52aXNpdG9yU2l0dWF0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHZpc2l0YW50ZS52aXNpdG9yU2l0dWF0aW9uID0gVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HO1xuICAgIH1cblxuICAgIHRoaXMuYWRkVmlzaXRhbnRlTmFUYWJlbGEodmlzaXRhbnRlKTtcblxuICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzKys7XG4gICAgdGhpcy52aXNpdGFudGVHcmlkTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm92b192aXNpdGFudGUgPSBuZXcgVmlzaXRvckNyZWRlbnRpYWxzRHRvKClcbiAgICBub3ZvX3Zpc2l0YW50ZS52aXNpdG9yID0ge1xuICAgICAgbmFtZSA6IHZpc2l0YW50ZS5uYW1lLFxuICAgICAgZG9jdW1lbnQgOiB2aXNpdGFudGUuZG9jdW1lbnQsXG4gICAgICBjb250YWN0OiB2aXNpdGFudGUuY29udGFjdCxcbiAgICAgIGRvY3VtZW50VHlwZSA6IHZpc2l0YW50ZS5kb2N1bWVudFR5cGUsXG4gICAgICB2aXNpdG9yU2l0dWF0aW9uIDogdmlzaXRhbnRlLnZpc2l0b3JTaXR1YXRpb24sXG4gICAgICBkcml2ZXI6IGZhbHNlXG4gICAgfVxuXG4gICAgdGhpcy52aXNpdG9ycy5wdXNoKG5vdm9fdmlzaXRhbnRlKVxuICAgIHRoaXMudmlzaXRvcnNDaGFuZ2UuZW1pdCh0aGlzLnZpc2l0b3JzKVxuICAgIHRoaXMuaGFzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgY29uc3QgaXNEcml2ZXIgPSB2aXNpdGFudGUuZG9jdW1lbnQgPT09IHRoaXMubW90b3Jpc3RhLmNwZjtcblxuICAgIGNvbnN0IGZpbmRWaXNpdG9yID0gdGhpcy52aXNpdG9ycy5maW5kKFxuICAgICAgKHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMpID0+XG4gICAgICAgIHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRhbnRlLmRvY3VtZW50XG4gICAgKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5bXMucGF0aW8ubW90b3Jpc3RhX2VkaXRhcl92aXNpdGFudGUnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5lZGl0YXJWaXNpdGFudGUodmlzaXRhbnRlKSxcbiAgICAgICAgdmlzaWJsZSA6ICFpc0RyaXZlclxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ltcy5wYXRpby5kZWxldGUnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5kZWxldGFyVmlzaXRhbnRlKHZpc2l0YW50ZSksXG4gICAgICAgIHZpc2libGUgOiAhaXNEcml2ZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9lbnRyZWdhcl9jcmVkZW5jaWFsJyksXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuZW50cmVnYXJDcmVkZW5jaWFsKHZpc2l0YW50ZSksXG4gICAgICAgIHZpc2libGUgOiBpc0RyaXZlciB8fCAhaXNEcml2ZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5bXMucGF0aW8ucmVtb3Zlcl9jcmVkZW5jaWFpcycpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmRlbGV0YXJDcmVkZW5jaWFpcyhmaW5kVmlzaXRvciksXG4gICAgICAgIHZpc2libGUgOiBmaW5kVmlzaXRvciAhPSBudWxsICYmIGZpbmRWaXNpdG9yLmNyZWRlbnRpYWxDYXJkcyAhPSBudWxsICYmIGZpbmRWaXNpdG9yLmNyZWRlbnRpYWxDYXJkcy5sZW5ndGggPiAwXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGFkZFZpc2l0YW50ZU5hVGFiZWxhKHZpc2l0YW50ZTogYW55KSB7XG4gICAgaWYgKHZpc2l0YW50ZS5pZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEgPSB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLm1hcCgodmlzaXRhbnRlR3JpZCkgPT4ge1xuICAgICAgICAgICAgaWYgKHZpc2l0YW50ZUdyaWQuaWQgPT09IHZpc2l0YW50ZS5pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2aXNpdGFudGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmlzaXRhbnRlR3JpZDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHZpc2l0YW50ZSk7XG4gICAgfVxufVxuXG4gIHB1YmxpYyBlbnRyZWdhckNyZWRlbmNpYWwodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAub3BlbihDcmVkZW5jaWFsRm9ybUNvbXBvbmVudCwge1xuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgXCJ5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9jcmVkZW5jaWFsXCJcbiAgICAgICAgKSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHZpc2l0YW50ZTogdmlzaXRhbnRlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5vbkNsb3NlLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiAhIXZhbHVlKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmlzaXRvckNyZWRlbnRpYWxDYXJkOiBhbnkpID0+IFxuICAgICAgdGhpcy5hZGljaW9uYUNyZWRlbmNpYWxQYXJhRW50cmVnYXIodmlzaXRvckNyZWRlbnRpYWxDYXJkKSk7XG4gIH1cblxuICBwcml2YXRlIGFkaWNpb25hQ3JlZGVuY2lhbFBhcmFFbnRyZWdhcih2aXNpdG9yQ3JlZGVudGlhbENhcmQ6IGFueSkge1xuICAgIGNvbnN0IHZpc2l0b3JXaXRoQ3JlZGVuY2lhbCA9IHRoaXMudmlzaXRvcnMuZmluZChcbiAgICAgICh2aXNpdG9yKSA9PiB2aXNpdG9yLnZpc2l0b3IuZG9jdW1lbnQgPT09IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC52aXNpdG9yLmRvY3VtZW50XG4gICAgKTtcblxuICAgIGlmICh2aXNpdG9yV2l0aENyZWRlbmNpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52aXNpdG9ycy5wdXNoKHtcbiAgICAgICAgdmlzaXRvcjogdmlzaXRvckNyZWRlbnRpYWxDYXJkLnZpc2l0b3IsXG4gICAgICAgIGNyZWRlbnRpYWxDYXJkczogW3RoaXMuY3JlYXRlQ3JlZGVudGlhbENhcmQodmlzaXRvckNyZWRlbnRpYWxDYXJkKV0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmlzaXRvcldpdGhDcmVkZW5jaWFsLmNyZWRlbnRpYWxDYXJkcy5wdXNoKHRoaXMuY3JlYXRlQ3JlZGVudGlhbENhcmQodmlzaXRvckNyZWRlbnRpYWxDYXJkKSk7XG4gICAgfVxuICAgIHRoaXMuaGFzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgZWRpdGFyVmlzaXRhbnRlKHZpc2l0YW50ZTogVmlzaXRvcikge1xuICAgIHRoaXMuY3JpYXJPdUF0dWFsaXphclZpc2l0YW50ZSh2aXNpdGFudGUpO1xuICB9XG5cbiAgcHVibGljIGRlbGV0YXJWaXNpdGFudGUodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5mb3JFYWNoKCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgIGlmICh2YWx1ZS5kb2N1bWVudCA9PT0gdmlzaXRhbnRlLmRvY3VtZW50KSB7XG4gICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICBjb25zdCByZW1vdmVWaXNpdG9yID0gdGhpcy52aXNpdG9ycy5maW5kSW5kZXgoKHZpc2l0b3IpID0+IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudCA9PT0gdmFsdWUuZG9jdW1lbnQpO1xuICAgICAgICBpZihyZW1vdmVWaXNpdG9yICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMudmlzaXRvcnMuc3BsaWNlKHJlbW92ZVZpc2l0b3IsIDEpO1xuICAgICAgICAgIHRoaXMuaGFzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGFyQ3JlZGVuY2lhaXModmlpc2l0b3JDcmVkZW50aWFsOiBWaXNpdG9yQ3JlZGVudGlhbHNEdG8pIHtcbiAgICB2aWlzaXRvckNyZWRlbnRpYWwuY3JlZGVudGlhbENhcmRzLnNwbGljZSgwLCB2aWlzaXRvckNyZWRlbnRpYWwuY3JlZGVudGlhbENhcmRzLmxlbmd0aCk7XG4gICAgdGhpcy5oYXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGF0b01vdG9yaXN0YShtb3RvcmlzdGE6IE1vdG9yaXN0YSkge1xuICAgIHJldHVybiBtb3RvcmlzdGEudGVsZWZvbmUgPT09IHVuZGVmaW5lZCA/IFwiMFwiIDogbW90b3Jpc3RhLnRlbGVmb25lO1xuICB9XG5cbiAgcHVibGljIGdldENyZWRlbnRpYWxDYXJkcyh2aXNpdG9yOiBWaXNpdG9yKSB7XG4gICAgaWYgKHRoaXMudmlzaXRvcnMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdG9yc1xuICAgICAgLmZpbmQoXG4gICAgICAgICh2aXNpdG9yV2l0aENyZWRlbnRpYWxzKSA9PlxuICAgICAgICAgIHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRvci5kb2N1bWVudFxuICAgICAgKVxuICAgICAgLmNyZWRlbnRpYWxDYXJkcy5maWx0ZXIoXG4gICAgICAgIChjcmVkZW50aWFsQ2FyZCkgPT4gT2JqZWN0LmtleXMoY3JlZGVudGlhbENhcmQpLmxlbmd0aCAhPT0gMFxuICAgICAgKVxuICAgICAgLm1hcCgoY3JlZGVudGlhbENhcmQ6IENyZWRlbnRpYWxDYXJkKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY2FyZFRlY2hub2xvZ3k6IHRoaXMuZ2V0VGVjbm9sb2dpYUNyYWNoYVRyYWR1emlkYShcbiAgICAgICAgICAgIGNyZWRlbnRpYWxDYXJkLmNhcmRUZWNobm9sb2d5XG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYXJkTnVtYmVyOiBjcmVkZW50aWFsQ2FyZC5jYXJkTnVtYmVyLFxuICAgICAgICAgIGVuZERhdGU6IGNyZWRlbnRpYWxDYXJkLmVuZERhdGUsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3Ryb2lWaXNpdGFudGUodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgbGV0IHZpc2l0YW50ZURhdGEgPSB7IGRhdGE6IHt9IH07XG4gICAgaWYgKHZpc2l0YW50ZSAhPT0gdW5kZWZpbmVkICYmIHZpc2l0YW50ZSAhPT0gbnVsbCkge1xuICAgICAgdmlzaXRhbnRlRGF0YSA9IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGlkOiB2aXNpdGFudGUuaWQsXG4gICAgICAgICAgbmFtZTogdmlzaXRhbnRlLm5hbWUsXG4gICAgICAgICAgZG9jdW1lbnQ6IHZpc2l0YW50ZS5kb2N1bWVudCxcbiAgICAgICAgICBjb250YWN0OiB2aXNpdGFudGUuY29udGFjdCxcbiAgICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiB0aGlzLmdldFZpc2l0b3JTaXR1YXRpb24oXG4gICAgICAgICAgICB2aXNpdGFudGUudmlzaXRvclNpdHVhdGlvblxuICAgICAgICAgICksXG4gICAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHZpc2l0YW50ZURhdGE7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNyZWRlbnRpYWxDYXJkKHZpc2l0b3JDcmVkZW50aWFsQ2FyZDogQ3JlZGVudGlhbENhcmQpOiBDcmVkZW50aWFsQ2FyZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc2l0b3I6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC5pZCxcbiAgICAgIGNhcmRUZWNobm9sb2d5OiB2aXNpdG9yQ3JlZGVudGlhbENhcmQuY2FyZFRlY2hub2xvZ3ksXG4gICAgICBjYXJkTnVtYmVyOiB2aXNpdG9yQ3JlZGVudGlhbENhcmQuY2FyZE51bWJlcixcbiAgICAgIGVuZERhdGU6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC5lbmREYXRlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFRlY25vbG9naWFDcmFjaGFUcmFkdXppZGEoY2FyZFRlY2hub2xvZ3k6IENhcmRUZWNobm9sb2d5KTogc3RyaW5nIHtcbiAgICBpZiAoY2FyZFRlY2hub2xvZ3kgPT09IENhcmRUZWNobm9sb2d5LkJBUkNPREVfQ0FSRCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgIFwieW1zLnBhdGlvLmNhcnRhb19jcmVkZW5jaWFsX2NvZGlnb19iYXJyYXNcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY2FyZFRlY2hub2xvZ3kgPT09IENhcmRUZWNobm9sb2d5LlJGSURfQ0FSRCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8uY2FydGFvX2NyZWRlbmNpYWxfcmZpZFwiKTtcbiAgICB9XG5cbiAgICBpZiAoY2FyZFRlY2hub2xvZ3kgPT09IENhcmRUZWNobm9sb2d5LlNNQVJUX0NBUkQpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLnBhdGlvLmNhcnRhb19jcmVkZW5jaWFsX3NtYXJ0XCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmlzaXRvclNpdHVhdGlvbih2aXNpdG9yU2l0dWF0aW9uOiBWaXNpdG9yU2l0dWF0aW9uKSB7XG4gICAgcmV0dXJuIHZpc2l0b3JTaXR1YXRpb24gPT09IHVuZGVmaW5lZFxuICAgICAgPyBWaXNpdG9yU2l0dWF0aW9uLkNIRUNLX0lOX1BFTkRJTkdcbiAgICAgIDogdmlzaXRvclNpdHVhdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3Ryb2lDYW1wb3NUYWJlbGFWaXN0YW50ZSgpIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRDb2x1bW5zID0gW1xuICAgICAge1xuICAgICAgICBmaWVsZDogXCJuYW1lXCIsXG4gICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX25vbWVcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBmaWVsZDogXCJkb2N1bWVudFwiLFxuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgXCJ5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9kb2N1bWVudG9cIlxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmllbGQ6IFwiY29udGFjdFwiLFxuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9jb250YXRvXCIpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb2N1bWVudFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjcGZcIjtcbiAgfVxufSJdfQ==
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3ltcy1pbnRlZ3JhdGlvbi8iLCJzb3VyY2VzIjpbInNyYy9zYW0tc2VuaW9yL2NvbXBvbmVudHMvdmlzaXRvci1lZGl0L3Zpc2l0b3ItZWRpdC1saXN0L3Zpc2l0b3ItZWRpdC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUNMLGNBQWMsR0FFZixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRyx5QkFBeUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBUTFFO0lBZ0JFLDRCQUNVLFNBQTJCLEVBQzNCLGFBQTRCLEVBQzNCLG1CQUE4QztRQUYvQyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixrQkFB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LGdCQUFnQixDQUFDLGdCQUFnQjtZQUNuQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7SUFDdkIsQ0FBQztJQUVPLHlEQUE0QixHQUFwQztRQUNFLElBQUksQ0FBQyxvQkFBb0IsR0FBRztZQUMxQjtnQkFDRSxLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0NBQW9DLENBQUM7YUFDckU7WUFDRDtnQkFDRSxLQUFLLEVBQUUsVUFBVTtnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUM1Qix5Q0FBeUMsQ0FDMUM7YUFDRjtZQUNEO2dCQUNFLEtBQUssRUFBRSxTQUFTO2dCQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsdUNBQXVDLENBQUM7YUFDeEU7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLDRDQUFlLEdBQXZCO1FBQ0UsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBMWFRO1FBQVIsS0FBSyxFQUFFOzt5REFBOEI7SUFDN0I7UUFBUixLQUFLLEVBQUU7O3dEQUFnRDtJQUM5QztRQUFULE1BQU0sRUFBRTs7OERBQThEO0lBQzdEO1FBQVQsTUFBTSxFQUFFOzt5REFBMEM7SUFKeEMsa0JBQWtCO1FBTDlCLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsODhLQUFpRDs7U0FFbEQsQ0FBQztpREFrQnFCLGdCQUFnQjtZQUNaLGFBQWE7WUFDTix5QkFBeUI7T0FuQjlDLGtCQUFrQixDQTRhOUI7SUFBRCx5QkFBQztDQUFBLEFBNWFELElBNGFDO1NBNWFZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpc2l0b3JDcmVkZW50aWFsc0R0byB9IGZyb20gJy4uLy4uLy4uL2VudGl0aWVzL3Zpc2l0b3ItY3JlZGVudGlhbHMtZHRvJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBWaXNpdG9yIH0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy92aXNpdG9yXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBlbXB0eSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICBDYXJkVGVjaG5vbG9neSxcbiAgQ3JlZGVudGlhbENhcmQsXG59IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvY2FyZC1jcmVkZW50aWFsXCI7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCwgbWVyZ2VNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFZpc2l0b3JTaXR1YXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL3Zpc2l0b3Itc2l0dWF0aW9uXCI7XG5pbXBvcnQgeyBNb3RvcmlzdGEgfSBmcm9tIFwiLi4vLi4vLi4vLi4vZXJwLXNlbmlvci9jb3JlL2VudGl0aWVzL21vdG9yaXN0YS9tb3RvcmlzdGFcIjtcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IENyZWRlbmNpYWxGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NyZWRlbmNpYWwtZm9ybS9jcmVkZW5jaWFsLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBWaXNpdGFudGVGb3JtQ29tcG9uZW50IH0gZnJvbSBcIi4uL3Zpc2l0b3ItZWRpdC1mb3JtL3Zpc2l0YW50ZS1mb3JtL3Zpc2l0b3ItZWRpdC1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgZGlhbG9nQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxzL3V0aWxzXCI7XG5pbXBvcnQgeyAgSW50ZWdyYXRpb25FdmVudHNDYWxsYmFjayB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMveW1zLXJvdXRpbmVzXCI7XG5pbXBvcnQgeyBWaXNpdG9yRHRvIH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvdmlzaXRvci1kdG8nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2aXNpdGFudGUtY29tcG9uZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Zpc2l0b3ItZWRpdC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdmlzaXRvci1lZGl0LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVmlzaXRhbnRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgcHJpdmF0ZSBtb3RvcmlzdGE6IE1vdG9yaXN0YTtcbiAgQElucHV0KCkgcHJpdmF0ZSB2aXNpdG9yczogVmlzaXRvckNyZWRlbnRpYWxzRHRvW10gPSBbXTtcbiAgQE91dHB1dCgpIHZpc2l0b3JzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxWaXNpdG9yQ3JlZGVudGlhbHNEdG9bXT4oKTtcbiAgQE91dHB1dCgpIGhhc0NoYW5nZSAgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHZpc2l0YW50ZUdyaWREYXRhOiBWaXNpdG9yRHRvW107XG4gIHB1YmxpYyB2aXNpdGFudGVHcmlkQ29sdW1uczogYW55W107XG4gIHB1YmxpYyB2aXNpdGFudGVUb3RhbFJlY29yZHM6IG51bWJlcjtcbiAgcHVibGljIHZpc2l0YW50ZUdyaWRMb2FkaW5nOiBib29sZWFuO1xuICBwdWJsaWMgdmlzaXRvckZvdW5kOiBib29sZWFuO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ludGVncmF0aW9uQ2FsbGJhY2s6IEludGVncmF0aW9uRXZlbnRzQ2FsbGJhY2s7XG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgcmVhZG9ubHkgaW50ZWdyYXRpb25DYWxsYmFjazogSW50ZWdyYXRpb25FdmVudHNDYWxsYmFja1xuICApIHtcbiAgICB0aGlzLl9pbnRlZ3JhdGlvbkNhbGxiYWNrID0gaW50ZWdyYXRpb25DYWxsYmFjaztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY29uc3Ryb2lDYW1wb3NUYWJlbGFWaXN0YW50ZSgpO1xuICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzID0gMDtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5hZGljaW9uYVZpc2l0YW50ZXNHcmlkKCk7XG4gICAgdGhpcy5faW50ZWdyYXRpb25DYWxsYmFja1xuICAgICAgLm9uQWdlbmRhbWVudG9Nb3RvcmlzdGFDaGFuZ2VkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICBtZXJnZU1hcCgobW90b3Jpc3RhKSA9PiB7XG4gICAgICAgICAgdGhpcy5hdHVhbGl6YU1vdG9yaXN0YShtb3RvcmlzdGEpO1xuICAgICAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHVhbGl6YU1vdG9yaXN0YShtb3Q6IE1vdG9yaXN0YSkge1xuICAgIGNvbnN0IG1vdG9yaXN0YVZpc2l0YW50ZSA9IHRoaXMudmlzaXRhbnRlR3JpZERhdGEuZmluZChcbiAgICAgIChpdGVtKSA9PiBpdGVtLmRyaXZlclxuICAgICk7XG5cbiAgICBpZiAobW90b3Jpc3RhVmlzaXRhbnRlICYmIG1vdG9yaXN0YVZpc2l0YW50ZS5kb2N1bWVudFR5cGUgPT09IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCkgJiYgIG1vdG9yaXN0YVZpc2l0YW50ZS5kb2N1bWVudCA9PT0gbW90LmNwZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGFbMF0gPSB7XG4gICAgICAgIG5hbWU6IG1vdC5ub21lLFxuICAgICAgICBkb2N1bWVudDogbW90LmNwZixcbiAgICAgICAgY29udGFjdDogdGhpcy5nZXRDb250YXRvTW90b3Jpc3RhKG1vdCksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORyxcbiAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgIH07ICAgICAgXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgbmFtZTogbW90Lm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiBtb3QuY3BmLFxuICAgICAgICBjb250YWN0OiB0aGlzLmdldENvbnRhdG9Nb3RvcmlzdGEobW90KSxcbiAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HLFxuICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgIGRyaXZlcjogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICAgIFxuICB9XG5cbiAgcHJpdmF0ZSBhZGljaW9uYVZpc2l0YW50ZXNHcmlkKCkge1xuICAgIGlmICh0aGlzLnZpc2l0b3JzLmxlbmd0aCkge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YSA9IFtdO1xuICAgICAgdGhpcy5hZGljaW9uYU1vdG9yaXN0YU5vVmlzaXRhbnRlR3JpZERhdGEoKTtcblxuICAgICAgdGhpcy52aXNpdG9ycy5mb3JFYWNoKCh2aXNpdG9yOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubW90b3Jpc3RhLmNwZiAhPT0gdmlzaXRvci52aXNpdG9yLmRvY3VtZW50KSB7XG4gICAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgICAgIGlkOiB2aXNpdG9yLnZpc2l0b3IuaWQsXG4gICAgICAgICAgICBuYW1lOiB2aXNpdG9yLnZpc2l0b3IubmFtZSxcbiAgICAgICAgICAgIGRvY3VtZW50OiB2aXNpdG9yLnZpc2l0b3IuZG9jdW1lbnQsXG4gICAgICAgICAgICBjb250YWN0OiB2aXNpdG9yLnZpc2l0b3IuY29udGFjdCxcbiAgICAgICAgICAgIHZpc2l0b3JTaXR1YXRpb246IHRoaXMuZ2V0VmlzaXRvclNpdHVhdGlvbihcbiAgICAgICAgICAgICAgdmlzaXRvci52aXNpdG9yLnZpc2l0b3JTaXR1YXRpb25cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBkb2N1bWVudFR5cGU6IHRoaXMuZ2V0RG9jdW1lbnRUeXBlKCksXG4gICAgICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzID0gdGhpcy52aXNpdG9ycy5sZW5ndGg7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YSA9IFtdO1xuICAgICAgY29uc3Qgbm92b192aXNpdGFudGUgPSBuZXcgVmlzaXRvckNyZWRlbnRpYWxzRHRvKClcbiAgICAgIG5vdm9fdmlzaXRhbnRlLnZpc2l0b3IgPSB7XG4gICAgICAgIG5hbWU6IHRoaXMubW90b3Jpc3RhLm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiB0aGlzLm1vdG9yaXN0YS5jcGYsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YSh0aGlzLm1vdG9yaXN0YSksXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgdmlzaXRvclNpdHVhdGlvbjogVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HLFxuICAgICAgICBkcml2ZXI6IHRydWVcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmlzaXRhbnRlQnVzY2FuZG8gPSB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmZpbmQoXG4gICAgICAgICh2aXNpdGFudGVOYUxpc3RhKSA9PiBub3ZvX3Zpc2l0YW50ZS52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdGFudGVOYUxpc3RhLmRvY3VtZW50XG4gICAgICAgICk7XG4gICAgICAgIGlmICh2aXNpdGFudGVCdXNjYW5kbyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKG5vdm9fdmlzaXRhbnRlLnZpc2l0b3IpOyAgICAgICAgXG4gICAgICAgICAgdGhpcy52aXNpdG9ycy5wdXNoKG5vdm9fdmlzaXRhbnRlKTtcbiAgICAgICAgdGhpcy52aXNpdGFudGVUb3RhbFJlY29yZHMgPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMudmlzaXRhbnRlR3JpZExvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NyZWRlbnRpYWxDYXJkc0VtcHR5KHZpc2l0b3I6IFZpc2l0b3IpIHtcbiAgICBjb25zdCB2aXNpdGFudGVzRW5jb250cmFkb3MgPSB0aGlzLnZpc2l0b3JzLmZpbmQoXG4gICAgICAodmlzaXRvcldpdGhDcmVkZW50aWFscykgPT5cbiAgICAgICAgdmlzaXRvcldpdGhDcmVkZW50aWFscy52aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdG9yLmRvY3VtZW50XG4gICAgKTtcblxuICAgIGlmICh2aXNpdGFudGVzRW5jb250cmFkb3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB2aXNpdGFudGVzRW5jb250cmFkb3MuY3JlZGVudGlhbENhcmRzLmZpbHRlcihcbiAgICAgIChjcmVkZW50aWFsQ2FyZDogQ3JlZGVudGlhbENhcmQpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKGNyZWRlbnRpYWxDYXJkKS5sZW5ndGggIT09IDBcbiAgICApLmxlbmd0aCA+IDBcbiAgICAgID8gdHJ1ZVxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgYWRpY2lvbmFNb3RvcmlzdGFOb1Zpc2l0YW50ZUdyaWREYXRhKCkge1xuICAgIGNvbnN0IG1vdG9yaXN0YVZpc2l0YW50ZSA9IHRoaXMudmlzaXRvcnMuZmluZChcbiAgICAgICh2aXNpdG9yKSA9PiB0aGlzLm1vdG9yaXN0YS5jcGYgPT09IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudFxuICAgICk7XG5cbiAgICBpZiAobW90b3Jpc3RhVmlzaXRhbnRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEucHVzaCh7XG4gICAgICAgIG5hbWU6IHRoaXMubW90b3Jpc3RhLm5vbWUsXG4gICAgICAgIGRvY3VtZW50OiB0aGlzLm1vdG9yaXN0YS5jcGYsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YSh0aGlzLm1vdG9yaXN0YSksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IFZpc2l0b3JTaXR1YXRpb24uQ0hFQ0tfSU5fUEVORElORyxcbiAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICBkcml2ZXI6IHRydWUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHtcbiAgICAgICAgaWQ6IG1vdG9yaXN0YVZpc2l0YW50ZS52aXNpdG9yLmlkLFxuICAgICAgICBuYW1lOiBtb3RvcmlzdGFWaXNpdGFudGUudmlzaXRvci5uYW1lLFxuICAgICAgICBkb2N1bWVudDogbW90b3Jpc3RhVmlzaXRhbnRlLnZpc2l0b3IuZG9jdW1lbnQsXG4gICAgICAgIGNvbnRhY3Q6IHRoaXMuZ2V0Q29udGF0b01vdG9yaXN0YSh0aGlzLm1vdG9yaXN0YSksXG4gICAgICAgIHZpc2l0b3JTaXR1YXRpb246IHRoaXMuZ2V0VmlzaXRvclNpdHVhdGlvbihcbiAgICAgICAgICBtb3RvcmlzdGFWaXNpdGFudGUudmlzaXRvci52aXNpdG9yU2l0dWF0aW9uXG4gICAgICAgICksXG4gICAgICAgIGRvY3VtZW50VHlwZTogdGhpcy5nZXREb2N1bWVudFR5cGUoKSxcbiAgICAgICAgZHJpdmVyOiB0cnVlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNyaWFyT3VBdHVhbGl6YXJWaXNpdGFudGUodmlzaXRvcjogVmlzaXRvcikge1xuICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgLm9wZW4oVmlzaXRhbnRlRm9ybUNvbXBvbmVudCwge1xuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgXCJ5bXMucGF0aW8ubW90b3Jpc3RhX2FkaWNpb25hcl92aXNpdGFudGVcIlxuICAgICAgICApLFxuICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgIC4uLnRoaXMuY29uc3Ryb2lWaXNpdGFudGUodmlzaXRvciksXG4gICAgICB9KVxuICAgICAgLm9uQ2xvc2UucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgIGZpbHRlcigodmFsdWUpID0+ICEhdmFsdWUpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2aXNpdGFudGUpID0+IHRoaXMuYWRpY2lvbmFWaXNpdGFudGVQYXJhU2FsdmFyKHZpc2l0YW50ZSkpO1xuICB9XG5cbiAgcHVibGljIGFkaWNpb25hVmlzaXRhbnRlUGFyYVNhbHZhcih2aXNpdGFudGU6IFZpc2l0b3IpIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLmZvckVhY2godmlzaXRvciA9PiB7XG4gICAgICBpZih2aXNpdG9yLmRvY3VtZW50ID09PSB2aXNpdGFudGUuZG9jdW1lbnQpIHtcbiAgICAgICAgdmlzaXRvci5jb250YWN0ID0gdmlzaXRhbnRlLmNvbnRhY3Q7XG4gICAgICAgIHZpc2l0b3IubmFtZSA9IHZpc2l0YW50ZS5uYW1lO1xuICAgICAgICB0aGlzLnZpc2l0b3JGb3VuZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZih0aGlzLnZpc2l0b3JGb3VuZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRMb2FkaW5nID0gdHJ1ZTtcblxuICAgIHZpc2l0YW50ZS5kb2N1bWVudFR5cGUgPSB0aGlzLmdldERvY3VtZW50VHlwZSgpO1xuXG4gICAgaWYgKHZpc2l0YW50ZS52aXNpdG9yU2l0dWF0aW9uID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHZpc2l0YW50ZS52aXNpdG9yU2l0dWF0aW9uID0gVmlzaXRvclNpdHVhdGlvbi5DSEVDS19JTl9QRU5ESU5HO1xuICAgIH1cblxuICAgIHRoaXMuYWRkVmlzaXRhbnRlTmFUYWJlbGEodmlzaXRhbnRlKTtcblxuICAgIHRoaXMudmlzaXRhbnRlVG90YWxSZWNvcmRzKys7XG4gICAgdGhpcy52aXNpdGFudGVHcmlkTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm92b192aXNpdGFudGUgPSBuZXcgVmlzaXRvckNyZWRlbnRpYWxzRHRvKClcbiAgICBub3ZvX3Zpc2l0YW50ZS52aXNpdG9yID0ge1xuICAgICAgbmFtZSA6IHZpc2l0YW50ZS5uYW1lLFxuICAgICAgZG9jdW1lbnQgOiB2aXNpdGFudGUuZG9jdW1lbnQsXG4gICAgICBjb250YWN0OiB2aXNpdGFudGUuY29udGFjdCxcbiAgICAgIGRvY3VtZW50VHlwZSA6IHZpc2l0YW50ZS5kb2N1bWVudFR5cGUsXG4gICAgICB2aXNpdG9yU2l0dWF0aW9uIDogdmlzaXRhbnRlLnZpc2l0b3JTaXR1YXRpb24sXG4gICAgICBkcml2ZXI6IGZhbHNlXG4gICAgfVxuXG4gICAgdGhpcy52aXNpdG9ycy5wdXNoKG5vdm9fdmlzaXRhbnRlKVxuICAgIHRoaXMudmlzaXRvcnNDaGFuZ2UuZW1pdCh0aGlzLnZpc2l0b3JzKVxuICAgIHRoaXMuaGFzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgbW9kZWwodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgY29uc3QgaXNEcml2ZXIgPSB2aXNpdGFudGUuZG9jdW1lbnQgPT09IHRoaXMubW90b3Jpc3RhLmNwZjtcblxuICAgIGNvbnN0IGZpbmRWaXNpdG9yID0gdGhpcy52aXNpdG9ycy5maW5kKFxuICAgICAgKHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMpID0+XG4gICAgICAgIHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRhbnRlLmRvY3VtZW50XG4gICAgKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5bXMucGF0aW8ubW90b3Jpc3RhX2VkaXRhcl92aXNpdGFudGUnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5lZGl0YXJWaXNpdGFudGUodmlzaXRhbnRlKSxcbiAgICAgICAgdmlzaWJsZSA6ICFpc0RyaXZlclxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3ltcy5wYXRpby5kZWxldGUnKSxcbiAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5kZWxldGFyVmlzaXRhbnRlKHZpc2l0YW50ZSksXG4gICAgICAgIHZpc2libGUgOiAhaXNEcml2ZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9lbnRyZWdhcl9jcmVkZW5jaWFsJyksXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuZW50cmVnYXJDcmVkZW5jaWFsKHZpc2l0YW50ZSksXG4gICAgICAgIHZpc2libGUgOiBpc0RyaXZlciB8fCAhaXNEcml2ZXJcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5bXMucGF0aW8ucmVtb3Zlcl9jcmVkZW5jaWFpcycpLFxuICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmRlbGV0YXJDcmVkZW5jaWFpcyhmaW5kVmlzaXRvciksXG4gICAgICAgIHZpc2libGUgOiBmaW5kVmlzaXRvciAhPSBudWxsICYmIGZpbmRWaXNpdG9yLmNyZWRlbnRpYWxDYXJkcyAhPSBudWxsICYmIGZpbmRWaXNpdG9yLmNyZWRlbnRpYWxDYXJkcy5sZW5ndGggPiAwXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGFkZFZpc2l0YW50ZU5hVGFiZWxhKHZpc2l0YW50ZTogYW55KSB7XG4gICAgaWYgKHZpc2l0YW50ZS5pZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEgPSB0aGlzLnZpc2l0YW50ZUdyaWREYXRhLm1hcCgodmlzaXRhbnRlR3JpZCkgPT4ge1xuICAgICAgICAgICAgaWYgKHZpc2l0YW50ZUdyaWQuaWQgPT09IHZpc2l0YW50ZS5pZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB2aXNpdGFudGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmlzaXRhbnRlR3JpZDtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5wdXNoKHZpc2l0YW50ZSk7XG4gICAgfVxufVxuXG4gIHB1YmxpYyBlbnRyZWdhckNyZWRlbmNpYWwodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlXG4gICAgICAub3BlbihDcmVkZW5jaWFsRm9ybUNvbXBvbmVudCwge1xuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgXCJ5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9jcmVkZW5jaWFsXCJcbiAgICAgICAgKSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHZpc2l0YW50ZTogdmlzaXRhbnRlLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5vbkNsb3NlLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiAhIXZhbHVlKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmlzaXRvckNyZWRlbnRpYWxDYXJkOiBhbnkpID0+IFxuICAgICAgdGhpcy5hZGljaW9uYUNyZWRlbmNpYWxQYXJhRW50cmVnYXIodmlzaXRvckNyZWRlbnRpYWxDYXJkKSk7XG4gIH1cblxuICBwcml2YXRlIGFkaWNpb25hQ3JlZGVuY2lhbFBhcmFFbnRyZWdhcih2aXNpdG9yQ3JlZGVudGlhbENhcmQ6IGFueSkge1xuICAgIGNvbnN0IHZpc2l0b3JXaXRoQ3JlZGVuY2lhbCA9IHRoaXMudmlzaXRvcnMuZmluZChcbiAgICAgICh2aXNpdG9yKSA9PiB2aXNpdG9yLnZpc2l0b3IuZG9jdW1lbnQgPT09IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC52aXNpdG9yLmRvY3VtZW50XG4gICAgKTtcblxuICAgIGlmICh2aXNpdG9yV2l0aENyZWRlbmNpYWwgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52aXNpdG9ycy5wdXNoKHtcbiAgICAgICAgdmlzaXRvcjogdmlzaXRvckNyZWRlbnRpYWxDYXJkLnZpc2l0b3IsXG4gICAgICAgIGNyZWRlbnRpYWxDYXJkczogW3RoaXMuY3JlYXRlQ3JlZGVudGlhbENhcmQodmlzaXRvckNyZWRlbnRpYWxDYXJkKV0sXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmlzaXRvcldpdGhDcmVkZW5jaWFsLmNyZWRlbnRpYWxDYXJkcy5wdXNoKHRoaXMuY3JlYXRlQ3JlZGVudGlhbENhcmQodmlzaXRvckNyZWRlbnRpYWxDYXJkKSk7XG4gICAgfVxuICAgIHRoaXMuaGFzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgZWRpdGFyVmlzaXRhbnRlKHZpc2l0YW50ZTogVmlzaXRvcikge1xuICAgIHRoaXMuY3JpYXJPdUF0dWFsaXphclZpc2l0YW50ZSh2aXNpdGFudGUpO1xuICB9XG5cbiAgcHVibGljIGRlbGV0YXJWaXNpdGFudGUodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgdGhpcy52aXNpdGFudGVHcmlkRGF0YS5mb3JFYWNoKCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICAgIGlmICh2YWx1ZS5kb2N1bWVudCA9PT0gdmlzaXRhbnRlLmRvY3VtZW50KSB7XG4gICAgICAgIHRoaXMudmlzaXRhbnRlR3JpZERhdGEuc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICBjb25zdCByZW1vdmVWaXNpdG9yID0gdGhpcy52aXNpdG9ycy5maW5kSW5kZXgoKHZpc2l0b3IpID0+IHZpc2l0b3IudmlzaXRvci5kb2N1bWVudCA9PT0gdmFsdWUuZG9jdW1lbnQpO1xuICAgICAgICBpZihyZW1vdmVWaXNpdG9yICE9PSAtMSkge1xuICAgICAgICAgIHRoaXMudmlzaXRvcnMuc3BsaWNlKHJlbW92ZVZpc2l0b3IsIDEpO1xuICAgICAgICAgIHRoaXMuaGFzQ2hhbmdlLmVtaXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGFyQ3JlZGVuY2lhaXModmlpc2l0b3JDcmVkZW50aWFsOiBWaXNpdG9yQ3JlZGVudGlhbHNEdG8pIHtcbiAgICB2aWlzaXRvckNyZWRlbnRpYWwuY3JlZGVudGlhbENhcmRzLnNwbGljZSgwLCB2aWlzaXRvckNyZWRlbnRpYWwuY3JlZGVudGlhbENhcmRzLmxlbmd0aCk7XG4gICAgdGhpcy5oYXNDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGF0b01vdG9yaXN0YShtb3RvcmlzdGE6IE1vdG9yaXN0YSkge1xuICAgIHJldHVybiBtb3RvcmlzdGEudGVsZWZvbmUgPT09IHVuZGVmaW5lZCA/IFwiMFwiIDogbW90b3Jpc3RhLnRlbGVmb25lO1xuICB9XG5cbiAgcHVibGljIGdldENyZWRlbnRpYWxDYXJkcyh2aXNpdG9yOiBWaXNpdG9yKSB7XG4gICAgaWYgKHRoaXMudmlzaXRvcnMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdG9yc1xuICAgICAgLmZpbmQoXG4gICAgICAgICh2aXNpdG9yV2l0aENyZWRlbnRpYWxzKSA9PlxuICAgICAgICAgIHZpc2l0b3JXaXRoQ3JlZGVudGlhbHMudmlzaXRvci5kb2N1bWVudCA9PT0gdmlzaXRvci5kb2N1bWVudFxuICAgICAgKVxuICAgICAgLmNyZWRlbnRpYWxDYXJkcy5maWx0ZXIoXG4gICAgICAgIChjcmVkZW50aWFsQ2FyZCkgPT4gT2JqZWN0LmtleXMoY3JlZGVudGlhbENhcmQpLmxlbmd0aCAhPT0gMFxuICAgICAgKVxuICAgICAgLm1hcCgoY3JlZGVudGlhbENhcmQ6IENyZWRlbnRpYWxDYXJkKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY2FyZFRlY2hub2xvZ3k6IHRoaXMuZ2V0VGVjbm9sb2dpYUNyYWNoYVRyYWR1emlkYShcbiAgICAgICAgICAgIGNyZWRlbnRpYWxDYXJkLmNhcmRUZWNobm9sb2d5XG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYXJkTnVtYmVyOiBjcmVkZW50aWFsQ2FyZC5jYXJkTnVtYmVyLFxuICAgICAgICAgIGVuZERhdGU6IGNyZWRlbnRpYWxDYXJkLmVuZERhdGUsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3Ryb2lWaXNpdGFudGUodmlzaXRhbnRlOiBWaXNpdG9yKSB7XG4gICAgbGV0IHZpc2l0YW50ZURhdGEgPSB7IGRhdGE6IHt9IH07XG4gICAgaWYgKHZpc2l0YW50ZSAhPT0gdW5kZWZpbmVkICYmIHZpc2l0YW50ZSAhPT0gbnVsbCkge1xuICAgICAgdmlzaXRhbnRlRGF0YSA9IHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGlkOiB2aXNpdGFudGUuaWQsXG4gICAgICAgICAgbmFtZTogdmlzaXRhbnRlLm5hbWUsXG4gICAgICAgICAgZG9jdW1lbnQ6IHZpc2l0YW50ZS5kb2N1bWVudCxcbiAgICAgICAgICBjb250YWN0OiB2aXNpdGFudGUuY29udGFjdCxcbiAgICAgICAgICB2aXNpdG9yU2l0dWF0aW9uOiB0aGlzLmdldFZpc2l0b3JTaXR1YXRpb24oXG4gICAgICAgICAgICB2aXNpdGFudGUudmlzaXRvclNpdHVhdGlvblxuICAgICAgICAgICksXG4gICAgICAgICAgZG9jdW1lbnRUeXBlOiB0aGlzLmdldERvY3VtZW50VHlwZSgpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHZpc2l0YW50ZURhdGE7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNyZWRlbnRpYWxDYXJkKHZpc2l0b3JDcmVkZW50aWFsQ2FyZDogQ3JlZGVudGlhbENhcmQpOiBDcmVkZW50aWFsQ2FyZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc2l0b3I6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC5pZCxcbiAgICAgIGNhcmRUZWNobm9sb2d5OiB2aXNpdG9yQ3JlZGVudGlhbENhcmQuY2FyZFRlY2hub2xvZ3ksXG4gICAgICBjYXJkTnVtYmVyOiB2aXNpdG9yQ3JlZGVudGlhbENhcmQuY2FyZE51bWJlcixcbiAgICAgIGVuZERhdGU6IHZpc2l0b3JDcmVkZW50aWFsQ2FyZC5lbmREYXRlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFRlY25vbG9naWFDcmFjaGFUcmFkdXppZGEoY2FyZFRlY2hub2xvZ3k6IENhcmRUZWNobm9sb2d5KTogc3RyaW5nIHtcbiAgICBpZiAoY2FyZFRlY2hub2xvZ3kgPT09IENhcmRUZWNobm9sb2d5LkJBUkNPREVfQ0FSRCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgIFwieW1zLnBhdGlvLmNhcnRhb19jcmVkZW5jaWFsX2NvZGlnb19iYXJyYXNcIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY2FyZFRlY2hub2xvZ3kgPT09IENhcmRUZWNobm9sb2d5LlJGSURfQ0FSRCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8uY2FydGFvX2NyZWRlbmNpYWxfcmZpZFwiKTtcbiAgICB9XG5cbiAgICBpZiAoY2FyZFRlY2hub2xvZ3kgPT09IENhcmRUZWNobm9sb2d5LlNNQVJUX0NBUkQpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLnBhdGlvLmNhcnRhb19jcmVkZW5jaWFsX3NtYXJ0XCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmlzaXRvclNpdHVhdGlvbih2aXNpdG9yU2l0dWF0aW9uOiBWaXNpdG9yU2l0dWF0aW9uKSB7XG4gICAgcmV0dXJuIHZpc2l0b3JTaXR1YXRpb24gPT09IHVuZGVmaW5lZFxuICAgICAgPyBWaXNpdG9yU2l0dWF0aW9uLkNIRUNLX0lOX1BFTkRJTkdcbiAgICAgIDogdmlzaXRvclNpdHVhdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3Ryb2lDYW1wb3NUYWJlbGFWaXN0YW50ZSgpIHtcbiAgICB0aGlzLnZpc2l0YW50ZUdyaWRDb2x1bW5zID0gW1xuICAgICAge1xuICAgICAgICBmaWVsZDogXCJuYW1lXCIsXG4gICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5wYXRpby5tb3RvcmlzdGFfdmlzaXRhbnRlX25vbWVcIiksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBmaWVsZDogXCJkb2N1bWVudFwiLFxuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgXCJ5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9kb2N1bWVudG9cIlxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZmllbGQ6IFwiY29udGFjdFwiLFxuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMucGF0aW8ubW90b3Jpc3RhX3Zpc2l0YW50ZV9jb250YXRvXCIpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREb2N1bWVudFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJjcGZcIjtcbiAgfVxufSJdfQ==
@@ -1722,7 +1722,7 @@ let VisitanteFormComponent = class VisitanteFormComponent {
1722
1722
  if (!this.formGroup.valid) {
1723
1723
  return this.validateAllFormFields(this.formGroup);
1724
1724
  }
1725
- const visitante = this.formGroup.value;
1725
+ const visitante = this.formGroup.getRawValue();
1726
1726
  visitante.id = this.id;
1727
1727
  this.close(visitante);
1728
1728
  }
@@ -1891,6 +1891,16 @@ let VisitanteComponent = class VisitanteComponent {
1891
1891
  .subscribe((visitante) => this.adicionaVisitanteParaSalvar(visitante));
1892
1892
  }
1893
1893
  adicionaVisitanteParaSalvar(visitante) {
1894
+ this.visitanteGridData.forEach(visitor => {
1895
+ if (visitor.document === visitante.document) {
1896
+ visitor.contact = visitante.contact;
1897
+ visitor.name = visitante.name;
1898
+ this.visitorFound = true;
1899
+ }
1900
+ });
1901
+ if (this.visitorFound) {
1902
+ return;
1903
+ }
1894
1904
  this.visitanteGridLoading = true;
1895
1905
  visitante.documentType = this.getDocumentType();
1896
1906
  if (visitante.visitorSituation === undefined) {