@c8y/ngx-components 1018.0.45 → 1018.0.47

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.
@@ -67,7 +67,7 @@ export declare class FilePickerNewComponent implements OnInit, AfterViewInit, Co
67
67
  ngAfterViewInit(): void;
68
68
  afterValueChanged(): void;
69
69
  onDrop(e: DragEvent): void;
70
- filesSelected(ev: any): void;
70
+ filesSelected(ev: Event): void;
71
71
  deleteAt(index: number): void;
72
72
  registerOnChange(fn: never): void;
73
73
  registerOnTouched(fn: never): void;
@@ -132,8 +132,10 @@ export class FilePickerNewComponent {
132
132
  this.afterValueChanged();
133
133
  }
134
134
  filesSelected(ev) {
135
- const files = Array.from(ev.target.files);
135
+ const inputElement = ev.target;
136
+ const files = Array.from(inputElement.files);
136
137
  this.droppedFiles.push(...files);
138
+ inputElement.value = null;
137
139
  this.afterValueChanged();
138
140
  }
139
141
  deleteAt(index) {
@@ -243,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
243
245
  function appendErrors(errors, newErrors) {
244
246
  return newErrors ? { ...errors, ...newErrors } : errors;
245
247
  }
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXItbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZmlsZS1waWNrZXItbmV3L2ZpbGUtcGlja2VyLW5ldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2ZpbGUtcGlja2VyLW5ldy9maWxlLXBpY2tlci1uZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixZQUFZLEVBRVosVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILE1BQU0sRUFDTixTQUFTLEVBQ1QsR0FBRyxFQUNILGNBQWMsRUFDZixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUdMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFNBQVMsRUFHVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVFsQzs7R0FFRztBQWtCSCxNQUFNLE9BQU8sc0JBQXNCO0lBbUVqQyxZQUFvQixZQUEwQixFQUE0QixRQUFrQjtRQUF4RSxpQkFB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Q2hFSCwrL0hBK0dBOzJGRDdDYSxzQkFBc0I7a0JBaEJsQyxTQUFTOytCQUNFLHFCQUFxQixhQUVwQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDO3lCQUN0RDtxQkFDRjs7MEJBcUVnRCxNQUFNOzJCQUFDLFFBQVE7NENBL0RoRSxlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQThCOUMsTUFBTTtzQkFETCxLQUFLO2dCQUdOLGVBQWU7c0JBRGQsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFHTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBR04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBR04sT0FBTztzQkFETixNQUFNO2dCQWdOUCxVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTTNDLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBeUR6QyxTQUFTLFlBQVksQ0FDbkIsTUFBd0IsRUFDeEIsU0FBa0M7SUFFbEMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgT25Jbml0LFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHNhbXBsZSxcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG4gIHdpdGhMYXRlc3RGcm9tXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIG1pbWVEQiBmcm9tICdtaW1lLWRiJztcbmltcG9ydCB7IEZpbGVzU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbGVQaWNrZXJWYWxpZGF0b3JzIH0gZnJvbSAnLi9maWxlLXBpY2tlci12YWxpZGF0b3JzJztcbmltcG9ydCB7IHZhbGlkYXRlQXJyYXlFbGVtZW50cyB9IGZyb20gJy4uL2Zvcm1zJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuJztcblxuaW50ZXJmYWNlIElBdmFpbGFibGVWYWxpZGF0b3JzIHtcbiAgZmlsZU1heFNpemU/OiBib29sZWFuO1xuICBmaWxlTm9uRW1wdHk/OiBib29sZWFuO1xuICBmaWxlTmFtZU1heExlbmd0aD86IGJvb2xlYW47XG59XG5cbi8qKlxuIEZpbGUgdXBsb2FkZXJcbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZmlsZS1waWNrZXItbmV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcGlja2VyLW5ldy5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsZVBpY2tlck5ld0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsZVBpY2tlck5ld0NvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVBpY2tlck5ld0NvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICBAVmlld0NoaWxkKCdmaWxlUGxhY2Vob2xkZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBmaWxlUGxhY2Vob2xkZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIC8qKiBTcGVjaWZpZXMgYSBmaWx0ZXIgZm9yIHdoYXQgZmlsZSB0eXBlcyB0aGUgdXNlciBjYW4gcGljayBmcm9tIHRoZSBmaWxlIGlucHV0IGRpYWxvZyBib3guXG4gICAqIEJ5IGRlZmF1bHQgYWxsIHR5cGVzIGFyZSBhY2NlcHRlZC5cbiAgICogIyMgRXhhbXBsZTpcbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGV4dGVuc2lvbnM6XG4gICAqIGBgYGh0bWxcbiAgICogIC4uLlxuICAgKiAgW2FjY2VwdF09XCInLnppcCwuN3onXCJcbiAgICogIC4uLlxuICAgKiBgYGBcbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGV4dGVuc2lvbnMgYW5kIGdlbmVyaWMgdHlwZXMgW0dFTkVSSUNfRklMRV9UWVBFXXtAbGluayBHRU5FUklDX0ZJTEVfVFlQRX06XG4gICAqIGBgYGh0bWxcbiAgICogIC4uLlxuICAgKiAgW2FjY2VwdF09XCInLnBkZixhcmNoaXZlJ1wiXG4gICAqICAuLi5cbiAgICogYGBgXG4gICAqXG4gICAqIFNwZWNpZnkgZmlsZSB0eXBlcyBieSBnZW5lcmljIHR5cGVzIFtHRU5FUklDX0ZJTEVfVFlQRV17QGxpbmsgR0VORVJJQ19GSUxFX1RZUEV9OlxuICAgKiAgYGBgaHRtbFxuICAgKiAgLi4uXG4gICAqICBbYWNjZXB0XT1cIidhcmNoaXZlLHZpZGVvJ1wiXG4gICAqICAuLi5cbiAgICpcbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKVxuICBhY2NlcHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIG1heEFsbG93ZWRGaWxlcz86IG51bWJlciA9IEluZmluaXR5O1xuICBASW5wdXQoKVxuICBtaW5SZXF1aXJlZEZpbGVzPzogbnVtYmVyID0gMTtcbiAgQElucHV0KClcbiAgZGlzYWJsZVZhbGlkYXRvcnM6IElBdmFpbGFibGVWYWxpZGF0b3JzID0ge307XG4gIEBJbnB1dCgpXG4gIHVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgQE91dHB1dCgpXG4gIGRyb3BwZWQ6IEV2ZW50RW1pdHRlcjxGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGRyb3BwZWRGaWxlczogRmlsZVtdID0gW107XG5cbiAgaXNEcmFnZ2luZ0ZpbGVzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNEcmFnZ2luZ092ZXJGaWxlUGxhY2Vob2xkZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0V4dGVuc2lvbkFsbG93ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0Ryb3BBcmVhRW5sYXJnZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0RyYWdnZWRGaWxlVW5zdXBwb3J0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhY2NlcHRlZEV4dHM6IHN0cmluZ1tdO1xuICB2YWxpZDogYm9vbGVhbjtcbiAgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzO1xuICBjb250cm9sSW5zdGFuY2U6IEFic3RyYWN0Q29udHJvbDtcbiAgLy8gVE9ETyBoYW5kbGUgY29udHJvbCBkaXNhYmxlZCBzdGF0ZVxuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgZGlzYWJsZWRWYWxpZGF0b3JzOiBJQXZhaWxhYmxlVmFsaWRhdG9ycyA9IHtcbiAgICBmaWxlTWF4U2l6ZTogZmFsc2UsXG4gICAgZmlsZU5vbkVtcHR5OiBmYWxzZSxcbiAgICBmaWxlTmFtZU1heExlbmd0aDogZmFsc2VcbiAgfTtcbiAgbG9hZGluZ01lc3NhZ2UgPSBnZXR0ZXh0KCdVcGxvYWQgaW4gcHJvZ3Jlc3MnKTtcbiAgcHJpdmF0ZSBpc0V4dGVuc2lvbkFsbG93ZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgZmlsZVNpemVMaW1pdDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsZXNTZXJ2aWNlOiBGaWxlc1NlcnZpY2UsIEBJbmplY3QoSW5qZWN0b3IpIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0PE5nQ29udHJvbCB8IGZhbHNlPihOZ0NvbnRyb2wsIGZhbHNlKTtcblxuICAgIGlmIChuZ0NvbnRyb2wgJiYgbmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbEluc3RhbmNlID0gbmdDb250cm9sLmNvbnRyb2w7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8qKlxuICAgICAgICogSW4gY2FzZSBpZiBjb21wb25lbnQgaXMgdXNlZCB3aXRob3V0IHV0aWxpemluZyBDb250cm9sVmFsdWVBY2Nlc3NvciwgaW50ZXJuYWwgY29udHJvbFxuICAgICAgICogaW5zdGFuY2UgaXMgY3JlYXRlZCwgc28gaXQgY2FuIHN0aWxsIGJlbmVmaXQgZnJvbSBidWlsdCBpbiB2YWxpZGF0b3JzLlxuICAgICAgICogKGRyb3BwZWQpIEBPdXRwdXQgZXZlbnQgY2FuIGJlIHVzZWQgdG8gZ2V0IGxpc3Qgb2YgZmlsZXMuXG4gICAgICAgKi9cbiAgICAgIHRoaXMuY29udHJvbEluc3RhbmNlID0gbmV3IEZvcm1Db250cm9sKFtdLCB0aGlzLnZhbGlkYXRlLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5vbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5jb250cm9sSW5zdGFuY2Uuc2V0VmFsdWUodGhpcy5kcm9wcGVkRmlsZXMpO1xuICAgICAgfTtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuY29udHJvbEluc3RhbmNlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH07XG4gICAgICB0aGlzLm9uVG91Y2hlZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5jb250cm9sSW5zdGFuY2UubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmFjY2VwdGVkRXh0cyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmV4dHJhY3RGaWxlRXh0ZW5zaW9ucyh0aGlzLmFjY2VwdCkubWFwKHQgPT4gYC4ke3R9YCk7XG5cbiAgICB0aGlzLmRpc2FibGVkVmFsaWRhdG9ycyA9IHsgLi4udGhpcy5kaXNhYmxlZFZhbGlkYXRvcnMsIC4uLnRoaXMuZGlzYWJsZVZhbGlkYXRvcnMgfTtcblxuICAgIHRoaXMuZmlsZXNTZXJ2aWNlLmxvYWRCeXRlc1NpemVMaW1pdCgpLnRoZW4oc2l6ZUxpbWl0ID0+IHtcbiAgICAgIHRoaXMuZmlsZVNpemVMaW1pdCA9IHNpemVMaW1pdDtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvKipcbiAgICAgKiBFbWl0cyBEcmFnRXZlbnQgd2hlbiB1c2VyIGRyYWcgZmlsZSBpbnNpZGUgb3Igb3V0c2lkZSB2aWV3cG9ydC4gT25seSB3b3JrcyB3aGVuIHR5cGUgb2YgZHJhZ2dlZCBlbGVtZW50cyBpcyAnRmlsZXMnLlxuICAgICAqL1xuICAgIGNvbnN0IGRyYWdnaW5nRmlsZXNHbG9iYWxseSQgPSBtZXJnZShcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2RyYWdlbnRlcicpLFxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnZHJhZ2xlYXZlJykucGlwZShcbiAgICAgICAgLy8gVE9ETyByZXZpZXcgd2h5IHRoaXMgc3BlY2lmaWMgZmlsdGVyIGlzIG5lZWRlZFxuICAgICAgICBmaWx0ZXIoKGU6IERyYWdFdmVudCkgPT4gZS5wYWdlWCA9PT0gMCAmJiBlLnBhZ2VZID09PSAwKVxuICAgICAgKVxuICAgICkucGlwZShcbiAgICAgIGZpbHRlcigoZXY6IERyYWdFdmVudCkgPT4gZXYuZGF0YVRyYW5zZmVyPy50eXBlcy50b1N0cmluZygpID09PSAnRmlsZXMnKSxcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy51cGxvYWRJblByb2dyZXNzKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBib29sZWFuIHZhbHVlIHdoZW4gZmlsZSBpcyBkcmFnZ2VkIGluc2lkZSBvciBvdXRzaWRlIG9mIHZpZXdwb3J0LCBvciBmaWxlIGlzIG5vdCBkcmFnZ2VkIGFueW1vcmUuXG4gICAgICovXG4gICAgdGhpcy5pc0RyYWdnaW5nRmlsZXMkID0gbWVyZ2UoXG4gICAgICBkcmFnZ2luZ0ZpbGVzR2xvYmFsbHkkLnBpcGUobWFwKGV2ID0+IGV2LnR5cGUgPT09ICdkcmFnZW50ZXInKSksXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZWVudGVyJykucGlwZShtYXAoKCkgPT4gZmFsc2UpKSxcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2Ryb3AnKS5waXBlKG1hcCgoKSA9PiBmYWxzZSkpXG4gICAgKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYm9vbGVhbiB2YWx1ZSBhZnRlciBjaGVja2luZyBpZiBkcmFnZ2VkIGZpbGVzIG1hdGNoIGNvbmZpZ3VyZWQgZXh0ZW5zaW9ucyBsaXN0LFxuICAgICAqIFdoZW4gZHJhZ2dpbmcgb2YgZmlsZSBzdGFydHMsIGdldCBtaW1ldHlwZXMgb2YgZWFjaCBmaWxlLCBjb252ZXJ0IHRoZW0gdG8gcG9zc2libGUgZXh0ZW5zaW9ucyBsaXN0XG4gICAgICogdGhhdCBtYXkgYmUgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIG1pbWV0eXBlLCBhbmQgdGhlbiBjaGVjayBpZiBhbnkgb2YgdGhlc2UgZXh0ZW5zaW9ucyBtYXRjaCBjb25maWd1cmVkXG4gICAgICogZXh0ZW5zaW9ucyBhY2NlcHQgbGlzdC5cbiAgICAgKi9cbiAgICB0aGlzLmlzRXh0ZW5zaW9uQWxsb3dlZCQgPSBkcmFnZ2luZ0ZpbGVzR2xvYmFsbHkkLnBpcGUoXG4gICAgICBzYW1wbGUodGhpcy5pc0RyYWdnaW5nRmlsZXMkLnBpcGUoZmlsdGVyKGVubGFyZ2VkID0+IGVubGFyZ2VkKSkpLFxuICAgICAgc3dpdGNoTWFwKGV2ID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmFjY2VwdCkge1xuICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihldikucGlwZShcbiAgICAgICAgICBtYXAoZXYgPT4gWy4uLihldi5kYXRhVHJhbnNmZXIuaXRlbXMgYXMgdW5rbm93biBhcyBEYXRhVHJhbnNmZXJJdGVtW10pXSksXG4gICAgICAgICAgbWFwKGZpbGVzID0+XG4gICAgICAgICAgICBmaWxlcy5tYXAoZmlsZSA9PiAobWltZURCW2ZpbGUudHlwZV0uZXh0ZW5zaW9ucyBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZCkgfHwgWyd1bmtub3duJ10pXG4gICAgICAgICAgKSxcbiAgICAgICAgICBtYXAoZXh0ZW5zaW9uc0ZvckZpbGVzID0+XG4gICAgICAgICAgICBleHRlbnNpb25zRm9yRmlsZXMuZXZlcnkoZXh0ZW5zaW9uc0ZvckZpbGUgPT5cbiAgICAgICAgICAgICAgZXh0ZW5zaW9uc0ZvckZpbGUuc29tZShleHQgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVzU2VydmljZS5leHRyYWN0RmlsZUV4dGVuc2lvbnModGhpcy5hY2NlcHQpLmluY2x1ZGVzKGV4dClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgdGFwKGFsbG93ZWQgPT4ge1xuICAgICAgICB0aGlzLmlzRXh0ZW5zaW9uQWxsb3dlZCA9IGFsbG93ZWQ7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBJZiBGaWxlIGlzIGJlaW5nIGRyYWdnZWQgYW5kIGV4dGVuc2lvbnMgbWVldHMgcmVxdWlyZW1lbnRzLCB0aGVuIGRyb3AtYXJlYSBjYW4gYmUgZW5sYXJnZWQuXG4gICAgICovXG4gICAgdGhpcy5pc0Ryb3BBcmVhRW5sYXJnZWQkID0gdGhpcy5pc0RyYWdnaW5nRmlsZXMkLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmlzRXh0ZW5zaW9uQWxsb3dlZCQpLFxuICAgICAgbWFwKChbZmlsZURyYWdnZWQsIGV4dEFsbG93ZWRdKSA9PiBmaWxlRHJhZ2dlZCAmJiBleHRBbGxvd2VkKVxuICAgICk7XG5cbiAgICB0aGlzLmlzRHJhZ2dlZEZpbGVVbnN1cHBvcnRlZCQgPSB0aGlzLmlzRHJhZ2dpbmdGaWxlcyQucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaXNFeHRlbnNpb25BbGxvd2VkJCksXG4gICAgICBtYXAoKFtmaWxlRHJhZ2dlZCwgZXh0QWxsb3dlZF0pID0+IGZpbGVEcmFnZ2VkICYmICFleHRBbGxvd2VkKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB0cnVlIHdoZW4gZmlsZSBpcyBob3ZlcmluZyBhYm92ZSBkcm9wLWFyZWEuIE9ubHkgd29ya3Mgd2hlbiBpc0Ryb3BBcmVhRW5sYXJnZWQkIGFsc28gZW1pdHMgdHJ1ZS5cbiAgICAgKiBUaGlzIGlzIHdvcmthcm91bmQgZm9yIENTUyA6aG92ZXIgcHNldWRvLWNsYXNzIG5vdCB0cmlnZ2VyaW5nIHdoZW4gZHJhZ2dpbmcgZmlsZS5cbiAgICAgKi9cbiAgICB0aGlzLmlzRHJhZ2dpbmdPdmVyRmlsZVBsYWNlaG9sZGVyJCA9IG1lcmdlKFxuICAgICAgZnJvbUV2ZW50KHRoaXMuZmlsZVBsYWNlaG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdkcmFnZW50ZXInKSxcbiAgICAgIGZyb21FdmVudCh0aGlzLmZpbGVQbGFjZWhvbGRlci5uYXRpdmVFbGVtZW50LCAnZHJhZ2xlYXZlJyksXG4gICAgICBmcm9tRXZlbnQodGhpcy5maWxlUGxhY2Vob2xkZXIubmF0aXZlRWxlbWVudCwgJ2Ryb3AnKVxuICAgICkucGlwZShcbiAgICAgIGZpbHRlcigoZXY6IERyYWdFdmVudCkgPT4gZXYuZGF0YVRyYW5zZmVyPy50eXBlcy50b1N0cmluZygpID09PSAnRmlsZXMnKSxcbiAgICAgIG1hcChldiA9PiBldi50eXBlID09PSAnZHJhZ2VudGVyJyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmlzRHJvcEFyZWFFbmxhcmdlZCQpLFxuICAgICAgbWFwKChbZHJhZ2dpbmdPdmVyLCBkcm9wQXJlYUVubGFyZ2VkXSkgPT4gZHJhZ2dpbmdPdmVyICYmIGRyb3BBcmVhRW5sYXJnZWQpXG4gICAgKTtcbiAgfVxuXG4gIGFmdGVyVmFsdWVDaGFuZ2VkKCkge1xuICAgIHRoaXMub25DaGFuZ2UoWy4uLnRoaXMuZHJvcHBlZEZpbGVzXSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB0aGlzLmRyb3BwZWQuZW1pdChbLi4udGhpcy5kcm9wcGVkRmlsZXNdKTtcbiAgICB0aGlzLnZhbGlkID0gdGhpcy5jb250cm9sSW5zdGFuY2UudmFsaWQ7XG4gICAgdGhpcy5lcnJvcnMgPSB0aGlzLmNvbnRyb2xJbnN0YW5jZS5lcnJvcnM7XG4gIH1cblxuICBvbkRyb3AoZTogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmlzRXh0ZW5zaW9uQWxsb3dlZCB8fCB0aGlzLnVwbG9hZEluUHJvZ3Jlc3MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZS5kYXRhVHJhbnNmZXIudHlwZXMudG9TdHJpbmcoKSAhPT0gJ0ZpbGVzJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmaWxlcyA9IGUuZGF0YVRyYW5zZmVyLmZpbGVzO1xuICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuZHJvcHBlZEZpbGVzLnB1c2goZmlsZXMuaXRlbShpKSk7XG4gICAgfVxuICAgIHRoaXMuYWZ0ZXJWYWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG4gIGZpbGVzU2VsZWN0ZWQoZXYpIHtcbiAgICBjb25zdCBmaWxlczogRmlsZVtdID0gQXJyYXkuZnJvbShldi50YXJnZXQuZmlsZXMpO1xuICAgIHRoaXMuZHJvcHBlZEZpbGVzLnB1c2goLi4uZmlsZXMpO1xuICAgIHRoaXMuYWZ0ZXJWYWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG4gIGRlbGV0ZUF0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRyb3BwZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuYWZ0ZXJWYWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IG5ldmVyKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IG5ldmVyKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHdyaXRlVmFsdWUoZmlsZXM6IEZpbGVbXSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoIWZpbGVzKSB7XG4gICAgICBmaWxlcyA9IFtdO1xuICAgIH1cbiAgICB0aGlzLmRyb3BwZWRGaWxlcyA9IFsuLi5maWxlc107XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmRyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgb25EcmFnT3ZlcihlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmRyb3AnLCBbJyRldmVudCddKVxuICBvbldpbmRvd0Ryb3AoZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBsZXQgZXJyb3JzID0ge307XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZVZhbGlkYXRvcnMuZmlsZU1heFNpemUpIHtcbiAgICAgIGVycm9ycyA9IGFwcGVuZEVycm9ycyhcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICB2YWxpZGF0ZUFycmF5RWxlbWVudHMoXG4gICAgICAgICAgRmlsZVBpY2tlclZhbGlkYXRvcnMuZmlsZU1heFNpemUodGhpcy5maWxlU2l6ZUxpbWl0LCB0aGlzLmZpbGVzU2VydmljZSlcbiAgICAgICAgKShjb250cm9sKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmRpc2FibGVWYWxpZGF0b3JzLmZpbGVOb25FbXB0eSkge1xuICAgICAgZXJyb3JzID0gYXBwZW5kRXJyb3JzKFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIHZhbGlkYXRlQXJyYXlFbGVtZW50cyhGaWxlUGlja2VyVmFsaWRhdG9ycy5maWxlTm9uRW1wdHkodGhpcy5maWxlc1NlcnZpY2UpKShjb250cm9sKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmRpc2FibGVWYWxpZGF0b3JzLmZpbGVOYW1lTWF4TGVuZ3RoKSB7XG4gICAgICBlcnJvcnMgPSBhcHBlbmRFcnJvcnMoXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgdmFsaWRhdGVBcnJheUVsZW1lbnRzKEZpbGVQaWNrZXJWYWxpZGF0b3JzLmZpbGVOYW1lTWF4TGVuZ3RoKHRoaXMuZmlsZXNTZXJ2aWNlKSkoY29udHJvbClcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLmFjY2VwdCkge1xuICAgICAgZXJyb3JzID0gYXBwZW5kRXJyb3JzKFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIHZhbGlkYXRlQXJyYXlFbGVtZW50cyhcbiAgICAgICAgICBGaWxlUGlja2VyVmFsaWRhdG9ycy5oYXZlVmFsaWRFeHRlbnNpb25zKHRoaXMuZmlsZXNTZXJ2aWNlLCB0aGlzLmFjY2VwdClcbiAgICAgICAgKShjb250cm9sKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4QWxsb3dlZEZpbGVzKSB7XG4gICAgICBlcnJvcnMgPSBhcHBlbmRFcnJvcnMoXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgRmlsZVBpY2tlclZhbGlkYXRvcnMuZmlsZUNvdW50TWF4KHRoaXMubWF4QWxsb3dlZEZpbGVzKShjb250cm9sKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWluUmVxdWlyZWRGaWxlcykge1xuICAgICAgZXJyb3JzID0gYXBwZW5kRXJyb3JzKFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIEZpbGVQaWNrZXJWYWxpZGF0b3JzLmZpbGVDb3VudE1pbih0aGlzLm1pblJlcXVpcmVkRmlsZXMpKGNvbnRyb2wpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA/IGVycm9ycyA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlOiAoZmlsZXM6IEZpbGVbXSkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG4gIHByaXZhdGUgb25WYWxpZGF0b3JDaGFuZ2U6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGFwcGVuZEVycm9ycyhcbiAgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzLFxuICBuZXdFcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsXG4pOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgcmV0dXJuIG5ld0Vycm9ycyA/IHsgLi4uZXJyb3JzLCAuLi5uZXdFcnJvcnMgfSA6IGVycm9ycztcbn1cbiIsIjxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tMFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmaWxlLXBpY2tlci1kcm9wLXpvbmVcIlxuICAgIFtjbGFzcy5kcmFnZ2luZ109XCJpc0Ryb3BBcmVhRW5sYXJnZWQkIHwgYXN5bmNcIlxuICAgIFtjbGFzcy51bnN1cHBvcnRlZC1mb3JtYXRdPVwiaXNEcmFnZ2VkRmlsZVVuc3VwcG9ydGVkJCB8IGFzeW5jXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICA+XG4gICAgPGRpdlxuICAgICAgI2ZpbGVQbGFjZWhvbGRlclxuICAgICAgY2xhc3M9XCJmaWxlLXBsYWNlaG9sZGVyIHBvaW50ZXJcIlxuICAgICAgW2NsYXNzLmRyYWctb3Zlcl09XCJpc0RyYWdnaW5nT3ZlckZpbGVQbGFjZWhvbGRlciQgfCBhc3luY1wiXG4gICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwiIXVwbG9hZEluUHJvZ3Jlc3MgJiYgcGlja2VyLmNsaWNrKClcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc0RyYWdnZWRGaWxlVW5zdXBwb3J0ZWQkIHwgYXN5bmM7IGVsc2UgZGVmYXVsdEhpbnRcIlxuICAgICAgICBjbGFzcz1cImhpbnQtcGxhY2Vob2xkZXIgcG9pbnRlclwiXG4gICAgICA+XG4gICAgICAgIDxpIGM4eUljb249XCJ3YXJuaW5nXCIgY2xhc3M9XCJ3YXJuaW5nXCI+PC9pPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8YiB0cmFuc2xhdGU+VW5zdXBwb3J0ZWQgZmlsZSBmb3JtYXQuPC9iPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SGludD5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiF1cGxvYWRJblByb2dyZXNzXCIgY2xhc3M9XCJoaW50LXBsYWNlaG9sZGVyXCI+XG4gICAgICAgICAgPGkgYzh5SWNvbj1cInVwbG9hZFwiPjwvaT5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxiPnt7ICdEcm9wIGZpbGVzIGhlcmUgb3IgY2xpY2sgdG8gYnJvd3NlJyB8IHRyYW5zbGF0ZSB9fTwvYj5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgKm5nSWY9XCJhY2NlcHRcIiBjbGFzcz1cIm0tdC04IHRleHQtMTIgdGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAge3sgJ1N1cHBvcnRlZCBmaWxlIGZvcm1hdHM6JyB8IHRyYW5zbGF0ZSB9fSB7eyBhY2NlcHQgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktbWVzc2FnZXMgaGFzLWVycm9yIHAtYi04IHRleHQtbGVmdFwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBjb250cm9sSW5zdGFuY2UudG91Y2hlZCAmJiBjb250cm9sSW5zdGFuY2UuZXJyb3JzICYmIGNvbnRyb2xJbnN0YW5jZS5lcnJvcnNcbiAgICAgICAgICAgICAgICB8IGZpbHRlck5vbkFycmF5VmFsaWRhdGlvbkVycm9yc1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBlcnJvciBvZiBjb250cm9sSW5zdGFuY2UuZXJyb3JzIHwgZmlsdGVyTm9uQXJyYXlWYWxpZGF0aW9uRXJyb3JzIHwga2V5dmFsdWVcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS1jb250cm9sLWZlZWRiYWNrLW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICB7eyBlcnJvci5rZXkgfCBodW1hbml6ZVZhbGlkYXRpb25NZXNzYWdlIHwgdHJhbnNsYXRlOiBlcnJvci52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidXBsb2FkSW5Qcm9ncmVzc1wiIGNsYXNzPVwiZC1mbGV4IGQtY29sIHAtNCBmbGV4LWNlbnRlclwiPlxuICAgICAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgICAgICAgIDxwIGNsYXNzPVwibS10LWF1dG8gbS1iLWF1dG8gbS1yLTggdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIHt7IGxvYWRpbmdNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cbiAgICA8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGRyb3BwZWRGaWxlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gcC00IGEtaS1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cImZpbGUgfCBmaWxlSWNvblwiIGNsYXNzPVwiaWNvbi0yMCBtLXItOFwiPjwvaT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXItMTYgdGV4dC10cnVuY2F0ZVwiIFt0aXRsZV09XCJmaWxlLm5hbWVcIj5cbiAgICAgICAgICAgICAge3sgZmlsZS5uYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXItMTYgdGV4dC1ub3dyYXBcIj4oe3sgZmlsZS5zaXplIHwgYnl0ZXMgfX0pPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1sLWF1dG9cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXVwbG9hZEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVBdChpKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRvdCBidG4tZG90LS1kYW5nZXJcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ1JlbW92ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZG90IGJ0blwiICpuZ0lmPVwidXBsb2FkSW5Qcm9ncmVzc1wiIGRpc2FibGVkPVwiZGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiY2lyY2xlZC1ub3RjaFwiIGNsYXNzPVwiaWNvbi1zcGluXCI+PC9pPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgZXJyb3Igb2YgY29udHJvbEluc3RhbmNlLmVycm9ycyB8IGV4dHJhY3RBcnJheVZhbGlkYXRpb25FcnJvcnM6IGkgfCBrZXl2YWx1ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LW1lc3NhZ2VzIGhhcy1lcnJvciBwLWItMjRcIj5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS1jb250cm9sLWZlZWRiYWNrLW1lc3NhZ2UgbS0wXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtNnB4ICFpbXBvcnRhbnRcIj5cbiAgICAgICAgICAgICAgICB7eyBlcnJvci5rZXkgfCBodW1hbml6ZVZhbGlkYXRpb25NZXNzYWdlIHwgdHJhbnNsYXRlOiBlcnJvci52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgI3BpY2tlclxuICAgIChjaGFuZ2UpPVwiZmlsZXNTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICBbYWNjZXB0XT1cImFjY2VwdGVkRXh0c1wiXG4gICAgW211bHRpcGxlXT1cIm1heEFsbG93ZWRGaWxlcyA+IDFcIlxuICAgIHR5cGU9XCJmaWxlXCJcbiAgICBjbGFzcz1cImhpZGRlblwiXG4gICAgaWQ9XCJmaWxlXCJcbiAgLz5cbjwvYzh5LWZvcm0tZ3JvdXA+XG4iXX0=
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXItbmV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZmlsZS1waWNrZXItbmV3L2ZpbGUtcGlja2VyLW5ldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2ZpbGUtcGlja2VyLW5ldy9maWxlLXBpY2tlci1uZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixZQUFZLEVBRVosVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILE1BQU0sRUFDTixTQUFTLEVBQ1QsR0FBRyxFQUNILGNBQWMsRUFDZixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUdMLFdBQVcsRUFDWCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLFNBQVMsRUFHVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVFsQzs7R0FFRztBQWtCSCxNQUFNLE9BQU8sc0JBQXNCO0lBbUVqQyxZQUFvQixZQUEwQixFQUE0QixRQUFrQjtRQUF4RSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUE0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBaEM1RixvQkFBZSxHQUFZLFFBQVEsQ0FBQztRQUVwQyxxQkFBZ0IsR0FBWSxDQUFDLENBQUM7UUFFOUIsc0JBQWlCLEdBQXlCLEVBQUUsQ0FBQztRQUU3QyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsWUFBTyxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRW5ELGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBYTFCLHVCQUFrQixHQUF5QjtZQUN6QyxXQUFXLEVBQUUsS0FBSztZQUNsQixZQUFZLEVBQUUsS0FBSztZQUNuQixpQkFBaUIsRUFBRSxLQUFLO1NBQ3pCLENBQUM7UUFDRixtQkFBYyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBcVB2QyxhQUFRLEdBQTRCLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUNwRCxjQUFTLEdBQWUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hDLHNCQUFpQixHQUFlLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztJQW5QdUMsQ0FBQztJQUVoRyxRQUFRO1FBQ04sTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQW9CLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV6RSxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQztTQUMxQzthQUFNO1lBQ0w7Ozs7ZUFJRztZQUNILElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNuRCxDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxFQUFFO2dCQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDaEQsQ0FBQyxDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkMsQ0FBQyxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUzRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXBGLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7WUFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNiOztXQUVHO1FBQ0gsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLENBQ2xDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQ2hDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSTtRQUNuQyxpREFBaUQ7UUFDakQsTUFBTSxDQUFDLENBQUMsQ0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUN6RCxDQUNGLENBQUMsSUFBSSxDQUNKLE1BQU0sQ0FBQyxDQUFDLEVBQWEsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQ3hFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNyQyxDQUFDO1FBRUY7O1dBRUc7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUMzQixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQyxFQUMvRCxTQUFTLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDeEQsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ25ELENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUUvQjs7Ozs7V0FLRztRQUNILElBQUksQ0FBQyxtQkFBbUIsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFDaEUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2pCO1lBRUQsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNoQixHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUF1QyxDQUFDLENBQUMsRUFDeEUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQ1YsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBbUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQ3pGLEVBQ0QsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FDdkIsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FDM0MsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FDbkUsQ0FDRixDQUNGLENBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGOztXQUVHO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ25ELGNBQWMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDeEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUMsQ0FDOUQsQ0FBQztRQUVGLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUN6RCxjQUFjLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQ3hDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDL0QsQ0FBQztRQUVGOzs7V0FHRztRQUNILElBQUksQ0FBQyw4QkFBOEIsR0FBRyxLQUFLLENBQ3pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFDMUQsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxFQUMxRCxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQ3RELENBQUMsSUFBSSxDQUNKLE1BQU0sQ0FBQyxDQUFDLEVBQWEsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQ3hFLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEVBQ2xDLGNBQWMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFDeEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxJQUFJLGdCQUFnQixDQUFDLENBQzVFLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFZO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JELE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssT0FBTyxFQUFFO1lBQy9DLE9BQU87U0FDUjtRQUNELE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhLENBQUMsRUFBUztRQUNyQixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUMsTUFBMEIsQ0FBQztRQUNuRCxNQUFNLEtBQUssR0FBVyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQVM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQVM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFjO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFvQjtRQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUNaO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUdELFVBQVUsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHRCxZQUFZLENBQUMsQ0FBQztRQUNaLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQXdCO1FBQy9CLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVoQixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRTtZQUN2QyxNQUFNLEdBQUcsWUFBWSxDQUNuQixNQUFNLEVBQ04scUJBQXFCLENBQ25CLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FDeEUsQ0FBQyxPQUFPLENBQUMsQ0FDWCxDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRTtZQUN4QyxNQUFNLEdBQUcsWUFBWSxDQUNuQixNQUFNLEVBQ04scUJBQXFCLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUNyRixDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFO1lBQzdDLE1BQU0sR0FBRyxZQUFZLENBQ25CLE1BQU0sRUFDTixxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FDMUYsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsTUFBTSxHQUFHLFlBQVksQ0FDbkIsTUFBTSxFQUNOLHFCQUFxQixDQUNuQixvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FDekUsQ0FBQyxPQUFPLENBQUMsQ0FDWCxDQUFDO1NBQ0g7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsTUFBTSxHQUFHLFlBQVksQ0FDbkIsTUFBTSxFQUNOLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQ2pFLENBQUM7U0FDSDtRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE1BQU0sR0FBRyxZQUFZLENBQ25CLE1BQU0sRUFDTixvQkFBb0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQ2xFLENBQUM7U0FDSDtRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUM7O21IQWxUVSxzQkFBc0IsOENBbUV1QixRQUFRO3VHQW5FckQsc0JBQXNCLDhXQWJ0QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO1lBQ3JELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztTQUN0RDtLQUNGLDRKQ2hFSCwrL0hBK0dBOzJGRDdDYSxzQkFBc0I7a0JBaEJsQyxTQUFTOytCQUNFLHFCQUFxQixhQUVwQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzs0QkFDckQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDO3lCQUN0RDtxQkFDRjs7MEJBcUVnRCxNQUFNOzJCQUFDLFFBQVE7NENBL0RoRSxlQUFlO3NCQURkLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQThCOUMsTUFBTTtzQkFETCxLQUFLO2dCQUdOLGVBQWU7c0JBRGQsS0FBSztnQkFHTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFHTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBR04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBR04sT0FBTztzQkFETixNQUFNO2dCQWtOUCxVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTTNDLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBeUR6QyxTQUFTLFlBQVksQ0FDbkIsTUFBd0IsRUFDeEIsU0FBa0M7SUFFbEMsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgT25Jbml0LFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIHNhbXBsZSxcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG4gIHdpdGhMYXRlc3RGcm9tXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIG1pbWVEQiBmcm9tICdtaW1lLWRiJztcbmltcG9ydCB7IEZpbGVzU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIE5nQ29udHJvbCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbGVQaWNrZXJWYWxpZGF0b3JzIH0gZnJvbSAnLi9maWxlLXBpY2tlci12YWxpZGF0b3JzJztcbmltcG9ydCB7IHZhbGlkYXRlQXJyYXlFbGVtZW50cyB9IGZyb20gJy4uL2Zvcm1zJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuJztcblxuaW50ZXJmYWNlIElBdmFpbGFibGVWYWxpZGF0b3JzIHtcbiAgZmlsZU1heFNpemU/OiBib29sZWFuO1xuICBmaWxlTm9uRW1wdHk/OiBib29sZWFuO1xuICBmaWxlTmFtZU1heExlbmd0aD86IGJvb2xlYW47XG59XG5cbi8qKlxuIEZpbGUgdXBsb2FkZXJcbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZmlsZS1waWNrZXItbmV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtcGlja2VyLW5ldy5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsZVBpY2tlck5ld0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRmlsZVBpY2tlck5ld0NvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVBpY2tlck5ld0NvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvclxue1xuICBAVmlld0NoaWxkKCdmaWxlUGxhY2Vob2xkZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBmaWxlUGxhY2Vob2xkZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIC8qKiBTcGVjaWZpZXMgYSBmaWx0ZXIgZm9yIHdoYXQgZmlsZSB0eXBlcyB0aGUgdXNlciBjYW4gcGljayBmcm9tIHRoZSBmaWxlIGlucHV0IGRpYWxvZyBib3guXG4gICAqIEJ5IGRlZmF1bHQgYWxsIHR5cGVzIGFyZSBhY2NlcHRlZC5cbiAgICogIyMgRXhhbXBsZTpcbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGV4dGVuc2lvbnM6XG4gICAqIGBgYGh0bWxcbiAgICogIC4uLlxuICAgKiAgW2FjY2VwdF09XCInLnppcCwuN3onXCJcbiAgICogIC4uLlxuICAgKiBgYGBcbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGV4dGVuc2lvbnMgYW5kIGdlbmVyaWMgdHlwZXMgW0dFTkVSSUNfRklMRV9UWVBFXXtAbGluayBHRU5FUklDX0ZJTEVfVFlQRX06XG4gICAqIGBgYGh0bWxcbiAgICogIC4uLlxuICAgKiAgW2FjY2VwdF09XCInLnBkZixhcmNoaXZlJ1wiXG4gICAqICAuLi5cbiAgICogYGBgXG4gICAqXG4gICAqIFNwZWNpZnkgZmlsZSB0eXBlcyBieSBnZW5lcmljIHR5cGVzIFtHRU5FUklDX0ZJTEVfVFlQRV17QGxpbmsgR0VORVJJQ19GSUxFX1RZUEV9OlxuICAgKiAgYGBgaHRtbFxuICAgKiAgLi4uXG4gICAqICBbYWNjZXB0XT1cIidhcmNoaXZlLHZpZGVvJ1wiXG4gICAqICAuLi5cbiAgICpcbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKVxuICBhY2NlcHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIG1heEFsbG93ZWRGaWxlcz86IG51bWJlciA9IEluZmluaXR5O1xuICBASW5wdXQoKVxuICBtaW5SZXF1aXJlZEZpbGVzPzogbnVtYmVyID0gMTtcbiAgQElucHV0KClcbiAgZGlzYWJsZVZhbGlkYXRvcnM6IElBdmFpbGFibGVWYWxpZGF0b3JzID0ge307XG4gIEBJbnB1dCgpXG4gIHVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgQE91dHB1dCgpXG4gIGRyb3BwZWQ6IEV2ZW50RW1pdHRlcjxGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGRyb3BwZWRGaWxlczogRmlsZVtdID0gW107XG5cbiAgaXNEcmFnZ2luZ0ZpbGVzJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaXNEcmFnZ2luZ092ZXJGaWxlUGxhY2Vob2xkZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0V4dGVuc2lvbkFsbG93ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0Ryb3BBcmVhRW5sYXJnZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBpc0RyYWdnZWRGaWxlVW5zdXBwb3J0ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhY2NlcHRlZEV4dHM6IHN0cmluZ1tdO1xuICB2YWxpZDogYm9vbGVhbjtcbiAgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzO1xuICBjb250cm9sSW5zdGFuY2U6IEFic3RyYWN0Q29udHJvbDtcbiAgLy8gVE9ETyBoYW5kbGUgY29udHJvbCBkaXNhYmxlZCBzdGF0ZVxuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgZGlzYWJsZWRWYWxpZGF0b3JzOiBJQXZhaWxhYmxlVmFsaWRhdG9ycyA9IHtcbiAgICBmaWxlTWF4U2l6ZTogZmFsc2UsXG4gICAgZmlsZU5vbkVtcHR5OiBmYWxzZSxcbiAgICBmaWxlTmFtZU1heExlbmd0aDogZmFsc2VcbiAgfTtcbiAgbG9hZGluZ01lc3NhZ2UgPSBnZXR0ZXh0KCdVcGxvYWQgaW4gcHJvZ3Jlc3MnKTtcbiAgcHJpdmF0ZSBpc0V4dGVuc2lvbkFsbG93ZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgZmlsZVNpemVMaW1pdDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsZXNTZXJ2aWNlOiBGaWxlc1NlcnZpY2UsIEBJbmplY3QoSW5qZWN0b3IpIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0PE5nQ29udHJvbCB8IGZhbHNlPihOZ0NvbnRyb2wsIGZhbHNlKTtcblxuICAgIGlmIChuZ0NvbnRyb2wgJiYgbmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMuY29udHJvbEluc3RhbmNlID0gbmdDb250cm9sLmNvbnRyb2w7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8qKlxuICAgICAgICogSW4gY2FzZSBpZiBjb21wb25lbnQgaXMgdXNlZCB3aXRob3V0IHV0aWxpemluZyBDb250cm9sVmFsdWVBY2Nlc3NvciwgaW50ZXJuYWwgY29udHJvbFxuICAgICAgICogaW5zdGFuY2UgaXMgY3JlYXRlZCwgc28gaXQgY2FuIHN0aWxsIGJlbmVmaXQgZnJvbSBidWlsdCBpbiB2YWxpZGF0b3JzLlxuICAgICAgICogKGRyb3BwZWQpIEBPdXRwdXQgZXZlbnQgY2FuIGJlIHVzZWQgdG8gZ2V0IGxpc3Qgb2YgZmlsZXMuXG4gICAgICAgKi9cbiAgICAgIHRoaXMuY29udHJvbEluc3RhbmNlID0gbmV3IEZvcm1Db250cm9sKFtdLCB0aGlzLnZhbGlkYXRlLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5vbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5jb250cm9sSW5zdGFuY2Uuc2V0VmFsdWUodGhpcy5kcm9wcGVkRmlsZXMpO1xuICAgICAgfTtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuY29udHJvbEluc3RhbmNlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH07XG4gICAgICB0aGlzLm9uVG91Y2hlZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5jb250cm9sSW5zdGFuY2UubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmFjY2VwdGVkRXh0cyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmV4dHJhY3RGaWxlRXh0ZW5zaW9ucyh0aGlzLmFjY2VwdCkubWFwKHQgPT4gYC4ke3R9YCk7XG5cbiAgICB0aGlzLmRpc2FibGVkVmFsaWRhdG9ycyA9IHsgLi4udGhpcy5kaXNhYmxlZFZhbGlkYXRvcnMsIC4uLnRoaXMuZGlzYWJsZVZhbGlkYXRvcnMgfTtcblxuICAgIHRoaXMuZmlsZXNTZXJ2aWNlLmxvYWRCeXRlc1NpemVMaW1pdCgpLnRoZW4oc2l6ZUxpbWl0ID0+IHtcbiAgICAgIHRoaXMuZmlsZVNpemVMaW1pdCA9IHNpemVMaW1pdDtcbiAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvKipcbiAgICAgKiBFbWl0cyBEcmFnRXZlbnQgd2hlbiB1c2VyIGRyYWcgZmlsZSBpbnNpZGUgb3Igb3V0c2lkZSB2aWV3cG9ydC4gT25seSB3b3JrcyB3aGVuIHR5cGUgb2YgZHJhZ2dlZCBlbGVtZW50cyBpcyAnRmlsZXMnLlxuICAgICAqL1xuICAgIGNvbnN0IGRyYWdnaW5nRmlsZXNHbG9iYWxseSQgPSBtZXJnZShcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2RyYWdlbnRlcicpLFxuICAgICAgZnJvbUV2ZW50KGRvY3VtZW50LCAnZHJhZ2xlYXZlJykucGlwZShcbiAgICAgICAgLy8gVE9ETyByZXZpZXcgd2h5IHRoaXMgc3BlY2lmaWMgZmlsdGVyIGlzIG5lZWRlZFxuICAgICAgICBmaWx0ZXIoKGU6IERyYWdFdmVudCkgPT4gZS5wYWdlWCA9PT0gMCAmJiBlLnBhZ2VZID09PSAwKVxuICAgICAgKVxuICAgICkucGlwZShcbiAgICAgIGZpbHRlcigoZXY6IERyYWdFdmVudCkgPT4gZXYuZGF0YVRyYW5zZmVyPy50eXBlcy50b1N0cmluZygpID09PSAnRmlsZXMnKSxcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy51cGxvYWRJblByb2dyZXNzKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBib29sZWFuIHZhbHVlIHdoZW4gZmlsZSBpcyBkcmFnZ2VkIGluc2lkZSBvciBvdXRzaWRlIG9mIHZpZXdwb3J0LCBvciBmaWxlIGlzIG5vdCBkcmFnZ2VkIGFueW1vcmUuXG4gICAgICovXG4gICAgdGhpcy5pc0RyYWdnaW5nRmlsZXMkID0gbWVyZ2UoXG4gICAgICBkcmFnZ2luZ0ZpbGVzR2xvYmFsbHkkLnBpcGUobWFwKGV2ID0+IGV2LnR5cGUgPT09ICdkcmFnZW50ZXInKSksXG4gICAgICBmcm9tRXZlbnQoZG9jdW1lbnQsICdtb3VzZWVudGVyJykucGlwZShtYXAoKCkgPT4gZmFsc2UpKSxcbiAgICAgIGZyb21FdmVudChkb2N1bWVudCwgJ2Ryb3AnKS5waXBlKG1hcCgoKSA9PiBmYWxzZSkpXG4gICAgKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYm9vbGVhbiB2YWx1ZSBhZnRlciBjaGVja2luZyBpZiBkcmFnZ2VkIGZpbGVzIG1hdGNoIGNvbmZpZ3VyZWQgZXh0ZW5zaW9ucyBsaXN0LFxuICAgICAqIFdoZW4gZHJhZ2dpbmcgb2YgZmlsZSBzdGFydHMsIGdldCBtaW1ldHlwZXMgb2YgZWFjaCBmaWxlLCBjb252ZXJ0IHRoZW0gdG8gcG9zc2libGUgZXh0ZW5zaW9ucyBsaXN0XG4gICAgICogdGhhdCBtYXkgYmUgYXNzb2NpYXRlZCB3aXRoIGdpdmVuIG1pbWV0eXBlLCBhbmQgdGhlbiBjaGVjayBpZiBhbnkgb2YgdGhlc2UgZXh0ZW5zaW9ucyBtYXRjaCBjb25maWd1cmVkXG4gICAgICogZXh0ZW5zaW9ucyBhY2NlcHQgbGlzdC5cbiAgICAgKi9cbiAgICB0aGlzLmlzRXh0ZW5zaW9uQWxsb3dlZCQgPSBkcmFnZ2luZ0ZpbGVzR2xvYmFsbHkkLnBpcGUoXG4gICAgICBzYW1wbGUodGhpcy5pc0RyYWdnaW5nRmlsZXMkLnBpcGUoZmlsdGVyKGVubGFyZ2VkID0+IGVubGFyZ2VkKSkpLFxuICAgICAgc3dpdGNoTWFwKGV2ID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmFjY2VwdCkge1xuICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvZihldikucGlwZShcbiAgICAgICAgICBtYXAoZXYgPT4gWy4uLihldi5kYXRhVHJhbnNmZXIuaXRlbXMgYXMgdW5rbm93biBhcyBEYXRhVHJhbnNmZXJJdGVtW10pXSksXG4gICAgICAgICAgbWFwKGZpbGVzID0+XG4gICAgICAgICAgICBmaWxlcy5tYXAoZmlsZSA9PiAobWltZURCW2ZpbGUudHlwZV0uZXh0ZW5zaW9ucyBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZCkgfHwgWyd1bmtub3duJ10pXG4gICAgICAgICAgKSxcbiAgICAgICAgICBtYXAoZXh0ZW5zaW9uc0ZvckZpbGVzID0+XG4gICAgICAgICAgICBleHRlbnNpb25zRm9yRmlsZXMuZXZlcnkoZXh0ZW5zaW9uc0ZvckZpbGUgPT5cbiAgICAgICAgICAgICAgZXh0ZW5zaW9uc0ZvckZpbGUuc29tZShleHQgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVzU2VydmljZS5leHRyYWN0RmlsZUV4dGVuc2lvbnModGhpcy5hY2NlcHQpLmluY2x1ZGVzKGV4dClcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgdGFwKGFsbG93ZWQgPT4ge1xuICAgICAgICB0aGlzLmlzRXh0ZW5zaW9uQWxsb3dlZCA9IGFsbG93ZWQ7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBJZiBGaWxlIGlzIGJlaW5nIGRyYWdnZWQgYW5kIGV4dGVuc2lvbnMgbWVldHMgcmVxdWlyZW1lbnRzLCB0aGVuIGRyb3AtYXJlYSBjYW4gYmUgZW5sYXJnZWQuXG4gICAgICovXG4gICAgdGhpcy5pc0Ryb3BBcmVhRW5sYXJnZWQkID0gdGhpcy5pc0RyYWdnaW5nRmlsZXMkLnBpcGUoXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmlzRXh0ZW5zaW9uQWxsb3dlZCQpLFxuICAgICAgbWFwKChbZmlsZURyYWdnZWQsIGV4dEFsbG93ZWRdKSA9PiBmaWxlRHJhZ2dlZCAmJiBleHRBbGxvd2VkKVxuICAgICk7XG5cbiAgICB0aGlzLmlzRHJhZ2dlZEZpbGVVbnN1cHBvcnRlZCQgPSB0aGlzLmlzRHJhZ2dpbmdGaWxlcyQucGlwZShcbiAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaXNFeHRlbnNpb25BbGxvd2VkJCksXG4gICAgICBtYXAoKFtmaWxlRHJhZ2dlZCwgZXh0QWxsb3dlZF0pID0+IGZpbGVEcmFnZ2VkICYmICFleHRBbGxvd2VkKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB0cnVlIHdoZW4gZmlsZSBpcyBob3ZlcmluZyBhYm92ZSBkcm9wLWFyZWEuIE9ubHkgd29ya3Mgd2hlbiBpc0Ryb3BBcmVhRW5sYXJnZWQkIGFsc28gZW1pdHMgdHJ1ZS5cbiAgICAgKiBUaGlzIGlzIHdvcmthcm91bmQgZm9yIENTUyA6aG92ZXIgcHNldWRvLWNsYXNzIG5vdCB0cmlnZ2VyaW5nIHdoZW4gZHJhZ2dpbmcgZmlsZS5cbiAgICAgKi9cbiAgICB0aGlzLmlzRHJhZ2dpbmdPdmVyRmlsZVBsYWNlaG9sZGVyJCA9IG1lcmdlKFxuICAgICAgZnJvbUV2ZW50KHRoaXMuZmlsZVBsYWNlaG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdkcmFnZW50ZXInKSxcbiAgICAgIGZyb21FdmVudCh0aGlzLmZpbGVQbGFjZWhvbGRlci5uYXRpdmVFbGVtZW50LCAnZHJhZ2xlYXZlJyksXG4gICAgICBmcm9tRXZlbnQodGhpcy5maWxlUGxhY2Vob2xkZXIubmF0aXZlRWxlbWVudCwgJ2Ryb3AnKVxuICAgICkucGlwZShcbiAgICAgIGZpbHRlcigoZXY6IERyYWdFdmVudCkgPT4gZXYuZGF0YVRyYW5zZmVyPy50eXBlcy50b1N0cmluZygpID09PSAnRmlsZXMnKSxcbiAgICAgIG1hcChldiA9PiBldi50eXBlID09PSAnZHJhZ2VudGVyJyksXG4gICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmlzRHJvcEFyZWFFbmxhcmdlZCQpLFxuICAgICAgbWFwKChbZHJhZ2dpbmdPdmVyLCBkcm9wQXJlYUVubGFyZ2VkXSkgPT4gZHJhZ2dpbmdPdmVyICYmIGRyb3BBcmVhRW5sYXJnZWQpXG4gICAgKTtcbiAgfVxuXG4gIGFmdGVyVmFsdWVDaGFuZ2VkKCkge1xuICAgIHRoaXMub25DaGFuZ2UoWy4uLnRoaXMuZHJvcHBlZEZpbGVzXSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB0aGlzLmRyb3BwZWQuZW1pdChbLi4udGhpcy5kcm9wcGVkRmlsZXNdKTtcbiAgICB0aGlzLnZhbGlkID0gdGhpcy5jb250cm9sSW5zdGFuY2UudmFsaWQ7XG4gICAgdGhpcy5lcnJvcnMgPSB0aGlzLmNvbnRyb2xJbnN0YW5jZS5lcnJvcnM7XG4gIH1cblxuICBvbkRyb3AoZTogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmlzRXh0ZW5zaW9uQWxsb3dlZCB8fCB0aGlzLnVwbG9hZEluUHJvZ3Jlc3MpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZS5kYXRhVHJhbnNmZXIudHlwZXMudG9TdHJpbmcoKSAhPT0gJ0ZpbGVzJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmaWxlcyA9IGUuZGF0YVRyYW5zZmVyLmZpbGVzO1xuICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHRoaXMuZHJvcHBlZEZpbGVzLnB1c2goZmlsZXMuaXRlbShpKSk7XG4gICAgfVxuICAgIHRoaXMuYWZ0ZXJWYWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG4gIGZpbGVzU2VsZWN0ZWQoZXY6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXYudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZXM6IEZpbGVbXSA9IEFycmF5LmZyb20oaW5wdXRFbGVtZW50LmZpbGVzKTtcbiAgICB0aGlzLmRyb3BwZWRGaWxlcy5wdXNoKC4uLmZpbGVzKTtcbiAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSBudWxsO1xuICAgIHRoaXMuYWZ0ZXJWYWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG4gIGRlbGV0ZUF0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRyb3BwZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuYWZ0ZXJWYWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IG5ldmVyKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IG5ldmVyKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHdyaXRlVmFsdWUoZmlsZXM6IEZpbGVbXSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoIWZpbGVzKSB7XG4gICAgICBmaWxlcyA9IFtdO1xuICAgIH1cbiAgICB0aGlzLmRyb3BwZWRGaWxlcyA9IFsuLi5maWxlc107XG4gICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmRyYWdvdmVyJywgWyckZXZlbnQnXSlcbiAgb25EcmFnT3ZlcihlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmRyb3AnLCBbJyRldmVudCddKVxuICBvbldpbmRvd0Ryb3AoZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBsZXQgZXJyb3JzID0ge307XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZVZhbGlkYXRvcnMuZmlsZU1heFNpemUpIHtcbiAgICAgIGVycm9ycyA9IGFwcGVuZEVycm9ycyhcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICB2YWxpZGF0ZUFycmF5RWxlbWVudHMoXG4gICAgICAgICAgRmlsZVBpY2tlclZhbGlkYXRvcnMuZmlsZU1heFNpemUodGhpcy5maWxlU2l6ZUxpbWl0LCB0aGlzLmZpbGVzU2VydmljZSlcbiAgICAgICAgKShjb250cm9sKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmRpc2FibGVWYWxpZGF0b3JzLmZpbGVOb25FbXB0eSkge1xuICAgICAgZXJyb3JzID0gYXBwZW5kRXJyb3JzKFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIHZhbGlkYXRlQXJyYXlFbGVtZW50cyhGaWxlUGlja2VyVmFsaWRhdG9ycy5maWxlTm9uRW1wdHkodGhpcy5maWxlc1NlcnZpY2UpKShjb250cm9sKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmRpc2FibGVWYWxpZGF0b3JzLmZpbGVOYW1lTWF4TGVuZ3RoKSB7XG4gICAgICBlcnJvcnMgPSBhcHBlbmRFcnJvcnMoXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgdmFsaWRhdGVBcnJheUVsZW1lbnRzKEZpbGVQaWNrZXJWYWxpZGF0b3JzLmZpbGVOYW1lTWF4TGVuZ3RoKHRoaXMuZmlsZXNTZXJ2aWNlKSkoY29udHJvbClcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLmFjY2VwdCkge1xuICAgICAgZXJyb3JzID0gYXBwZW5kRXJyb3JzKFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIHZhbGlkYXRlQXJyYXlFbGVtZW50cyhcbiAgICAgICAgICBGaWxlUGlja2VyVmFsaWRhdG9ycy5oYXZlVmFsaWRFeHRlbnNpb25zKHRoaXMuZmlsZXNTZXJ2aWNlLCB0aGlzLmFjY2VwdClcbiAgICAgICAgKShjb250cm9sKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4QWxsb3dlZEZpbGVzKSB7XG4gICAgICBlcnJvcnMgPSBhcHBlbmRFcnJvcnMoXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgRmlsZVBpY2tlclZhbGlkYXRvcnMuZmlsZUNvdW50TWF4KHRoaXMubWF4QWxsb3dlZEZpbGVzKShjb250cm9sKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWluUmVxdWlyZWRGaWxlcykge1xuICAgICAgZXJyb3JzID0gYXBwZW5kRXJyb3JzKFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIEZpbGVQaWNrZXJWYWxpZGF0b3JzLmZpbGVDb3VudE1pbih0aGlzLm1pblJlcXVpcmVkRmlsZXMpKGNvbnRyb2wpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhlcnJvcnMpLmxlbmd0aCA/IGVycm9ycyA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlOiAoZmlsZXM6IEZpbGVbXSkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG4gIHByaXZhdGUgb25WYWxpZGF0b3JDaGFuZ2U6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGFwcGVuZEVycm9ycyhcbiAgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzLFxuICBuZXdFcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsXG4pOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgcmV0dXJuIG5ld0Vycm9ycyA/IHsgLi4uZXJyb3JzLCAuLi5uZXdFcnJvcnMgfSA6IGVycm9ycztcbn1cbiIsIjxjOHktZm9ybS1ncm91cCBjbGFzcz1cIm0tMFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmaWxlLXBpY2tlci1kcm9wLXpvbmVcIlxuICAgIFtjbGFzcy5kcmFnZ2luZ109XCJpc0Ryb3BBcmVhRW5sYXJnZWQkIHwgYXN5bmNcIlxuICAgIFtjbGFzcy51bnN1cHBvcnRlZC1mb3JtYXRdPVwiaXNEcmFnZ2VkRmlsZVVuc3VwcG9ydGVkJCB8IGFzeW5jXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICA+XG4gICAgPGRpdlxuICAgICAgI2ZpbGVQbGFjZWhvbGRlclxuICAgICAgY2xhc3M9XCJmaWxlLXBsYWNlaG9sZGVyIHBvaW50ZXJcIlxuICAgICAgW2NsYXNzLmRyYWctb3Zlcl09XCJpc0RyYWdnaW5nT3ZlckZpbGVQbGFjZWhvbGRlciQgfCBhc3luY1wiXG4gICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAoY2xpY2spPVwiIXVwbG9hZEluUHJvZ3Jlc3MgJiYgcGlja2VyLmNsaWNrKClcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc0RyYWdnZWRGaWxlVW5zdXBwb3J0ZWQkIHwgYXN5bmM7IGVsc2UgZGVmYXVsdEhpbnRcIlxuICAgICAgICBjbGFzcz1cImhpbnQtcGxhY2Vob2xkZXIgcG9pbnRlclwiXG4gICAgICA+XG4gICAgICAgIDxpIGM4eUljb249XCJ3YXJuaW5nXCIgY2xhc3M9XCJ3YXJuaW5nXCI+PC9pPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8YiB0cmFuc2xhdGU+VW5zdXBwb3J0ZWQgZmlsZSBmb3JtYXQuPC9iPlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SGludD5cbiAgICAgICAgPGRpdiAqbmdJZj1cIiF1cGxvYWRJblByb2dyZXNzXCIgY2xhc3M9XCJoaW50LXBsYWNlaG9sZGVyXCI+XG4gICAgICAgICAgPGkgYzh5SWNvbj1cInVwbG9hZFwiPjwvaT5cbiAgICAgICAgICA8cD5cbiAgICAgICAgICAgIDxiPnt7ICdEcm9wIGZpbGVzIGhlcmUgb3IgY2xpY2sgdG8gYnJvd3NlJyB8IHRyYW5zbGF0ZSB9fTwvYj5cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPHAgKm5nSWY9XCJhY2NlcHRcIiBjbGFzcz1cIm0tdC04IHRleHQtMTIgdGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAge3sgJ1N1cHBvcnRlZCBmaWxlIGZvcm1hdHM6JyB8IHRyYW5zbGF0ZSB9fSB7eyBhY2NlcHQgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjOHktbWVzc2FnZXMgaGFzLWVycm9yIHAtYi04IHRleHQtbGVmdFwiXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBjb250cm9sSW5zdGFuY2UudG91Y2hlZCAmJiBjb250cm9sSW5zdGFuY2UuZXJyb3JzICYmIGNvbnRyb2xJbnN0YW5jZS5lcnJvcnNcbiAgICAgICAgICAgICAgICB8IGZpbHRlck5vbkFycmF5VmFsaWRhdGlvbkVycm9yc1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgIGxldCBlcnJvciBvZiBjb250cm9sSW5zdGFuY2UuZXJyb3JzIHwgZmlsdGVyTm9uQXJyYXlWYWxpZGF0aW9uRXJyb3JzIHwga2V5dmFsdWVcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS1jb250cm9sLWZlZWRiYWNrLW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICB7eyBlcnJvci5rZXkgfCBodW1hbml6ZVZhbGlkYXRpb25NZXNzYWdlIHwgdHJhbnNsYXRlOiBlcnJvci52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidXBsb2FkSW5Qcm9ncmVzc1wiIGNsYXNzPVwiZC1mbGV4IGQtY29sIHAtNCBmbGV4LWNlbnRlclwiPlxuICAgICAgICAgIDxjOHktbG9hZGluZz48L2M4eS1sb2FkaW5nPlxuICAgICAgICAgIDxwIGNsYXNzPVwibS10LWF1dG8gbS1iLWF1dG8gbS1yLTggdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIHt7IGxvYWRpbmdNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cbiAgICA8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGRyb3BwZWRGaWxlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gcC00IGEtaS1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxpIFtjOHlJY29uXT1cImZpbGUgfCBmaWxlSWNvblwiIGNsYXNzPVwiaWNvbi0yMCBtLXItOFwiPjwvaT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXItMTYgdGV4dC10cnVuY2F0ZVwiIFt0aXRsZV09XCJmaWxlLm5hbWVcIj5cbiAgICAgICAgICAgICAge3sgZmlsZS5uYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLXItMTYgdGV4dC1ub3dyYXBcIj4oe3sgZmlsZS5zaXplIHwgYnl0ZXMgfX0pPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1sLWF1dG9cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXVwbG9hZEluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVBdChpKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRvdCBidG4tZG90LS1kYW5nZXJcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1JlbW92ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ1JlbW92ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZG90IGJ0blwiICpuZ0lmPVwidXBsb2FkSW5Qcm9ncmVzc1wiIGRpc2FibGVkPVwiZGlzYWJsZWRcIj5cbiAgICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiY2lyY2xlZC1ub3RjaFwiIGNsYXNzPVwiaWNvbi1zcGluXCI+PC9pPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgZXJyb3Igb2YgY29udHJvbEluc3RhbmNlLmVycm9ycyB8IGV4dHJhY3RBcnJheVZhbGlkYXRpb25FcnJvcnM6IGkgfCBrZXl2YWx1ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYzh5LW1lc3NhZ2VzIGhhcy1lcnJvciBwLWItMjRcIj5cbiAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiZm9ybS1jb250cm9sLWZlZWRiYWNrLW1lc3NhZ2UgbS0wXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAtNnB4ICFpbXBvcnRhbnRcIj5cbiAgICAgICAgICAgICAgICB7eyBlcnJvci5rZXkgfCBodW1hbml6ZVZhbGlkYXRpb25NZXNzYWdlIHwgdHJhbnNsYXRlOiBlcnJvci52YWx1ZSB9fVxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgI3BpY2tlclxuICAgIChjaGFuZ2UpPVwiZmlsZXNTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICBbYWNjZXB0XT1cImFjY2VwdGVkRXh0c1wiXG4gICAgW211bHRpcGxlXT1cIm1heEFsbG93ZWRGaWxlcyA+IDFcIlxuICAgIHR5cGU9XCJmaWxlXCJcbiAgICBjbGFzcz1cImhpZGRlblwiXG4gICAgaWQ9XCJmaWxlXCJcbiAgLz5cbjwvYzh5LWZvcm0tZ3JvdXA+XG4iXX0=
@@ -20624,8 +20624,10 @@ class FilePickerNewComponent {
20624
20624
  this.afterValueChanged();
20625
20625
  }
20626
20626
  filesSelected(ev) {
20627
- const files = Array.from(ev.target.files);
20627
+ const inputElement = ev.target;
20628
+ const files = Array.from(inputElement.files);
20628
20629
  this.droppedFiles.push(...files);
20630
+ inputElement.value = null;
20629
20631
  this.afterValueChanged();
20630
20632
  }
20631
20633
  deleteAt(index) {