ngx-rs-ant 2.3.6 → 2.3.8

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.
@@ -66,6 +66,12 @@ export class FormComponent extends UniqueId {
66
66
  this.service.getFormTemplateConfig(this.tenant, this.className, this.template).subscribe(response => {
67
67
  this.config = response.data.template;
68
68
  this.extraValidator = this.config.extraValidator;
69
+ this.extraValidatorParams = {};
70
+ if (this.config.extraValidatorParams) {
71
+ for (let param of this.config.extraValidatorParams) {
72
+ this.extraValidatorParams[param.name] = param.value;
73
+ }
74
+ }
69
75
  if (this.onlyFrontEnd) {
70
76
  this.loading = false;
71
77
  this.onDataLoaded.emit({
@@ -102,12 +108,13 @@ export class FormComponent extends UniqueId {
102
108
  });
103
109
  }
104
110
  extraValidate() {
105
- return lastValueFrom(this.service.extraValidate(this.model, Object.assign({}, this.params, {
111
+ return lastValueFrom(this.service.extraValidate(this.extraValidator, {
112
+ ...this.params,
106
113
  tenant: this.tenant,
107
114
  className: this.className,
108
- oid: this.oid,
109
- template: this.template
110
- }), this.extraValidator).pipe(map(response => {
115
+ oid: this.oid || '',
116
+ template: this.template || ''
117
+ }, this.model, this.extraValidatorParams).pipe(map(response => {
111
118
  if (!response.isValid) {
112
119
  this.extraValidateMessage = response.message;
113
120
  return response;
@@ -205,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
205
212
  type: HostBinding,
206
213
  args: ['attr.validator-group-name']
207
214
  }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0FBUTFDLE1BQU0sT0FBTyxhQUFjLFNBQVEsUUFBUTtJQTRDekMsSUFBOEMsbUJBQW1CO1FBQy9ELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFzQixnQkFBa0MsRUFBVSxPQUFvQixFQUFVLFVBQXNCO1FBQ3BILEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTlDdEgsV0FBTSxHQUFTLEdBQUcsQ0FBQztRQWdCbkIsaUJBQVksR0FBWSxLQUFLLENBQUMsQ0FBQyxzQkFBc0I7UUFJckQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUsxQixpQkFB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LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1TZXJ2aWNlfSBmcm9tIFwiLi9mb3JtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEeEJ1dHRvbkNvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xyXG5pbXBvcnQge3ZhbGlkYXRlR3JvdXBCeU5hbWV9IGZyb20gXCIuLi91dGlsL3V0aWxzXCI7XHJcbmltcG9ydCB7Q2hhbmdlRmlsdGVyfSBmcm9tIFwiLi4vdXRpbC9jaGFuZ2UtZmlsdGVyXCI7XHJcbmltcG9ydCB7bGFzdFZhbHVlRnJvbSwgbWFwLCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1VuaXF1ZUlkfSBmcm9tIFwiLi4vdXRpbC9VbmlxdWVJZFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW0Zvcm1TZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbXBvbmVudCBleHRlbmRzIFVuaXF1ZUlkIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KClcclxuICB0ZW5hbnQ/OiBhbnkgPSAnVCc7XHJcbiAgQElucHV0KClcclxuICBjbGFzc05hbWUhOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBvaWQ/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjb3B5T2lkPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGU/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBleHRyYUF0dHJNYXA/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBwYXJhbXM/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICB0YWJWaWV3Q29udGFpbmVyUmVmITogVmlld0NvbnRhaW5lclJlZjtcclxuICBASW5wdXQoKVxyXG4gIG9ubHlGcm9udEVuZDogYm9vbGVhbiA9IGZhbHNlOyAvLyDku4XliY3nq6/vvIzkuI3pgJrov4dvaWTojrflj5blrp7kvottb2RlbFxyXG4gIEBJbnB1dCgpXHJcbiAgbW9kZWw/OiBhbnk7XHJcbiAgQElucHV0KClcclxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbmZpZzogYW55O1xyXG4gIGV4dHJhVmFsaWRhdG9yPzogc3RyaW5nO1xyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1TdWJtaXR0ZXInKSBmb3JtU3VibWl0dGVyITogRHhCdXR0b25Db21wb25lbnQ7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25EYXRhTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGlkOiBzdHJpbmcsIGNvbmZpZzogYW55LCBtb2RlbDogYW55IH0+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgc3VibWl0Q2FsbGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBjaGFuZ2VGaWx0ZXIgPSBuZXcgQ2hhbmdlRmlsdGVyKCk7XHJcbiAgcHJpdmF0ZSB2YWx1ZUNoYW5nZSA9IG5ldyBTdWJqZWN0PHtcclxuICAgIGZpZWxkOiBzdHJpbmcsXHJcbiAgICB2YWx1ZTogYW55XHJcbiAgICBvbmx5SW5pdD86IGJvb2xlYW4sXHJcbiAgfT4oKTtcclxuICBwcml2YXRlIG1vZGVsVmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBmaWVsZDogc3RyaW5nLFxyXG4gICAgdmFsdWU6IGFueVxyXG4gIH0+KCk7XHJcbiAgcHJvdGVjdGVkIGNvbnRleHQ6IGFueTtcclxuICBwcm90ZWN0ZWQgZXh0cmFWYWxpZGF0ZU1lc3NhZ2U6IGFueTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnZhbGlkYXRvci1ncm91cC1uYW1lJykgZ2V0IF92YWxpZGF0b3JHcm91cE5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRVbmlxdWVJZCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgc2VydmljZTogRm9ybVNlcnZpY2UsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoJ3JzLWZvcm0nKTtcclxuICAgIHRoaXMuZXh0cmFWYWxpZGF0ZSA9IHRoaXMuZXh0cmFWYWxpZGF0ZS5iaW5kKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmxvYWQoKTtcclxuICAgIHRoaXMuY2hhbmdlRmlsdGVyLmFueU5vdEZpcnN0KFsndGVuYW50JywgJ2NsYXNzTmFtZScsICdvaWQnLCAnY29weU9pZCcsICd0ZW1wbGF0ZSddLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYW5nZUZpbHRlci5kb0ZpbHRlcihjaGFuZ2VzKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5jaGFuZ2VGaWx0ZXIuZGlzcG9zZSgpO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5tb2RlbFZhbHVlQ2hhbmdlZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbG9hZCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNvbnRleHQgPSB7XHJcbiAgICAgIF9fZm9ybToge1xyXG4gICAgICAgIHVuaXF1ZUlkOiB0aGlzLmdldFVuaXF1ZUlkKCksXHJcbiAgICAgICAgdGVuYW50OiB0aGlzLnRlbmFudCxcclxuICAgICAgICBjbGFzc05hbWU6IHRoaXMuY2xhc3NOYW1lLFxyXG4gICAgICAgIG9pZDogdGhpcy5vaWQsXHJcbiAgICAgICAgY29weU9pZDogdGhpcy5jb3B5T2lkLFxyXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLnRlbXBsYXRlXHJcbiAgICAgIH0sXHJcbiAgICAgIF9fbW9kZWw6IHRoaXMubW9kZWwgfHwge30sXHJcbiAgICAgIF9fb3BlbmVyOiB0aGlzLFxyXG4gICAgICBfX3ZhbHVlQ2hhbmdlOiB0aGlzLnZhbHVlQ2hhbmdlLFxyXG4gICAgICBfX21vZGVsVmFsdWVDaGFuZ2VkOiB0aGlzLm1vZGVsVmFsdWVDaGFuZ2VkXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldEZvcm1UZW1wbGF0ZUNvbmZpZyh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMudGVtcGxhdGUpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIHRoaXMuY29uZmlnID0gcmVzcG9uc2UuZGF0YS50ZW1wbGF0ZTtcclxuICAgICAgdGhpcy5leHRyYVZhbGlkYXRvciA9IHRoaXMuY29uZmlnLmV4dHJhVmFsaWRhdG9yO1xyXG4gICAgICBpZiAodGhpcy5vbmx5RnJvbnRFbmQpIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9uRGF0YUxvYWRlZC5lbWl0KHtcclxuICAgICAgICAgIGlkOiB0aGlzLmdldFVuaXF1ZUlkKCksXHJcbiAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgbW9kZWw6IHRoaXMubW9kZWxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvcHlPaWQgfHwgdGhpcy5vaWQpIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0T25lKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5jb3B5T2lkIHx8IHRoaXMub2lkLCB0aGlzLnRlbXBsYXRlLCB0aGlzLmNvcHlPaWQpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5fX21vZGVsID0gdGhpcy5tb2RlbDtcclxuICAgICAgICAgICAgdGhpcy5vbkRhdGFMb2FkZWQuZW1pdCh7XHJcbiAgICAgICAgICAgICAgaWQ6IHRoaXMuZ2V0VW5pcXVlSWQoKSxcclxuICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRJbml0TW9kZWxCeVRlbXBsYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy50ZW1wbGF0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIHRoaXMubW9kZWwgPSByZXNwb25zZS5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5jb250ZXh0Ll9fbW9kZWwgPSB0aGlzLm1vZGVsO1xyXG4gICAgICAgICAgdGhpcy5vbkRhdGFMb2FkZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGlkOiB0aGlzLmdldFVuaXF1ZUlkKCksXHJcbiAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXHJcbiAgICAgICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBleHRyYVZhbGlkYXRlKCkge1xyXG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20odGhpcy5zZXJ2aWNlLmV4dHJhVmFsaWRhdGUodGhpcy5tb2RlbCwgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5wYXJhbXMsIHtcclxuICAgICAgdGVuYW50OiB0aGlzLnRlbmFudCxcclxuICAgICAgY2xhc3NOYW1lOiB0aGlzLmNsYXNzTmFtZSxcclxuICAgICAgb2lkOiB0aGlzLm9pZCxcclxuICAgICAgdGVtcGxhdGU6IHRoaXMudGVtcGxhdGVcclxuICAgIH0pLCA8c3RyaW5nPnRoaXMuZXh0cmFWYWxpZGF0b3IpLnBpcGUoXHJcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXNwb25zZS5pc1ZhbGlkKSB7XHJcbiAgICAgICAgICB0aGlzLmV4dHJhVmFsaWRhdGVNZXNzYWdlID0gcmVzcG9uc2UubWVzc2FnZTtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzdWJtaXRGb3JtKCkge1xyXG4gICAgdGhpcy52YWxpZGF0ZSgpLnRoZW4oaXNWYWxpZCA9PiB7XHJcbiAgICAgIGlmIChpc1ZhbGlkKSB7XHJcbiAgICAgICAgY29uc3QgbWVyZ2VNb2RlbDogYW55ID0gey4uLnRoaXMubW9kZWx9O1xyXG4gICAgICAgIGlmICh0aGlzLmV4dHJhQXR0ck1hcCkge1xyXG4gICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiB0aGlzLmV4dHJhQXR0ck1hcCkge1xyXG4gICAgICAgICAgICBtZXJnZU1vZGVsW2VudHJ5Lm5hbWVdID0gZW50cnkudmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VydmljZS5jcmVhdGVPclVwZGF0ZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHtcclxuICAgICAgICAgIG9pZDogdGhpcy5vaWQsXHJcbiAgICAgICAgICAuLi5tZXJnZU1vZGVsXHJcbiAgICAgICAgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIHRoaXMuc3VibWl0Q2FsbGJhY2suZW1pdChyZXNwb25zZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zdWJtaXRDYWxsYmFjay5lbWl0KHtzdWNjZXNzOiBmYWxzZX0pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc2Nyb2xsVG9BbmNob3JQb2ludChhbmNob3JQb2ludElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBvaW50cyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ19fYW5jaG9yX3BvaW50XycgKyBhbmNob3JQb2ludElkKTtcclxuICAgIGlmIChwb2ludHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBwb2ludHNbMF0uc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICAgIGJsb2NrOiAnY2VudGVyJyxcclxuICAgICAgICBpbmxpbmU6ICdjZW50ZXInXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcclxuICAgICAgY29uc3QgcHJvbWlzZXM6IGFueVtdID0gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdycy1mb3JtJykpLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlR3JvdXBCeU5hbWUoaXRlbS5nZXRBdHRyaWJ1dGUoJ3ZhbGlkYXRvci1ncm91cC1uYW1lJyksIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgfSlcclxuICAgICAgLy8g5re75Yqg6aG257qn5YWD57Sg55qE6aqM6K+BIFByb21pc2VcclxuICAgICAgcHJvbWlzZXMucHVzaCh2YWxpZGF0ZUdyb3VwQnlOYW1lKHRoaXMuZ2V0VW5pcXVlSWQoKSwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpKTtcclxuICAgICAgLy8g5L2/55SoIFByb21pc2UuYWxsIOetieW+heaJgOaciSBQcm9taXNlIOWujOaIkFxyXG4gICAgICBQcm9taXNlLmFsbChwcm9taXNlcylcclxuICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0cy5ldmVyeSgoaXNWYWxpZDogYW55KSA9PiBpc1ZhbGlkKSkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0KCkge1xyXG4gICAgdGhpcy5mb3JtU3VibWl0dGVyLmluc3RhbmNlLmVsZW1lbnQoKS5jbGljaygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZHgtbG9hZC1wYW5lbCBbY29udGFpbmVyXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCIgW3Nob3dQYW5lXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgW3Zpc2libGVdPVwibG9hZGluZ1wiPlxyXG4gIDxkeG8tcG9zaXRpb24gW29mXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCI+PC9keG8tcG9zaXRpb24+XHJcbjwvZHgtbG9hZC1wYW5lbD5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nXCI+XHJcbiAgPHJzLWJveC1jb250YWluZXIgW2NvbmZpZ109XCJjb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwYXJhbXNdPVwicGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICBbY29udGV4dF09XCJjb250ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBbdGFiVmlld0NvbnRhaW5lclJlZl09XCJ0YWJWaWV3Q29udGFpbmVyUmVmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIj48L3JzLWJveC1jb250YWluZXI+XHJcbiAgPGR4LXRleHQtYm94IGhlaWdodD1cIjBcIiBzdHlsZT1cImJvcmRlcjogbm9uZTtcIj5cclxuICAgIDxkeC12YWxpZGF0b3IgW3ZhbGlkYXRpb25Hcm91cF09XCJnZXRVbmlxdWVJZCgpXCI+XHJcbiAgICAgIDxkeGktdmFsaWRhdGlvbi1ydWxlICpuZ0lmPVwiZXh0cmFWYWxpZGF0b3JcIiB0eXBlPVwiYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsaWRhdGlvbkNhbGxiYWNrXT1cImV4dHJhVmFsaWRhdGVcIj48L2R4aS12YWxpZGF0aW9uLXJ1bGU+XHJcbiAgICA8L2R4LXZhbGlkYXRvcj5cclxuICA8L2R4LXRleHQtYm94PlxyXG4gIDxkaXYgKm5nSWY9XCJleHRyYVZhbGlkYXRlTWVzc2FnZVwiIGNsYXNzPVwiZHgtZmllbGRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkeC1maWVsZC12YWx1ZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHgtdG9hc3QtZXJyb3IgZHgtdG9hc3QtY29udGVudFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkeC10b2FzdC1tZXNzYWdlXCI+e3sgZXh0cmFWYWxpZGF0ZU1lc3NhZ2UgfX08L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZHgtYnV0dG9uICNmb3JtU3VibWl0dGVyIFt2aXNpYmxlXT1cImZhbHNlXCIgKG9uQ2xpY2spPVwic3VibWl0Rm9ybSgpXCI+PC9keC1idXR0b24+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9mb3JtL2Zvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZm9ybS9mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0FBUTFDLE1BQU0sT0FBTyxhQUFjLFNBQVEsUUFBUTtJQTZDekMsSUFBOEMsbUJBQW1CO1FBQy9ELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUFzQixnQkFBa0MsRUFBVSxPQUFvQixFQUFVLFVBQXNCO1FBQ3BILEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQS9DdEgsV0FBTSxHQUFTLEdBQUcsQ0FBQztRQWdCbkIsaUJBQVksR0FBWSxLQUFLLENBQUMsQ0FBQyxzQkFBc0I7UUFJckQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQU0xQixpQkFB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QVk7c0JBRFgsS0FBSztnQkFHTixLQUFLO3NCQURKLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUtzQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBRTFCLFlBQVk7c0JBRFgsTUFBTTtnQkFHUCxjQUFjO3NCQURiLE1BQU07Z0JBZ0J1QyxtQkFBbUI7c0JBQWhFLFdBQVc7dUJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtU2VydmljZX0gZnJvbSBcIi4vZm9ybS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RHhCdXR0b25Db21wb25lbnR9IGZyb20gXCJkZXZleHRyZW1lLWFuZ3VsYXJcIjtcclxuaW1wb3J0IHt2YWxpZGF0ZUdyb3VwQnlOYW1lfSBmcm9tIFwiLi4vdXRpbC91dGlsc1wiO1xyXG5pbXBvcnQge0NoYW5nZUZpbHRlcn0gZnJvbSBcIi4uL3V0aWwvY2hhbmdlLWZpbHRlclwiO1xyXG5pbXBvcnQge2xhc3RWYWx1ZUZyb20sIG1hcCwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtVbmlxdWVJZH0gZnJvbSBcIi4uL3V0aWwvVW5pcXVlSWRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnMtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtGb3JtU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQgZXh0ZW5kcyBVbmlxdWVJZCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVuYW50PzogYW55ID0gJ1QnO1xyXG4gIEBJbnB1dCgpXHJcbiAgY2xhc3NOYW1lITogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgb2lkPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgY29weU9pZD86IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHRlbXBsYXRlPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgZXh0cmFBdHRyTWFwPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFyYW1zPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGFiVmlld0NvbnRhaW5lclJlZiE6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQElucHV0KClcclxuICBvbmx5RnJvbnRFbmQ6IGJvb2xlYW4gPSBmYWxzZTsgLy8g5LuF5YmN56uv77yM5LiN6YCa6L+Hb2lk6I635Y+W5a6e5L6LbW9kZWxcclxuICBASW5wdXQoKVxyXG4gIG1vZGVsPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjb25maWc6IGFueTtcclxuICBleHRyYVZhbGlkYXRvcj86IHN0cmluZztcclxuICBleHRyYVZhbGlkYXRvclBhcmFtcz86IGFueTtcclxuICBAVmlld0NoaWxkKCdmb3JtU3VibWl0dGVyJykgZm9ybVN1Ym1pdHRlciE6IER4QnV0dG9uQ29tcG9uZW50O1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uRGF0YUxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpZDogc3RyaW5nLCBjb25maWc6IGFueSwgbW9kZWw6IGFueSB9PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIHN1Ym1pdENhbGxiYWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgY2hhbmdlRmlsdGVyID0gbmV3IENoYW5nZUZpbHRlcigpO1xyXG4gIHByaXZhdGUgdmFsdWVDaGFuZ2UgPSBuZXcgU3ViamVjdDx7XHJcbiAgICBmaWVsZDogc3RyaW5nLFxyXG4gICAgdmFsdWU6IGFueVxyXG4gICAgb25seUluaXQ/OiBib29sZWFuLFxyXG4gIH0+KCk7XHJcbiAgcHJpdmF0ZSBtb2RlbFZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgZmllbGQ6IHN0cmluZyxcclxuICAgIHZhbHVlOiBhbnlcclxuICB9PigpO1xyXG4gIHByb3RlY3RlZCBjb250ZXh0OiBhbnk7XHJcbiAgcHJvdGVjdGVkIGV4dHJhVmFsaWRhdGVNZXNzYWdlOiBhbnk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnYXR0ci52YWxpZGF0b3ItZ3JvdXAtbmFtZScpIGdldCBfdmFsaWRhdG9yR3JvdXBOYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0VW5pcXVlSWQoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIHNlcnZpY2U6IEZvcm1TZXJ2aWNlLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKCdycy1mb3JtJyk7XHJcbiAgICB0aGlzLmV4dHJhVmFsaWRhdGUgPSB0aGlzLmV4dHJhVmFsaWRhdGUuYmluZCh0aGlzKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5sb2FkKCk7XHJcbiAgICB0aGlzLmNoYW5nZUZpbHRlci5hbnlOb3RGaXJzdChbJ3RlbmFudCcsICdjbGFzc05hbWUnLCAnb2lkJywgJ2NvcHlPaWQnLCAndGVtcGxhdGUnXSwgKCkgPT4ge1xyXG4gICAgICB0aGlzLmxvYWQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VGaWx0ZXIuZG9GaWx0ZXIoY2hhbmdlcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuY2hhbmdlRmlsdGVyLmRpc3Bvc2UoKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMubW9kZWxWYWx1ZUNoYW5nZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGxvYWQoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5jb250ZXh0ID0ge1xyXG4gICAgICBfX2Zvcm06IHtcclxuICAgICAgICB1bmlxdWVJZDogdGhpcy5nZXRVbmlxdWVJZCgpLFxyXG4gICAgICAgIHRlbmFudDogdGhpcy50ZW5hbnQsXHJcbiAgICAgICAgY2xhc3NOYW1lOiB0aGlzLmNsYXNzTmFtZSxcclxuICAgICAgICBvaWQ6IHRoaXMub2lkLFxyXG4gICAgICAgIGNvcHlPaWQ6IHRoaXMuY29weU9pZCxcclxuICAgICAgICB0ZW1wbGF0ZTogdGhpcy50ZW1wbGF0ZVxyXG4gICAgICB9LFxyXG4gICAgICBfX21vZGVsOiB0aGlzLm1vZGVsIHx8IHt9LFxyXG4gICAgICBfX29wZW5lcjogdGhpcyxcclxuICAgICAgX192YWx1ZUNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZSxcclxuICAgICAgX19tb2RlbFZhbHVlQ2hhbmdlZDogdGhpcy5tb2RlbFZhbHVlQ2hhbmdlZFxyXG4gICAgfTtcclxuICAgIHRoaXMuc2VydmljZS5nZXRGb3JtVGVtcGxhdGVDb25maWcodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLnRlbXBsYXRlKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICB0aGlzLmNvbmZpZyA9IHJlc3BvbnNlLmRhdGEudGVtcGxhdGU7XHJcbiAgICAgIHRoaXMuZXh0cmFWYWxpZGF0b3IgPSB0aGlzLmNvbmZpZy5leHRyYVZhbGlkYXRvcjtcclxuICAgICAgdGhpcy5leHRyYVZhbGlkYXRvclBhcmFtcyA9IHt9O1xyXG4gICAgICBpZiAodGhpcy5jb25maWcuZXh0cmFWYWxpZGF0b3JQYXJhbXMpIHtcclxuICAgICAgICBmb3IgKGxldCBwYXJhbSBvZiB0aGlzLmNvbmZpZy5leHRyYVZhbGlkYXRvclBhcmFtcykge1xyXG4gICAgICAgICAgdGhpcy5leHRyYVZhbGlkYXRvclBhcmFtc1twYXJhbS5uYW1lXSA9IHBhcmFtLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5vbmx5RnJvbnRFbmQpIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9uRGF0YUxvYWRlZC5lbWl0KHtcclxuICAgICAgICAgIGlkOiB0aGlzLmdldFVuaXF1ZUlkKCksXHJcbiAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgbW9kZWw6IHRoaXMubW9kZWxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmNvcHlPaWQgfHwgdGhpcy5vaWQpIHtcclxuICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0T25lKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5jb3B5T2lkIHx8IHRoaXMub2lkLCB0aGlzLnRlbXBsYXRlLCB0aGlzLmNvcHlPaWQpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHJlc3BvbnNlLmRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5fX21vZGVsID0gdGhpcy5tb2RlbDtcclxuICAgICAgICAgICAgdGhpcy5vbkRhdGFMb2FkZWQuZW1pdCh7XHJcbiAgICAgICAgICAgICAgaWQ6IHRoaXMuZ2V0VW5pcXVlSWQoKSxcclxuICAgICAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxyXG4gICAgICAgICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5nZXRJbml0TW9kZWxCeVRlbXBsYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy50ZW1wbGF0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIHRoaXMubW9kZWwgPSByZXNwb25zZS5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5jb250ZXh0Ll9fbW9kZWwgPSB0aGlzLm1vZGVsO1xyXG4gICAgICAgICAgdGhpcy5vbkRhdGFMb2FkZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGlkOiB0aGlzLmdldFVuaXF1ZUlkKCksXHJcbiAgICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXHJcbiAgICAgICAgICAgIG1vZGVsOiB0aGlzLm1vZGVsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBleHRyYVZhbGlkYXRlKCkge1xyXG4gICAgcmV0dXJuIGxhc3RWYWx1ZUZyb20odGhpcy5zZXJ2aWNlLmV4dHJhVmFsaWRhdGUoPHN0cmluZz50aGlzLmV4dHJhVmFsaWRhdG9yLCB7XHJcbiAgICAgIC4uLnRoaXMucGFyYW1zLFxyXG4gICAgICB0ZW5hbnQ6IHRoaXMudGVuYW50LFxyXG4gICAgICBjbGFzc05hbWU6IHRoaXMuY2xhc3NOYW1lLFxyXG4gICAgICBvaWQ6IHRoaXMub2lkIHx8ICcnLFxyXG4gICAgICB0ZW1wbGF0ZTogdGhpcy50ZW1wbGF0ZSB8fCAnJ1xyXG4gICAgfSwgdGhpcy5tb2RlbCwgdGhpcy5leHRyYVZhbGlkYXRvclBhcmFtcykucGlwZShcclxuICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAoIXJlc3BvbnNlLmlzVmFsaWQpIHtcclxuICAgICAgICAgIHRoaXMuZXh0cmFWYWxpZGF0ZU1lc3NhZ2UgPSByZXNwb25zZS5tZXNzYWdlO1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICkpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHN1Ym1pdEZvcm0oKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRlKCkudGhlbihpc1ZhbGlkID0+IHtcclxuICAgICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgICBjb25zdCBtZXJnZU1vZGVsOiBhbnkgPSB7Li4udGhpcy5tb2RlbH07XHJcbiAgICAgICAgaWYgKHRoaXMuZXh0cmFBdHRyTWFwKSB7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIHRoaXMuZXh0cmFBdHRyTWFwKSB7XHJcbiAgICAgICAgICAgIG1lcmdlTW9kZWxbZW50cnkubmFtZV0gPSBlbnRyeS52YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZU9yVXBkYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwge1xyXG4gICAgICAgICAgb2lkOiB0aGlzLm9pZCxcclxuICAgICAgICAgIC4uLm1lcmdlTW9kZWxcclxuICAgICAgICB9KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXRDYWxsYmFjay5lbWl0KHJlc3BvbnNlKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnN1Ym1pdENhbGxiYWNrLmVtaXQoe3N1Y2Nlc3M6IGZhbHNlfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0FuY2hvclBvaW50KGFuY2hvclBvaW50SWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgcG9pbnRzID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnX19hbmNob3JfcG9pbnRfJyArIGFuY2hvclBvaW50SWQpO1xyXG4gICAgaWYgKHBvaW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHBvaW50c1swXS5zY3JvbGxJbnRvVmlldyh7XHJcbiAgICAgICAgYmxvY2s6ICdjZW50ZXInLFxyXG4gICAgICAgIGlubGluZTogJ2NlbnRlcidcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZSgpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICBjb25zdCBwcm9taXNlczogYW55W10gPSBBcnJheS5mcm9tKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3JzLWZvcm0nKSkubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdmFsaWRhdGVHcm91cEJ5TmFtZShpdGVtLmdldEF0dHJpYnV0ZSgndmFsaWRhdG9yLWdyb3VwLW5hbWUnKSwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICB9KVxyXG4gICAgICAvLyDmt7vliqDpobbnuqflhYPntKDnmoTpqozor4EgUHJvbWlzZVxyXG4gICAgICBwcm9taXNlcy5wdXNoKHZhbGlkYXRlR3JvdXBCeU5hbWUodGhpcy5nZXRVbmlxdWVJZCgpLCB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpO1xyXG4gICAgICAvLyDkvb/nlKggUHJvbWlzZS5hbGwg562J5b6F5omA5pyJIFByb21pc2Ug5a6M5oiQXHJcbiAgICAgIFByb21pc2UuYWxsKHByb21pc2VzKVxyXG4gICAgICAgIC50aGVuKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHRzLmV2ZXJ5KChpc1ZhbGlkOiBhbnkpID0+IGlzVmFsaWQpKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICB0aGlzLmZvcm1TdWJtaXR0ZXIuaW5zdGFuY2UuZWxlbWVudCgpLmNsaWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkeC1sb2FkLXBhbmVsIFtjb250YWluZXJdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIiBbc2hvd1BhbmVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICBbdmlzaWJsZV09XCJsb2FkaW5nXCI+XHJcbiAgPGR4by1wb3NpdGlvbiBbb2ZdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIj48L2R4by1wb3NpdGlvbj5cclxuPC9keC1sb2FkLXBhbmVsPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRpbmdcIj5cclxuICA8cnMtYm94LWNvbnRhaW5lciBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BhcmFtc109XCJwYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb250ZXh0XT1cImNvbnRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0YWJWaWV3Q29udGFpbmVyUmVmXT1cInRhYlZpZXdDb250YWluZXJSZWZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiPjwvcnMtYm94LWNvbnRhaW5lcj5cclxuICA8ZHgtdGV4dC1ib3ggaGVpZ2h0PVwiMFwiIHN0eWxlPVwiYm9yZGVyOiBub25lO1wiPlxyXG4gICAgPGR4LXZhbGlkYXRvciBbdmFsaWRhdGlvbkdyb3VwXT1cImdldFVuaXF1ZUlkKClcIj5cclxuICAgICAgPGR4aS12YWxpZGF0aW9uLXJ1bGUgKm5nSWY9XCJleHRyYVZhbGlkYXRvclwiIHR5cGU9XCJhc3luY1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWxpZGF0aW9uQ2FsbGJhY2tdPVwiZXh0cmFWYWxpZGF0ZVwiPjwvZHhpLXZhbGlkYXRpb24tcnVsZT5cclxuICAgIDwvZHgtdmFsaWRhdG9yPlxyXG4gIDwvZHgtdGV4dC1ib3g+XHJcbiAgPGRpdiAqbmdJZj1cImV4dHJhVmFsaWRhdGVNZXNzYWdlXCIgY2xhc3M9XCJkeC1maWVsZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImR4LWZpZWxkLXZhbHVlXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkeC10b2FzdC1lcnJvciBkeC10b2FzdC1jb250ZW50XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImR4LXRvYXN0LW1lc3NhZ2VcIj57eyBleHRyYVZhbGlkYXRlTWVzc2FnZSB9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkeC1idXR0b24gI2Zvcm1TdWJtaXR0ZXIgW3Zpc2libGVdPVwiZmFsc2VcIiAob25DbGljayk9XCJzdWJtaXRGb3JtKClcIj48L2R4LWJ1dHRvbj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -34,11 +34,14 @@ export class FormService {
34
34
  }
35
35
  });
36
36
  }
37
- extraValidate(model, params, extraValidator) {
38
- return this.http.post('api/validate/form', model, {
37
+ extraValidate(extraValidator, pathParam, model, params) {
38
+ return this.http.post('api/validate/form', {
39
+ model,
40
+ params
41
+ }, {
39
42
  params: {
40
43
  validator: extraValidator,
41
- ...params
44
+ ...pathParam
42
45
  }
43
46
  }).pipe(map(response => {
44
47
  if (response.success) {
@@ -68,4 +71,4 @@ FormService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version:
68
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FormService, decorators: [{
69
72
  type: Injectable
70
73
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZm9ybS9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFHekIsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUNwQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsTUFBVyxFQUFFLFNBQWMsRUFBRSxRQUFjO1FBQy9ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sb0JBQW9CLEdBQUcsU0FBUyxFQUFFO1lBQzFELE1BQU0sRUFBRTtnQkFDTixNQUFNO2dCQUNOLFFBQVEsRUFBRSxRQUFRLElBQUksRUFBRTthQUN6QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBVyxFQUFFLFNBQWMsRUFBRSxHQUFRLEVBQUUsUUFBYyxFQUFFLE1BQVk7UUFDeEUsSUFBSSxHQUFHLEdBQUcsV0FBVyxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxFQUFFO1lBQzdCLE1BQU0sRUFBRTtnQkFDTixNQUFNO2dCQUNOLFFBQVEsRUFBRSxRQUFRLElBQUksRUFBRTtnQkFDeEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQVcsRUFBRSxTQUFjLEVBQUUsUUFBYztRQUNoRSxJQUFJLEdBQUcsR0FBRyxXQUFXLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsRUFBRTtZQUM3QixNQUFNLEVBQUU7Z0JBQ04sTUFBTTtnQkFDTixTQUFTO2dCQUNULFFBQVEsRUFBRSxRQUFRLElBQUksRUFBRTthQUN6QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVSxFQUFFLE1BQVcsRUFBRSxjQUFzQjtRQUMzRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFNLG1CQUFtQixFQUFFLEtBQUssRUFBRTtZQUNyRCxNQUFNLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLGNBQWM7Z0JBQ3pCLEdBQUcsTUFBTTthQUNWO1NBQ0YsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDYixJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQzthQUN0QjtpQkFBTTtnQkFDTCxPQUFPO29CQUNMLE9BQU8sRUFBRSxLQUFLO2lCQUNmLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQVcsRUFBRSxTQUFjLEVBQUUsS0FBVTtRQUNwRCxJQUFJLEdBQUcsR0FBRyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQ2xDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNiLEdBQUcsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUN4QjtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxFQUFFLEtBQUssRUFBRTtZQUNyQyxNQUFNLEVBQUU7Z0JBQ04sTUFBTTthQUNQO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUdBaEVVLFdBQVc7NkdBQVgsV0FBVzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZvcm1TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gIH1cblxuICBnZXRGb3JtVGVtcGxhdGVDb25maWcodGVuYW50OiBhbnksIGNsYXNzTmFtZTogYW55LCB0ZW1wbGF0ZT86IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oJ2FwaS9tZXRhZGF0YS9mb3JtLycgKyBjbGFzc05hbWUsIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB0ZW5hbnQsXG4gICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSB8fCAnJ1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0T25lKHRlbmFudDogYW55LCBjbGFzc05hbWU6IGFueSwgb2lkOiBhbnksIHRlbXBsYXRlPzogYW55LCBpc0NvcHk/OiBhbnkpIHtcbiAgICBsZXQgYXBpID0gJ2FwaS9kYXRhLycgKyBjbGFzc05hbWUgKyAnLycgKyBvaWQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihhcGksIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB0ZW5hbnQsXG4gICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSB8fCAnJyxcbiAgICAgICAgaXNDb3B5OiAhIWlzQ29weVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0SW5pdE1vZGVsQnlUZW1wbGF0ZSh0ZW5hbnQ6IGFueSwgY2xhc3NOYW1lOiBhbnksIHRlbXBsYXRlPzogYW55KSB7XG4gICAgbGV0IGFwaSA9ICdhcGkvZGF0YS8nICsgY2xhc3NOYW1lICsgJy9uZXcnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYXBpLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgdGVuYW50LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSB8fCAnJ1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZXh0cmFWYWxpZGF0ZShtb2RlbDogYW55LCBwYXJhbXM6IGFueSwgZXh0cmFWYWxpZGF0b3I6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KCdhcGkvdmFsaWRhdGUvZm9ybScsIG1vZGVsLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgdmFsaWRhdG9yOiBleHRyYVZhbGlkYXRvcixcbiAgICAgICAgLi4ucGFyYW1zXG4gICAgICB9XG4gICAgfSkucGlwZShcbiAgICAgIG1hcChyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlzVmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY3JlYXRlT3JVcGRhdGUodGVuYW50OiBhbnksIGNsYXNzTmFtZTogYW55LCBtb2RlbDogYW55KSB7XG4gICAgbGV0IGFwaSA9ICdhcGkvZGF0YS8nICsgY2xhc3NOYW1lO1xuICAgIGlmIChtb2RlbC5vaWQpIHtcbiAgICAgIGFwaSArPSAnLycgKyBtb2RlbC5vaWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGFwaSwgbW9kZWwsIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB0ZW5hbnRcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZm9ybS9mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFHekIsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUNwQyxDQUFDO0lBRUQscUJBQXFCLENBQUMsTUFBVyxFQUFFLFNBQWMsRUFBRSxRQUFjO1FBQy9ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sb0JBQW9CLEdBQUcsU0FBUyxFQUFFO1lBQzFELE1BQU0sRUFBRTtnQkFDTixNQUFNO2dCQUNOLFFBQVEsRUFBRSxRQUFRLElBQUksRUFBRTthQUN6QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBVyxFQUFFLFNBQWMsRUFBRSxHQUFRLEVBQUUsUUFBYyxFQUFFLE1BQVk7UUFDeEUsSUFBSSxHQUFHLEdBQUcsV0FBVyxHQUFHLFNBQVMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sR0FBRyxFQUFFO1lBQzdCLE1BQU0sRUFBRTtnQkFDTixNQUFNO2dCQUNOLFFBQVEsRUFBRSxRQUFRLElBQUksRUFBRTtnQkFDeEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO2FBQ2pCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQVcsRUFBRSxTQUFjLEVBQUUsUUFBYztRQUNoRSxJQUFJLEdBQUcsR0FBRyxXQUFXLEdBQUcsU0FBUyxHQUFHLE1BQU0sQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLEdBQUcsRUFBRTtZQUM3QixNQUFNLEVBQUU7Z0JBQ04sTUFBTTtnQkFDTixTQUFTO2dCQUNULFFBQVEsRUFBRSxRQUFRLElBQUksRUFBRTthQUN6QjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsY0FBc0IsRUFBRSxTQUFjLEVBQUUsS0FBVSxFQUFFLE1BQVc7UUFDM0UsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxtQkFBbUIsRUFBRTtZQUM5QyxLQUFLO1lBQ0wsTUFBTTtTQUNQLEVBQUU7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLGNBQWM7Z0JBQ3pCLEdBQUcsU0FBUzthQUNiO1NBQ0YsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDYixJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQzthQUN0QjtpQkFBTTtnQkFDTCxPQUFPO29CQUNMLE9BQU8sRUFBRSxLQUFLO2lCQUNmLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQVcsRUFBRSxTQUFjLEVBQUUsS0FBVTtRQUNwRCxJQUFJLEdBQUcsR0FBRyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQ2xDLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNiLEdBQUcsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztTQUN4QjtRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sR0FBRyxFQUFFLEtBQUssRUFBRTtZQUNyQyxNQUFNLEVBQUU7Z0JBQ04sTUFBTTthQUNQO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUdBbkVVLFdBQVc7NkdBQVgsV0FBVzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZvcm1TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gIH1cblxuICBnZXRGb3JtVGVtcGxhdGVDb25maWcodGVuYW50OiBhbnksIGNsYXNzTmFtZTogYW55LCB0ZW1wbGF0ZT86IGFueSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oJ2FwaS9tZXRhZGF0YS9mb3JtLycgKyBjbGFzc05hbWUsIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB0ZW5hbnQsXG4gICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSB8fCAnJ1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0T25lKHRlbmFudDogYW55LCBjbGFzc05hbWU6IGFueSwgb2lkOiBhbnksIHRlbXBsYXRlPzogYW55LCBpc0NvcHk/OiBhbnkpIHtcbiAgICBsZXQgYXBpID0gJ2FwaS9kYXRhLycgKyBjbGFzc05hbWUgKyAnLycgKyBvaWQ7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihhcGksIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB0ZW5hbnQsXG4gICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSB8fCAnJyxcbiAgICAgICAgaXNDb3B5OiAhIWlzQ29weVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0SW5pdE1vZGVsQnlUZW1wbGF0ZSh0ZW5hbnQ6IGFueSwgY2xhc3NOYW1lOiBhbnksIHRlbXBsYXRlPzogYW55KSB7XG4gICAgbGV0IGFwaSA9ICdhcGkvZGF0YS8nICsgY2xhc3NOYW1lICsgJy9uZXcnO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYXBpLCB7XG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgdGVuYW50LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSB8fCAnJ1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZXh0cmFWYWxpZGF0ZShleHRyYVZhbGlkYXRvcjogc3RyaW5nLCBwYXRoUGFyYW06IGFueSwgbW9kZWw6IGFueSwgcGFyYW1zOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PignYXBpL3ZhbGlkYXRlL2Zvcm0nLCB7XG4gICAgICBtb2RlbCxcbiAgICAgIHBhcmFtc1xuICAgIH0sIHtcbiAgICAgIHBhcmFtczoge1xuICAgICAgICB2YWxpZGF0b3I6IGV4dHJhVmFsaWRhdG9yLFxuICAgICAgICAuLi5wYXRoUGFyYW1cbiAgICAgIH1cbiAgICB9KS5waXBlKFxuICAgICAgbWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXNWYWxpZDogZmFsc2VcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjcmVhdGVPclVwZGF0ZSh0ZW5hbnQ6IGFueSwgY2xhc3NOYW1lOiBhbnksIG1vZGVsOiBhbnkpIHtcbiAgICBsZXQgYXBpID0gJ2FwaS9kYXRhLycgKyBjbGFzc05hbWU7XG4gICAgaWYgKG1vZGVsLm9pZCkge1xuICAgICAgYXBpICs9ICcvJyArIG1vZGVsLm9pZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYXBpLCBtb2RlbCwge1xuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIHRlbmFudFxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -73,8 +73,8 @@ export class WordDesignerComponent {
73
73
  });
74
74
  }
75
75
  ngOnDestroy() {
76
- this.service.valueUpdated.unsubscribe();
77
- this.service.valueChanged.unsubscribe();
76
+ // this.service.valueUpdated.unsubscribe();
77
+ // this.service.valueChanged.unsubscribe();
78
78
  }
79
79
  loadTemplateAndConfig(response) {
80
80
  this.sections = response.sections || [];
@@ -214,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
214
214
  type: HostListener,
215
215
  args: ['window:keydown', ['$event']]
216
216
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1kZXNpZ25lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZGVzaWduZXIvd29yZC1kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZGVzaWduZXIvd29yZC1kZXNpZ25lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFHNUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFRMUQsTUFBTSxPQUFPLHFCQUFxQjtJQStCaEMsYUFBYSxDQUFDLE1BQXFCO1FBQ2pDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLFNBQVM7Z0JBQ1osSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM3QjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxXQUFXO2dCQUNkLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzVCO2dCQUNELE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO29CQUNsQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3hDLElBQUksU0FBUyxF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c0JBRGhCLEtBQUs7Z0JBR04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFHTixzQkFBc0I7c0JBRHJCLE1BQU07Z0JBVW1DLFdBQVc7c0JBQXBELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDZSx3QkFBd0I7c0JBQTlFLFNBQVM7dUJBQUMsMEJBQTBCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNQLGVBQWU7c0JBQTVELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNRLHFCQUFxQjtzQkFBeEUsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBR2xELGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01vZGFsQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vbW9kYWwvbW9kYWwuY29tcG9uZW50XCI7XG5pbXBvcnQge1dvcmREZXNpZ25lclNlcnZpY2V9IGZyb20gXCIuL3dvcmQtZGVzaWduZXIuc2VydmljZVwiO1xuaW1wb3J0IHtNb2RhbFNlcnZpY2V9IGZyb20gXCIuLi8uLi9tb2RhbC9tb2RhbC5zZXJ2aWNlXCI7XG5pbXBvcnQge1NlY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2VjdGlvbi9zZWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7ZGVlcENsb25lLCBub3RpZnlTdWNjZXNzfSBmcm9tIFwiLi4vLi4vdXRpbC91dGlsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdycy13b3JkLWRlc2lnbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmQtZGVzaWduZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JkLWRlc2lnbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1dvcmREZXNpZ25lclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFdvcmREZXNpZ25lckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHRlbmFudDogYW55O1xuICBASW5wdXQoKVxuICBjbGFzc05hbWU6IGFueTtcbiAgQElucHV0KClcbiAgb2lkOiBhbnk7XG4gIEBJbnB1dCgpXG4gIGluc3RhbmNlQ2xhc3NOYW1lOiBhbnk7XG4gIEBJbnB1dCgpXG4gIGZpbHRlckNhdGVnb3JpZXM/OiBzdHJpbmdbXTtcbiAgQElucHV0KClcbiAgcGFyYW1zPzogYW55O1xuICBASW5wdXQoKVxuICB0YWJWaWV3Q29udGFpbmVyUmVmITogYW55O1xuICBAT3V0cHV0KClcbiAgb25UZW1wbGF0ZUZpbGVVcGxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgcHJvdGVjdGVkIHNlY3Rpb25zOiBhbnk7XG4gIHByb3RlY3RlZCBuZWVkVXBsb2FkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBwYXN0ZU1vZGUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIG1vdXNlSW5WaWV3ZXIgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHJlcGxhY2VGaWxlTW9kYWw/OiBNb2RhbENvbXBvbmVudDtcbiAgcHJvdGVjdGVkIHJldGFpbk1hcmtDb25maWcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHByZXZpZXdNb2RhbD86IE1vZGFsQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCd1cGxvYWRJbnB1dCcsIHtzdGF0aWM6IHRydWV9KSB1cGxvYWRJbnB1dCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3JlcGxhY2VGaWxlTW9kYWxUZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSByZXBsYWNlRmlsZU1vZGFsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdwcmV2aWV3VGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgcHJldmlld1RlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgncHJldmlld0Zvb3RlclRlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIHByZXZpZXdGb290ZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24nLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlEb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoJGV2ZW50LmNvZGUpIHtcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICBpZiAoJGV2ZW50LmFsdEtleSkge1xuICAgICAgICAgIHRoaXMuc2VydmljZS5zd2l0Y2hNYXJrKC0xKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGlmICgkZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLnN3aXRjaE1hcmsoMSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdLZXlDJzpcbiAgICAgICAgaWYgKCRldmVudC5jdHJsS2V5KSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICAgIGlmIChzZWxlY3Rpb24/LnRvU3RyaW5nKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jb3B5TWFya0NvbmZpZygpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnS2V5Vic6XG4gICAgICAgIGlmICgkZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgIHRoaXMucGFzdGVNYXJrQ29uZmlnKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLmV4aXRQYXN0ZU1vZGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGlmICh0aGlzLm1vdXNlSW5WaWV3ZXIgJiYgJGV2ZW50LmN0cmxLZXkgJiYgJGV2ZW50LmtleSA9PT0gJzAnKSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2NhbGUoMCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNlcnZpY2U6IFNlY3Rpb25TZXJ2aWNlLCBwcml2YXRlIHdvcmREZXNpZ25lclNlcnZpY2U6IFdvcmREZXNpZ25lclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNlcnZpY2UudGVuYW50ID0gdGhpcy50ZW5hbnQ7XG4gICAgdGhpcy5zZXJ2aWNlLnRlbXBsYXRlQ2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7XG4gICAgdGhpcy5zZXJ2aWNlLnRlbXBsYXRlT2lkID0gdGhpcy5vaWQ7XG4gICAgdGhpcy5zZXJ2aWNlLmluc3RhbmNlQ2xhc3NOYW1lID0gdGhpcy5pbnN0YW5jZUNsYXNzTmFtZTtcbiAgICB0aGlzLnNlcnZpY2UucGFyYW1zID0gdGhpcy5wYXJhbXM7XG4gICAgdGhpcy5zZXJ2aWNlLnRhYlZpZXdDb250YWluZXJSZWYgPSB0aGlzLnRhYlZpZXdDb250YWluZXJSZWY7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLndvcmREZXNpZ25lclNlcnZpY2UubG9hZFRlbXBsYXRlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICB0aGlzLmxvYWRUZW1wbGF0ZUFuZENvbmZpZyhyZXNwb25zZSk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2VydmljZS52YWx1ZVVwZGF0ZWQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlcnZpY2UudmFsdWVDaGFuZ2VkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBsb2FkVGVtcGxhdGVBbmRDb25maWcocmVzcG9uc2U6IGFueSkge1xuICAgIHRoaXMuc2VjdGlvbnMgPSByZXNwb25zZS5zZWN0aW9ucyB8fCBbXTtcbiAgICBpZiAodGhpcy5zZWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubmVlZFVwbG9hZCA9IHRydWU7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5uZWVkVXBsb2FkID0gZmFsc2U7XG4gICAgdGhpcy5zZXJ2aWNlLm1hcmtzID0gcmVzcG9uc2UubWFya3MubWFwKChtYXJrOiBhbnkpID0+IHtcbiAgICAgIG1hcmsuY29uZmlnID0gbWFyay5jb25maWcgfHwge307XG4gICAgICByZXR1cm4gbWFyaztcbiAgICB9KTtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLm1hcmtzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2VydmljZS5hY3RpdmVNYXJrID0gdGhpcy5zZXJ2aWNlLm1hcmtzWzBdO1xuICAgIH1cbiAgfVxuXG4gIHNjYWxlQnlNb3VzZSgkZXZlbnQ6IGFueSkge1xuICAgIGlmICgkZXZlbnQuY3RybEtleSkge1xuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnNjYWxlKCRldmVudC5kZWx0YVkgPCAwID8gMC4xIDogLTAuMSk7XG4gICAgfVxuICB9XG5cbiAgc2NhbGUodHlwZTogbnVtYmVyKSB7XG4gICAgaWYgKHR5cGUgPT09IDApIHtcbiAgICAgIHRoaXMuc2VydmljZS5zY2FsZSA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VydmljZS5zY2FsZSArPSB0eXBlO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZCgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMud29yZERlc2lnbmVyU2VydmljZS51cGxvYWRUZW1wbGF0ZUZpbGUodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCwgdGhpcy5yZXRhaW5NYXJrQ29uZmlnLCB0aGlzLnVwbG9hZElucHV0Lm5hdGl2ZUVsZW1lbnQuZmlsZXNbMF0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICB0aGlzLnVwbG9hZElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgIHRoaXMubG9hZFRlbXBsYXRlQW5kQ29uZmlnKHJlc3BvbnNlKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5vblRlbXBsYXRlRmlsZVVwbG9hZGVkLmVtaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5SZXBsYWNlVGVtcGxhdGVGaWxlTW9kYWwoKSB7XG4gICAgdGhpcy5yZXBsYWNlRmlsZU1vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLnRhYlZpZXdDb250YWluZXJSZWYsICfmm7/mjaLmlofku7YnLCAnZGVmYXVsdCcsIHRoaXMucmVwbGFjZUZpbGVNb2RhbFRlbXBsYXRlLCB7fSk7XG4gIH1cblxuICByZXBsYWNlVGVtcGxhdGVGaWxlKHJldGFpbk1hcmtDb25maWc6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJldGFpbk1hcmtDb25maWcgPSByZXRhaW5NYXJrQ29uZmlnO1xuICAgIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIHRoaXMucmVwbGFjZUZpbGVNb2RhbD8uaGlkZSgpO1xuICB9XG5cbiAgZG93bmxvYWRUZW1wbGF0ZUZpbGUoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLndvcmREZXNpZ25lclNlcnZpY2UuZG93bmxvYWRUZW1wbGF0ZUZpbGUodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCwgKCkgPT4ge1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcmV2aWV3KCkge1xuICAgIGZvciAobGV0IG1hcmsgb2YgdGhpcy5zZXJ2aWNlLm1hcmtzKSB7XG4gICAgICBtYXJrLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLnByZXZpZXdNb2RhbCA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy50YWJWaWV3Q29udGFpbmVyUmVmLCAn6aKE6KeIJywgJ2Z1bGwnLFxuICAgICAgdGhpcy5wcmV2aWV3VGVtcGxhdGUsIHt9LCB0aGlzLnByZXZpZXdGb290ZXJUZW1wbGF0ZSk7XG4gIH1cblxuICBzYXZlQ29uZmlnKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5zZXJ2aWNlLm1hcmtzLm1hcChtYXJrID0+IHtcbiAgICAgIGRlbGV0ZSBtYXJrLnZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMud29yZERlc2lnbmVyU2VydmljZS5zYXZlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQsIHtcbiAgICAgIHRlbXBsYXRlQ29uZmlnOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLFxuICAgICAgICBtYXJrczogdGhpcy5zZXJ2aWNlLm1hcmtzXG4gICAgICB9KVxuICAgIH0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XG4gICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICBub3RpZnlTdWNjZXNzKCfkv53lrZjmiJDlip8nKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjb3B5TWFya0NvbmZpZygpIHtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcmsudHlwZSkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmNvcGllZE1hcmsgPSBkZWVwQ2xvbmUodGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcmspO1xuICAgICAgdGhpcy5wYXN0ZU1vZGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGV4aXRQYXN0ZU1vZGUoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmNvcGllZE1hcmsgPSB7fTtcbiAgICB0aGlzLnNlcnZpY2UucmVhZHlQYXN0ZU1hcmtOYW1lcyA9IFtdO1xuICAgIHRoaXMuc2VydmljZS5sYXN0Q2xpY2tUb1Bhc3RlTWFya05hbWUgPSAnJztcbiAgICB0aGlzLnBhc3RlTW9kZSA9IGZhbHNlO1xuICB9XG5cbiAgcGFzdGVNYXJrQ29uZmlnKCkge1xuICAgIGxldCByZWFkeVBhc3RlTWFyaztcbiAgICBmb3IgKGxldCByZWFkeVBhc3RlTWFya05hbWUgb2YgdGhpcy5zZXJ2aWNlLnJlYWR5UGFzdGVNYXJrTmFtZXMpIHtcbiAgICAgIHJlYWR5UGFzdGVNYXJrID0gdGhpcy5zZXJ2aWNlLmdldE1hcmsocmVhZHlQYXN0ZU1hcmtOYW1lKTtcbiAgICAgIGNvbnN0IGRpc3BsYXkgPSByZWFkeVBhc3RlTWFyay5kaXNwbGF5O1xuICAgICAgT2JqZWN0LmFzc2lnbihyZWFkeVBhc3RlTWFyaywgZGVlcENsb25lKHRoaXMuc2VydmljZS5jb3BpZWRNYXJrKSk7XG4gICAgICByZWFkeVBhc3RlTWFyay5uYW1lID0gcmVhZHlQYXN0ZU1hcmtOYW1lO1xuICAgICAgcmVhZHlQYXN0ZU1hcmsuZGlzcGxheSA9IGRpc3BsYXk7XG4gICAgfVxuICAgIHRoaXMuc2VydmljZS5hY3RpdmVNYXJrID0gcmVhZHlQYXN0ZU1hcmsgfHwgdGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcms7XG4gICAgdGhpcy5leGl0UGFzdGVNb2RlKCk7XG4gIH1cbn1cbiIsIjxkeC1sb2FkLXBhbmVsIFtjb250YWluZXJdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIiBbc2hvd1BhbmVdPVwiZmFsc2VcIiBbdmlzaWJsZV09XCJsb2FkaW5nXCI+XG4gIDxkeG8tcG9zaXRpb24gW29mXT1cInZpZXdDb250YWluZXJSZWYuZWxlbWVudC5uYXRpdmVFbGVtZW50XCI+PC9keG8tcG9zaXRpb24+XG48L2R4LWxvYWQtcGFuZWw+XG48aW5wdXQgI3VwbG9hZElucHV0IHR5cGU9XCJmaWxlXCIgbmFtZT1cImZpbGVcIlxuICAgICAgIGFjY2VwdD1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50XCIgKGNoYW5nZSk9XCJ1cGxvYWQoKVwiXG4gICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiLz5cbjxkaXYgY2xhc3M9XCJjb2FzdC1jYXJkXCI+XG4gIDxkaXYgY2xhc3M9XCJjb2FzdC1jYXJkLWNvbnRlbnRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1tYWluXCIgW2NsYXNzLnNob3ctdXBsb2FkLWJ0bl09XCJuZWVkVXBsb2FkXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibmVlZFVwbG9hZFwiPlxuICAgICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuS4iuS8oOaWh+S7tlwiIChvbkNsaWNrKT1cInVwbG9hZElucHV0LmNsaWNrKClcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdiAqbmdJZj1cIiFuZWVkVXBsb2FkXCIgY2xhc3M9XCJsZWZ0LXBhbmVsXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJwYXN0ZU1vZGVcIiBjbGFzcz1cInBhc3RlLW1vZGUtYmFyXCI+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwibWVzc2FnZVwiPuW3sui/m+WFpeaJuemHj+eymOi0tOmFjee9ruaooeW8j++8jOaUr+aMgUN0cmzjgIFTaGlmdOmUruW/q+aNt+mAieaLqe+8jOaMiUN0cmwrVue7hOWQiOmUrueymOi0tOmFjee9ru+8jOaMiUVzY+mUruWPlua2iOaTjeS9nOW5tumAgOWHuuivpeaooeW8jzwvc3Bhbj5cbiAgICAgICAgICA8ZHgtYnV0dG9uIFt3aWR0aF09XCI0OFwiIHRleHQ9XCLpgIDlh7pcIiAob25DbGljayk9XCJleGl0UGFzdGVNb2RlKClcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCJcbiAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJtb3VzZUluVmlld2VyID0gdHJ1ZTtcIlxuICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlSW5WaWV3ZXIgPSBmYWxzZTtcIlxuICAgICAgICAgICAgIChtb3VzZXdoZWVsKT1cInNjYWxlQnlNb3VzZSgkZXZlbnQpXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFuZWVkVXBsb2FkXCIgY2xhc3M9XCJ2aWV3ZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPHJzLXNlY3Rpb24gW3NlY3Rpb25dPVwic2VjdGlvblwiIFtlZGl0TW9kZV09XCJ0cnVlXCIgW3Bhc3RlTW9kZV09XCJwYXN0ZU1vZGVcIj48L3JzLXNlY3Rpb24+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhbmVlZFVwbG9hZFwiIGNsYXNzPVwicmlnaHQtcGFuZWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDxkeC1idXR0b24gdHlwZT1cImRlZmF1bHRcIiB0ZXh0PVwi5pu/5o2i5paH5Lu2XCIgKG9uQ2xpY2spPVwib3BlblJlcGxhY2VUZW1wbGF0ZUZpbGVNb2RhbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XG4gICAgICAgICAgPGR4LWJ1dHRvbiBpY29uPVwiY29hc3QtaWNvbiBjb2FzdC1pY29uLWRvd25sb2FkXCIgaGludD1cIuS4i+i9veaWh+S7tlwiXG4gICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJkb3dubG9hZFRlbXBsYXRlRmlsZSgpXCIgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgICA8ZHgtYnV0dG9uIGljb249XCJjb2FzdC1pY29uIGNvYXN0LWljb24tZGlyZWN0aW9uLXVwXCIgaGludD1cIuS4iuS4gOS4qihBbHQgKyDihpEpXCJcbiAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInNlcnZpY2Uuc3dpdGNoTWFyaygtMSlcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgIDxkeC1idXR0b24gaWNvbj1cImNvYXN0LWljb24gY29hc3QtaWNvbi1kaXJlY3Rpb24tZG93blwiIGhpbnQ9XCLkuIvkuIDkuKooQWx0ICsg4oaTKVwiXG4gICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJzZXJ2aWNlLnN3aXRjaE1hcmsoMSlcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgIDxkeC1idXR0b24gW3R5cGVdPVwicGFzdGVNb2RlID8gJ3N1Y2Nlc3MnIDogJ2RlZmF1bHQnXCIgdGV4dD1cIuWkjeWItlwiIGhpbnQ9XCLlpI3liLYoQ3RybCArIGMpXCJcbiAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImNvcHlNYXJrQ29uZmlnKClcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJkYW5nZXJcIiB0ZXh0PVwi57KY6LS0XCIgaGludD1cIueymOi0tChDdHJsICsgdilcIiAob25DbGljayk9XCJwYXN0ZU1hcmtDb25maWcoKVwiXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCAhcGFzdGVNb2RlXCI+PC9keC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnXCIgKm5nSWY9XCJzZXJ2aWNlLmFjdGl2ZU1hcmtcIj5cbiAgICAgICAgICA8cnMtbWFyay1jb25maWcgW3RlbmFudF09XCJ0ZW5hbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVDbGFzc05hbWVdPVwiY2xhc3NOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RlbXBsYXRlT2lkXT1cIm9pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnN0YW5jZUNsYXNzTmFtZV09XCJpbnN0YW5jZUNsYXNzTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDYXRlZ29yaWVzXT1cImZpbHRlckNhdGVnb3JpZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFya109XCJzZXJ2aWNlLmFjdGl2ZU1hcmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFya3NdPVwic2VydmljZS5tYXJrc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJWaWV3Q29udGFpbmVyUmVmXT1cInRhYlZpZXdDb250YWluZXJSZWZcIj48L3JzLW1hcmstY29uZmlnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFuZWVkVXBsb2FkXCIgY2xhc3M9XCJmb290ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgPGR4LWJ1dHRvbiB0ZXh0PVwi5pS+5aSnXCIgKG9uQ2xpY2spPVwic2NhbGUoMC4xKVwiPjwvZHgtYnV0dG9uPlxuICAgICAgPGR4LWJ1dHRvbiB0ZXh0PVwi6L+Y5Y6fXCIgKG9uQ2xpY2spPVwic2NhbGUoMClcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDxkeC1idXR0b24gdGV4dD1cIue8qeWwj1wiIChvbkNsaWNrKT1cInNjYWxlKC0wLjEpXCI+PC9keC1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJkZWZhdWx0XCIgdGV4dD1cIumihOiniFwiIChvbkNsaWNrKT1cInByZXZpZXcoKVwiIFtkaXNhYmxlZF09XCJuZWVkVXBsb2FkIHx8IGxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cInN1Y2Nlc3NcIiB0ZXh0PVwi5L+d5a2YXCIgKG9uQ2xpY2spPVwic2F2ZUNvbmZpZygpXCIgW2Rpc2FibGVkXT1cIm5lZWRVcGxvYWQgfHwgbG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNyZXBsYWNlRmlsZU1vZGFsVGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJjb25maXJtLW1lc3NhZ2VcIj5cbiAgICA8c3Bhbj7mm7/mjaLmlofku7blj6/ku6XmjInnhafkuabnrb7moIfor4bnu6fmib/lt7Lkv53lrZjnmoTkuabnrb7phY3nva7vvIzor7fpgInmi6nmk43kvZzvvJo8L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1idXR0b25zXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnMtd3JhcHBlclwiPlxuICAgICAgPGR4LWJ1dHRvbiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLnu6fmib/phY3nva5cIiAob25DbGljayk9XCJyZXBsYWNlVGVtcGxhdGVGaWxlKHRydWUpXCI+PC9keC1idXR0b24+XG4gICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJkYW5nZXJcIiB0ZXh0PVwi5riF6Zmk6YWN572uXCIgKG9uQ2xpY2spPVwicmVwbGFjZVRlbXBsYXRlRmlsZShmYWxzZSlcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cIm5vcm1hbFwiIHRleHQ9XCLlj5bmtohcIiAob25DbGljayk9XCJyZXBsYWNlRmlsZU1vZGFsPy5oaWRlKClcIj48L2R4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNwcmV2aWV3VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJwcmV2aWV3LXZpZXdlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2aWV3ZXItY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidmlld2VyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNlY3Rpb24gb2Ygc2VjdGlvbnNcIj5cbiAgICAgICAgICA8cnMtc2VjdGlvbiBbc2VjdGlvbl09XCJzZWN0aW9uXCI+PC9ycy1zZWN0aW9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3ByZXZpZXdGb290ZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImZvcm0tYnV0dG9uc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJidXR0b25zLXdyYXBwZXJcIj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cIm5vcm1hbFwiIHRleHQ9XCLlhbPpl61cIiAob25DbGljayk9XCJwcmV2aWV3TW9kYWw/LmhpZGUoKVwiPjwvZHgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1kZXNpZ25lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZGVzaWduZXIvd29yZC1kZXNpZ25lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZGVzaWduZXIvd29yZC1kZXNpZ25lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFHNUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFRMUQsTUFBTSxPQUFPLHFCQUFxQjtJQStCaEMsYUFBYSxDQUFDLE1BQXFCO1FBQ2pDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLFNBQVM7Z0JBQ1osSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM3QjtnQkFDRCxNQUFNO1lBQ1IsS0FBSyxXQUFXO2dCQUNkLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzVCO2dCQUNELE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO29CQUNsQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3hDLElBQUksU0FBUyxF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QixLQUFLO2dCQUdOLHNCQUFzQjtzQkFEckIsTUFBTTtnQkFVbUMsV0FBVztzQkFBcEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNlLHdCQUF3QjtzQkFBOUUsU0FBUzt1QkFBQywwQkFBMEIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ1AsZUFBZTtzQkFBNUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ1EscUJBQXFCO3NCQUF4RSxTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFHbEQsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TW9kYWxDb21wb25lbnR9IGZyb20gXCIuLi8uLi9tb2RhbC9tb2RhbC5jb21wb25lbnRcIjtcbmltcG9ydCB7V29yZERlc2lnbmVyU2VydmljZX0gZnJvbSBcIi4vd29yZC1kZXNpZ25lci5zZXJ2aWNlXCI7XG5pbXBvcnQge01vZGFsU2VydmljZX0gZnJvbSBcIi4uLy4uL21vZGFsL21vZGFsLnNlcnZpY2VcIjtcbmltcG9ydCB7U2VjdGlvblNlcnZpY2V9IGZyb20gXCIuLi9zZWN0aW9uL3NlY3Rpb24uc2VydmljZVwiO1xuaW1wb3J0IHtkZWVwQ2xvbmUsIG5vdGlmeVN1Y2Nlc3N9IGZyb20gXCIuLi8uLi91dGlsL3V0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JzLXdvcmQtZGVzaWduZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vd29yZC1kZXNpZ25lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dvcmQtZGVzaWduZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbV29yZERlc2lnbmVyU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgV29yZERlc2lnbmVyQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgdGVuYW50OiBhbnk7XG4gIEBJbnB1dCgpXG4gIGNsYXNzTmFtZTogYW55O1xuICBASW5wdXQoKVxuICBvaWQ6IGFueTtcbiAgQElucHV0KClcbiAgaW5zdGFuY2VDbGFzc05hbWU6IGFueTtcbiAgQElucHV0KClcbiAgZmlsdGVyQ2F0ZWdvcmllcz86IHN0cmluZ1tdO1xuICBASW5wdXQoKVxuICBwYXJhbXM/OiBhbnk7XG4gIEBJbnB1dCgpXG4gIHRhYlZpZXdDb250YWluZXJSZWYhOiBhbnk7XG4gIEBPdXRwdXQoKVxuICBvblRlbXBsYXRlRmlsZVVwbG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBwcm90ZWN0ZWQgc2VjdGlvbnM6IGFueTtcbiAgcHJvdGVjdGVkIG5lZWRVcGxvYWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHBhc3RlTW9kZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgbW91c2VJblZpZXdlciA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgbG9hZGluZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgcmVwbGFjZUZpbGVNb2RhbD86IE1vZGFsQ29tcG9uZW50O1xuICBwcm90ZWN0ZWQgcmV0YWluTWFya0NvbmZpZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgcHJldmlld01vZGFsPzogTW9kYWxDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3VwbG9hZElucHV0Jywge3N0YXRpYzogdHJ1ZX0pIHVwbG9hZElucHV0ITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncmVwbGFjZUZpbGVNb2RhbFRlbXBsYXRlJywge3N0YXRpYzogdHJ1ZX0pIHJlcGxhY2VGaWxlTW9kYWxUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3ByZXZpZXdUZW1wbGF0ZScsIHtzdGF0aWM6IHRydWV9KSBwcmV2aWV3VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdwcmV2aWV3Rm9vdGVyVGVtcGxhdGUnLCB7c3RhdGljOiB0cnVlfSkgcHJldmlld0Zvb3RlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleURvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoICgkZXZlbnQuY29kZSkge1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIGlmICgkZXZlbnQuYWx0S2V5KSB7XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLnN3aXRjaE1hcmsoLTEpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgaWYgKCRldmVudC5hbHRLZXkpIHtcbiAgICAgICAgICB0aGlzLnNlcnZpY2Uuc3dpdGNoTWFyaygxKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0tleUMnOlxuICAgICAgICBpZiAoJGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgaWYgKHNlbGVjdGlvbj8udG9TdHJpbmcoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmNvcHlNYXJrQ29uZmlnKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdLZXlWJzpcbiAgICAgICAgaWYgKCRldmVudC5jdHJsS2V5KSB7XG4gICAgICAgICAgdGhpcy5wYXN0ZU1hcmtDb25maWcoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMuZXhpdFBhc3RlTW9kZSgpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgaWYgKHRoaXMubW91c2VJblZpZXdlciAmJiAkZXZlbnQuY3RybEtleSAmJiAkZXZlbnQua2V5ID09PSAnMCcpIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5zY2FsZSgwKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogU2VjdGlvblNlcnZpY2UsIHByaXZhdGUgd29yZERlc2lnbmVyU2VydmljZTogV29yZERlc2lnbmVyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VydmljZS50ZW5hbnQgPSB0aGlzLnRlbmFudDtcbiAgICB0aGlzLnNlcnZpY2UudGVtcGxhdGVDbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTtcbiAgICB0aGlzLnNlcnZpY2UudGVtcGxhdGVPaWQgPSB0aGlzLm9pZDtcbiAgICB0aGlzLnNlcnZpY2UuaW5zdGFuY2VDbGFzc05hbWUgPSB0aGlzLmluc3RhbmNlQ2xhc3NOYW1lO1xuICAgIHRoaXMuc2VydmljZS5wYXJhbXMgPSB0aGlzLnBhcmFtcztcbiAgICB0aGlzLnNlcnZpY2UudGFiVmlld0NvbnRhaW5lclJlZiA9IHRoaXMudGFiVmlld0NvbnRhaW5lclJlZjtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMud29yZERlc2lnbmVyU2VydmljZS5sb2FkVGVtcGxhdGUodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIHRoaXMubG9hZFRlbXBsYXRlQW5kQ29uZmlnKHJlc3BvbnNlKTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gdGhpcy5zZXJ2aWNlLnZhbHVlVXBkYXRlZC51bnN1YnNjcmliZSgpO1xuICAgIC8vIHRoaXMuc2VydmljZS52YWx1ZUNoYW5nZWQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGxvYWRUZW1wbGF0ZUFuZENvbmZpZyhyZXNwb25zZTogYW55KSB7XG4gICAgdGhpcy5zZWN0aW9ucyA9IHJlc3BvbnNlLnNlY3Rpb25zIHx8IFtdO1xuICAgIGlmICh0aGlzLnNlY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5uZWVkVXBsb2FkID0gdHJ1ZTtcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm5lZWRVcGxvYWQgPSBmYWxzZTtcbiAgICB0aGlzLnNlcnZpY2UubWFya3MgPSByZXNwb25zZS5tYXJrcy5tYXAoKG1hcms6IGFueSkgPT4ge1xuICAgICAgbWFyay5jb25maWcgPSBtYXJrLmNvbmZpZyB8fCB7fTtcbiAgICAgIHJldHVybiBtYXJrO1xuICAgIH0pO1xuICAgIGlmICh0aGlzLnNlcnZpY2UubWFya3MubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcmsgPSB0aGlzLnNlcnZpY2UubWFya3NbMF07XG4gICAgfVxuICB9XG5cbiAgc2NhbGVCeU1vdXNlKCRldmVudDogYW55KSB7XG4gICAgaWYgKCRldmVudC5jdHJsS2V5KSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuc2NhbGUoJGV2ZW50LmRlbHRhWSA8IDAgPyAwLjEgOiAtMC4xKTtcbiAgICB9XG4gIH1cblxuICBzY2FsZSh0eXBlOiBudW1iZXIpIHtcbiAgICBpZiAodHlwZSA9PT0gMCkge1xuICAgICAgdGhpcy5zZXJ2aWNlLnNjYWxlID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXJ2aWNlLnNjYWxlICs9IHR5cGU7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkKCkge1xuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy53b3JkRGVzaWduZXJTZXJ2aWNlLnVwbG9hZFRlbXBsYXRlRmlsZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMub2lkLCB0aGlzLnJldGFpbk1hcmtDb25maWcsIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudC5maWxlc1swXSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgdGhpcy5sb2FkVGVtcGxhdGVBbmRDb25maWcocmVzcG9uc2UpO1xuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLm9uVGVtcGxhdGVGaWxlVXBsb2FkZWQuZW1pdCgpO1xuICAgIH0pO1xuICB9XG5cbiAgb3BlblJlcGxhY2VUZW1wbGF0ZUZpbGVNb2RhbCgpIHtcbiAgICB0aGlzLnJlcGxhY2VGaWxlTW9kYWwgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMudGFiVmlld0NvbnRhaW5lclJlZiwgJ+abv+aNouaWh+S7ticsICdkZWZhdWx0JywgdGhpcy5yZXBsYWNlRmlsZU1vZGFsVGVtcGxhdGUsIHt9KTtcbiAgfVxuXG4gIHJlcGxhY2VUZW1wbGF0ZUZpbGUocmV0YWluTWFya0NvbmZpZzogYm9vbGVhbikge1xuICAgIHRoaXMucmV0YWluTWFya0NvbmZpZyA9IHJldGFpbk1hcmtDb25maWc7XG4gICAgdGhpcy51cGxvYWRJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgdGhpcy5yZXBsYWNlRmlsZU1vZGFsPy5oaWRlKCk7XG4gIH1cblxuICBkb3dubG9hZFRlbXBsYXRlRmlsZSgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMud29yZERlc2lnbmVyU2VydmljZS5kb3dubG9hZFRlbXBsYXRlRmlsZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMub2lkLCAoKSA9PiB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByZXZpZXcoKSB7XG4gICAgZm9yIChsZXQgbWFyayBvZiB0aGlzLnNlcnZpY2UubWFya3MpIHtcbiAgICAgIG1hcmsudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMucHJldmlld01vZGFsID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLnRhYlZpZXdDb250YWluZXJSZWYsICfpooTop4gnLCAnZnVsbCcsXG4gICAgICB0aGlzLnByZXZpZXdUZW1wbGF0ZSwge30sIHRoaXMucHJldmlld0Zvb3RlclRlbXBsYXRlKTtcbiAgfVxuXG4gIHNhdmVDb25maWcoKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UubWFya3MubWFwKG1hcmsgPT4ge1xuICAgICAgZGVsZXRlIG1hcmsudmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy53b3JkRGVzaWduZXJTZXJ2aWNlLnNhdmUodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCwge1xuICAgICAgdGVtcGxhdGVDb25maWc6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbnMsXG4gICAgICAgIG1hcmtzOiB0aGlzLnNlcnZpY2UubWFya3NcbiAgICAgIH0pXG4gICAgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+S/neWtmOaIkOWKnycpO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNvcHlNYXJrQ29uZmlnKCkge1xuICAgIGlmICh0aGlzLnNlcnZpY2UuYWN0aXZlTWFyay50eXBlKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuY29waWVkTWFyayA9IGRlZXBDbG9uZSh0aGlzLnNlcnZpY2UuYWN0aXZlTWFyayk7XG4gICAgICB0aGlzLnBhc3RlTW9kZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgZXhpdFBhc3RlTW9kZSgpIHtcbiAgICB0aGlzLnNlcnZpY2UuY29waWVkTWFyayA9IHt9O1xuICAgIHRoaXMuc2VydmljZS5yZWFkeVBhc3RlTWFya05hbWVzID0gW107XG4gICAgdGhpcy5zZXJ2aWNlLmxhc3RDbGlja1RvUGFzdGVNYXJrTmFtZSA9ICcnO1xuICAgIHRoaXMucGFzdGVNb2RlID0gZmFsc2U7XG4gIH1cblxuICBwYXN0ZU1hcmtDb25maWcoKSB7XG4gICAgbGV0IHJlYWR5UGFzdGVNYXJrO1xuICAgIGZvciAobGV0IHJlYWR5UGFzdGVNYXJrTmFtZSBvZiB0aGlzLnNlcnZpY2UucmVhZHlQYXN0ZU1hcmtOYW1lcykge1xuICAgICAgcmVhZHlQYXN0ZU1hcmsgPSB0aGlzLnNlcnZpY2UuZ2V0TWFyayhyZWFkeVBhc3RlTWFya05hbWUpO1xuICAgICAgY29uc3QgZGlzcGxheSA9IHJlYWR5UGFzdGVNYXJrLmRpc3BsYXk7XG4gICAgICBPYmplY3QuYXNzaWduKHJlYWR5UGFzdGVNYXJrLCBkZWVwQ2xvbmUodGhpcy5zZXJ2aWNlLmNvcGllZE1hcmspKTtcbiAgICAgIHJlYWR5UGFzdGVNYXJrLm5hbWUgPSByZWFkeVBhc3RlTWFya05hbWU7XG4gICAgICByZWFkeVBhc3RlTWFyay5kaXNwbGF5ID0gZGlzcGxheTtcbiAgICB9XG4gICAgdGhpcy5zZXJ2aWNlLmFjdGl2ZU1hcmsgPSByZWFkeVBhc3RlTWFyayB8fCB0aGlzLnNlcnZpY2UuYWN0aXZlTWFyaztcbiAgICB0aGlzLmV4aXRQYXN0ZU1vZGUoKTtcbiAgfVxufVxuIiwiPGR4LWxvYWQtcGFuZWwgW2NvbnRhaW5lcl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiIFtzaG93UGFuZV09XCJmYWxzZVwiIFt2aXNpYmxlXT1cImxvYWRpbmdcIj5cbiAgPGR4by1wb3NpdGlvbiBbb2ZdPVwidmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIj48L2R4by1wb3NpdGlvbj5cbjwvZHgtbG9hZC1wYW5lbD5cbjxpbnB1dCAjdXBsb2FkSW5wdXQgdHlwZT1cImZpbGVcIiBuYW1lPVwiZmlsZVwiXG4gICAgICAgYWNjZXB0PVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnRcIiAoY2hhbmdlKT1cInVwbG9hZCgpXCJcbiAgICAgICBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIvPlxuPGRpdiBjbGFzcz1cImNvYXN0LWNhcmRcIj5cbiAgPGRpdiBjbGFzcz1cImNvYXN0LWNhcmQtY29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LW1haW5cIiBbY2xhc3Muc2hvdy11cGxvYWQtYnRuXT1cIm5lZWRVcGxvYWRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJuZWVkVXBsb2FkXCI+XG4gICAgICAgIDxkeC1idXR0b24gdHlwZT1cInN1Y2Nlc3NcIiB0ZXh0PVwi5LiK5Lyg5paH5Lu2XCIgKG9uQ2xpY2spPVwidXBsb2FkSW5wdXQuY2xpY2soKVwiPjwvZHgtYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIW5lZWRVcGxvYWRcIiBjbGFzcz1cImxlZnQtcGFuZWxcIj5cbiAgICAgICAgPGRpdiAqbmdJZj1cInBhc3RlTW9kZVwiIGNsYXNzPVwicGFzdGUtbW9kZS1iYXJcIj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJtZXNzYWdlXCI+5bey6L+b5YWl5om56YeP57KY6LS06YWN572u5qih5byP77yM5pSv5oyBQ3RybOOAgVNoaWZ06ZSu5b+r5o236YCJ5oup77yM5oyJQ3RybCtW57uE5ZCI6ZSu57KY6LS06YWN572u77yM5oyJRXNj6ZSu5Y+W5raI5pON5L2c5bm26YCA5Ye66K+l5qih5byPPC9zcGFuPlxuICAgICAgICAgIDxkeC1idXR0b24gW3dpZHRoXT1cIjQ4XCIgdGV4dD1cIumAgOWHulwiIChvbkNsaWNrKT1cImV4aXRQYXN0ZU1vZGUoKVwiPjwvZHgtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIlxuICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cIm1vdXNlSW5WaWV3ZXIgPSB0cnVlO1wiXG4gICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwibW91c2VJblZpZXdlciA9IGZhbHNlO1wiXG4gICAgICAgICAgICAgKG1vdXNld2hlZWwpPVwic2NhbGVCeU1vdXNlKCRldmVudClcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5lZWRVcGxvYWRcIiBjbGFzcz1cInZpZXdlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWN0aW9uc1wiPlxuICAgICAgICAgICAgICA8cnMtc2VjdGlvbiBbc2VjdGlvbl09XCJzZWN0aW9uXCIgW2VkaXRNb2RlXT1cInRydWVcIiBbcGFzdGVNb2RlXT1cInBhc3RlTW9kZVwiPjwvcnMtc2VjdGlvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIiFuZWVkVXBsb2FkXCIgY2xhc3M9XCJyaWdodC1wYW5lbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPGR4LWJ1dHRvbiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLmm7/mjaLmlofku7ZcIiAob25DbGljayk9XCJvcGVuUmVwbGFjZVRlbXBsYXRlRmlsZU1vZGFsKClcIlxuICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgICA8ZHgtYnV0dG9uIGljb249XCJjb2FzdC1pY29uIGNvYXN0LWljb24tZG93bmxvYWRcIiBoaW50PVwi5LiL6L295paH5Lu2XCJcbiAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImRvd25sb2FkVGVtcGxhdGVGaWxlKClcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgIDxkeC1idXR0b24gaWNvbj1cImNvYXN0LWljb24gY29hc3QtaWNvbi1kaXJlY3Rpb24tdXBcIiBoaW50PVwi5LiK5LiA5LiqKEFsdCArIOKGkSlcIlxuICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwic2VydmljZS5zd2l0Y2hNYXJrKC0xKVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XG4gICAgICAgICAgPGR4LWJ1dHRvbiBpY29uPVwiY29hc3QtaWNvbiBjb2FzdC1pY29uLWRpcmVjdGlvbi1kb3duXCIgaGludD1cIuS4i+S4gOS4qihBbHQgKyDihpMpXCJcbiAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInNlcnZpY2Uuc3dpdGNoTWFyaygxKVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XG4gICAgICAgICAgPGR4LWJ1dHRvbiBbdHlwZV09XCJwYXN0ZU1vZGUgPyAnc3VjY2VzcycgOiAnZGVmYXVsdCdcIiB0ZXh0PVwi5aSN5Yi2XCIgaGludD1cIuWkjeWItihDdHJsICsgYylcIlxuICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiY29weU1hcmtDb25maWcoKVwiPjwvZHgtYnV0dG9uPlxuICAgICAgICAgIDxkeC1idXR0b24gdHlwZT1cImRhbmdlclwiIHRleHQ9XCLnspjotLRcIiBoaW50PVwi57KY6LS0KEN0cmwgKyB2KVwiIChvbkNsaWNrKT1cInBhc3RlTWFya0NvbmZpZygpXCJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8ICFwYXN0ZU1vZGVcIj48L2R4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWdcIiAqbmdJZj1cInNlcnZpY2UuYWN0aXZlTWFya1wiPlxuICAgICAgICAgIDxycy1tYXJrLWNvbmZpZyBbdGVuYW50XT1cInRlbmFudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZUNsYXNzTmFtZV09XCJjbGFzc05hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVPaWRdPVwib2lkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2luc3RhbmNlQ2xhc3NOYW1lXT1cImluc3RhbmNlQ2xhc3NOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNhdGVnb3JpZXNdPVwiZmlsdGVyQ2F0ZWdvcmllc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttYXJrXT1cInNlcnZpY2UuYWN0aXZlTWFya1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFttYXJrc109XCJzZXJ2aWNlLm1hcmtzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYlZpZXdDb250YWluZXJSZWZdPVwidGFiVmlld0NvbnRhaW5lclJlZlwiPjwvcnMtbWFyay1jb25maWc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiIW5lZWRVcGxvYWRcIiBjbGFzcz1cImZvb3RlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICA8ZHgtYnV0dG9uIHRleHQ9XCLmlL7lpKdcIiAob25DbGljayk9XCJzY2FsZSgwLjEpXCI+PC9keC1idXR0b24+XG4gICAgICA8ZHgtYnV0dG9uIHRleHQ9XCLov5jljp9cIiAob25DbGljayk9XCJzY2FsZSgwKVwiPjwvZHgtYnV0dG9uPlxuICAgICAgPGR4LWJ1dHRvbiB0ZXh0PVwi57yp5bCPXCIgKG9uQ2xpY2spPVwic2NhbGUoLTAuMSlcIj48L2R4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cImRlZmF1bHRcIiB0ZXh0PVwi6aKE6KeIXCIgKG9uQ2xpY2spPVwicHJldmlldygpXCIgW2Rpc2FibGVkXT1cIm5lZWRVcGxvYWQgfHwgbG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxuICAgICAgPGR4LWJ1dHRvbiB0eXBlPVwic3VjY2Vzc1wiIHRleHQ9XCLkv53lrZhcIiAob25DbGljayk9XCJzYXZlQ29uZmlnKClcIiBbZGlzYWJsZWRdPVwibmVlZFVwbG9hZCB8fCBsb2FkaW5nXCI+PC9keC1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3JlcGxhY2VGaWxlTW9kYWxUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImNvbmZpcm0tbWVzc2FnZVwiPlxuICAgIDxzcGFuPuabv+aNouaWh+S7tuWPr+S7peaMieeFp+S5puetvuagh+ivhue7p+aJv+W3suS/neWtmOeahOS5puetvumFjee9ru+8jOivt+mAieaLqeaTjeS9nO+8mjwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWJ1dHRvbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9ucy13cmFwcGVyXCI+XG4gICAgICA8ZHgtYnV0dG9uIHR5cGU9XCJkZWZhdWx0XCIgdGV4dD1cIue7p+aJv+mFjee9rlwiIChvbkNsaWNrKT1cInJlcGxhY2VUZW1wbGF0ZUZpbGUodHJ1ZSlcIj48L2R4LWJ1dHRvbj5cbiAgICAgIDxkeC1idXR0b24gdHlwZT1cImRhbmdlclwiIHRleHQ9XCLmuIXpmaTphY3nva5cIiAob25DbGljayk9XCJyZXBsYWNlVGVtcGxhdGVGaWxlKGZhbHNlKVwiPjwvZHgtYnV0dG9uPlxuICAgICAgPGR4LWJ1dHRvbiB0eXBlPVwibm9ybWFsXCIgdGV4dD1cIuWPlua2iFwiIChvbkNsaWNrKT1cInJlcGxhY2VGaWxlTW9kYWw/LmhpZGUoKVwiPjwvZHgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3ByZXZpZXdUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInByZXZpZXctdmlld2VyXCI+XG4gICAgPGRpdiBjbGFzcz1cInZpZXdlci1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWN0aW9uc1wiPlxuICAgICAgICAgIDxycy1zZWN0aW9uIFtzZWN0aW9uXT1cInNlY3Rpb25cIj48L3JzLXNlY3Rpb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjcHJldmlld0Zvb3RlclRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1idXR0b25zXCI+XG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbnMtd3JhcHBlclwiPlxuICAgICAgPGR4LWJ1dHRvbiB0eXBlPVwibm9ybWFsXCIgdGV4dD1cIuWFs+mXrVwiIChvbkNsaWNrKT1cInByZXZpZXdNb2RhbD8uaGlkZSgpXCI+PC9keC1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -18,13 +18,15 @@ export class WordEditorComponent {
18
18
  this.templateNumberAttribute = 'templateNumber';
19
19
  this.templateFileAttribute = 'templateFile';
20
20
  this.templateConfigAttribute = 'templateConfig';
21
+ this.generateFileAttribute = 'file';
21
22
  this.showPullTemplateButton = true;
22
23
  this.showPullDataButton = true;
23
- this.showCalcButton = true;
24
+ this.showCalcButton = false;
24
25
  this.showValidateButton = true;
26
+ this.showSaveButton = true;
25
27
  this.showGenerateFileButton = true;
26
- this.generateFileAttribute = 'file';
27
28
  this.showCloseButton = true;
29
+ this.generateToTemp = false;
28
30
  this.readonly = false;
29
31
  this.onSaved = new EventEmitter();
30
32
  this.onGenerated = new EventEmitter();
@@ -50,13 +52,13 @@ export class WordEditorComponent {
50
52
  });
51
53
  }
52
54
  ngOnDestroy() {
53
- this.service.valueUpdated.unsubscribe();
54
- this.service.valueChanged.unsubscribe();
55
+ // this.service.valueUpdated.unsubscribe();
56
+ // this.service.valueChanged.unsubscribe();
55
57
  }
56
58
  pullTemplate() {
57
59
  if (confirm('该操作会清除已录入的数据,确定重新拉取模板配置?')) {
58
60
  this.loading = true;
59
- this.wordEditorService.reloadTemplate(this.tenant, this.className, this.oid, this.templateClassName, this.templateNumberAttribute, this.templateFileAttribute, this.templateConfigAttribute).subscribe(response => {
61
+ this.wordEditorService.reloadTemplate(this.tenant, this.className, this.oid, this.templateClassName, this.defaultTemplateNumber, this.templateNumberAttribute, this.templateFileAttribute, this.templateConfigAttribute).subscribe(response => {
60
62
  this.sections = response.data?.sections || [];
61
63
  this.service.marks = response.data.marks;
62
64
  this.loading = false;
@@ -86,12 +88,18 @@ export class WordEditorComponent {
86
88
  }
87
89
  save() {
88
90
  this.loading = true;
89
- this.wordEditorService.save(this.tenant, this.className, this.oid, {
91
+ const model = {
90
92
  [this.templateConfigAttribute]: JSON.stringify({
91
93
  sections: this.sections,
92
94
  marks: this.service.marks
93
95
  })
94
- }).subscribe(response => {
96
+ };
97
+ if (this.generateToTemp) {
98
+ notifySuccess('保存成功');
99
+ this.onSaved.emit(model);
100
+ return;
101
+ }
102
+ this.wordEditorService.save(this.tenant, this.className, this.oid, model).subscribe(response => {
95
103
  this.loading = false;
96
104
  if (response.success) {
97
105
  notifySuccess('保存成功');
@@ -106,20 +114,25 @@ export class WordEditorComponent {
106
114
  sections: this.sections,
107
115
  marks: this.service.marks
108
116
  })
109
- }).subscribe(response => {
117
+ }, this.generateToTemp).subscribe(response => {
110
118
  this.loading = false;
111
119
  if (response.success) {
112
120
  notifySuccess('生成附件成功');
113
- this.onGenerated.emit();
121
+ if (this.generateToTemp) {
122
+ this.onGenerated.emit(response.data);
123
+ }
124
+ else {
125
+ this.onGenerated.emit();
126
+ }
114
127
  }
115
128
  });
116
129
  }
117
130
  }
118
131
  WordEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordEditorComponent, deps: [{ token: i1.SectionService }, { token: i2.WordEditorService }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
119
- WordEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WordEditorComponent, selector: "rs-word-editor", inputs: { tenant: "tenant", className: "className", oid: "oid", templateClassName: "templateClassName", templateNumberAttribute: "templateNumberAttribute", templateFileAttribute: "templateFileAttribute", templateConfigAttribute: "templateConfigAttribute", params: "params", tabViewContainerRef: "tabViewContainerRef", showPullTemplateButton: "showPullTemplateButton", showPullDataButton: "showPullDataButton", showCalcButton: "showCalcButton", showValidateButton: "showValidateButton", showGenerateFileButton: "showGenerateFileButton", generateFileAttribute: "generateFileAttribute", showCloseButton: "showCloseButton", readonly: "readonly" }, outputs: { onSaved: "onSaved", onGenerated: "onGenerated", onClosed: "onClosed" }, providers: [WordEditorService], viewQueries: [{ propertyName: "validator", first: true, predicate: ["validator"], descendants: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<div *ngIf=\"!readonly\" class=\"bar header\">\r\n <dx-button *ngIf=\"showPullTemplateButton\" type=\"success\" text=\"\u66F4\u65B0\u6A21\u677F\" (onClick)=\"pullTemplate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showPullDataButton\" type=\"success\" text=\"\u586B\u5145\u6570\u636E\" (onClick)=\"pullData()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <!-- <dx-button *ngIf=\"showCalcButton\" type=\"default\" text=\"\u6267\u884C\u8BA1\u7B97\" (onClick)=\"calc()\"\r\n [disabled]=\"loading\"></dx-button>-->\r\n <dx-button *ngIf=\"showValidateButton\" type=\"default\" text=\"\u6267\u884C\u6821\u9A8C\" (onClick)=\"validate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n</div>\r\n<dx-validation-group [class.validation-group]=\"true\" #validator>\r\n <div class=\"viewer-container\">\r\n <div class=\"viewer\">\r\n <ng-container *ngFor=\"let section of sections\">\r\n <rs-section [section]=\"section\"></rs-section>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</dx-validation-group>\r\n<div class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\" [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"!readonly && showGenerateFileButton\" type=\"success\" text=\"\u751F\u6210\u9644\u4EF6\" (onClick)=\"generateFile()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCloseButton\" type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"onClosed.emit()\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap;background-color:#f5f5f5}:host .bar{flex:none;padding:12px 24px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));z-index:1;display:flex;flex-flow:row nowrap}:host .bar>dx-button{width:80px}:host .bar>dx-button:not(:last-child){margin-right:8px}:host .header{border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;top:0}:host .validation-group{flex:auto;height:0;overflow-y:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .validation-group .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .validation-group .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .footer{justify-content:flex-end;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;bottom:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i5.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }, { kind: "component", type: i8.SectionComponent, selector: "rs-section", inputs: ["section", "editMode", "pasteMode", "readonly"] }] });
132
+ WordEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WordEditorComponent, selector: "rs-word-editor", inputs: { tenant: "tenant", className: "className", oid: "oid", templateClassName: "templateClassName", defaultTemplateNumber: "defaultTemplateNumber", templateNumberAttribute: "templateNumberAttribute", templateFileAttribute: "templateFileAttribute", templateConfigAttribute: "templateConfigAttribute", generateFileAttribute: "generateFileAttribute", params: "params", tabViewContainerRef: "tabViewContainerRef", showPullTemplateButton: "showPullTemplateButton", showPullDataButton: "showPullDataButton", showCalcButton: "showCalcButton", showValidateButton: "showValidateButton", showSaveButton: "showSaveButton", showGenerateFileButton: "showGenerateFileButton", showCloseButton: "showCloseButton", generateToTemp: "generateToTemp", readonly: "readonly" }, outputs: { onSaved: "onSaved", onGenerated: "onGenerated", onClosed: "onClosed" }, providers: [WordEditorService], viewQueries: [{ propertyName: "validator", first: true, predicate: ["validator"], descendants: true }], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<div *ngIf=\"!readonly\" class=\"bar header\">\r\n <dx-button *ngIf=\"showPullTemplateButton\" type=\"success\" text=\"\u66F4\u65B0\u6A21\u677F\" (onClick)=\"pullTemplate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showPullDataButton\" type=\"success\" text=\"\u586B\u5145\u6570\u636E\" (onClick)=\"pullData()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCalcButton\" type=\"default\" text=\"\u6267\u884C\u8BA1\u7B97\" (onClick)=\"calc()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showValidateButton\" type=\"default\" text=\"\u6267\u884C\u6821\u9A8C\" (onClick)=\"validate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n</div>\r\n<dx-validation-group [class.validation-group]=\"true\" #validator>\r\n <div class=\"viewer-container\">\r\n <div class=\"viewer\">\r\n <ng-container *ngFor=\"let section of sections\">\r\n <rs-section [section]=\"section\"></rs-section>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</dx-validation-group>\r\n<div *ngIf=\"!readonly || showCloseButton\" class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly && showSaveButton\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"!readonly && showGenerateFileButton\" type=\"success\" text=\"\u751F\u6210\u9644\u4EF6\" (onClick)=\"generateFile()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCloseButton\" type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"onClosed.emit()\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap;background-color:#f5f5f5}:host .bar{flex:none;padding:12px 24px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));z-index:1;display:flex;flex-flow:row nowrap}:host .bar>dx-button{width:80px}:host .bar>dx-button:not(:last-child){margin-right:8px}:host .header{border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;top:0}:host .validation-group{flex:auto;height:0;overflow-y:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .validation-group .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .validation-group .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .footer{justify-content:flex-end;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;bottom:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i5.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }, { kind: "component", type: i8.SectionComponent, selector: "rs-section", inputs: ["section", "editMode", "pasteMode", "readonly"] }] });
120
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WordEditorComponent, decorators: [{
121
134
  type: Component,
122
- args: [{ selector: 'rs-word-editor', providers: [WordEditorService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<div *ngIf=\"!readonly\" class=\"bar header\">\r\n <dx-button *ngIf=\"showPullTemplateButton\" type=\"success\" text=\"\u66F4\u65B0\u6A21\u677F\" (onClick)=\"pullTemplate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showPullDataButton\" type=\"success\" text=\"\u586B\u5145\u6570\u636E\" (onClick)=\"pullData()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <!-- <dx-button *ngIf=\"showCalcButton\" type=\"default\" text=\"\u6267\u884C\u8BA1\u7B97\" (onClick)=\"calc()\"\r\n [disabled]=\"loading\"></dx-button>-->\r\n <dx-button *ngIf=\"showValidateButton\" type=\"default\" text=\"\u6267\u884C\u6821\u9A8C\" (onClick)=\"validate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n</div>\r\n<dx-validation-group [class.validation-group]=\"true\" #validator>\r\n <div class=\"viewer-container\">\r\n <div class=\"viewer\">\r\n <ng-container *ngFor=\"let section of sections\">\r\n <rs-section [section]=\"section\"></rs-section>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</dx-validation-group>\r\n<div class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\" [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"!readonly && showGenerateFileButton\" type=\"success\" text=\"\u751F\u6210\u9644\u4EF6\" (onClick)=\"generateFile()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCloseButton\" type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"onClosed.emit()\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap;background-color:#f5f5f5}:host .bar{flex:none;padding:12px 24px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));z-index:1;display:flex;flex-flow:row nowrap}:host .bar>dx-button{width:80px}:host .bar>dx-button:not(:last-child){margin-right:8px}:host .header{border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;top:0}:host .validation-group{flex:auto;height:0;overflow-y:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .validation-group .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .validation-group .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .footer{justify-content:flex-end;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;bottom:0}\n"] }]
135
+ args: [{ selector: 'rs-word-editor', providers: [WordEditorService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\" [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<div *ngIf=\"!readonly\" class=\"bar header\">\r\n <dx-button *ngIf=\"showPullTemplateButton\" type=\"success\" text=\"\u66F4\u65B0\u6A21\u677F\" (onClick)=\"pullTemplate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showPullDataButton\" type=\"success\" text=\"\u586B\u5145\u6570\u636E\" (onClick)=\"pullData()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCalcButton\" type=\"default\" text=\"\u6267\u884C\u8BA1\u7B97\" (onClick)=\"calc()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showValidateButton\" type=\"default\" text=\"\u6267\u884C\u6821\u9A8C\" (onClick)=\"validate()\"\r\n [disabled]=\"loading\"></dx-button>\r\n</div>\r\n<dx-validation-group [class.validation-group]=\"true\" #validator>\r\n <div class=\"viewer-container\">\r\n <div class=\"viewer\">\r\n <ng-container *ngFor=\"let section of sections\">\r\n <rs-section [section]=\"section\"></rs-section>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</dx-validation-group>\r\n<div *ngIf=\"!readonly || showCloseButton\" class=\"bar footer\">\r\n <dx-button *ngIf=\"!readonly && showSaveButton\" type=\"default\" text=\"\u4FDD\u5B58\" (onClick)=\"save()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"!readonly && showGenerateFileButton\" type=\"success\" text=\"\u751F\u6210\u9644\u4EF6\" (onClick)=\"generateFile()\"\r\n [disabled]=\"loading\"></dx-button>\r\n <dx-button *ngIf=\"showCloseButton\" type=\"normal\" text=\"\u5173\u95ED\" (onClick)=\"onClosed.emit()\"></dx-button>\r\n</div>\r\n", styles: [":host{flex:1;display:flex;flex-flow:column nowrap;background-color:#f5f5f5}:host .bar{flex:none;padding:12px 24px;background-color:var(--coast-base-bg-color, rgb(255, 255, 255));z-index:1;display:flex;flex-flow:row nowrap}:host .bar>dx-button{width:80px}:host .bar>dx-button:not(:last-child){margin-right:8px}:host .header{border-bottom:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;top:0}:host .validation-group{flex:auto;height:0;overflow-y:auto;background-color:var(--coast-empty-color, rgb(229, 229, 229));display:flex;flex-flow:column nowrap}:host .validation-group .viewer-container{flex:auto;height:0;overflow-x:auto;padding:8px 16px 0;display:flex;flex-flow:row nowrap}:host .validation-group .viewer-container .viewer{margin:auto;display:flex;flex-flow:column nowrap;align-items:center;z-index:0}:host .footer{justify-content:flex-end;border-top:1px solid var(--coast-border-color, rgb(221, 221, 221));position:sticky;bottom:0}\n"] }]
123
136
  }], ctorParameters: function () { return [{ type: i1.SectionService }, { type: i2.WordEditorService }, { type: i0.ViewContainerRef }]; }, propDecorators: { tenant: [{
124
137
  type: Input
125
138
  }], className: [{
@@ -128,12 +141,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
128
141
  type: Input
129
142
  }], templateClassName: [{
130
143
  type: Input
144
+ }], defaultTemplateNumber: [{
145
+ type: Input
131
146
  }], templateNumberAttribute: [{
132
147
  type: Input
133
148
  }], templateFileAttribute: [{
134
149
  type: Input
135
150
  }], templateConfigAttribute: [{
136
151
  type: Input
152
+ }], generateFileAttribute: [{
153
+ type: Input
137
154
  }], params: [{
138
155
  type: Input
139
156
  }], tabViewContainerRef: [{
@@ -146,12 +163,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
146
163
  type: Input
147
164
  }], showValidateButton: [{
148
165
  type: Input
149
- }], showGenerateFileButton: [{
166
+ }], showSaveButton: [{
150
167
  type: Input
151
- }], generateFileAttribute: [{
168
+ }], showGenerateFileButton: [{
152
169
  type: Input
153
170
  }], showCloseButton: [{
154
171
  type: Input
172
+ }], generateToTemp: [{
173
+ type: Input
155
174
  }], readonly: [{
156
175
  type: Input
157
176
  }], onSaved: [{
@@ -164,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
164
183
  type: ViewChild,
165
184
  args: ['validator']
166
185
  }] } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC93b3JkLWVkaXRvci93b3JkLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZWRpdG9yL3dvcmQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyxtQkFBbUI7SUE2QzlCLFlBQXNCLE9BQXVCLEVBQVUsaUJBQW9DLEVBQVksZ0JBQWtDO1FBQW5ILFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFZLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFuQ3pJLDRCQUF1QixHQUFRLGdCQUFnQixDQUFDO1FBRWhELDBCQUFxQixHQUFRLGNBQWMsQ0FBQztRQUU1Qyw0QkFBdUIsR0FBUSxnQkFBZ0IsQ0FBQztRQU1oRCwyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFFOUIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRTFCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBRXRCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQiwyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFFOUIsMEJBQXFCLEdBQVEsTUFBTSxDQUFDO1FBRXBDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbkMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXZDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTFCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFJMUIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNiLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztRQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFDN0MsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxPQUFPLENBQUMsMEJBQTBCLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQy9DLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLEdBQUcsRUFDUixJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLElBQUksQ0FBQyx1QkFBdUIsRUFDNUIsSUFBSSxDQUFDLHFCQUFxQixFQUMxQixJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNyRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUMxQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RCLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7Z0JBQ25DLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN2QzthQUNGO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7SUFFSixDQUFDO0lBRUQsUUFBUTtRQUNOLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2pFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDN0MsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2FBQzFCLENBQUM7U0FDSCxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDcEIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQ2pDLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxNQUFNLEVBQ3BDLElBQUksQ0FBQyxxQkFBcUIsRUFDMUIsSUFBSSxDQUFDLHVCQUF1QixFQUM1QjtZQUNFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDN0MsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO2FBQzFCLENBQUM7U0FDSCxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtnQkFDcEIsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztpSEExSlUsbUJBQW1CO3FHQUFuQixtQkFBbUIsZ3dCQUZuQixDQUFDLGlCQUFpQixDQUFDLGtJQ1ZoQywrd0RBNEJBOzRGRGhCYSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBR2YsQ0FBQyxpQkFBaUIsQ0FBQztvS0FJOUIsTUFBTTtzQkFETCxLQUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixHQUFHO3NCQURGLEtBQUs7Z0JBR04saUJBQWlCO3NCQURoQixLQUFLO2dCQUdOLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFHTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBR04sdUJBQXVCO3NCQUR0QixLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBR04sc0JBQXNCO3NCQURyQixLQUFLO2dCQUdOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBR04sa0JBQWtCO3NCQURqQixLQUFLO2dCQUdOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFHTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBR04sZUFBZTtzQkFEZCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHTixPQUFPO3NCQUROLE1BQU07Z0JBR1AsV0FBVztzQkFEVixNQUFNO2dCQUdQLFFBQVE7c0JBRFAsTUFBTTtnQkFJaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEeFZhbGlkYXRpb25Hcm91cENvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhci91aS92YWxpZGF0aW9uLWdyb3VwXCI7XHJcbmltcG9ydCB7V29yZEVkaXRvclNlcnZpY2V9IGZyb20gXCIuL3dvcmQtZWRpdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtub3RpZnlTdWNjZXNzLCB2YWxpZGF0ZUdyb3VwfSBmcm9tIFwiLi4vLi4vdXRpbC91dGlsc1wiO1xyXG5pbXBvcnQge1NlY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2VjdGlvbi9zZWN0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnMtd29yZC1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JkLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29yZC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtXb3JkRWRpdG9yU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmRFZGl0b3JDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVuYW50OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjbGFzc05hbWU6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIG9pZDogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGVDbGFzc05hbWU6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHRlbXBsYXRlTnVtYmVyQXR0cmlidXRlOiBhbnkgPSAndGVtcGxhdGVOdW1iZXInO1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGVGaWxlQXR0cmlidXRlOiBhbnkgPSAndGVtcGxhdGVGaWxlJztcclxuICBASW5wdXQoKVxyXG4gIHRlbXBsYXRlQ29uZmlnQXR0cmlidXRlOiBhbnkgPSAndGVtcGxhdGVDb25maWcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGFyYW1zPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGFiVmlld0NvbnRhaW5lclJlZiE6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dQdWxsVGVtcGxhdGVCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1B1bGxEYXRhQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dDYWxjQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dWYWxpZGF0ZUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBzaG93R2VuZXJhdGVGaWxlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIGdlbmVyYXRlRmlsZUF0dHJpYnV0ZTogYW55ID0gJ2ZpbGUnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25TYXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkdlbmVyYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBwcm90ZWN0ZWQgc2VjdGlvbnM6IGFueTtcclxuICBwcm90ZWN0ZWQgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoJ3ZhbGlkYXRvcicpIHZhbGlkYXRvciE6IER4VmFsaWRhdGlvbkdyb3VwQ29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2VydmljZTogU2VjdGlvblNlcnZpY2UsIHByaXZhdGUgd29yZEVkaXRvclNlcnZpY2U6IFdvcmRFZGl0b3JTZXJ2aWNlLCBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMub2lkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZS50ZW5hbnQgPSB0aGlzLnRlbmFudDtcclxuICAgIHRoaXMuc2VydmljZS50ZW1wbGF0ZUNsYXNzTmFtZSA9IHRoaXMudGVtcGxhdGVDbGFzc05hbWU7XHJcbiAgICB0aGlzLnNlcnZpY2UuaW5zdGFuY2VDbGFzc05hbWUgPSB0aGlzLmNsYXNzTmFtZTtcclxuICAgIHRoaXMuc2VydmljZS5pbnN0YW5jZU9pZCA9IHRoaXMub2lkO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnBhcmFtcyA9IHRoaXMucGFyYW1zO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnRhYlZpZXdDb250YWluZXJSZWYgPSB0aGlzLnRhYlZpZXdDb250YWluZXJSZWY7XHJcbiAgICB0aGlzLnNlcnZpY2UucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5O1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2UubG9hZFRlbXBsYXRlKHRoaXMudGVuYW50LFxyXG4gICAgICB0aGlzLmNsYXNzTmFtZSxcclxuICAgICAgdGhpcy5vaWQsXHJcbiAgICAgIHRoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGUpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIHRoaXMuc2VjdGlvbnMgPSByZXNwb25zZS5zZWN0aW9ucyB8fCBbXTtcclxuICAgICAgdGhpcy5zZXJ2aWNlLm1hcmtzID0gcmVzcG9uc2UubWFya3M7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc2VydmljZS52YWx1ZVVwZGF0ZWQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc2VydmljZS52YWx1ZUNoYW5nZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1bGxUZW1wbGF0ZSgpIHtcclxuICAgIGlmIChjb25maXJtKCfor6Xmk43kvZzkvJrmuIXpmaTlt7LlvZXlhaXnmoTmlbDmja7vvIznoa7lrprph43mlrDmi4nlj5bmqKHmnb/phY3nva7vvJ8nKSkge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLndvcmRFZGl0b3JTZXJ2aWNlLnJlbG9hZFRlbXBsYXRlKHRoaXMudGVuYW50LFxyXG4gICAgICAgIHRoaXMuY2xhc3NOYW1lLFxyXG4gICAgICAgIHRoaXMub2lkLFxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVDbGFzc05hbWUsXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZU51bWJlckF0dHJpYnV0ZSxcclxuICAgICAgICB0aGlzLnRlbXBsYXRlRmlsZUF0dHJpYnV0ZSxcclxuICAgICAgICB0aGlzLnRlbXBsYXRlQ29uZmlnQXR0cmlidXRlKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvbnMgPSByZXNwb25zZS5kYXRhPy5zZWN0aW9ucyB8fCBbXTtcclxuICAgICAgICB0aGlzLnNlcnZpY2UubWFya3MgPSByZXNwb25zZS5kYXRhLm1hcmtzO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1bGxEYXRhKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2UucHVsbERhdGEodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLm9pZCwge1xyXG4gICAgICBtYXJrczogSlNPTi5zdHJpbmdpZnkodGhpcy5zZXJ2aWNlLm1hcmtzKVxyXG4gICAgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgZm9yIChsZXQgbWFyayBvZiB0aGlzLnNlcnZpY2UubWFya3MpIHtcclxuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YS5oYXNPd25Qcm9wZXJ0eShtYXJrLm5hbWUpKSB7XHJcbiAgICAgICAgICBtYXJrLnZhbHVlID0gcmVzcG9uc2UuZGF0YVttYXJrLm5hbWVdO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlcnZpY2UudmFsdWVVcGRhdGVkLmVtaXQoKTtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnZhbHVlQ2hhbmdlZC5lbWl0KCk7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBub3RpZnlTdWNjZXNzKCfmi4nlj5blrozmiJAnKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FsYygpIHtcclxuXHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZSgpIHtcclxuICAgIHZhbGlkYXRlR3JvdXAodGhpcy52YWxpZGF0b3IpLnRoZW4oKTtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5zYXZlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy5vaWQsIHtcclxuICAgICAgW3RoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGVdOiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbnMsXHJcbiAgICAgICAgbWFya3M6IHRoaXMuc2VydmljZS5tYXJrc1xyXG4gICAgICB9KVxyXG4gICAgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgbm90aWZ5U3VjY2Vzcygn5L+d5a2Y5oiQ5YqfJyk7XHJcbiAgICAgICAgdGhpcy5vblNhdmVkLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUZpbGUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5nZW5lcmF0ZUZpbGUoXHJcbiAgICAgIHRoaXMudGVuYW50LFxyXG4gICAgICB0aGlzLmNsYXNzTmFtZSxcclxuICAgICAgdGhpcy5vaWQsXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVGaWxlQXR0cmlidXRlIHx8ICdmaWxlJyxcclxuICAgICAgdGhpcy50ZW1wbGF0ZUZpbGVBdHRyaWJ1dGUsXHJcbiAgICAgIHRoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGUsXHJcbiAgICAgIHtcclxuICAgICAgICBbdGhpcy50ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZV06IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLFxyXG4gICAgICAgICAgbWFya3M6IHRoaXMuc2VydmljZS5tYXJrc1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH0pLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+eUn+aIkOmZhOS7tuaIkOWKnycpO1xyXG4gICAgICAgIHRoaXMub25HZW5lcmF0ZWQuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGR4LWxvYWQtcGFuZWwgW2NvbnRhaW5lcl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiIFtzaG93UGFuZV09XCJmYWxzZVwiIFt2aXNpYmxlXT1cImxvYWRpbmdcIj5cclxuICA8ZHhvLXBvc2l0aW9uIFtvZl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiPjwvZHhvLXBvc2l0aW9uPlxyXG48L2R4LWxvYWQtcGFuZWw+XHJcbjxkaXYgKm5nSWY9XCIhcmVhZG9ubHlcIiBjbGFzcz1cImJhciBoZWFkZXJcIj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd1B1bGxUZW1wbGF0ZUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuabtOaWsOaooeadv1wiIChvbkNsaWNrKT1cInB1bGxUZW1wbGF0ZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dQdWxsRGF0YUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuWhq+WFheaVsOaNrlwiIChvbkNsaWNrKT1cInB1bGxEYXRhKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuICA8IS0tICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd0NhbGNCdXR0b25cIiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLmiafooYzorqHnrpdcIiAob25DbGljayk9XCJjYWxjKClcIlxyXG4gICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPi0tPlxyXG4gIDxkeC1idXR0b24gKm5nSWY9XCJzaG93VmFsaWRhdGVCdXR0b25cIiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLmiafooYzmoKHpqoxcIiAob25DbGljayk9XCJ2YWxpZGF0ZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbjwvZGl2PlxyXG48ZHgtdmFsaWRhdGlvbi1ncm91cCBbY2xhc3MudmFsaWRhdGlvbi1ncm91cF09XCJ0cnVlXCIgI3ZhbGlkYXRvcj5cclxuICA8ZGl2IGNsYXNzPVwidmlld2VyLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInZpZXdlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHNlY3Rpb25zXCI+XHJcbiAgICAgICAgPHJzLXNlY3Rpb24gW3NlY3Rpb25dPVwic2VjdGlvblwiPjwvcnMtc2VjdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9keC12YWxpZGF0aW9uLWdyb3VwPlxyXG48ZGl2IGNsYXNzPVwiYmFyIGZvb3RlclwiPlxyXG4gIDxkeC1idXR0b24gKm5nSWY9XCIhcmVhZG9ubHlcIiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLkv53lrZhcIiAob25DbGljayk9XCJzYXZlKClcIiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxyXG4gIDxkeC1idXR0b24gKm5nSWY9XCIhcmVhZG9ubHkgJiYgc2hvd0dlbmVyYXRlRmlsZUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIueUn+aIkOmZhOS7tlwiIChvbkNsaWNrKT1cImdlbmVyYXRlRmlsZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dDbG9zZUJ1dHRvblwiIHR5cGU9XCJub3JtYWxcIiB0ZXh0PVwi5YWz6ZetXCIgKG9uQ2xpY2spPVwib25DbG9zZWQuZW1pdCgpXCI+PC9keC1idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvd29yZC93b3JkLWVkaXRvci93b3JkLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy93b3JkL3dvcmQtZWRpdG9yL3dvcmQtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0FBUzlELE1BQU0sT0FBTyxtQkFBbUI7SUFtRDlCLFlBQXNCLE9BQXVCLEVBQVUsaUJBQW9DLEVBQVksZ0JBQWtDO1FBQW5ILFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQVUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFZLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF2Q3pJLDRCQUF1QixHQUFRLGdCQUFnQixDQUFDO1FBRWhELDBCQUFxQixHQUFRLGNBQWMsQ0FBQztRQUU1Qyw0QkFBdUIsR0FBUSxnQkFBZ0IsQ0FBQztRQUVoRCwwQkFBcUIsR0FBUSxNQUFNLENBQUM7UUFNcEMsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO1FBRTlCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUUxQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2Qix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFMUIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFdEIsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO1FBRTlCLG9C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RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEeFZhbGlkYXRpb25Hcm91cENvbXBvbmVudH0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhci91aS92YWxpZGF0aW9uLWdyb3VwXCI7XHJcbmltcG9ydCB7V29yZEVkaXRvclNlcnZpY2V9IGZyb20gXCIuL3dvcmQtZWRpdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtub3RpZnlTdWNjZXNzLCB2YWxpZGF0ZUdyb3VwfSBmcm9tIFwiLi4vLi4vdXRpbC91dGlsc1wiO1xyXG5pbXBvcnQge1NlY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vc2VjdGlvbi9zZWN0aW9uLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnMtd29yZC1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JkLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29yZC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtXb3JkRWRpdG9yU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmRFZGl0b3JDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVuYW50OiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjbGFzc05hbWU6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIG9pZDogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGVDbGFzc05hbWU6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGRlZmF1bHRUZW1wbGF0ZU51bWJlcjogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGVOdW1iZXJBdHRyaWJ1dGU6IGFueSA9ICd0ZW1wbGF0ZU51bWJlcic7XHJcbiAgQElucHV0KClcclxuICB0ZW1wbGF0ZUZpbGVBdHRyaWJ1dGU6IGFueSA9ICd0ZW1wbGF0ZUZpbGUnO1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVtcGxhdGVDb25maWdBdHRyaWJ1dGU6IGFueSA9ICd0ZW1wbGF0ZUNvbmZpZyc7XHJcbiAgQElucHV0KClcclxuICBnZW5lcmF0ZUZpbGVBdHRyaWJ1dGU6IGFueSA9ICdmaWxlJztcclxuICBASW5wdXQoKVxyXG4gIHBhcmFtcz86IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHRhYlZpZXdDb250YWluZXJSZWYhOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBzaG93UHVsbFRlbXBsYXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dQdWxsRGF0YUJ1dHRvbiA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBzaG93Q2FsY0J1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1ZhbGlkYXRlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dTYXZlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIHNob3dHZW5lcmF0ZUZpbGVCdXR0b24gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcclxuICBASW5wdXQoKVxyXG4gIGdlbmVyYXRlVG9UZW1wID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uU2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkdlbmVyYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIHByb3RlY3RlZCBzZWN0aW9uczogYW55O1xyXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgndmFsaWRhdG9yJykgdmFsaWRhdG9yITogRHhWYWxpZGF0aW9uR3JvdXBDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXJ2aWNlOiBTZWN0aW9uU2VydmljZSwgcHJpdmF0ZSB3b3JkRWRpdG9yU2VydmljZTogV29yZEVkaXRvclNlcnZpY2UsIHByb3RlY3RlZCB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5vaWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLnRlbmFudCA9IHRoaXMudGVuYW50O1xyXG4gICAgdGhpcy5zZXJ2aWNlLnRlbXBsYXRlQ2xhc3NOYW1lID0gdGhpcy50ZW1wbGF0ZUNsYXNzTmFtZTtcclxuICAgIHRoaXMuc2VydmljZS5pbnN0YW5jZUNsYXNzTmFtZSA9IHRoaXMuY2xhc3NOYW1lO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmluc3RhbmNlT2lkID0gdGhpcy5vaWQ7XHJcbiAgICB0aGlzLnNlcnZpY2UucGFyYW1zID0gdGhpcy5wYXJhbXM7XHJcbiAgICB0aGlzLnNlcnZpY2UudGFiVmlld0NvbnRhaW5lclJlZiA9IHRoaXMudGFiVmlld0NvbnRhaW5lclJlZjtcclxuICAgIHRoaXMuc2VydmljZS5yZWFkb25seSA9IHRoaXMucmVhZG9ubHk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5sb2FkVGVtcGxhdGUodGhpcy50ZW5hbnQsXHJcbiAgICAgIHRoaXMuY2xhc3NOYW1lLFxyXG4gICAgICB0aGlzLm9pZCxcclxuICAgICAgdGhpcy50ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5zZWN0aW9ucyA9IHJlc3BvbnNlLnNlY3Rpb25zIHx8IFtdO1xyXG4gICAgICB0aGlzLnNlcnZpY2UubWFya3MgPSByZXNwb25zZS5tYXJrcztcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gdGhpcy5zZXJ2aWNlLnZhbHVlVXBkYXRlZC51bnN1YnNjcmliZSgpO1xyXG4gICAgLy8gdGhpcy5zZXJ2aWNlLnZhbHVlQ2hhbmdlZC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVsbFRlbXBsYXRlKCkge1xyXG4gICAgaWYgKGNvbmZpcm0oJ+ivpeaTjeS9nOS8mua4hemZpOW3suW9leWFpeeahOaVsOaNru+8jOehruWumumHjeaWsOaLieWPluaooeadv+mFjee9ru+8nycpKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2UucmVsb2FkVGVtcGxhdGUodGhpcy50ZW5hbnQsXHJcbiAgICAgICAgdGhpcy5jbGFzc05hbWUsXHJcbiAgICAgICAgdGhpcy5vaWQsXHJcbiAgICAgICAgdGhpcy50ZW1wbGF0ZUNsYXNzTmFtZSxcclxuICAgICAgICB0aGlzLmRlZmF1bHRUZW1wbGF0ZU51bWJlcixcclxuICAgICAgICB0aGlzLnRlbXBsYXRlTnVtYmVyQXR0cmlidXRlLFxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVGaWxlQXR0cmlidXRlLFxyXG4gICAgICAgIHRoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGUpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9ucyA9IHJlc3BvbnNlLmRhdGE/LnNlY3Rpb25zIHx8IFtdO1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5tYXJrcyA9IHJlc3BvbnNlLmRhdGEubWFya3M7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVsbERhdGEoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5wdWxsRGF0YSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMub2lkLCB7XHJcbiAgICAgIG1hcmtzOiBKU09OLnN0cmluZ2lmeSh0aGlzLnNlcnZpY2UubWFya3MpXHJcbiAgICB9KS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICBmb3IgKGxldCBtYXJrIG9mIHRoaXMuc2VydmljZS5tYXJrcykge1xyXG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmhhc093blByb3BlcnR5KG1hcmsubmFtZSkpIHtcclxuICAgICAgICAgIG1hcmsudmFsdWUgPSByZXNwb25zZS5kYXRhW21hcmsubmFtZV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VydmljZS52YWx1ZVVwZGF0ZWQuZW1pdCgpO1xyXG4gICAgICB0aGlzLnNlcnZpY2UudmFsdWVDaGFuZ2VkLmVtaXQoKTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+aLieWPluWujOaIkCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYWxjKCkge1xyXG5cclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKCkge1xyXG4gICAgdmFsaWRhdGVHcm91cCh0aGlzLnZhbGlkYXRvcikudGhlbigpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBtb2RlbCA9IHtcclxuICAgICAgW3RoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGVdOiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgc2VjdGlvbnM6IHRoaXMuc2VjdGlvbnMsXHJcbiAgICAgICAgbWFya3M6IHRoaXMuc2VydmljZS5tYXJrc1xyXG4gICAgICB9KVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmdlbmVyYXRlVG9UZW1wKSB7XHJcbiAgICAgIG5vdGlmeVN1Y2Nlc3MoJ+S/neWtmOaIkOWKnycpO1xyXG4gICAgICB0aGlzLm9uU2F2ZWQuZW1pdChtb2RlbCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMud29yZEVkaXRvclNlcnZpY2Uuc2F2ZSh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMub2lkLCBtb2RlbCkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgbm90aWZ5U3VjY2Vzcygn5L+d5a2Y5oiQ5YqfJyk7XHJcbiAgICAgICAgdGhpcy5vblNhdmVkLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUZpbGUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JkRWRpdG9yU2VydmljZS5nZW5lcmF0ZUZpbGUoXHJcbiAgICAgIHRoaXMudGVuYW50LFxyXG4gICAgICB0aGlzLmNsYXNzTmFtZSxcclxuICAgICAgdGhpcy5vaWQsXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVGaWxlQXR0cmlidXRlIHx8ICdmaWxlJyxcclxuICAgICAgdGhpcy50ZW1wbGF0ZUZpbGVBdHRyaWJ1dGUsXHJcbiAgICAgIHRoaXMudGVtcGxhdGVDb25maWdBdHRyaWJ1dGUsXHJcbiAgICAgIHtcclxuICAgICAgICBbdGhpcy50ZW1wbGF0ZUNvbmZpZ0F0dHJpYnV0ZV06IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgIHNlY3Rpb25zOiB0aGlzLnNlY3Rpb25zLFxyXG4gICAgICAgICAgbWFya3M6IHRoaXMuc2VydmljZS5tYXJrc1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVUb1RlbXBcclxuICAgICkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgbm90aWZ5U3VjY2Vzcygn55Sf5oiQ6ZmE5Lu25oiQ5YqfJyk7XHJcbiAgICAgICAgaWYgKHRoaXMuZ2VuZXJhdGVUb1RlbXApIHtcclxuICAgICAgICAgIHRoaXMub25HZW5lcmF0ZWQuZW1pdChyZXNwb25zZS5kYXRhKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5vbkdlbmVyYXRlZC5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGR4LWxvYWQtcGFuZWwgW2NvbnRhaW5lcl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiIFtzaG93UGFuZV09XCJmYWxzZVwiIFt2aXNpYmxlXT1cImxvYWRpbmdcIj5cclxuICA8ZHhvLXBvc2l0aW9uIFtvZl09XCJ2aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudFwiPjwvZHhvLXBvc2l0aW9uPlxyXG48L2R4LWxvYWQtcGFuZWw+XHJcbjxkaXYgKm5nSWY9XCIhcmVhZG9ubHlcIiBjbGFzcz1cImJhciBoZWFkZXJcIj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd1B1bGxUZW1wbGF0ZUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuabtOaWsOaooeadv1wiIChvbkNsaWNrKT1cInB1bGxUZW1wbGF0ZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cInNob3dQdWxsRGF0YUJ1dHRvblwiIHR5cGU9XCJzdWNjZXNzXCIgdGV4dD1cIuWhq+WFheaVsOaNrlwiIChvbkNsaWNrKT1cInB1bGxEYXRhKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd0NhbGNCdXR0b25cIiB0eXBlPVwiZGVmYXVsdFwiIHRleHQ9XCLmiafooYzorqHnrpdcIiAob25DbGljayk9XCJjYWxjKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd1ZhbGlkYXRlQnV0dG9uXCIgdHlwZT1cImRlZmF1bHRcIiB0ZXh0PVwi5omn6KGM5qCh6aqMXCIgKG9uQ2xpY2spPVwidmFsaWRhdGUoKVwiXHJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiPjwvZHgtYnV0dG9uPlxyXG48L2Rpdj5cclxuPGR4LXZhbGlkYXRpb24tZ3JvdXAgW2NsYXNzLnZhbGlkYXRpb24tZ3JvdXBdPVwidHJ1ZVwiICN2YWxpZGF0b3I+XHJcbiAgPGRpdiBjbGFzcz1cInZpZXdlci1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ2aWV3ZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiBzZWN0aW9uc1wiPlxyXG4gICAgICAgIDxycy1zZWN0aW9uIFtzZWN0aW9uXT1cInNlY3Rpb25cIj48L3JzLXNlY3Rpb24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZHgtdmFsaWRhdGlvbi1ncm91cD5cclxuPGRpdiAqbmdJZj1cIiFyZWFkb25seSB8fCBzaG93Q2xvc2VCdXR0b25cIiBjbGFzcz1cImJhciBmb290ZXJcIj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwiIXJlYWRvbmx5ICYmIHNob3dTYXZlQnV0dG9uXCIgdHlwZT1cImRlZmF1bHRcIiB0ZXh0PVwi5L+d5a2YXCIgKG9uQ2xpY2spPVwic2F2ZSgpXCJcclxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCI+PC9keC1idXR0b24+XHJcbiAgPGR4LWJ1dHRvbiAqbmdJZj1cIiFyZWFkb25seSAmJiBzaG93R2VuZXJhdGVGaWxlQnV0dG9uXCIgdHlwZT1cInN1Y2Nlc3NcIiB0ZXh0PVwi55Sf5oiQ6ZmE5Lu2XCIgKG9uQ2xpY2spPVwiZ2VuZXJhdGVGaWxlKClcIlxyXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIj48L2R4LWJ1dHRvbj5cclxuICA8ZHgtYnV0dG9uICpuZ0lmPVwic2hvd0Nsb3NlQnV0dG9uXCIgdHlwZT1cIm5vcm1hbFwiIHRleHQ9XCLlhbPpl61cIiAob25DbGljayk9XCJvbkNsb3NlZC5lbWl0KClcIj48L2R4LWJ1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==