ca-components 1.8.23 → 1.8.25

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.
@@ -207,6 +207,7 @@ export class InputTestComponent extends InputCommandMixin(InputHelperMixin(Input
207
207
  }
208
208
  }
209
209
  onPopoverHidden() {
210
+ this.blurInput.emit(true);
210
211
  if (!this._inputConfig.dropdownLabel) {
211
212
  this.isFocusInput = false;
212
213
  }
@@ -334,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
334
335
  type: Output,
335
336
  args: ['dropDownKeyNavigation']
336
337
  }] } });
337
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1pbnB1dC10ZXN0L2lucHV0LXRlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQtdGVzdC9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFJSCxVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTFDLE9BQU8sRUFBb0IsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzNELFFBQVE7QUFDUixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRFLFFBQVE7QUFDUixPQUFPLEVBQ0gsY0FBYyxFQUNkLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsY0FBYyxFQUNkLGtDQUFrQyxFQUNsQyw2QkFBNkIsRUFDN0IsYUFBYSxFQUNiLGNBQWMsRUFDZCxhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixrQkFBa0IsR0FDckIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUNILFNBQVMsRUFDVCxtQkFBbUIsR0FFdEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTztBQUNQLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHekMsYUFBYTtBQUNiLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzdILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXhFLGFBQWE7QUFDYixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFakYsUUFBUTtBQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTFFLFNBQVM7QUFDVCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7QUFHL0QsTUFBTSxTQUFTO0lBQWY7UUFHVyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFHbkMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0Isc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBS2hDLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFHaEMsQ0FBQztJQUZVLFFBQVEsQ0FBQyxDQUFNLElBQVMsQ0FBQztJQUN6QixpQ0FBaUMsQ0FBQyxDQUFtQixJQUFTLENBQUM7Q0FDekU7QUErQ0QsTUFBTSxPQUFPLGtCQUNULFNBQVEsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFrQnRELElBQWEsV0FBVyxDQUFDLE1BQWdCO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFnREQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFDK0IsU0FBb0IsRUFDeEMsS0FBd0IsRUFDZixXQUEyQixFQUMzQixxQkFBNEM7UUFFNUQsS0FBSyxFQUFFLENBQUM7UUFMbUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN4QyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBekV6RCxlQUFVLEdBQXFCLEVBQUUsQ0FBQztRQUVqQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVoQyxtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQWtCOUIsZ0NBQTJCLEdBQ2hDLElBQUksWUFBWSxFQUFRLENBQUM7UUFFSCxtQkFBYyxHQUNwQyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRVgsY0FBUyxHQUMxQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ1Ysb0JBQWUsR0FDakMsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUNqQixnQkFBVyxHQUN6QixJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUNqQixpQkFBWSxHQUNoQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNyQixvQkFBZSxHQUM1QixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRWhDLFdBQVc7UUFDaUIsMEJBQXFCLEdBQzdDLElBQUksWUFBWSxFQUFXLENBQUM7UUFDQywrQkFBMEIsR0FHdEQsSUFBSSxZQUFZLEVBR2pCLENBQUM7UUFFTCxTQUFTO1FBQ08sb0JBQWUsR0FBRyxJQUFJLGlCQUFpQixDQUNuRCxJQUFJLEVBQ0osSUFBSSxDQUFDLFlBQVksQ0FDcEIsQ0FBQztRQUVLLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLHNCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ2xDLDZCQUF3QixHQUFHLHdCQUF3QixDQUFDO1FBRTNELFdBQVc7UUFDSixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFhckMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZTtRQUNYLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFeEQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVM7Z0JBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRTVDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7cUJBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUM5QixTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNaLElBQ0ksSUFBSSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQzVCLFVBQVUsQ0FBQyxRQUFRLENBQ3RCLEVBQ0gsQ0FBQzt3QkFDQyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7d0JBQ2pELElBQUksQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztvQkFDM0MsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLENBQUM7b0JBQzNDLENBQUM7b0JBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDWixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLENBQUM7NEJBQy9CLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7NEJBQ3hCLElBQUksQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUM7Z0NBQ2pDLFNBQVMsRUFBRSxJQUFJOzZCQUNsQixDQUFDLENBQUM7d0JBQ1AsQ0FBQzs2QkFBTSxDQUFDOzRCQUNKLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7NEJBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLENBQUM7Z0NBQ2pDLFNBQVMsRUFBRSxJQUFJOzZCQUNsQixDQUFDLENBQUM7d0JBQ1AsQ0FBQztvQkFDTCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ1YsQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDMUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNqRCxJQUFJLENBQUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLENBQUM7Z0JBQzNDLENBQUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDO3dCQUNqQyxTQUFTLEVBQUUsSUFBSTtxQkFDbEIsQ0FBQyxDQUFDO2dCQUNQLENBQUM7cUJBQU0sQ0FBQztvQkFDSixJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLHNCQUFzQixDQUFDO3dCQUNqQyxTQUFTLEVBQUUsSUFBSTtxQkFDbEIsQ0FBQyxDQUFDO2dCQUNQLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBTztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBYztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sVUFBVSxDQUFDLEdBQXFCO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLGVBQWU7UUFFMUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLHVDQUF1QztRQUN2RixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyx1Q0FBdUM7UUFDakUsQ0FBQztRQUVELElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCO1lBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsa0JBQWtCO1FBRTFGLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUztZQUM3RCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRWxELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZO1FBQ3BCLE1BQU0sS0FBSyxHQUFJLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztRQUN2RCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsdUNBQXVDO1FBQ3ZGLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLHVDQUF1QztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsa0JBQWtCO1FBRS9DLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDO1FBQ3BDLENBQUM7SUFDTCxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQVk7UUFDMUIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsaUNBQWlDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVlLGlDQUFpQyxDQUFDLEtBQXVCO1FBQ3JFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQzlDLDREQUE0RDtZQUM1RCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFpQjtRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQWlCO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFTSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQzdCLENBQUM7SUFDTCxDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQVk7UUFDaEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNuRCxDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWU7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7SUFDL0IsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE1BQWU7UUFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztJQUNwQyxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWE7UUFDekIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFvQjtRQUNyQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDekIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzsrR0E5UFEsa0JBQWtCO21HQUFsQixrQkFBa0IseXpCQVloQiwrQkFBK0IsdUVDaEs5QyxzNFlBa1dBO2dCRHZQUSxVQUFVO2dCQUNWLFlBQVksNEhBQ1osU0FBUyxzV0FDVCxvQkFBb0IsZ09BQ3BCLGFBQWE7Z0JBRWIsUUFBUTtnQkFDUixjQUFjLDhDQUNkLHVCQUF1Qix1REFDdkIsY0FBYyw4Q0FDZCw2QkFBNkIsNkRBQzdCLHVCQUF1Qix1REFDdkIsY0FBYyw4Q0FDZCxTQUFTLHlDQUVULGtDQUFrQyx1RUFDbEMsaUJBQWlCLDhFQUNqQixhQUFhLDZDQUNiLGtCQUFrQixrREFDbEIscUJBQXFCLHFEQUNyQiwyQkFBMkI7Z0JBRTNCLGFBQWE7Z0JBQ2Isc0JBQXNCLHVGQUN0QixvQkFBb0IsaUZBQ3BCLGFBQWEsa0RBQ2IsaUJBQWlCLHVGQUNqQix1QkFBdUI7Z0JBRXZCLGFBQWE7Z0JBQ2IscUJBQXFCLHFOQUNyQix1QkFBdUIscU9BQ3ZCLCtCQUErQix1VEFDL0Isd0JBQXdCLHdOQUN4Qix3QkFBd0IsOEpBQ3hCLGtCQUFrQjs7NEZBTWIsa0JBQWtCO2tCQTdDOUIsU0FBUzsrQkFDSSxlQUFlLGNBQ2IsSUFBSSxXQUNQO3dCQUNMLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixTQUFTO3dCQUNULG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFFYixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLDZCQUE2Qjt3QkFDN0IsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLFNBQVM7d0JBQ1QsbUJBQW1CO3dCQUNuQixrQ0FBa0M7d0JBQ2xDLGlCQUFpQjt3QkFDakIsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsMkJBQTJCO3dCQUUzQixhQUFhO3dCQUNiLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUV2QixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QiwrQkFBK0I7d0JBQy9CLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixrQkFBa0I7cUJBQ3JCLGlCQUdjLGlCQUFpQixDQUFDLElBQUk7OzBCQTRFaEMsUUFBUTs7MEJBQUksSUFBSTswSUFqRVosZUFBZTtzQkFBdkIsS0FBSztnQkFFeUMsWUFBWTtzQkFBMUQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVwQywrQkFBK0I7c0JBRDlCLFNBQVM7dUJBQUMsK0JBQStCO2dCQUdqQyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLDBCQUEwQjtzQkFBbEMsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLDJCQUEyQjtzQkFEbkMsTUFBTTt1QkFBQyw2QkFBNkI7Z0JBSVgsY0FBYztzQkFBdkMsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBR0gsU0FBUztzQkFBN0IsTUFBTTt1QkFBQyxXQUFXO2dCQUVHLGVBQWU7c0JBQXBDLE1BQU07dUJBQUMsWUFBWTtnQkFFRixXQUFXO3NCQUE1QixNQUFNO3VCQUFDLFFBQVE7Z0JBRVEsWUFBWTtzQkFBbkMsTUFBTTt1QkFBQyxjQUFjO2dCQUVMLGVBQWU7c0JBQS9CLE1BQU07dUJBQUMsT0FBTztnQkFJYSxxQkFBcUI7c0JBQWhELE1BQU07dUJBQUMsa0JBQWtCO2dCQUVPLDBCQUEwQjtzQkFBMUQsTUFBTTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBOZ0NvbnRyb2wsXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IElucHV0Q2hhbmdlVmFsdWUsIElucHV0U3ZnUm91dGVzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBDb21tYW5kc0V2ZW50LCBMYWJlbENvbG9yIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vLyBlbXVtc1xuaW1wb3J0IHsgSW5wdXRDb21tYW5kc1R5cGUsIElucHV0U3RyaW5nRW51bSB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgRHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtIH0gZnJvbSAnLi4vY2EtaW5wdXQtZHJvcGRvd24vZW51bXMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHtcbiAgICBJbnB1dENsYXNzUGlwZSxcbiAgICBJbnB1dENvbnRhaW5lckNsYXNzUGlwZSxcbiAgICBJbnB1dERyb3Bkb3duQXJyb3dDbGFzc1BpcGUsXG4gICAgSW5wdXRFcnJvclBpcGUsXG4gICAgSW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzUGlwZSxcbiAgICBJbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzUGlwZSxcbiAgICBJbnB1dFR5cGVQaXBlLFxuICAgIExhYmVsQ2xhc3NQaXBlLFxuICAgIFNob3dDbGVhclBpcGUsXG4gICAgU2hvd0Ryb3Bkb3duQXJyb3dQaXBlLFxuICAgIFNob3dQbGFjZWhvbGRlclRleHRQaXBlLFxuICAgIFNob3dWYWxpZENoZWNrUGlwZSxcbn0gZnJvbSAnLi9waXBlcyc7XG5pbXBvcnQge1xuICAgIENhU3ZnUGlwZSxcbiAgICBMb2FkU3RhdHVzQ29sb3JQaXBlLFxuICAgIFRob3VzYW5kU2VwYXJhdG9yUGlwZSxcbn0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuXG4vLyBtYXNrXG5pbXBvcnQgeyBOZ3hNYXNrTW9kdWxlIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgTmd4TWFza1NlcnZpY2UgfSBmcm9tICduZ3gtbWFzayc7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENhSW5wdXRQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1wYXNzd29yZC9jYS1pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uL2NhLWlucHV0LXBsYWNlaG9sZGVyLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXRDbGVhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1jbGVhci9jYS1pbnB1dC1jbGVhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dENvbW1hbmRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWNvbW1hbmRzL2NhLWlucHV0LWNvbW1hbmRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYVNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1zcGlubmVyL2NhLXNwaW5uZXIuY29tcG9uZW50JztcblxuLy8gZGlyZWN0aXZlc1xuaW1wb3J0IHsgQ2Fwc0xvY2tEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTWF4VmFsdWVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUmVzdHJpY3RJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBQcmljZUZvcm1hdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBDb21tYW5kVmlzaWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jb21tYW5kLXZpc2libGUuZGlyZWN0aXZlJztcblxuLy8gY2xhc3NcbmltcG9ydCB7IEV2ZW50SW5wdXRNYW5hZ2VyIH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvY2EtaW5wdXQtZXZlbnQtbWFuYWdlcic7XG5cbi8vIG1peGluc1xuaW1wb3J0IHsgSW5wdXRDb21tYW5kTWl4aW4gfSBmcm9tICcuL21peGlucy9pbnB1dC1jb21tYW5kLm1peGluJztcbmltcG9ydCB7IElucHV0SGVscGVyTWl4aW4gfSBmcm9tICcuL21peGlucy9pbnB1dC1oZWxwZXIubWl4aW4nO1xuaW1wb3J0IHsgT3B0aW9uTW9kZWwgfSBmcm9tICcuLi9jYS1pbnB1dC1kcm9wZG93bi9tb2RlbHMnO1xuXG5jbGFzcyBJbnB1dEJhc2Uge1xuICAgIHB1YmxpYyBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICAgIHB1YmxpYyBfaW5wdXRDb25maWchOiBJQ2FJbnB1dDtcbiAgICBwdWJsaWMgaXNWaXNpYmxlQ29tbWFuZHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgbWFza0FwcGxpZXIhOiBOZ3hNYXNrU2VydmljZTtcbiAgICBwdWJsaWMgdGhvdXNhbmRTZXBhcmF0b3JQaXBlITogVGhvdXNhbmRTZXBhcmF0b3JQaXBlO1xuICAgIHB1YmxpYyBpc0ZvY3VzSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNFZGl0SW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNEcm9wZG93blRvZ2dsZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNUb3VjaGVkSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgc2V0Q29tbWFuZEV2ZW50ITogRXZlbnRJbnB1dE1hbmFnZXI8Q29tbWFuZHNFdmVudD47XG5cbiAgICBwdWJsaWMgaGFuZGxlVG9nZ2xlRHJvcGRvd25PcHRpb25zITogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuXG4gICAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuICAgIHB1YmxpYyBvbkNoYW5nZShfOiBhbnkpOiB2b2lkIHt9XG4gICAgcHVibGljIGhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbChfOiBJbnB1dENoYW5nZVZhbHVlKTogdm9pZCB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NhLWlucHV0LXRlc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBNb2R1bGVzXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTmdiTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgTmd4TWFza01vZHVsZSxcblxuICAgICAgICAvLyBQaXBlc1xuICAgICAgICBJbnB1dEVycm9yUGlwZSxcbiAgICAgICAgSW5wdXRDb250YWluZXJDbGFzc1BpcGUsXG4gICAgICAgIElucHV0Q2xhc3NQaXBlLFxuICAgICAgICBJbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzUGlwZSxcbiAgICAgICAgU2hvd1BsYWNlaG9sZGVyVGV4dFBpcGUsXG4gICAgICAgIExhYmVsQ2xhc3NQaXBlLFxuICAgICAgICBDYVN2Z1BpcGUsXG4gICAgICAgIExvYWRTdGF0dXNDb2xvclBpcGUsXG4gICAgICAgIElucHV0UGxhY2Vob2xkZXJJY29uUmlnaHRDbGFzc1BpcGUsXG4gICAgICAgIE1heFZhbHVlRGlyZWN0aXZlLFxuICAgICAgICBJbnB1dFR5cGVQaXBlLFxuICAgICAgICBTaG93VmFsaWRDaGVja1BpcGUsXG4gICAgICAgIFNob3dEcm9wZG93bkFycm93UGlwZSxcbiAgICAgICAgSW5wdXREcm9wZG93bkFycm93Q2xhc3NQaXBlLFxuXG4gICAgICAgIC8vIERpcmVjdGl2ZXNcbiAgICAgICAgUmVzdHJpY3RJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgUHJpY2VGb3JtYXREaXJlY3RpdmUsXG4gICAgICAgIFNob3dDbGVhclBpcGUsXG4gICAgICAgIENhcHNMb2NrRGlyZWN0aXZlLFxuICAgICAgICBDb21tYW5kVmlzaWJsZURpcmVjdGl2ZSxcblxuICAgICAgICAvLyBDb21wb25lbnRzXG4gICAgICAgIENhSW5wdXRDbGVhckNvbXBvbmVudCxcbiAgICAgICAgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQsXG4gICAgICAgIENhSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dENvbW1hbmRzQ29tcG9uZW50LFxuICAgICAgICBDYVNwaW5uZXJDb21wb25lbnQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGVzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2lucHV0LXRlc3QuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGVzdENvbXBvbmVudFxuICAgIGV4dGVuZHMgSW5wdXRDb21tYW5kTWl4aW4oSW5wdXRIZWxwZXJNaXhpbihJbnB1dEJhc2UpKVxuICAgIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIHB1YmxpYyBpbnB1dFZhbHVlOiBJbnB1dENoYW5nZVZhbHVlID0gJyc7XG4gICAgcHVibGljIG92ZXJyaWRlIF9pbnB1dENvbmZpZyE6IElDYUlucHV0O1xuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIGlucHV0U3ZnUm91dGVzID0gSW5wdXRTdmdSb3V0ZXM7XG4gICAgQElucHV0KCkgZGF0ZVRpbWVQb3BvdmVyITogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgb3ZlcnJpZGUgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQpXG4gICAgY2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCE6IENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSBwYXJlbnRDb250cm9sITogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IG51bGw7XG4gICAgQElucHV0KCkgc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3IhOiBMYWJlbENvbG9yIHwgbnVsbDtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbmNvcnJlY3RWYWx1ZSE6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2V0IGlucHV0Q29uZmlnKGNvbmZpZzogSUNhSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faW5wdXRDb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgQElucHV0KCkgYWN0aXZlSXRlbSE6IE9wdGlvbk1vZGVsIHwgbnVsbDtcblxuICAgIEBPdXRwdXQoJ2hhbmRsZVRvZ2dsZURyb3Bkb3duT3B0aW9ucycpXG4gICAgb3ZlcnJpZGUgaGFuZGxlVG9nZ2xlRHJvcGRvd25PcHRpb25zOiBFdmVudEVtaXR0ZXI8dm9pZD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCdpbmNvcnJlY3RFdmVudCcpIGluY29ycmVjdElucHV0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KCdibHVySW5wdXQnKSBibHVySW5wdXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCdmb2N1c0lucHV0JykgZm9jdXNJbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgnY2hhbmdlJykgY2hhbmdlSW5wdXQ6IEV2ZW50RW1pdHRlcjxJbnB1dENoYW5nZVZhbHVlPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8SW5wdXRDaGFuZ2VWYWx1ZT4oKTtcbiAgICBAT3V0cHV0KCdjb21tYW5kRXZlbnQnKSBjb21tYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxDb21tYW5kc0V2ZW50PiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Q29tbWFuZHNFdmVudD4oKTtcbiAgICBAT3V0cHV0KCdjbGVhcicpIGNsZWFySW5wdXRFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLy8gRHJvcGRvd25cbiAgICBAT3V0cHV0KCdzaG93SGlkZURyb3Bkb3duJykgc2hvd0hpZGVEcm9wZG93bkV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgnZHJvcERvd25LZXlOYXZpZ2F0aW9uJykgZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICAgICAgZGF0YTogSUNhSW5wdXQgfCBudWxsO1xuICAgIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICAgICAgZGF0YTogSUNhSW5wdXQgfCBudWxsO1xuICAgIH0+KCk7XG5cbiAgICAvLyBldmVudHNcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0Q29tbWFuZEV2ZW50ID0gbmV3IEV2ZW50SW5wdXRNYW5hZ2VyPENvbW1hbmRzRXZlbnQ+KFxuICAgICAgICBudWxsLFxuICAgICAgICB0aGlzLmNvbW1hbmRFdmVudFxuICAgICk7XG5cbiAgICBwdWJsaWMgaXNDYXBzTG9ja09uID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgaW5wdXRDb21tYW5kc1R5cGUgPSBJbnB1dENvbW1hbmRzVHlwZTtcbiAgICBwdWJsaWMgaW5wdXRTdHJpbmdFbnVtID0gSW5wdXRTdHJpbmdFbnVtO1xuICAgIHB1YmxpYyBkcm9wZG93blRlbXBsYXRlVHlwZUVudW0gPSBEcm9wZG93blRlbXBsYXRlVHlwZUVudW07XG5cbiAgICAvLyBQYXNzd29yZFxuICAgIHB1YmxpYyBpc1RvZ2dsZVBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0Q29uZmlnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRDb25maWc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwdWJsaWMgY2hkZXQ6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgbWFza0FwcGxpZXI6IE5neE1hc2tTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdGhvdXNhbmRTZXBhcmF0b3JQaXBlOiBUaG91c2FuZFNlcGFyYXRvclBpcGVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbCh0aGlzLmlucHV0VmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRDb25maWcuYXV0b0ZvY3VzKVxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Q29udHJvbC5zdGF0dXNDaGFuZ2VzXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sPy5oYXNWYWxpZGF0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8ucmVtb3ZlVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbGlkYXRvcnModGhpcy5wYXJlbnRDb250cm9sLnZhbGlkYXRvcik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbD8uY29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogSW5wdXRDaGFuZ2VWYWx1ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtVmFsdWUodGhpcy5faW5wdXRDb25maWcsIG9iaik7IC8vIOKchSBBcHBseSBtYXNrXG5cbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0Q29uZmlnLnByaWNlUGFyc2VGb3JtYXQgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUucmVwbGFjZSgvW15cXGRdL2csICcnKSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuX2lucHV0Q29uZmlnLnVwZGF0ZUFzVG91Y2hlZE9uRWRpdCkgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG5cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dENvbmZpZy5pc0Ryb3Bkb3duICYmICF0aGlzLl9pbnB1dENvbmZpZy5pc0FkZHJlc3MpXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5jaGRldC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX2lucHV0Q29uZmlnLnByaWNlUGFyc2VGb3JtYXQgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUucmVwbGFjZSgvW15cXGRdL2csICcnKSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSkgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRWYWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8ubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKCcnKTtcbiAgICAgICAgdGhpcy5jbGVhcklucHV0RXZlbnQuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKHZhbHVlOiBJbnB1dENoYW5nZVZhbHVlKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmlzRHJvcGRvd24gJiYgIXRoaXMuX2lucHV0Q29uZmlnLmlzQWRkcmVzcykge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgLy8gVHJpZ2dlciBhbGwgaW5wdXRzIGRpcmVjdGl2ZXMgdGhhdCBsaXN0ZW4gZm9yIGlucHV0IEV2ZW50XG4gICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSk7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUlucHV0Rm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0RXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlSW5wdXRCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuYmx1cklucHV0LmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUG9wb3ZlclNob3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblBvcG92ZXJIaWRkZW4oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ZvY3VzSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblRvZ2dsZVBhc3N3b3JkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmlzVG9nZ2xlUGFzc3dvcmQgPSAhdGhpcy5pc1RvZ2dsZVBhc3N3b3JkO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDYXBzTG9jayhzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0NhcHNMb2NrT24gPSBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUNvbW1hbmRWaXNpYmxlKHN0YXR1czogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZUNvbW1hbmRzID0gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBpZGVudGlmeShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBrZXlDb2RlOiBldmVudC5rZXlDb2RlLFxuICAgICAgICAgICAgZGF0YTogdGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiaW5wdXQtY3VzdG9tLWdyb3VwIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIGNvbnRyb2xcbiAgICAgICAgICAgIHwgaW5wdXRDb250YWluZXJDbGFzc1xuICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkIVxuICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgIDogY29udHJvbD8uZGlzYWJsZWRcbiAgICBcIlxuICAgIG5nYlRvb2x0aXBcbiAgICBbbWFpbkNhVG9vbHRpcF09XCJjb250cm9sPy5lcnJvcnMgfCBpbnB1dEVycm9yOiBfaW5wdXRDb25maWcubmFtZVwiXG4gICAgW3Rvb2x0aXBCYWNrZ3JvdW5kXT1cIicjREYzQzNDJ1wiXG4gICAgW2Rpc2FibGVUb29sdGlwXT1cIiFfaW5wdXRDb25maWcucmVxdWlyZWRMYWJlbCB8fCAhIWNvbnRyb2w/LnZhbGlkXCJcbiAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgdHJpZ2dlcnM9XCJob3ZlclwiXG4+XG4gICAgPCEtLSBJbnB1dCBMb2FkaW5nIHNwaW5uZXIgLS0+XG4gICAgQGlmIChcbiAgICAgICAgX2lucHV0Q29uZmlnPy5sb2FkaW5nU3Bpbm5lcj8uaXNMb2FkaW5nICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgICAhY29udHJvbD8uZGlzYWJsZWRcbiAgICApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWxvYWRpbmctc3Bpbm5lclwiPlxuICAgICAgICAgICAgPGFwcC1jYS1zcGlubmVyXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiX2lucHV0Q29uZmlnLmxvYWRpbmdTcGlubmVyPy5zaXplXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiX2lucHV0Q29uZmlnLmxvYWRpbmdTcGlubmVyPy5jb2xvclwiXG4gICAgICAgICAgICA+PC9hcHAtY2Etc3Bpbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBDb21tYW5kcyAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5jb21tYW5kcz8uYWN0aXZlICYmIGlzVmlzaWJsZUNvbW1hbmRzKSB7XG4gICAgICAgIDxhcHAtY2EtaW5wdXQtY29tbWFuZHNcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2lzVmlzaWJsZUNvbW1hbmRzXT1cImlzVmlzaWJsZUNvbW1hbmRzXCJcbiAgICAgICAgICAgIChvbkNvbW1hbmRzQ2xpY2spPVwib25Db21tYW5kcygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1jb21tYW5kcz5cbiAgICB9XG4gICAgPCEtLSBJbnB1dCBWYWxpZCBDaGVjayAtLT5cbiAgICBAaWYgKGNvbnRyb2wgfCBzaG93VmFsaWRDaGVjazogaXNGb2N1c0lucHV0IDogX2lucHV0Q29uZmlnIDogY29udHJvbCkge1xuICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtcmVxdWlyZWQtY2hlY2sge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgICAgICAgIFtzcmNdPVwiaW5wdXRTdmdSb3V0ZXMuY29uZmlybVN2Z1wiXG4gICAgICAgID48L3N2Zy1pY29uPlxuICAgIH1cbiAgICA8IS0tIElucHV0IFBhc3N3b3JkIENhcHMgTG9jayBBbmQgRXllIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnLnR5cGUgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgICAgPGFwcC1jYS1pbnB1dC1wYXNzd29yZFxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cIl9pbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2lzVG91Y2hlZElucHV0XT1cImlzVG91Y2hlZElucHV0XCJcbiAgICAgICAgICAgIFtpc0NhcHNMb2NrT25dPVwiaXNDYXBzTG9ja09uXCJcbiAgICAgICAgICAgIFtpc1RvZ2dsZVBhc3N3b3JkXT1cImlzVG9nZ2xlUGFzc3dvcmRcIlxuICAgICAgICAgICAgKG9uVG9nZ2xlUGFzc3dvcmRDbGljayk9XCJvblRvZ2dsZVBhc3N3b3JkKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNhLWlucHV0LXBhc3N3b3JkPlxuICAgIH1cbiAgICA8IS0tIElucHV0IENsZWFyIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnIHwgc2hvd0NsZWFyOiBjb250cm9sPy5kaXNhYmxlZCkge1xuICAgICAgICA8YXBwLWNhLWlucHV0LWNsZWFyXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiX2lucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgICBbaW5jb3JyZWN0VmFsdWVdPVwiaW5jb3JyZWN0VmFsdWVcIlxuICAgICAgICAgICAgW3NlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXT1cInNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXCJcbiAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgICAoY2xlYXJJbnB1dENsaWNrKT1cImNsZWFySW5wdXQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtY2EtaW5wdXQtY2xlYXI+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBEcm9wZG93biBBcnJvdyAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZyB8IHNob3dEcm9wZG93bkFycm93OiBjb250cm9sPy5kaXNhYmxlZCkge1xuICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZHJvcGRvd24tYXJyb3cge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgfCBpbnB1dERyb3Bkb3duQXJyb3dDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NyY109XCJpbnB1dFN2Z1JvdXRlcy5pbnB1dERyb3Bkb3duQXJyb3dTdmdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duT3B0aW9ucygpXCJcbiAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBQbGFjZWhvbGRlciBJY29uIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVySWNvbikge1xuICAgICAgICA8YXBwLWNhLWlucHV0LXBsYWNlaG9sZGVyLWljb25cbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgICAgICAgIFtpc1RvdWNoZWRJbnB1dF09XCJjb250cm9sPy50b3VjaGVkIVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JdPVwic2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JcIlxuICAgICAgICAgICAgW2lzRWRpdElucHV0XT1cImlzRWRpdElucHV0XCJcbiAgICAgICAgICAgIChvblBsYWNlaG9sZGVySWNvbkV2ZW50RW1pdHRlcik9XCJvblBsYWNlaG9sZGVySWNvbkV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgKG9uUG9wb3ZlclNob3duRW1pdHRlcik9XCJvblBvcG92ZXJTaG93bigpXCJcbiAgICAgICAgICAgIChvblBvcG92ZXJIaWRkZW5FbWl0dGVyKT1cIm9uUG9wb3ZlckhpZGRlbigpXCJcbiAgICAgICAgICAgIFtkYXRlVGltZVBvcG92ZXJdPVwiZGF0ZVRpbWVQb3BvdmVyXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgUGxhY2Vob2xkZXIgVGV4dCAtLT5cbiAgICBAaWYgKFxuICAgICAgICBfaW5wdXRDb25maWdcbiAgICAgICAgICAgIHwgc2hvd1BsYWNlaG9sZGVyVGV4dDogY29udHJvbCA6IGlzVmlzaWJsZUNvbW1hbmRzIDogY29udHJvbD8udmFsdWVcbiAgICApIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiY2EtcGxhY2Vob2xkZXItdGV4dCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlclRleHRDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkIVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0XT1cIlxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgICAgICAgICAgIGlucHV0U3RyaW5nRW51bS5QRVJTT05TIHx8XG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRTdHJpbmdFbnVtLlZFSElDTEVTXG4gICAgICAgICAgICAgICAgICAgID8gMzAgKyAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDEpICogOSArICdweCdcbiAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgIT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRDb21tYW5kc1R5cGUuTU9OVEhTXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYXV0bydcbiAgICAgICAgICAgICAgICAgICAgICA6IChjb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoICsgMSkgKiA4ICsgJ3B4J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzdHlsZS5yaWdodF09XCJcbiAgICAgICAgICAgICAgICBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpICE9PVxuICAgICAgICAgICAgICAgICAgICBpbnB1dENvbW1hbmRzVHlwZS5NT05USFNcbiAgICAgICAgICAgICAgICAgICAgPyAnMjhweCdcbiAgICAgICAgICAgICAgICAgICAgOiAnYXV0bydcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgTGFiZWwgQ291bnRlciAtLT5cbiAgICBAaWYgKFxuICAgICAgICBzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvciAmJlxuICAgICAgICBjb250cm9sPy52YWx1ZSAmJlxuICAgICAgICAhaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgICAhY29udHJvbD8uZGlzYWJsZWQgJiZcbiAgICAgICAgX2lucHV0Q29uZmlnLnNob3dDb3VudFxuICAgICkge1xuICAgICAgICA8cFxuICAgICAgICAgICAgW3N0eWxlLnRvcF09XCInNHB4J1wiXG4gICAgICAgICAgICBbc3R5bGUubGVmdF09XCIoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDYuNSkgKiA4ICsgJ3B4J1wiXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LWxhYmVsLWNvdW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvci5jb3VudCB9fVxuICAgICAgICA8L3A+XG4gICAgfVxuXG4gICAgPCEtLSBTcGVjaWFsIERyb3Bkb3duIFNlbGVjdGVkIFNWRyB3aXRoIG9yIFdpdGhvdXQgVGV4dCAtLT5cbiAgICBAaWYgKFxuICAgICAgICBfaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8uaWNvbnNQYXRoICYmXG4gICAgICAgIGFjdGl2ZUl0ZW0gJiZcbiAgICAgICAgIV9pbnB1dENvbmZpZz8uaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duICYmXG4gICAgICAgICEoIV9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LndpdGhUZXh0ICYmIGlzRm9jdXNJbnB1dCkgJiZcbiAgICAgICAgIShcbiAgICAgICAgICAgIFsndHJ1Y2snLCAndHJhaWxlciddLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LnRlbXBsYXRlIVxuICAgICAgICAgICAgKSAmJlxuICAgICAgICAgICAgaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICAgICBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5yZW1vdmVcbiAgICAgICAgKSAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnPy5kcm9wZG93bkltYWdlSW5wdXQ/Lm5hbWVJbml0aWFsc0luc3RlYWRVcmxcbiAgICApIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBbc3JjXT1cIl9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/Lmljb25zUGF0aCFcIlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1zZWxlY3RlZC1pbWFnZSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNsYXNzXG4gICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3Vuc2V0LWNvbG9yJzpcbiAgICAgICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0ICYmIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNsYXNzLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbc3ZnU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgIGZpbGw6XG4gICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNvbG9yICYmICFpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8uY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJyNmZmZmZmYnLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgPC9zdmctaWNvbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IExhYmVsIC0tPlxuICAgIEBpZiAoIV9pbnB1dENvbmZpZy5tdWx0aVNlbGVjdERyb3Bkb3duQWN0aXZlKSB7XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgW2Zvcl09XCJfaW5wdXRDb25maWcubmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LWxhYmVsIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5tdWx0aXBsZUxhYmVsPy5jdXN0b21DbGFzc1xuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfCBsYWJlbENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfaW5wdXRDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uZGlzYWJsZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgX2lucHV0Q29uZmlnLmxhYmVsIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8ubGFiZWxzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8uY3VzdG9tQ2xhc3MhXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ211bHRpcGxlLWxhYmVscy1wb3NpdGlvbi1vbi1mb2N1cyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLm11bHRpcGxlSW5wdXRWYWx1ZXM/Lm9wdGlvbnM/Lmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5pc1JlcXVpcmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIV9pbnB1dENvbmZpZy5pc0Rpc2FibGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbnRyb2w/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgb2YgX2lucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmxhYmVscztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9sYWJlbD5cbiAgICB9XG4gICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICAoaW5wdXQpPVwiaGFuZGxlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIFtyZXN0cmljdElucHV0XT1cImlucHV0Q29uZmlnXCJcbiAgICAgICAgcHJpY2VGb3JtYXRcbiAgICAgICAgW3ByaWNlU2VwYXJhdG9yXT1cIlxuICAgICAgICAgICAgaW5wdXRDb25maWcucHJpY2VTZXBhcmF0b3IgfHwgaW5wdXRDb25maWcudGhvdXNhbmRTZXBhcmF0b3JcbiAgICAgICAgXCJcbiAgICAgICAgKGZvY3VzKT1cImhhbmRsZUlucHV0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cImhhbmRsZUlucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cIl9pbnB1dENvbmZpZy5yZWFkT25seVwiXG4gICAgICAgIFt0eXBlXT1cIl9pbnB1dENvbmZpZy50eXBlIHwgaW5wdXRUeXBlOiBpc1RvZ2dsZVBhc3N3b3JkXCJcbiAgICAgICAgY2xhc3M9XCJpbnB1dC1jb250cm9sXG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcudGV4dFRyYW5zZm9ybSB9fVxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLnRleHRBbGlnbiB9fVxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XG4gICAgICAgIFwiXG4gICAgICAgIFthcHBNYXhWYWx1ZV09XCJpbnB1dENvbmZpZy5tYXhcIlxuICAgICAgICBhcHBDYXBzTG9ja1xuICAgICAgICAoY2Fwc0xvY2tTdGF0dXMpPVwiaGFuZGxlQ2Fwc0xvY2soJGV2ZW50KVwiXG4gICAgICAgIGNvbW1hbmRWaXNpYmxlXG4gICAgICAgIChjb21tYW5kVmlzaWJsZSk9XCJoYW5kbGVDb21tYW5kVmlzaWJsZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICAgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckluc3RlYWRPZkxhYmVsICYmXG4gICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXIgJiZcbiAgICAgICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgID8gX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgOiAnJykgfHxcbiAgICAgICAgICAgIChfaW5wdXRDb25maWcucGxhY2Vob2xkZXIgJiYgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgPyBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICA6ICcnKVxuICAgICAgICBcIlxuICAgICAgICBbbWFza109XCJfaW5wdXRDb25maWcubWFza1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgY29udHJvbFxuICAgICAgICAgICAgICAgIHwgaW5wdXRDbGFzc1xuICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWQhXG4gICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWRcbiAgICAgICAgICAgICAgICAgICAgOiBpc0Ryb3Bkb3duVG9nZ2xlclxuICAgICAgICAgICAgICAgICAgICA6IGlzRWRpdElucHV0XG4gICAgICAgICAgICAgICAgICAgIDogdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy5kaXNhYmxlZFxuICAgICAgICBcIlxuICAgIC8+XG5cbiAgICA8IS0tIFBsYWNlaG9sZGVyIEljb24gb24gUmlnaHQgU2lkZSAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25SaWdodFNpZGUpIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInBsYWNlaG9sZGVyLWljb24tcmlnaHQtc2lkZSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25Db2xvclxuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LmRpc2FibGVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NyY109XCJcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgfCBjYVN2ZzogJ2NvbW1vbidcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3N2Zy1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgRXJyb3IgTWVzc2FnZSAtLT5cbiAgICBAaWYgKFxuICAgICAgICAhKCFjb250cm9sPy52YWx1ZSAmJiBpc0ZvY3VzSW5wdXQpICYmXG4gICAgICAgIChpc1RvdWNoZWRJbnB1dCB8fCBjb250cm9sPy50b3VjaGVkIHx8IGNvbnRyb2w/LnZhbHVlKSAmJlxuICAgICAgICBjb250cm9sPy5pbnZhbGlkICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNJbnZhbGlkU2VhcmNoSW5Ecm9wZG93biAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnLmlzRGlzYWJsZWQgJiZcbiAgICAgICAgIWNvbnRyb2w/LmRpc2FibGVkXG4gICAgKSB7XG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAhKF9pbnB1dENvbmZpZy5oaWRlRXJyb3JNZXNzYWdlIHx8IF9pbnB1dENvbmZpZy5lcnJvckluc2lkZUlucHV0KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZXJyb3Ige3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCI+XG4gICAgICAgICAgICAgICAge3sgY29udHJvbD8uZXJyb3JzIHwgaW5wdXRFcnJvcjogX2lucHV0Q29uZmlnLm5hbWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gRXJyb3IgTWVzc2FnZSBJbnNpZGUgSW5wdXQgLS0+XG4gICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLmVycm9ySW5zaWRlSW5wdXQpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaW5zaWRlLWlucHV0IHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IF9pbnB1dENvbmZpZy5uYW1lIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5maXhlZFBsYWNob2xkZXIgJiYgaW5wdXQudmFsdWUpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1maXhlZC1wbGFjZWhvZGVyLWxhYmVsXCI+XG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcuZml4ZWRQbGFjaG9sZGVyIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1pbnB1dC10ZXN0L2lucHV0LXRlc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtaW5wdXQtdGVzdC9pbnB1dC10ZXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFJSCxVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSTFDLE9BQU8sRUFBb0IsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRzNELFFBQVE7QUFDUixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRFLFFBQVE7QUFDUixPQUFPLEVBQ0gsY0FBYyxFQUNkLHVCQUF1QixFQUN2QiwyQkFBMkIsRUFDM0IsY0FBYyxFQUNkLGtDQUFrQyxFQUNsQyw2QkFBNkIsRUFDN0IsYUFBYSxFQUNiLGNBQWMs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QUEwQjtzQkFBbEMsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLDJCQUEyQjtzQkFEbkMsTUFBTTt1QkFBQyw2QkFBNkI7Z0JBSVgsY0FBYztzQkFBdkMsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBR0gsU0FBUztzQkFBN0IsTUFBTTt1QkFBQyxXQUFXO2dCQUVHLGVBQWU7c0JBQXBDLE1BQU07dUJBQUMsWUFBWTtnQkFFRixXQUFXO3NCQUE1QixNQUFNO3VCQUFDLFFBQVE7Z0JBRVEsWUFBWTtzQkFBbkMsTUFBTTt1QkFBQyxjQUFjO2dCQUVMLGVBQWU7c0JBQS9CLE1BQU07dUJBQUMsT0FBTztnQkFJYSxxQkFBcUI7c0JBQWhELE1BQU07dUJBQUMsa0JBQWtCO2dCQUVPLDBCQUEwQjtzQkFBMUQsTUFBTTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgICBOZ0NvbnRyb2wsXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdiTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuLy8gbW9kZWxzXG5pbXBvcnQgeyBJQ2FJbnB1dCB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IElucHV0Q2hhbmdlVmFsdWUsIElucHV0U3ZnUm91dGVzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBDb21tYW5kc0V2ZW50LCBMYWJlbENvbG9yIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vLyBlbXVtc1xuaW1wb3J0IHsgSW5wdXRDb21tYW5kc1R5cGUsIElucHV0U3RyaW5nRW51bSB9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHsgRHJvcGRvd25UZW1wbGF0ZVR5cGVFbnVtIH0gZnJvbSAnLi4vY2EtaW5wdXQtZHJvcGRvd24vZW51bXMnO1xuXG4vLyBwaXBlc1xuaW1wb3J0IHtcbiAgICBJbnB1dENsYXNzUGlwZSxcbiAgICBJbnB1dENvbnRhaW5lckNsYXNzUGlwZSxcbiAgICBJbnB1dERyb3Bkb3duQXJyb3dDbGFzc1BpcGUsXG4gICAgSW5wdXRFcnJvclBpcGUsXG4gICAgSW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzUGlwZSxcbiAgICBJbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzUGlwZSxcbiAgICBJbnB1dFR5cGVQaXBlLFxuICAgIExhYmVsQ2xhc3NQaXBlLFxuICAgIFNob3dDbGVhclBpcGUsXG4gICAgU2hvd0Ryb3Bkb3duQXJyb3dQaXBlLFxuICAgIFNob3dQbGFjZWhvbGRlclRleHRQaXBlLFxuICAgIFNob3dWYWxpZENoZWNrUGlwZSxcbn0gZnJvbSAnLi9waXBlcyc7XG5pbXBvcnQge1xuICAgIENhU3ZnUGlwZSxcbiAgICBMb2FkU3RhdHVzQ29sb3JQaXBlLFxuICAgIFRob3VzYW5kU2VwYXJhdG9yUGlwZSxcbn0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuXG4vLyBtYXNrXG5pbXBvcnQgeyBOZ3hNYXNrTW9kdWxlIH0gZnJvbSAnbmd4LW1hc2snO1xuaW1wb3J0IHsgTmd4TWFza1NlcnZpY2UgfSBmcm9tICduZ3gtbWFzayc7XG5cbi8vIGNvbXBvbmVudHNcbmltcG9ydCB7IENhSW5wdXRQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1wYXNzd29yZC9jYS1pbnB1dC1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uL2NhLWlucHV0LXBsYWNlaG9sZGVyLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENhSW5wdXRDbGVhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jYS1pbnB1dC1jbGVhci9jYS1pbnB1dC1jbGVhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1hcHAtdG9vbHRpcC12Mi9jYS1hcHAtdG9vbHRpcC12Mi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FJbnB1dENvbW1hbmRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhLWlucHV0LWNvbW1hbmRzL2NhLWlucHV0LWNvbW1hbmRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYVNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYS1zcGlubmVyL2NhLXNwaW5uZXIuY29tcG9uZW50JztcblxuLy8gZGlyZWN0aXZlc1xuaW1wb3J0IHsgQ2Fwc0xvY2tEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTWF4VmFsdWVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgUmVzdHJpY3RJbnB1dERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBQcmljZUZvcm1hdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBDb21tYW5kVmlzaWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jb21tYW5kLXZpc2libGUuZGlyZWN0aXZlJztcblxuLy8gY2xhc3NcbmltcG9ydCB7IEV2ZW50SW5wdXRNYW5hZ2VyIH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvY2EtaW5wdXQtZXZlbnQtbWFuYWdlcic7XG5cbi8vIG1peGluc1xuaW1wb3J0IHsgSW5wdXRDb21tYW5kTWl4aW4gfSBmcm9tICcuL21peGlucy9pbnB1dC1jb21tYW5kLm1peGluJztcbmltcG9ydCB7IElucHV0SGVscGVyTWl4aW4gfSBmcm9tICcuL21peGlucy9pbnB1dC1oZWxwZXIubWl4aW4nO1xuaW1wb3J0IHsgT3B0aW9uTW9kZWwgfSBmcm9tICcuLi9jYS1pbnB1dC1kcm9wZG93bi9tb2RlbHMnO1xuXG5jbGFzcyBJbnB1dEJhc2Uge1xuICAgIHB1YmxpYyBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmO1xuICAgIHB1YmxpYyBfaW5wdXRDb25maWchOiBJQ2FJbnB1dDtcbiAgICBwdWJsaWMgaXNWaXNpYmxlQ29tbWFuZHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgbWFza0FwcGxpZXIhOiBOZ3hNYXNrU2VydmljZTtcbiAgICBwdWJsaWMgdGhvdXNhbmRTZXBhcmF0b3JQaXBlITogVGhvdXNhbmRTZXBhcmF0b3JQaXBlO1xuICAgIHB1YmxpYyBpc0ZvY3VzSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNFZGl0SW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNEcm9wZG93blRvZ2dsZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNUb3VjaGVkSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgc2V0Q29tbWFuZEV2ZW50ITogRXZlbnRJbnB1dE1hbmFnZXI8Q29tbWFuZHNFdmVudD47XG5cbiAgICBwdWJsaWMgaGFuZGxlVG9nZ2xlRHJvcGRvd25PcHRpb25zITogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuXG4gICAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuICAgIHB1YmxpYyBvbkNoYW5nZShfOiBhbnkpOiB2b2lkIHt9XG4gICAgcHVibGljIGhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbChfOiBJbnB1dENoYW5nZVZhbHVlKTogdm9pZCB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2NhLWlucHV0LXRlc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICAvLyBNb2R1bGVzXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTmdiTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgTmd4TWFza01vZHVsZSxcblxuICAgICAgICAvLyBQaXBlc1xuICAgICAgICBJbnB1dEVycm9yUGlwZSxcbiAgICAgICAgSW5wdXRDb250YWluZXJDbGFzc1BpcGUsXG4gICAgICAgIElucHV0Q2xhc3NQaXBlLFxuICAgICAgICBJbnB1dFBsYWNlaG9sZGVyVGV4dENsYXNzUGlwZSxcbiAgICAgICAgU2hvd1BsYWNlaG9sZGVyVGV4dFBpcGUsXG4gICAgICAgIExhYmVsQ2xhc3NQaXBlLFxuICAgICAgICBDYVN2Z1BpcGUsXG4gICAgICAgIExvYWRTdGF0dXNDb2xvclBpcGUsXG4gICAgICAgIElucHV0UGxhY2Vob2xkZXJJY29uUmlnaHRDbGFzc1BpcGUsXG4gICAgICAgIE1heFZhbHVlRGlyZWN0aXZlLFxuICAgICAgICBJbnB1dFR5cGVQaXBlLFxuICAgICAgICBTaG93VmFsaWRDaGVja1BpcGUsXG4gICAgICAgIFNob3dEcm9wZG93bkFycm93UGlwZSxcbiAgICAgICAgSW5wdXREcm9wZG93bkFycm93Q2xhc3NQaXBlLFxuXG4gICAgICAgIC8vIERpcmVjdGl2ZXNcbiAgICAgICAgUmVzdHJpY3RJbnB1dERpcmVjdGl2ZSxcbiAgICAgICAgUHJpY2VGb3JtYXREaXJlY3RpdmUsXG4gICAgICAgIFNob3dDbGVhclBpcGUsXG4gICAgICAgIENhcHNMb2NrRGlyZWN0aXZlLFxuICAgICAgICBDb21tYW5kVmlzaWJsZURpcmVjdGl2ZSxcblxuICAgICAgICAvLyBDb21wb25lbnRzXG4gICAgICAgIENhSW5wdXRDbGVhckNvbXBvbmVudCxcbiAgICAgICAgQ2FBcHBUb29sdGlwVjJDb21wb25lbnQsXG4gICAgICAgIENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQsXG4gICAgICAgIENhSW5wdXRQYXNzd29yZENvbXBvbmVudCxcbiAgICAgICAgQ2FJbnB1dENvbW1hbmRzQ29tcG9uZW50LFxuICAgICAgICBDYVNwaW5uZXJDb21wb25lbnQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGVzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2lucHV0LXRlc3QuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGVzdENvbXBvbmVudFxuICAgIGV4dGVuZHMgSW5wdXRDb21tYW5kTWl4aW4oSW5wdXRIZWxwZXJNaXhpbihJbnB1dEJhc2UpKVxuICAgIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgIHB1YmxpYyBpbnB1dFZhbHVlOiBJbnB1dENoYW5nZVZhbHVlID0gJyc7XG4gICAgcHVibGljIG92ZXJyaWRlIF9pbnB1dENvbmZpZyE6IElDYUlucHV0O1xuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgcHVibGljIGlucHV0U3ZnUm91dGVzID0gSW5wdXRTdmdSb3V0ZXM7XG4gICAgQElucHV0KCkgZGF0ZVRpbWVQb3BvdmVyITogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgb3ZlcnJpZGUgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQpXG4gICAgY2FJbnB1dFBsYWNlaG9sZGVySWNvbkNvbXBvbmVudCE6IENhSW5wdXRQbGFjZWhvbGRlckljb25Db21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSBwYXJlbnRDb250cm9sITogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB8IG51bGw7XG4gICAgQElucHV0KCkgc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3IhOiBMYWJlbENvbG9yIHwgbnVsbDtcbiAgICBASW5wdXQoKSB0ZW1wbGF0ZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpbmNvcnJlY3RWYWx1ZSE6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2V0IGlucHV0Q29uZmlnKGNvbmZpZzogSUNhSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faW5wdXRDb25maWcgPSBjb25maWc7XG4gICAgfVxuXG4gICAgQElucHV0KCkgYWN0aXZlSXRlbSE6IE9wdGlvbk1vZGVsIHwgbnVsbDtcblxuICAgIEBPdXRwdXQoJ2hhbmRsZVRvZ2dsZURyb3Bkb3duT3B0aW9ucycpXG4gICAgb3ZlcnJpZGUgaGFuZGxlVG9nZ2xlRHJvcGRvd25PcHRpb25zOiBFdmVudEVtaXR0ZXI8dm9pZD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCdpbmNvcnJlY3RFdmVudCcpIGluY29ycmVjdElucHV0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KCdibHVySW5wdXQnKSBibHVySW5wdXQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCdmb2N1c0lucHV0JykgZm9jdXNJbnB1dEV2ZW50OiBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgnY2hhbmdlJykgY2hhbmdlSW5wdXQ6IEV2ZW50RW1pdHRlcjxJbnB1dENoYW5nZVZhbHVlPiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8SW5wdXRDaGFuZ2VWYWx1ZT4oKTtcbiAgICBAT3V0cHV0KCdjb21tYW5kRXZlbnQnKSBjb21tYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjxDb21tYW5kc0V2ZW50PiA9XG4gICAgICAgIG5ldyBFdmVudEVtaXR0ZXI8Q29tbWFuZHNFdmVudD4oKTtcbiAgICBAT3V0cHV0KCdjbGVhcicpIGNsZWFySW5wdXRFdmVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID1cbiAgICAgICAgbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgLy8gRHJvcGRvd25cbiAgICBAT3V0cHV0KCdzaG93SGlkZURyb3Bkb3duJykgc2hvd0hpZGVEcm9wZG93bkV2ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPVxuICAgICAgICBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgnZHJvcERvd25LZXlOYXZpZ2F0aW9uJykgZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICAgICAgZGF0YTogSUNhSW5wdXQgfCBudWxsO1xuICAgIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgICAgIGtleUNvZGU6IG51bWJlcjtcbiAgICAgICAgZGF0YTogSUNhSW5wdXQgfCBudWxsO1xuICAgIH0+KCk7XG5cbiAgICAvLyBldmVudHNcbiAgICBwdWJsaWMgb3ZlcnJpZGUgc2V0Q29tbWFuZEV2ZW50ID0gbmV3IEV2ZW50SW5wdXRNYW5hZ2VyPENvbW1hbmRzRXZlbnQ+KFxuICAgICAgICBudWxsLFxuICAgICAgICB0aGlzLmNvbW1hbmRFdmVudFxuICAgICk7XG5cbiAgICBwdWJsaWMgaXNDYXBzTG9ja09uID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgaW5wdXRDb21tYW5kc1R5cGUgPSBJbnB1dENvbW1hbmRzVHlwZTtcbiAgICBwdWJsaWMgaW5wdXRTdHJpbmdFbnVtID0gSW5wdXRTdHJpbmdFbnVtO1xuICAgIHB1YmxpYyBkcm9wZG93blRlbXBsYXRlVHlwZUVudW0gPSBEcm9wZG93blRlbXBsYXRlVHlwZUVudW07XG5cbiAgICAvLyBQYXNzd29yZFxuICAgIHB1YmxpYyBpc1RvZ2dsZVBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0Q29uZmlnKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRDb25maWc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwdWJsaWMgY2hkZXQ6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgbWFza0FwcGxpZXI6IE5neE1hc2tTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgdGhvdXNhbmRTZXBhcmF0b3JQaXBlOiBUaG91c2FuZFNlcGFyYXRvclBpcGVcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZUlucHV0QW5kVXBkYXRlQ29udHJvbCh0aGlzLmlucHV0VmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRDb25maWcuYXV0b0ZvY3VzKVxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbCkge1xuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Q29udHJvbC5zdGF0dXNDaGFuZ2VzXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRDb250cm9sPy5oYXNWYWxpZGF0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8ucmVtb3ZlVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbGlkYXRvcnModGhpcy5wYXJlbnRDb250cm9sLnZhbGlkYXRvcik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Q29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sPy5kaXNhYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8uZW5hYmxlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbD8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWl0RXZlbnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRyb2woKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nQ29udHJvbD8uY29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogSW5wdXRDaGFuZ2VWYWx1ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMudHJhbnNmb3JtVmFsdWUodGhpcy5faW5wdXRDb25maWcsIG9iaik7IC8vIOKchSBBcHBseSBtYXNrXG5cbiAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2lucHV0Q29uZmlnLnByaWNlUGFyc2VGb3JtYXQgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUucmVwbGFjZSgvW15cXGRdL2csICcnKSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuX2lucHV0Q29uZmlnLnVwZGF0ZUFzVG91Y2hlZE9uRWRpdCkgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG5cbiAgICAgICAgaWYgKCF0aGlzLl9pbnB1dENvbmZpZy5pc0Ryb3Bkb3duICYmICF0aGlzLl9pbnB1dENvbmZpZy5pc0FkZHJlc3MpXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5jaGRldC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgaGFuZGxlSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuX2lucHV0Q29uZmlnLnByaWNlUGFyc2VGb3JtYXQgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUucmVwbGFjZSgvW15cXGRdL2csICcnKSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7IC8vIE5vdGlmeSBBbmd1bGFyIGZvcm0gYWJvdXQgdGhlIGNoYW5nZVxuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSkgdGhpcy5vblRvdWNoZWQoKTsgLy8gTWFyayBhcyB0b3VjaGVkXG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRWYWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbD8ubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJJbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKCcnKTtcbiAgICAgICAgdGhpcy5jbGVhcklucHV0RXZlbnQuZW1pdCh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgaGFuZGxlQ2hhbmdlSW5wdXRBbmRVcGRhdGVDb250cm9sKHZhbHVlOiBJbnB1dENoYW5nZVZhbHVlKSB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmlzRHJvcGRvd24gJiYgIXRoaXMuX2lucHV0Q29uZmlnLmlzQWRkcmVzcykge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgLy8gVHJpZ2dlciBhbGwgaW5wdXRzIGRpcmVjdGl2ZXMgdGhhdCBsaXN0ZW4gZm9yIGlucHV0IEV2ZW50XG4gICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSk7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUlucHV0Rm9jdXMoZXZlbnQ6IEZvY3VzRXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0RXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlSW5wdXRCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgICAgIHRoaXMuYmx1cklucHV0LmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUG9wb3ZlclNob3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlnLmRyb3Bkb3duTGFiZWwpIHtcbiAgICAgICAgICAgIHRoaXMuaXNGb2N1c0lucHV0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblBvcG92ZXJIaWRkZW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYmx1cklucHV0LmVtaXQodHJ1ZSk7XG4gICAgICAgIGlmICghdGhpcy5faW5wdXRDb25maWcuZHJvcGRvd25MYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ZvY3VzSW5wdXQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblRvZ2dsZVBhc3N3b3JkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmlzVG9nZ2xlUGFzc3dvcmQgPSAhdGhpcy5pc1RvZ2dsZVBhc3N3b3JkO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVDYXBzTG9jayhzdGF0dXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0NhcHNMb2NrT24gPSBzdGF0dXM7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZUNvbW1hbmRWaXNpYmxlKHN0YXR1czogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZUNvbW1hbmRzID0gc3RhdHVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBpZGVudGlmeShpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZHJvcERvd25LZXlOYXZpZ2F0aW9uRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBrZXlDb2RlOiBldmVudC5rZXlDb2RlLFxuICAgICAgICAgICAgZGF0YTogdGhpcy5pbnB1dENvbmZpZyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwiaW5wdXQtY3VzdG9tLWdyb3VwIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiXG4gICAgW25nQ2xhc3NdPVwiXG4gICAgICAgIGNvbnRyb2xcbiAgICAgICAgICAgIHwgaW5wdXRDb250YWluZXJDbGFzc1xuICAgICAgICAgICAgICAgIDogaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkIVxuICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgICAgIDogY29udHJvbD8uZGlzYWJsZWRcbiAgICBcIlxuICAgIG5nYlRvb2x0aXBcbiAgICBbbWFpbkNhVG9vbHRpcF09XCJjb250cm9sPy5lcnJvcnMgfCBpbnB1dEVycm9yOiBfaW5wdXRDb25maWcubmFtZVwiXG4gICAgW3Rvb2x0aXBCYWNrZ3JvdW5kXT1cIicjREYzQzNDJ1wiXG4gICAgW2Rpc2FibGVUb29sdGlwXT1cIiFfaW5wdXRDb25maWcucmVxdWlyZWRMYWJlbCB8fCAhIWNvbnRyb2w/LnZhbGlkXCJcbiAgICBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgdHJpZ2dlcnM9XCJob3ZlclwiXG4+XG4gICAgPCEtLSBJbnB1dCBMb2FkaW5nIHNwaW5uZXIgLS0+XG4gICAgQGlmIChcbiAgICAgICAgX2lucHV0Q29uZmlnPy5sb2FkaW5nU3Bpbm5lcj8uaXNMb2FkaW5nICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgICAhY29udHJvbD8uZGlzYWJsZWRcbiAgICApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWxvYWRpbmctc3Bpbm5lclwiPlxuICAgICAgICAgICAgPGFwcC1jYS1zcGlubmVyXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiX2lucHV0Q29uZmlnLmxvYWRpbmdTcGlubmVyPy5zaXplXCJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiX2lucHV0Q29uZmlnLmxvYWRpbmdTcGlubmVyPy5jb2xvclwiXG4gICAgICAgICAgICA+PC9hcHAtY2Etc3Bpbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBDb21tYW5kcyAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5jb21tYW5kcz8uYWN0aXZlICYmIGlzVmlzaWJsZUNvbW1hbmRzKSB7XG4gICAgICAgIDxhcHAtY2EtaW5wdXQtY29tbWFuZHNcbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2lzVmlzaWJsZUNvbW1hbmRzXT1cImlzVmlzaWJsZUNvbW1hbmRzXCJcbiAgICAgICAgICAgIChvbkNvbW1hbmRzQ2xpY2spPVwib25Db21tYW5kcygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1jb21tYW5kcz5cbiAgICB9XG4gICAgPCEtLSBJbnB1dCBWYWxpZCBDaGVjayAtLT5cbiAgICBAaWYgKGNvbnRyb2wgfCBzaG93VmFsaWRDaGVjazogaXNGb2N1c0lucHV0IDogX2lucHV0Q29uZmlnIDogY29udHJvbCkge1xuICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtcmVxdWlyZWQtY2hlY2sge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgICAgICAgIFtzcmNdPVwiaW5wdXRTdmdSb3V0ZXMuY29uZmlybVN2Z1wiXG4gICAgICAgID48L3N2Zy1pY29uPlxuICAgIH1cbiAgICA8IS0tIElucHV0IFBhc3N3b3JkIENhcHMgTG9jayBBbmQgRXllIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnLnR5cGUgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgICAgPGFwcC1jYS1pbnB1dC1wYXNzd29yZFxuICAgICAgICAgICAgW2lucHV0Q29uZmlnXT1cIl9pbnB1dENvbmZpZ1wiXG4gICAgICAgICAgICBbZ2V0U3VwZXJDb250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICAgICAgW2lzRm9jdXNJbnB1dF09XCJpc0ZvY3VzSW5wdXRcIlxuICAgICAgICAgICAgW2lzVG91Y2hlZElucHV0XT1cImlzVG91Y2hlZElucHV0XCJcbiAgICAgICAgICAgIFtpc0NhcHNMb2NrT25dPVwiaXNDYXBzTG9ja09uXCJcbiAgICAgICAgICAgIFtpc1RvZ2dsZVBhc3N3b3JkXT1cImlzVG9nZ2xlUGFzc3dvcmRcIlxuICAgICAgICAgICAgKG9uVG9nZ2xlUGFzc3dvcmRDbGljayk9XCJvblRvZ2dsZVBhc3N3b3JkKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYXBwLWNhLWlucHV0LXBhc3N3b3JkPlxuICAgIH1cbiAgICA8IS0tIElucHV0IENsZWFyIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnIHwgc2hvd0NsZWFyOiBjb250cm9sPy5kaXNhYmxlZCkge1xuICAgICAgICA8YXBwLWNhLWlucHV0LWNsZWFyXG4gICAgICAgICAgICBbaW5wdXRDb25maWddPVwiX2lucHV0Q29uZmlnXCJcbiAgICAgICAgICAgIFtnZXRTdXBlckNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgICAgICAgICBbaXNGb2N1c0lucHV0XT1cImlzRm9jdXNJbnB1dFwiXG4gICAgICAgICAgICBbaW5jb3JyZWN0VmFsdWVdPVwiaW5jb3JyZWN0VmFsdWVcIlxuICAgICAgICAgICAgW3NlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXT1cInNlbGVjdGVkRHJvcGRvd25MYWJlbENvbG9yXCJcbiAgICAgICAgICAgIFt0ZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgICAoY2xlYXJJbnB1dENsaWNrKT1cImNsZWFySW5wdXQoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtY2EtaW5wdXQtY2xlYXI+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBEcm9wZG93biBBcnJvdyAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZyB8IHNob3dEcm9wZG93bkFycm93OiBjb250cm9sPy5kaXNhYmxlZCkge1xuICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtZHJvcGRvd24tYXJyb3cge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgICAgIGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgfCBpbnB1dERyb3Bkb3duQXJyb3dDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NyY109XCJpbnB1dFN2Z1JvdXRlcy5pbnB1dERyb3Bkb3duQXJyb3dTdmdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duT3B0aW9ucygpXCJcbiAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgfVxuXG4gICAgPCEtLSBJbnB1dCBQbGFjZWhvbGRlciBJY29uIC0tPlxuICAgIEBpZiAoX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVySWNvbikge1xuICAgICAgICA8YXBwLWNhLWlucHV0LXBsYWNlaG9sZGVyLWljb25cbiAgICAgICAgICAgIFtpbnB1dENvbmZpZ109XCJfaW5wdXRDb25maWdcIlxuICAgICAgICAgICAgW2dldFN1cGVyQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgICAgIFtpc0ZvY3VzSW5wdXRdPVwiaXNGb2N1c0lucHV0XCJcbiAgICAgICAgICAgIFtpc1RvdWNoZWRJbnB1dF09XCJjb250cm9sPy50b3VjaGVkIVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JdPVwic2VsZWN0ZWREcm9wZG93bkxhYmVsQ29sb3JcIlxuICAgICAgICAgICAgW2lzRWRpdElucHV0XT1cImlzRWRpdElucHV0XCJcbiAgICAgICAgICAgIChvblBsYWNlaG9sZGVySWNvbkV2ZW50RW1pdHRlcik9XCJvblBsYWNlaG9sZGVySWNvbkV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgKG9uUG9wb3ZlclNob3duRW1pdHRlcik9XCJvblBvcG92ZXJTaG93bigpXCJcbiAgICAgICAgICAgIChvblBvcG92ZXJIaWRkZW5FbWl0dGVyKT1cIm9uUG9wb3ZlckhpZGRlbigpXCJcbiAgICAgICAgICAgIFtkYXRlVGltZVBvcG92ZXJdPVwiZGF0ZVRpbWVQb3BvdmVyXCJcbiAgICAgICAgPlxuICAgICAgICA8L2FwcC1jYS1pbnB1dC1wbGFjZWhvbGRlci1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgUGxhY2Vob2xkZXIgVGV4dCAtLT5cbiAgICBAaWYgKFxuICAgICAgICBfaW5wdXRDb25maWdcbiAgICAgICAgICAgIHwgc2hvd1BsYWNlaG9sZGVyVGV4dDogY29udHJvbCA6IGlzVmlzaWJsZUNvbW1hbmRzIDogY29udHJvbD8udmFsdWVcbiAgICApIHtcbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiY2EtcGxhY2Vob2xkZXItdGV4dCB7eyBfaW5wdXRDb25maWcuY3VzdG9tQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlclRleHRDbGFzc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkIVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9pbnB1dENvbmZpZ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy52YWx1ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzdHlsZS5sZWZ0XT1cIlxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgICAgICAgICAgIGlucHV0U3RyaW5nRW51bS5QRVJTT05TIHx8XG4gICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyVGV4dD8udG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgaW5wdXRTdHJpbmdFbnVtLlZFSElDTEVTXG4gICAgICAgICAgICAgICAgICAgID8gMzAgKyAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDEpICogOSArICdweCdcbiAgICAgICAgICAgICAgICAgICAgOiBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQ/LnRvTG93ZXJDYXNlKCkgIT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRDb21tYW5kc1R5cGUuTU9OVEhTXG4gICAgICAgICAgICAgICAgICAgICAgPyAnYXV0bydcbiAgICAgICAgICAgICAgICAgICAgICA6IChjb250cm9sPy52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoICsgMSkgKiA4ICsgJ3B4J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtzdHlsZS5yaWdodF09XCJcbiAgICAgICAgICAgICAgICBpc0ZvY3VzSW5wdXQgJiZcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJUZXh0Py50b0xvd2VyQ2FzZSgpICE9PVxuICAgICAgICAgICAgICAgICAgICBpbnB1dENvbW1hbmRzVHlwZS5NT05USFNcbiAgICAgICAgICAgICAgICAgICAgPyAnMjhweCdcbiAgICAgICAgICAgICAgICAgICAgOiAnYXV0bydcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlclRleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgTGFiZWwgQ291bnRlciAtLT5cbiAgICBAaWYgKFxuICAgICAgICBzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvciAmJlxuICAgICAgICBjb250cm9sPy52YWx1ZSAmJlxuICAgICAgICAhaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNEaXNhYmxlZCAmJlxuICAgICAgICAhY29udHJvbD8uZGlzYWJsZWQgJiZcbiAgICAgICAgX2lucHV0Q29uZmlnLnNob3dDb3VudFxuICAgICkge1xuICAgICAgICA8cFxuICAgICAgICAgICAgW3N0eWxlLnRvcF09XCInNHB4J1wiXG4gICAgICAgICAgICBbc3R5bGUubGVmdF09XCIoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCArIDYuNSkgKiA4ICsgJ3B4J1wiXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LWxhYmVsLWNvdW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyBzZWxlY3RlZERyb3Bkb3duTGFiZWxDb2xvci5jb3VudCB9fVxuICAgICAgICA8L3A+XG4gICAgfVxuXG4gICAgPCEtLSBTcGVjaWFsIERyb3Bkb3duIFNlbGVjdGVkIFNWRyB3aXRoIG9yIFdpdGhvdXQgVGV4dCAtLT5cbiAgICBAaWYgKFxuICAgICAgICBfaW5wdXRDb25maWc/LmRyb3Bkb3duSW1hZ2VJbnB1dD8uaWNvbnNQYXRoICYmXG4gICAgICAgIGFjdGl2ZUl0ZW0gJiZcbiAgICAgICAgIV9pbnB1dENvbmZpZz8uaGlkZUFsbEl0ZW1zSW5JbnB1dERyb3Bkb3duICYmXG4gICAgICAgICEoIV9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LndpdGhUZXh0ICYmIGlzRm9jdXNJbnB1dCkgJiZcbiAgICAgICAgIShcbiAgICAgICAgICAgIFsndHJ1Y2snLCAndHJhaWxlciddLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LnRlbXBsYXRlIVxuICAgICAgICAgICAgKSAmJlxuICAgICAgICAgICAgaXNGb2N1c0lucHV0ICYmXG4gICAgICAgICAgICBfaW5wdXRDb25maWcuZHJvcGRvd25JbWFnZUlucHV0Py5yZW1vdmVcbiAgICAgICAgKSAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnPy5kcm9wZG93bkltYWdlSW5wdXQ/Lm5hbWVJbml0aWFsc0luc3RlYWRVcmxcbiAgICApIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBbc3JjXT1cIl9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/Lmljb25zUGF0aCFcIlxuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1zZWxlY3RlZC1pbWFnZSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNsYXNzXG4gICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ3Vuc2V0LWNvbG9yJzpcbiAgICAgICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0ICYmIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNsYXNzLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICBbc3ZnU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgIGZpbGw6XG4gICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5kcm9wZG93bkltYWdlSW5wdXQ/LmNvbG9yICYmICFpc0ZvY3VzSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gX2lucHV0Q29uZmlnLmRyb3Bkb3duSW1hZ2VJbnB1dD8uY29sb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJyNmZmZmZmYnLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgPC9zdmctaWNvbj5cbiAgICB9XG5cbiAgICA8IS0tIElucHV0IExhYmVsIC0tPlxuICAgIEBpZiAoIV9pbnB1dENvbmZpZy5tdWx0aVNlbGVjdERyb3Bkb3duQWN0aXZlKSB7XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgW2Zvcl09XCJfaW5wdXRDb25maWcubmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cImlucHV0LWxhYmVsIHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5tdWx0aXBsZUxhYmVsPy5jdXN0b21DbGFzc1xuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgY29udHJvbD8udmFsdWVcbiAgICAgICAgICAgICAgICAgICAgfCBsYWJlbENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBfaW5wdXRDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogaXNUb3VjaGVkSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy50b3VjaGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uZGlzYWJsZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgX2lucHV0Q29uZmlnLmxhYmVsIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8ubGFiZWxzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJfaW5wdXRDb25maWcubXVsdGlwbGVMYWJlbD8uY3VzdG9tQ2xhc3MhXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ211bHRpcGxlLWxhYmVscy1wb3NpdGlvbi1vbi1mb2N1cyc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lucHV0Q29uZmlnLm11bHRpcGxlSW5wdXRWYWx1ZXM/Lm9wdGlvbnM/Lmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5pc1JlcXVpcmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIV9pbnB1dENvbmZpZy5pc0Rpc2FibGVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWNvbnRyb2w/LmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWwgb2YgX2lucHV0Q29uZmlnLm11bHRpcGxlTGFiZWw/LmxhYmVscztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrICRpbmRleFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9sYWJlbD5cbiAgICB9XG4gICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICAoaW5wdXQpPVwiaGFuZGxlSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgIFtyZXN0cmljdElucHV0XT1cImlucHV0Q29uZmlnXCJcbiAgICAgICAgcHJpY2VGb3JtYXRcbiAgICAgICAgW3ByaWNlU2VwYXJhdG9yXT1cIlxuICAgICAgICAgICAgaW5wdXRDb25maWcucHJpY2VTZXBhcmF0b3IgfHwgaW5wdXRDb25maWcudGhvdXNhbmRTZXBhcmF0b3JcbiAgICAgICAgXCJcbiAgICAgICAgKGZvY3VzKT1cImhhbmRsZUlucHV0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cImhhbmRsZUlucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgW3JlYWRPbmx5XT1cIl9pbnB1dENvbmZpZy5yZWFkT25seVwiXG4gICAgICAgIFt0eXBlXT1cIl9pbnB1dENvbmZpZy50eXBlIHwgaW5wdXRUeXBlOiBpc1RvZ2dsZVBhc3N3b3JkXCJcbiAgICAgICAgY2xhc3M9XCJpbnB1dC1jb250cm9sXG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcudGV4dFRyYW5zZm9ybSB9fVxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLnRleHRBbGlnbiB9fVxuICAgICAgICAgICAge3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XG4gICAgICAgIFwiXG4gICAgICAgIFthcHBNYXhWYWx1ZV09XCJpbnB1dENvbmZpZy5tYXhcIlxuICAgICAgICBhcHBDYXBzTG9ja1xuICAgICAgICAoY2Fwc0xvY2tTdGF0dXMpPVwiaGFuZGxlQ2Fwc0xvY2soJGV2ZW50KVwiXG4gICAgICAgIGNvbW1hbmRWaXNpYmxlXG4gICAgICAgIChjb21tYW5kVmlzaWJsZSk9XCJoYW5kbGVDb21tYW5kVmlzaWJsZSgkZXZlbnQpXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlxuICAgICAgICAgICAgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckluc3RlYWRPZkxhYmVsICYmXG4gICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXIgJiZcbiAgICAgICAgICAgIGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgID8gX2lucHV0Q29uZmlnLnBsYWNlaG9sZGVyXG4gICAgICAgICAgICAgICAgOiAnJykgfHxcbiAgICAgICAgICAgIChfaW5wdXRDb25maWcucGxhY2Vob2xkZXIgJiYgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgPyBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICA6ICcnKVxuICAgICAgICBcIlxuICAgICAgICBbbWFza109XCJfaW5wdXRDb25maWcubWFza1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgY29udHJvbFxuICAgICAgICAgICAgICAgIHwgaW5wdXRDbGFzc1xuICAgICAgICAgICAgICAgICAgICA6IGlzRm9jdXNJbnB1dFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWQhXG4gICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgIDogaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgOiBpc1Zpc2libGVDb21tYW5kc1xuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogY29udHJvbD8uaW52YWxpZFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LnRvdWNoZWRcbiAgICAgICAgICAgICAgICAgICAgOiBpc0Ryb3Bkb3duVG9nZ2xlclxuICAgICAgICAgICAgICAgICAgICA6IGlzRWRpdElucHV0XG4gICAgICAgICAgICAgICAgICAgIDogdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgOiBjb250cm9sPy5kaXNhYmxlZFxuICAgICAgICBcIlxuICAgIC8+XG5cbiAgICA8IS0tIFBsYWNlaG9sZGVyIEljb24gb24gUmlnaHQgU2lkZSAtLT5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25SaWdodFNpZGUpIHtcbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInBsYWNlaG9sZGVyLWljb24tcmlnaHQtc2lkZSB7e1xuICAgICAgICAgICAgICAgIF9pbnB1dENvbmZpZy5wbGFjZWhvbGRlckljb25Db2xvclxuICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiXG4gICAgICAgICAgICAgICAgaXNGb2N1c0lucHV0XG4gICAgICAgICAgICAgICAgICAgIHwgaW5wdXRQbGFjZWhvbGRlckljb25SaWdodENsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2lucHV0Q29uZmlnXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGlzVG91Y2hlZElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnRyb2w/LmRpc2FibGVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3NyY109XCJcbiAgICAgICAgICAgICAgICBfaW5wdXRDb25maWcucGxhY2Vob2xkZXJJY29uUmlnaHRTaWRlLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgfCBjYVN2ZzogJ2NvbW1vbidcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3N2Zy1pY29uPlxuICAgIH1cblxuICAgIDwhLS0gSW5wdXQgRXJyb3IgTWVzc2FnZSAtLT5cbiAgICBAaWYgKFxuICAgICAgICAhKCFjb250cm9sPy52YWx1ZSAmJiBpc0ZvY3VzSW5wdXQpICYmXG4gICAgICAgIChpc1RvdWNoZWRJbnB1dCB8fCBjb250cm9sPy50b3VjaGVkIHx8IGNvbnRyb2w/LnZhbHVlKSAmJlxuICAgICAgICBjb250cm9sPy5pbnZhbGlkICYmXG4gICAgICAgICFfaW5wdXRDb25maWcuaXNJbnZhbGlkU2VhcmNoSW5Ecm9wZG93biAmJlxuICAgICAgICAhX2lucHV0Q29uZmlnLmlzRGlzYWJsZWQgJiZcbiAgICAgICAgIWNvbnRyb2w/LmRpc2FibGVkXG4gICAgKSB7XG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICAhKF9pbnB1dENvbmZpZy5oaWRlRXJyb3JNZXNzYWdlIHx8IF9pbnB1dENvbmZpZy5lcnJvckluc2lkZUlucHV0KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtZXJyb3Ige3sgX2lucHV0Q29uZmlnLmN1c3RvbUNsYXNzIH19XCI+XG4gICAgICAgICAgICAgICAge3sgY29udHJvbD8uZXJyb3JzIHwgaW5wdXRFcnJvcjogX2lucHV0Q29uZmlnLm5hbWUgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gRXJyb3IgTWVzc2FnZSBJbnNpZGUgSW5wdXQgLS0+XG4gICAgICAgIEBpZiAoX2lucHV0Q29uZmlnLmVycm9ySW5zaWRlSW5wdXQpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItaW5zaWRlLWlucHV0IHt7IF9pbnB1dENvbmZpZy5jdXN0b21DbGFzcyB9fVwiPlxuICAgICAgICAgICAgICAgIHt7IGNvbnRyb2w/LmVycm9ycyB8IGlucHV0RXJyb3I6IF9pbnB1dENvbmZpZy5uYW1lIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKF9pbnB1dENvbmZpZy5maXhlZFBsYWNob2xkZXIgJiYgaW5wdXQudmFsdWUpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1maXhlZC1wbGFjZWhvZGVyLWxhYmVsXCI+XG4gICAgICAgICAgICB7eyBfaW5wdXRDb25maWcuZml4ZWRQbGFjaG9sZGVyIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
107
107
  }], removeToast: [{
108
108
  type: Output
109
109
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtdG9hc3QtbWVzc2FnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtdG9hc3QtbWVzc2FnZXMvY2EtdG9hc3QtbWVzc2FnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtdG9hc3QtbWVzc2FnZXMvY2EtdG9hc3QtbWVzc2FnZXMtY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxTQUFTO0FBQ1QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELFFBQVE7QUFDUixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEUsYUFBYTtBQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUF5QzFFLE1BQU0sT0FBTyx3QkFBd0I7SUFrQmpDO1FBVlUsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSTFDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEMsYUFBYTtRQUNOLG9CQUFlLEdBQUcsZUFBZSxDQUFDO0lBRTFCLENBQUM7SUFFaEIsUUFBUTtRQUNKLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUU3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO1FBQzlCLENBQUM7SUFDTCxDQUFDO0lBRU0sbUJBQW1CO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDL0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQzsrR0FoRFEsd0JBQXdCO21HQUF4Qix3QkFBd0Isa1VDdkRyQyx1NURBbURBLCswMENEaENRLFlBQVksNEhBQ1osb0JBQW9CLDROQUNwQixtQkFBbUIsbURBQ25CLGdCQUFnQix1Q0FNUjtZQUNSLE9BQU8sQ0FBQyxXQUFXLEVBQUU7Z0JBQ2pCLFVBQVUsQ0FBQyxZQUFZLEVBQUU7b0JBQ3JCLEtBQUssQ0FBQzt3QkFDRixPQUFPLEVBQUUsQ0FBQzt3QkFDVixTQUFTLEVBQUUsbUNBQW1DO3FCQUNqRCxDQUFDO29CQUNGLE9BQU8sQ0FDSCxnQkFBZ0IsRUFDaEIsS0FBSyxDQUFDO3dCQUNGLE9BQU8sRUFBRSxDQUFDO3dCQUNWLFNBQVMsRUFBRSxnQ0FBZ0M7cUJBQzlDLENBQUMsQ0FDTDtpQkFDSixDQUFDO2dCQUNGLFVBQVUsQ0FBQyxXQUFXLEVBQUU7b0JBQ3BCLE9BQU8sQ0FDSCxlQUFlLEVBQ2YsS0FBSyxDQUFDO3dCQUNGLE9BQU8sRUFBRSxDQUFDO3dCQUNWLFNBQVMsRUFBRSxtQ0FBbUM7cUJBQ2pELENBQUMsQ0FDTDtpQkFDSixDQUFDO2FBQ0wsQ0FBQztTQUNMOzs0RkFFUSx3QkFBd0I7a0JBdkNwQyxTQUFTO2lDQUNNLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7cUJBQ25CLFlBRVMsdUJBQXVCLGNBR3JCO3dCQUNSLE9BQU8sQ0FBQyxXQUFXLEVBQUU7NEJBQ2pCLFVBQVUsQ0FBQyxZQUFZLEVBQUU7Z0NBQ3JCLEtBQUssQ0FBQztvQ0FDRixPQUFPLEVBQUUsQ0FBQztvQ0FDVixTQUFTLEVBQUUsbUNBQW1DO2lDQUNqRCxDQUFDO2dDQUNGLE9BQU8sQ0FDSCxnQkFBZ0IsRUFDaEIsS0FBSyxDQUFDO29DQUNGLE9BQU8sRUFBRSxDQUFDO29DQUNWLFNBQVMsRUFBRSxnQ0FBZ0M7aUNBQzlDLENBQUMsQ0FDTDs2QkFDSixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ3BCLE9BQU8sQ0FDSCxlQUFlLEVBQ2YsS0FBSyxDQUFDO29DQUNGLE9BQU8sRUFBRSxDQUFDO29DQUNWLFNBQVMsRUFBRSxtQ0FBbUM7aUNBQ2pELENBQUMsQ0FDTDs2QkFDSixDQUFDO3lCQUNMLENBQUM7cUJBQ0w7d0RBR1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy9Nb2R1bGVzXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcblxuLy8gcGlwZXNcbmltcG9ydCB7IFRvYXN0QmFja2dyb3VuZFBpcGUsIFRvYXN0TWVzc2FnZVBpcGUgfSBmcm9tICcuL3BpcGVzJztcblxuLy8gc3ZnIHJvdXRlc1xuaW1wb3J0IHsgU2hhcmVkU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcyc7XG5cbi8vIGVudW1zXG5pbXBvcnQgeyBlVG9hc3RUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgVG9hc3RCYWNrZ3JvdW5kUGlwZSxcbiAgICAgICAgVG9hc3RNZXNzYWdlUGlwZSxcbiAgICBdLFxuXG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtdG9hc3QtbWVzc2FnZXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS10b2FzdC1tZXNzYWdlcy1jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2EtdG9hc3QtbWVzc2FnZXMtY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2ZhZGVTbGlkZScsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gaW4nLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMjBweCknLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgICAgICAgICAgICczMDBtcyBlYXNlLW91dCcsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCknLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2luID0+IG91dCcsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgICAgICAgICAnMzAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMjBweCknLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FUb2FzdE1lc3NhZ2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSB0eXBlITogZVRvYXN0VHlwZTtcbiAgICBASW5wdXQoKSBtb2R1bGVOYW1lITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRvYXN0TWVzc2FnZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsTWVzc2FnZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc0ZhaWxlZE1lc3NhZ2UhOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzU3Rvcnlib29rRXhhbXBsZSE6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCkgcmVtb3ZlVG9hc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIGF1dG9DbG9zZVRpbWVyOiBhbnk7XG5cbiAgICBwdWJsaWMgaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNIb3ZlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gc3ZnLXJvdXRlc1xuICAgIHB1YmxpYyBzaGFyZWRTdmdSb3V0ZXMgPSBTaGFyZWRTdmdSb3V0ZXM7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGFydEF1dG9DbG9zZVRpbWVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZVRvYXN0SG92ZXIoaXNIb3ZlcjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzSG92ZXJBY3RpdmUgPSBpc0hvdmVyO1xuXG4gICAgICAgIGlmIChpc0hvdmVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvQ2xvc2VUaW1lcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0QXV0b0Nsb3NlVGltZXIoKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0Q2xvc2VBbmltYXRpb24oKSB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQW5pbWF0aW9uRG9uZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVUb2FzdC5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0QXV0b0Nsb3NlVGltZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXV0b0Nsb3NlVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRDbG9zZUFuaW1hdGlvbigpO1xuICAgICAgICB9LCAzMDAwKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ3LTMwMCBici0zIHAtMSBwb3NpdGlvbi1maXhlZCB0b2FzdC1jb250YWluZXItbWFpbiB6LTNcIlxuICAgIFtAZmFkZVNsaWRlXT1cImlzVmlzaWJsZSA/ICdpbicgOiAnb3V0J1wiXG4gICAgKEBmYWRlU2xpZGUuZG9uZSk9XCJvbkFuaW1hdGlvbkRvbmUoKVwiXG4gICAgKG1vdXNlZW50ZXIpPVwiaGFuZGxlVG9hc3RIb3Zlcih0cnVlKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwiaGFuZGxlVG9hc3RIb3ZlcihmYWxzZSlcIlxuICAgIFtuZ0NsYXNzXT1cInR5cGUgfCB0b2FzdEJhY2tncm91bmQgOiBpc0ZhaWxlZE1lc3NhZ2VcIlxuICAgIFtjbGFzcy5uby1ib3JkZXJzXT1cImlzU3Rvcnlib29rRXhhbXBsZVwiXG4+XG4gICAgQGlmKGlzSG92ZXJBY3RpdmUpIHtcbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidG9hc3QtY2xvc2UgYnItMiBwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtMSBlbmQtMSB3LTIyIGgtMjIgYy1wb2ludGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIlxuICAgICAgICAgICAgaXNGYWlsZWRNZXNzYWdlID8gJ2JhY2tncm91bmQtaG92ZXItYncyJzogJ2JhY2tncm91bmQtaG92ZXItd2hpdGUtNCdcbiAgICAgICAgXCJcbiAgICAgICAgKGNsaWNrKT1cInN0YXJ0Q2xvc2VBbmltYXRpb24oKVwiXG4gICAgPlxuICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgIFtzcmNdPVwic2hhcmVkU3ZnUm91dGVzLkNMT1NFX0lDT05fTk9STUFMXCJcbiAgICAgICAgICAgIGNsYXNzPVwic3ZnLXNpemUtMTQgdy0yMiBoLTIyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0ZhaWxlZE1lc3NhZ2UgPyAnc3ZnLWZpbGwtZ3JleSBzdmctaG92ZXItYmxhY2snIDogJ3N2Zy1maWxsLXdoaXRlLTMgc3ZnLWhvdmVyLXdoaXRlJ1wiXG4gICAgICAgID48L3N2Zy1pY29uPlxuICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJwYWRkaW5nLXktNCBwYWRkaW5nLXgtOFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc2l6ZS0xMSBjYS1mb250LWJvbGRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXNGYWlsZWRNZXNzYWdlID8gJ3RleHQtY29sb3ItcmVkLTExJzogJ3RleHQtY29sb3Itd2hpdGUtMydcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB0eXBlIHwgdG9hc3RNZXNzYWdlIDogaXNGYWlsZWRNZXNzYWdlIH19IHt7bW9kdWxlTmFtZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc2l6ZS0xNCBjYS1mb250LXNlbWktYm9sZCBwYWRkaW5nLXQtMlwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0ZhaWxlZE1lc3NhZ2UgPyAndGV4dC1jb2xvci1ibGFjay0yJyA6ICd0ZXh0LWNvbG9yLXdoaXRlJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7dG9hc3RNZXNzYWdlfX0gQGlmKGFkZGl0aW9uYWxNZXNzYWdlKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtY29sb3Itd2hpdGUtNCBjYS1mb250LXJlZ3VsYXJcIlxuICAgICAgICAgICAgICAgID57e2FkZGl0aW9uYWxNZXNzYWdlfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgQGlmKGlzRmFpbGVkTWVzc2FnZSkge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJiYWNrZ3JvdW5kLWJ3Ni0yIHRleHQtY29sb3Itd2hpdGUgdGV4dC1zaXplLTExIHB5LTEgdGV4dC1jZW50ZXIgYnItMiBtYXJnaW4tdC00IGMtcG9pbnRlciBjYS1mb250LWJvbGRcIlxuICAgID5cbiAgICAgICAgVFJZIEFHQUlOXG4gICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtdG9hc3QtbWVzc2FnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtdG9hc3QtbWVzc2FnZXMvY2EtdG9hc3QtbWVzc2FnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2EtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY2EtdG9hc3QtbWVzc2FnZXMvY2EtdG9hc3QtbWVzc2FnZXMtY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxTQUFTO0FBQ1QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXhELFFBQVE7QUFDUixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEUsYUFBYTtBQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUl6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUF5QzFFLE1BQU0sT0FBTyx3QkFBd0I7SUFrQmpDO1FBVlUsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBSTFDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEMsYUFBYTtRQUNOLG9CQUFlLEdBQUcsZUFBZSxDQUFDO0lBRTFCLENBQUM7SUFFaEIsUUFBUTtRQUNKLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUU3QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1YsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0lBRU0sbUJBQW1CO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVPLG1CQUFtQjtRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDL0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQzsrR0FoRFEsd0JBQXdCO21HQUF4Qix3QkFBd0Isa1VDdkRyQyx1NURBbURBLCswMENEaENRLFlBQVksNEhBQ1osb0JBQW9CLDROQUNwQixtQkFBbUIsbURBQ25CLGdCQUFnQix1Q0FNUjtZQUNSLE9BQU8sQ0FBQyxXQUFXLEVBQUU7Z0JBQ2pCLFVBQVUsQ0FBQyxZQUFZLEVBQUU7b0JBQ3JCLEtBQUssQ0FBQzt3QkFDRixPQUFPLEVBQUUsQ0FBQzt3QkFDVixTQUFTLEVBQUUsbUNBQW1DO3FCQUNqRCxDQUFDO29CQUNGLE9BQU8sQ0FDSCxnQkFBZ0IsRUFDaEIsS0FBSyxDQUFDO3dCQUNGLE9BQU8sRUFBRSxDQUFDO3dCQUNWLFNBQVMsRUFBRSxnQ0FBZ0M7cUJBQzlDLENBQUMsQ0FDTDtpQkFDSixDQUFDO2dCQUNGLFVBQVUsQ0FBQyxXQUFXLEVBQUU7b0JBQ3BCLE9BQU8sQ0FDSCxlQUFlLEVBQ2YsS0FBSyxDQUFDO3dCQUNGLE9BQU8sRUFBRSxDQUFDO3dCQUNWLFNBQVMsRUFBRSxtQ0FBbUM7cUJBQ2pELENBQUMsQ0FDTDtpQkFDSixDQUFDO2FBQ0wsQ0FBQztTQUNMOzs0RkFFUSx3QkFBd0I7a0JBdkNwQyxTQUFTO2lDQUNNLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7cUJBQ25CLFlBRVMsdUJBQXVCLGNBR3JCO3dCQUNSLE9BQU8sQ0FBQyxXQUFXLEVBQUU7NEJBQ2pCLFVBQVUsQ0FBQyxZQUFZLEVBQUU7Z0NBQ3JCLEtBQUssQ0FBQztvQ0FDRixPQUFPLEVBQUUsQ0FBQztvQ0FDVixTQUFTLEVBQUUsbUNBQW1DO2lDQUNqRCxDQUFDO2dDQUNGLE9BQU8sQ0FDSCxnQkFBZ0IsRUFDaEIsS0FBSyxDQUFDO29DQUNGLE9BQU8sRUFBRSxDQUFDO29DQUNWLFNBQVMsRUFBRSxnQ0FBZ0M7aUNBQzlDLENBQUMsQ0FDTDs2QkFDSixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ3BCLE9BQU8sQ0FDSCxlQUFlLEVBQ2YsS0FBSyxDQUFDO29DQUNGLE9BQU8sRUFBRSxDQUFDO29DQUNWLFNBQVMsRUFBRSxtQ0FBbUM7aUNBQ2pELENBQUMsQ0FDTDs2QkFDSixDQUFDO3lCQUNMLENBQUM7cUJBQ0w7d0RBR1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy9Nb2R1bGVzXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhclN2Z0ljb25Nb2R1bGUgfSBmcm9tICdhbmd1bGFyLXN2Zy1pY29uJztcblxuLy8gcGlwZXNcbmltcG9ydCB7IFRvYXN0QmFja2dyb3VuZFBpcGUsIFRvYXN0TWVzc2FnZVBpcGUgfSBmcm9tICcuL3BpcGVzJztcblxuLy8gc3ZnIHJvdXRlc1xuaW1wb3J0IHsgU2hhcmVkU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcyc7XG5cbi8vIGVudW1zXG5pbXBvcnQgeyBlVG9hc3RUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICAgICAgVG9hc3RCYWNrZ3JvdW5kUGlwZSxcbiAgICAgICAgVG9hc3RNZXNzYWdlUGlwZSxcbiAgICBdLFxuXG4gICAgc2VsZWN0b3I6ICdhcHAtY2EtdG9hc3QtbWVzc2FnZXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYS10b2FzdC1tZXNzYWdlcy1jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2EtdG9hc3QtbWVzc2FnZXMtY29tcG9uZW50LnNjc3MnXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoJ2ZhZGVTbGlkZScsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gaW4nLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMjBweCknLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoXG4gICAgICAgICAgICAgICAgICAgICczMDBtcyBlYXNlLW91dCcsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCknLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2luID0+IG91dCcsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgICAgICAgICAnMzAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMjBweCknLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FUb2FzdE1lc3NhZ2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSB0eXBlITogZVRvYXN0VHlwZTtcbiAgICBASW5wdXQoKSBtb2R1bGVOYW1lITogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHRvYXN0TWVzc2FnZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsTWVzc2FnZSE6IHN0cmluZztcbiAgICBASW5wdXQoKSBpc0ZhaWxlZE1lc3NhZ2UhOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzU3Rvcnlib29rRXhhbXBsZSE6IGJvb2xlYW47XG5cbiAgICBAT3V0cHV0KCkgcmVtb3ZlVG9hc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIGF1dG9DbG9zZVRpbWVyOiBhbnk7XG5cbiAgICBwdWJsaWMgaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNIb3ZlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gc3ZnLXJvdXRlc1xuICAgIHB1YmxpYyBzaGFyZWRTdmdSb3V0ZXMgPSBTaGFyZWRTdmdSb3V0ZXM7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGFydEF1dG9DbG9zZVRpbWVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGhhbmRsZVRvYXN0SG92ZXIoaXNIb3ZlcjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmlzSG92ZXJBY3RpdmUgPSBpc0hvdmVyO1xuXG4gICAgICAgIGlmIChpc0hvdmVyKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5hdXRvQ2xvc2VUaW1lcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0QXV0b0Nsb3NlVGltZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGFydENsb3NlQW5pbWF0aW9uKCkge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFuaW1hdGlvbkRvbmUoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlVG9hc3QuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydEF1dG9DbG9zZVRpbWVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF1dG9DbG9zZVRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0Q2xvc2VBbmltYXRpb24oKTtcbiAgICAgICAgfSwgMzAwMCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGNsYXNzPVwidy0zMDAgYnItMyBwLTEgcG9zaXRpb24tZml4ZWQgdG9hc3QtY29udGFpbmVyLW1haW4gei0zXCJcbiAgICBbQGZhZGVTbGlkZV09XCJpc1Zpc2libGUgPyAnaW4nIDogJ291dCdcIlxuICAgIChAZmFkZVNsaWRlLmRvbmUpPVwib25BbmltYXRpb25Eb25lKClcIlxuICAgIChtb3VzZWVudGVyKT1cImhhbmRsZVRvYXN0SG92ZXIodHJ1ZSlcIlxuICAgIChtb3VzZWxlYXZlKT1cImhhbmRsZVRvYXN0SG92ZXIoZmFsc2UpXCJcbiAgICBbbmdDbGFzc109XCJ0eXBlIHwgdG9hc3RCYWNrZ3JvdW5kIDogaXNGYWlsZWRNZXNzYWdlXCJcbiAgICBbY2xhc3Mubm8tYm9yZGVyc109XCJpc1N0b3J5Ym9va0V4YW1wbGVcIlxuPlxuICAgIEBpZihpc0hvdmVyQWN0aXZlKSB7XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRvYXN0LWNsb3NlIGJyLTIgcG9zaXRpb24tYWJzb2x1dGUgdG9wLTEgZW5kLTEgdy0yMiBoLTIyIGMtcG9pbnRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICBbbmdDbGFzc109XCJcbiAgICAgICAgICAgIGlzRmFpbGVkTWVzc2FnZSA/ICdiYWNrZ3JvdW5kLWhvdmVyLWJ3Mic6ICdiYWNrZ3JvdW5kLWhvdmVyLXdoaXRlLTQnXG4gICAgICAgIFwiXG4gICAgICAgIChjbGljayk9XCJzdGFydENsb3NlQW5pbWF0aW9uKClcIlxuICAgID5cbiAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICBbc3JjXT1cInNoYXJlZFN2Z1JvdXRlcy5DTE9TRV9JQ09OX05PUk1BTFwiXG4gICAgICAgICAgICBjbGFzcz1cInN2Zy1zaXplLTE0IHctMjIgaC0yMiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXNGYWlsZWRNZXNzYWdlID8gJ3N2Zy1maWxsLWdyZXkgc3ZnLWhvdmVyLWJsYWNrJyA6ICdzdmctZmlsbC13aGl0ZS0zIHN2Zy1ob3Zlci13aGl0ZSdcIlxuICAgICAgICA+PC9zdmctaWNvbj5cbiAgICA8L2Rpdj5cbiAgICB9XG5cbiAgICA8ZGl2IGNsYXNzPVwicGFkZGluZy15LTQgcGFkZGluZy14LThcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNpemUtMTEgY2EtZm9udC1ib2xkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImlzRmFpbGVkTWVzc2FnZSA/ICd0ZXh0LWNvbG9yLXJlZC0xMSc6ICd0ZXh0LWNvbG9yLXdoaXRlLTMnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgdHlwZSB8IHRvYXN0TWVzc2FnZSA6IGlzRmFpbGVkTWVzc2FnZSB9fSB7e21vZHVsZU5hbWV9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXNpemUtMTQgY2EtZm9udC1zZW1pLWJvbGQgcGFkZGluZy10LTJcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXNGYWlsZWRNZXNzYWdlID8gJ3RleHQtY29sb3ItYmxhY2stMicgOiAndGV4dC1jb2xvci13aGl0ZSdcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7e3RvYXN0TWVzc2FnZX19IEBpZihhZGRpdGlvbmFsTWVzc2FnZSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWNvbG9yLXdoaXRlLTQgY2EtZm9udC1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgICA+e3thZGRpdGlvbmFsTWVzc2FnZX19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIEBpZihpc0ZhaWxlZE1lc3NhZ2UpIHtcbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYmFja2dyb3VuZC1idzYtMiB0ZXh0LWNvbG9yLXdoaXRlIHRleHQtc2l6ZS0xMSBweS0xIHRleHQtY2VudGVyIGJyLTIgbWFyZ2luLXQtNCBjLXBvaW50ZXIgY2EtZm9udC1ib2xkXCJcbiAgICA+XG4gICAgICAgIFRSWSBBR0FJTlxuICAgIDwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19