@wizishop/wizi-block 14.1.21-beta → 14.1.22-beta

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.
@@ -51,7 +51,7 @@ export class WiziBlockComponent {
51
51
  this.configEventSubscription = null;
52
52
  this.contentEventSubscription = null;
53
53
  this.wiziblockServicesList = [];
54
- this.LOADING_OFFSET = 600;
54
+ this.LOADING_OFFSET = window.innerHeight;
55
55
  }
56
56
  set contentBlock(control) {
57
57
  this.blockComponent = control;
@@ -238,7 +238,6 @@ export class WiziBlockComponent {
238
238
  var scrollY = window.scrollY;
239
239
  this.content.forEach((block, index) => {
240
240
  if (!(block instanceof (FormsDto))) {
241
- console.log("not loaded");
242
241
  var rect = blockContainers[index].getBoundingClientRect();
243
242
  var pos = rect.top + scrollY;
244
243
  if ((windowHeight + scrollY + this.LOADING_OFFSET) >= (pos)) {
@@ -294,4 +293,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImpor
294
293
  type: HostListener,
295
294
  args: ['window:scroll', []]
296
295
  }] } });
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6aS1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy9saWIvd2l6aS1ibG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy9saWIvd2l6aS1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUVoRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVN2RCxNQUFNLE9BQU8sa0JBQWtCO0lBcUMzQixZQUNZLGdC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QUUsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsQ0FBQzsrTEFHakcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVxQixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBbUNpQixZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSUYsY0FBYztzQkFBaEQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFdpemlCbG9ja1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3dpemktYmxvY2suc2VydmljZSc7XG5pbXBvcnQgeyBTdHJ1Y3R1cmVzTGlzdER0byB9IGZyb20gJy4vZHRvcy9jb25maWdzL3N0cnVjdHVyZXMvc3RydWN0dXJlcy1saXN0LmR0byc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbnNEdG8gfSBmcm9tICcuL2R0b3MvY29uZmlncy90cmFuc2xhdGlvbnMvdHJhbnNsYXRpb25zLmR0byc7XG5pbXBvcnQgeyBUeXBlc0R0byB9IGZyb20gJy4vZHRvcy9jb25maWdzL3R5cGVzL3R5cGVzLmR0byc7XG5pbXBvcnQgeyBTdHJ1Y3R1cmVDb25maWdEdG8gfSBmcm9tICcuL2R0b3MvY29uZmlncy9zdHJ1Y3R1cmVzL3N0cnVjdHVyZS1jb25maWcuZHRvJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3V0aWxzL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29udGVudFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3V0aWxzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBhbmltYXRlTGlzdEZyb21SaWdodCB9IGZyb20gJy4vc2hhcmVkL2FuaW1hdGlvbnMvbGlzdC9hbmltYXRlLWxpc3QtZnJvbS1yaWdodC5hbmltYXRpb24nO1xuaW1wb3J0IHsgYW5pbWF0ZUxpc3RGcm9tTGVmdCB9IGZyb20gJy4vc2hhcmVkL2FuaW1hdGlvbnMvbGlzdC9hbmltYXRlLWxpc3QtZnJvbS1sZWZ0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBQYXJlbnRCbG9ja0R0byB9IGZyb20gJy4vZHRvcy9ibG9ja3MvcGFyZW50LWJsb2NrLmR0byc7XG5pbXBvcnQgeyBGb3Jtc0R0byB9IGZyb20gJy4vZHRvcy9mb3Jtcy9mb3Jtcy5kdG8nO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmxvY2tzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Jsb2Nrcy9ibG9ja3MuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZUJsb2NrU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdXRpbHMvdHJhbnNsYXRlLWJsb2NrLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3diLXdpemktYmxvY2snLFxuICAgIHRlbXBsYXRlVXJsOiAnLi93aXppLWJsb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFtdLFxuICAgIGFuaW1hdGlvbnM6IFthbmltYXRlTGlzdEZyb21SaWdodCgnMjAwbXMgZWFzZS1pbi1vdXQnLCAnMTAwbXMnKSwgYW5pbWF0ZUxpc3RGcm9tTGVmdCgnMTAwbXMgZWFzZS1pbi1vdXQnKV0sXG59KVxuZXhwb3J0IGNsYXNzIFdpemlCbG9ja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBhdmFpbGFibGVDb21wb25lbnRzOiBBcnJheTxzdHJpbmc+O1xuICAgIEBJbnB1dCgpIHRleHRzOiBUcmFuc2xhdGlvbnNEdG8gPSBudWxsO1xuICAgIEBJbnB1dCgpIGNvbnRlbnQgPSBbXTtcbiAgICBASW5wdXQoKSB2ZXJib3NlID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNJbkRldiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIGNvbnRlbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxBcnJheTxQYXJlbnRCbG9ja0R0bz4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZCgnY29tcG9uZW50TGlzdCcpIGNvbXBvbmVudExpc3Q7XG5cbiAgICBicmVha1BvaW50U2l6ZSA9IDE0MjE7XG4gICAgYmxvY2tzQ29udGVudHMgPSBbXTtcbiAgICBzZWxlY3RlZFN0cnVjdHVyZTogU3RydWN0dXJlQ29uZmlnRHRvID0gbnVsbDtcbiAgICBzZWxlY3RlZENvbmZpZzogRm9ybXNEdG88UGFyZW50QmxvY2tEdG8+ID0gbnVsbDtcbiAgICBjb21wb25lbnRzOiBTdHJ1Y3R1cmVzTGlzdER0byA9IG51bGw7XG4gICAgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uc0R0byA9IG51bGw7XG4gICAgaXNIaWRkZW5Db25maWcgPSBbXTtcbiAgICBpc0ZpcnN0SW5Mb29wID0gZmFsc2U7XG4gICAgbG9vcEluZGV4ID0gMDtcbiAgICBob3ZlckNoaWxkcmVuOiBib29sZWFuIHwgc3RyaW5nO1xuXG4gICAgY3VycmVudFRvcFRvb2wgPSAwO1xuICAgIHRvb2xVbnBpbiA9IGZhbHNlO1xuICAgIHRvb2xIaWRkZW4gPSBmYWxzZTtcbiAgICBzbWFsbFNjcmVlbiA9IGZhbHNlO1xuXG5cbiAgICBibG9ja0NvbXBvbmVudDogQmxvY2tzQ29tcG9uZW50O1xuXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBjb25maWdFdmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICBwcml2YXRlIGNvbnRlbnRFdmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICBwcml2YXRlIHdpemlibG9ja1NlcnZpY2VzTGlzdDogQXJyYXk8YW55PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBMT0FESU5HX09GRlNFVCA9IDYwMDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHdpemlCbG9ja1NlcnZpY2U6IFdpemlCbG9ja1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgQFZpZXdDaGlsZCgnYmxvY2snLCB7IHN0YXRpYzogZmFsc2UgfSkgc2V0IGNvbnRlbnRCbG9jayhjb250cm9sOiBCbG9ja3NDb21wb25lbnQpIHtcbiAgICAgICAgdGhpcy5ibG9ja0NvbXBvbmVudCA9IGNvbnRyb2w7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFtdKSBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRvcCA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgICBpZiAodGhpcy50b29sVW5waW4gJiYgIXRoaXMudG9vbEhpZGRlbiAmJiBNYXRoLmFicyhjdXJyZW50VG9wIC0gdGhpcy5jdXJyZW50VG9wVG9vbCkgPiA4MDApIHtcbiAgICAgICAgICAgIHRoaXMudG9vbEhpZGRlbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja1dpemlibG9ja3MoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmF2YWlsYWJsZUNvbXBvbmVudHMgfHwgdGhpcy5hdmFpbGFibGVDb21wb25lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVDb21wb25lbnRzID0gW1xuICAgICAgICAgICAgICAgIFR5cGVzRHRvLnNsaWRlcnMsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8udmlkZW9zLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLmxhdW5jaF92aWRlb3MsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8uaW1hZ2VzLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLnRleHRfYmFja2dyb3VuZHMsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8uaW1hZ2VzX3RleHRzLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLnRleHRzLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLmZvcm1zLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLnByb2R1Y3RzX2xpc3QsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8ucHJvZHVjdCxcbiAgICAgICAgICAgICAgICBUeXBlc0R0by5zb2NpYWxzLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLnJhc3N1cmFuY2VzLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLm5ld3NsZXR0ZXIsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8ud2l0bmVzcyxcbiAgICAgICAgICAgICAgICBUeXBlc0R0by5yZXZpZXdzLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLnF1b3RlcyxcbiAgICAgICAgICAgICAgICBUeXBlc0R0by50aW1lcixcbiAgICAgICAgICAgICAgICBUeXBlc0R0by5tYXAsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8uY29kZSxcbiAgICAgICAgICAgICAgICBUeXBlc0R0by5zZXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8uZmFxLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2Uuc2V0RG9jdW1lbnRFdmVudExpc3RlbmVyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNJbkRldikge1xuICAgICAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmlzSW5EZXYgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53aXppQmxvY2tTZXJ2aWNlLnNldENvbmZpZyh0aGlzLmF2YWlsYWJsZUNvbXBvbmVudHMsIHRoaXMudGV4dHMpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSB0aGlzLndpemlCbG9ja1NlcnZpY2UuZ2V0Q29tcG9uZW50cygpO1xuXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb24gPSB0aGlzLndpemlCbG9ja1NlcnZpY2UuZ2V0VHJhbnNsYXRpb24oKTtcbiAgICAgICAgdGhpcy53aXppYmxvY2tTZXJ2aWNlc0xpc3QgPSB0aGlzLndpemlCbG9ja1NlcnZpY2UuZ2V0QmxvY2tzU2VydmljZSgpO1xuICAgICAgICB0aGlzLmNvbmZpZ0V2ZW50U3Vic2NyaXB0aW9uID0gdGhpcy5jb25maWdTZXJ2aWNlXG4gICAgICAgICAgICAuY29uZmlnRXZlbnQoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvbmZpZyA9IHRoaXMuY29uZmlnU2VydmljZS5jb25maWc7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0ZpcnN0SW5Mb29wID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5sb29wSW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ29uZmlnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYiBvZiB0aGlzLmJsb2Nrc0NvbnRlbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYlsnYmxvY2snXVsndXVpZCddID09PSB0aGlzLnNlbGVjdGVkQ29uZmlnLmJsb2NrLnV1aWQgJiYgdGhpcy5sb29wSW5kZXggPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ZpcnN0SW5Mb29wID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9vcEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3ZlckNoaWxkcmVuID0gdGhpcy5zZWxlY3RlZENvbmZpZy5ibG9jay51dWlkO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaG92ZXJDaGlsZHJlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy50b29sSGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SGlkZGVuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkU3RydWN0dXJlID09PSBudWxsICYmIHRoaXMuc2VsZWN0ZWRDb25maWcgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RTdHJ1Y3R1cmVPbkZseSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy52ZXJib3NlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQXZhaWxhYmxlIGNvbnRlbnQgb24gc3RhcnQnLCB0aGlzLmNvbnRlbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGVudEV2ZW50U3Vic2NyaXB0aW9uID0gdGhpcy5jb250ZW50U2VydmljZVxuICAgICAgICAgICAgLmNvbnRlbnRFdmVudCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250ZW50U2VydmljZS5jb250ZW50cy5sZW5ndGggPCB0aGlzLmJsb2Nrc0NvbnRlbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3AgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvblRvb2xzKHRvcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuYmxvY2tzQ29udGVudHMgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmNvbnRlbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMuZW1pdENvbnRlbnQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLmNvbnRlbnRzID0gdGhpcy5jb250ZW50O1xuICAgICAgICB0aGlzLnJlc2l6ZVdpdGhXaWR0aCh3aW5kb3cuaW5uZXJXaWR0aCk7XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmNvbnRlbnRTZXJ2aWNlLmNvbnRlbnRzKSB7XG4gICAgICAgICAgICBpZiAoKGl0ZW0gaW5zdGFuY2VvZiBGb3Jtc0R0bzxQYXJlbnRCbG9ja0R0bz4pICAmJiB0eXBlb2YgaXRlbS5ibG9jay5oaWRlX2Jsb2NrICE9PSB0eXBlb2YgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uYmxvY2suaGlkZV9ibG9jayA9PT0gJzAnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNIaWRkZW5Db25maWcucHVzaChpdGVtLmJsb2NrLnV1aWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBhZGRlZCBzbWFsbCB0aW1lb3V0IHRvIHByZXZlbnQgYW55IGxvYWRpbmcgaXNzdWVzXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja1dpemlibG9ja3MoKTtcbiAgICAgICAgfSwgMTAwKTtcbiAgICB9XG5cbiAgICBhZGRUaGlzKHNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuYmxvY2tDb21wb25lbnQuYWRkVGhpc1NlbGVjdGVkKHNlbGVjdGVkLCB0aGlzLnZlcmJvc2UpO1xuICAgIH1cblxuICAgIGNsb3NlQ29uZmlnKCkge1xuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnID0gbnVsbDtcbiAgICB9XG5cbiAgICBzZWxlY3RTdHJ1Y3R1cmVPbkZseSgpIHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRzLmNvbXBvbmVudHMuZm9yRWFjaCgoY29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICBjb21wb25lbnQuY29udGVudHMuZm9yRWFjaCgoc3ViQ29tcG9uZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN1YkNvbXBvbmVudC50eXBlID09PSB0aGlzLnNlbGVjdGVkQ29uZmlnLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFN0cnVjdHVyZSA9IGNvbXBvbmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZW1pdENvbnRlbnQoKSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZER0byA9IFtdO1xuICAgICAgICB0aGlzLmJsb2Nrc0NvbnRlbnRzLmZvckVhY2goKHYpID0+IHtcbiAgICAgICAgICAgIHBhcnNlZER0by5wdXNoKHYuYmxvY2spO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb250ZW50Q2hhbmdlLmVtaXQocGFyc2VkRHRvKTtcbiAgICB9XG5cbiAgICBvblJlc2l6ZSgkZXZlbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVXaXRoV2lkdGgoJGV2ZW50LnRhcmdldC5pbm5lcldpZHRoKTtcbiAgICB9XG5cbiAgICByZXNpemVXaXRoV2lkdGgoY3VycmVudEJyb3dzZXJTaXplKSB7XG4gICAgICAgIGlmIChjdXJyZW50QnJvd3NlclNpemUgPCB0aGlzLmJyZWFrUG9pbnRTaXplKSB7XG4gICAgICAgICAgICB0aGlzLnRvb2xVbnBpbiA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNtYWxsU2NyZWVuID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudG9vbFVucGluID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNtYWxsU2NyZWVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRVbnBpbigpIHtcbiAgICAgICAgY29uc3QgdG9wID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgIHRoaXMudG9vbFVucGluID0gIXRoaXMudG9vbFVucGluO1xuICAgICAgICBpZiAodGhpcy50b29sVW5waW4pIHtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUG9zaXRpb25Ub29scyh0b3ApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0SGlkZGVuKCkge1xuICAgICAgICBjb25zdCB0b3AgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgdGhpcy50b29sSGlkZGVuID0gIXRoaXMudG9vbEhpZGRlbjtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvblRvb2xzKHRvcCk7XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlUG9zaXRpb25Ub29scyh0b3ApIHtcbiAgICAgICAgaWYgKCF0aGlzLnRvb2xIaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRvcFRvb2wgPSB0b3A7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUb3BUb29sID0gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZUNvbmZpZ1dpemlibG9ja3MoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENvbmZpZyA9IGV2ZW50LmNvbmZpZztcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlbGVjdGVkQ29uZmlnLmZvcm1zICE9PSB0eXBlb2YgdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5zZWxlY3RlZENvbmZpZy5mb3Jtcykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmlkID09PSAnaGlkZV9ibG9jaycgJiYgaXRlbS52YWx1ZSA9PT0gJzAnICYmICF0aGlzLmlzSGlkZGVuQ29uZmlnLmluY2x1ZGVzKHRoaXMuc2VsZWN0ZWRDb25maWcuYmxvY2sudXVpZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0hpZGRlbkNvbmZpZy5wdXNoKHRoaXMuc2VsZWN0ZWRDb25maWcuYmxvY2sudXVpZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdGVtLmlkID09PSAnaGlkZV9ibG9jaycgJiYgaXRlbS52YWx1ZSA9PT0gJzEnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNIaWRkZW5Db25maWcgPSB0aGlzLmlzSGlkZGVuQ29uZmlnLmZpbHRlcigoZSkgPT4gZSAhPT0gdGhpcy5zZWxlY3RlZENvbmZpZy5ibG9jay51dWlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aXppQmxvY2tTZXJ2aWNlLl9ibG9ja3NTZXJ2aWNlID0gW107XG4gICAgICAgIHRoaXMuY29udGVudCA9IFtdO1xuICAgICAgICB0aGlzLmJsb2Nrc0NvbnRlbnRzID0gW107XG5cbiAgICAgICAgdGhpcy5jb25maWdFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmNvbnRlbnRFdmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLmRlbGV0ZUFsbCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnZlcmJvc2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdHb29kQnllIFdpemlCbG9jayBZb3UgV2VyZSBMb3ZlZCcsICdEZXN0cm95IG9mIFRoaXMgU2Vzc2lvbicpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBjaGVja1dpemlibG9ja3MoKSB7XG4gICAgICAgIGxldCBibG9ja0NvbnRhaW5lcnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcud2ItYmxvY2tzX19jb250YWluZXInKTtcbiAgICAgICAgbGV0IHdpbmRvd0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgdmFyIHNjcm9sbFkgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgdGhpcy5jb250ZW50LmZvckVhY2goKGJsb2NrLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKCEoYmxvY2sgaW5zdGFuY2VvZiBGb3Jtc0R0bzxQYXJlbnRCbG9ja0R0bz4pKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJub3QgbG9hZGVkXCIpO1xuICAgICAgICAgICAgICAgIHZhciByZWN0ID0gYmxvY2tDb250YWluZXJzW2luZGV4XS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICB2YXIgcG9zID0gcmVjdC50b3AgKyBzY3JvbGxZO1xuICAgICAgICAgICAgICAgIGlmICgod2luZG93SGVpZ2h0ICsgc2Nyb2xsWSArIHRoaXMuTE9BRElOR19PRkZTRVQpID49IChwb3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudFtpbmRleF0gPSB0aGlzLmxvYWRXaXppYmxvY2soYmxvY2spO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgXG4gICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UuY29udGVudHMgPSB0aGlzLmNvbnRlbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkV2l6aWJsb2NrKGJsb2NrOiBhbnkpIHtcbiAgICAgICAgbGV0IGNvbnRlbnQgPSBudWxsO1xuICAgICAgICB0aGlzLndpemlibG9ja1NlcnZpY2VzTGlzdC5mb3JFYWNoKChzZXJ2aWNlKSA9PiB7XG4gICAgICAgICAgICBpZiAoYmxvY2sudHlwZSA9PT0gc2VydmljZS50eXBlKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHNlcnZpY2UuZ2V0Rm9ybSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdObyBmb3JtIGZvciAnICsgc2VydmljZS50eXBlKCkgKyAnJyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IHNlcnZpY2UuZ2V0Rm9ybShibG9jayk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQudHlwZSA9IHNlcnZpY2UudHlwZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnU2V0IGEgY29udGVudCcsIGNvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGlkPVwid2ItY29udGFpbmVyXCJcbiAgICBjbGFzcz1cImNvbHVtbnMgd2ItY29udGFpbmVyXCJcbiAgICAqbmdJZj1cInRyYW5zbGF0aW9uXCJcbiAgICAjY29udGFpbmVyXG4gICAgKHdpbmRvdzpyZXNpemUpPVwib25SZXNpemUoJGV2ZW50KVwiXG4gICAgW25nQ2xhc3NdPVwieyAnaXMtc21hbGxzY3JlZW4nOiBzbWFsbFNjcmVlbiB9XCJcbj5cbiAgICA8ZGl2XG4gICAgICAgIGNka0RyYWdcbiAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhdG9vbFVucGluXCJcbiAgICAgICAgY2xhc3M9XCJjb2x1bW4gd2ItY29udGFpbmVyX190b29sc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLXVucGlubmVkJzogdG9vbFVucGluICYmICF0b29sSGlkZGVuLCAnaXMtc21hbGxzY3JlZW4nOiBzbWFsbFNjcmVlbiwgJ2hhcy1uby10b29sJzogdG9vbEhpZGRlbiB9XCJcbiAgICAgICAgW3N0eWxlLnRvcC5weF09XCJjdXJyZW50VG9wVG9vbFwiXG4gICAgPlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2lzLWhpZGRlbic6ICF0b29sSGlkZGVuIH1cIiAoY2xpY2spPVwic2V0SGlkZGVuKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgPGRpdiBbbndiVG9vbFRpcF09XCInd2IucGFuZWwuaHRtbC4xJyB8IHRyYW5zbGF0ZVwiIG53YlRvb2xUaXBQb3NpdGlvbj1cInJpZ2h0XCIgY2xhc3M9XCJpcy10b29sdGlwLWluZm9cIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhciBmYS1hcnJvdy1mcm9tLWxlZnRcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyAnaXMtaGlkZGVuJzogdG9vbEhpZGRlbiB9XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2ItdG9vbHNcIiAqbmdJZj1cInNlbGVjdGVkU3RydWN0dXJlID09PSBudWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLXRvb2xzX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ3Yi10b29sc19faGVhZGVyX19hY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gaXMtcm91bmRlZCBpcy10b29sdGlwLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtud2JUb29sVGlwXT1cInRvb2xVbnBpbiA/ICd3Yi5wYW5lbC5odG1sLjInIDogKCd3Yi5wYW5lbC5odG1sLjMnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbndiVG9vbFRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidGhpcy5zZXRVbnBpbigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48aSBjbGFzcz1cImZhclwiIFtuZ0NsYXNzXT1cInsgJ2ZhLXVubGluayc6ICF0b29sVW5waW4sICdmYS1saW5rJzogdG9vbFVucGluIH1cIj48L2lcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIGlzLXJvdW5kZWQgaXMtdG9vbHRpcC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbndiVG9vbFRpcF09XCInd2IucGFuZWwuaHRtbC40JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbndiVG9vbFRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0SGlkZGVuKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxpIGNsYXNzPVwiZmFyIGZhLWFycm93LWZyb20tcmlnaHRcIj48L2lcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ3Yi10b29sc19faGVhZGVyX19saXN0XCI+e3sgdHJhbnNsYXRpb24ubGlzdF9jb21wb25lbnQgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLXNjcm9sbGJhclxuICAgICAgICAgICAgICAgICAgICBbdmlzaWJpbGl0eV09XCInaG92ZXInXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb21wb25lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IG1heC1oZWlnaHQ6IDg1dmhcIlxuICAgICAgICAgICAgICAgICAgICBbYXV0b0hlaWdodERpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi10b29sc19fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbnMgaXMtbXVsdGlsaW5lXCIgW0BhbmltYXRlTGlzdEZyb21MZWZ0XT1cImNvbXBvbmVudHMuY29tcG9uZW50cy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uIGlzLTZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY29tcG9uZW50IG9mIGNvbXBvbmVudHMuY29tcG9uZW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZFN0cnVjdHVyZSA9IGNvbXBvbmVudDsgc2VsZWN0ZWRDb25maWcgPSBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCInYXNzZXRzL2Jsb2Nrcy9pbWFnZXMvaWNvbnMvJyArIGNvbXBvbmVudC5pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJjb21wb25lbnQudGV4dCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb21wb25lbnQuaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGNvbXBvbmVudC50ZXh0IHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXNjcm9sbGJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLWNvbmZpZ3VyYXRpb25cIiAqbmdJZj1cInNlbGVjdGVkU3RydWN0dXJlICE9PSBudWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLWNvbmZpZ3VyYXRpb25fX2hlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIndiLXRvb2xzX19oZWFkZXJfX2FjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBpcy1yb3VuZGVkIGlzLXRvb2x0aXAtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW253YlRvb2xUaXBdPVwidG9vbFVucGluID8gJ3diLnBhbmVsLmh0bWwuMicgOiAoJ3diLnBhbmVsLmh0bWwuMycgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBud2JUb29sVGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0aGlzLnNldFVucGluKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxpIGNsYXNzPVwiZmFsXCIgW25nQ2xhc3NdPVwieyAnZmEtdW5saW5rJzogIXRvb2xVbnBpbiwgJ2ZhLWxpbmsnOiB0b29sVW5waW4gfVwiPjwvaVxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gaXMtcm91bmRlZCBpcy10b29sdGlwLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtud2JUb29sVGlwXT1cIid3Yi5wYW5lbC5odG1sLjQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBud2JUb29sVGlwUG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRIaWRkZW4oKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGkgY2xhc3M9XCJmYXIgZmEtYXJyb3ctZnJvbS1yaWdodFwiPjwvaVxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIndiLWNvbmZpZ3VyYXRpb25fX2hlYWRlci1jbGljayB3Yi10b29sc19faGVhZGVyX19saXN0XCIgKGNsaWNrKT1cInNlbGVjdGVkU3RydWN0dXJlID0gbnVsbDsgY2xvc2VDb25maWcoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtYW5nbGUtbGVmdFwiPjwvaT4ge3sgc2VsZWN0ZWRTdHJ1Y3R1cmUudGV4dCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLWNvbmZpZ3VyYXRpb25fX3N1YmhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwiY2xvc2VDb25maWcoKVwiIFtuZ0NsYXNzXT1cInsgJ2lzLWFjdGl2ZSc6IHNlbGVjdGVkQ29uZmlnID09PSBudWxsIH1cIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24uc3RydWN0dXJlIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIH19PC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbbmdDbGFzc109XCJ7ICdpcy1hY3RpdmUnOiBzZWxlY3RlZENvbmZpZyAhPT0gbnVsbCB9XCIgKm5nSWY9XCJzZWxlY3RlZENvbmZpZyAhPT0gbnVsbFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbi5jb25maWcgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgfX08L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLXNjcm9sbGJhclxuICAgICAgICAgICAgICAgICAgICBbdmlzaWJpbGl0eV09XCInaG92ZXInXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwc1wiXG4gICAgICAgICAgICAgICAgICAgIHBlcmZlY3RTY3JvbGxiYXJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IG1heC1oZWlnaHQ6IDgwdmhcIlxuICAgICAgICAgICAgICAgICAgICBbYXV0b0hlaWdodERpc2FibGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1jb25maWd1cmF0aW9uX19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZENvbmZpZyA9PT0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3Yi1jb25maWd1cmF0aW9uX19jb250ZW50X3N0cnVjdHVyZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtAYW5pbWF0ZUxpc3RGcm9tUmlnaHRdPVwic2VsZWN0ZWRTdHJ1Y3R1cmUuY29udGVudHMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdERpc2FibGVkXT1cImJsb2Nrc0NvbnRlbnRzLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZGtEcm9wTGlzdENvbm5lY3RlZFRvXT1cIlsnYmxvY2stY29udGVudCddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHNlbGVjdGVkIG9mIHNlbGVjdGVkU3RydWN0dXJlLmNvbnRlbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJzZWxlY3RlZC5pbWFnZSB8IGltZ1BhdGhcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBzZWxlY3RlZC5uYW1lIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndiLWNvbmZpZ3VyYXRpb25fX2NvbnRlbnRfc3RydWN0dXJlc19fZHJhZ2dlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwic2VsZWN0ZWQudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnSGFuZGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1kcmFnZ2FibGUnOiBibG9ja3NDb250ZW50cy5sZW5ndGggfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkVGhpcyhzZWxlY3RlZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIndiLWNvbmZpZ3VyYXRpb25fX2NvbnRlbnRfc3RydWN0dXJlc19fcHJldmlld1wiICpjZGtEcmFnUHJldmlldz48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIndiLWNvbmZpZ3VyYXRpb25fX2NvbnRlbnRfc3RydWN0dXJlc19fcGxhY2Vob2xkZXJcIiAqY2RrRHJhZ1BsYWNlaG9sZGVyPjxzcGFuPjwvc3Bhbj48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRDb25maWcgIT09IG51bGxcIiBjbGFzcz1cIndiLWNvbmZpZ3VyYXRpb25fX2NvbnRlbnRfY29uZmlndXJhdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx3Yi1jb25maWdzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0ZpcnN0XT1cImlzRmlyc3RJbkxvb3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnc109XCJzZWxlY3RlZENvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VDb25maWcpPVwiY2hhbmdlQ29uZmlnV2l6aWJsb2NrcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC93Yi1jb25maWdzPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctc2Nyb2xsYmFyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4gd2ItY29udGFpbmVyX19jb250ZW50XCIgW25nQ2xhc3NdPVwieyAnaGFzLW5vLXRvb2wnOiB0b29sSGlkZGVuIH1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndiLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1jb250ZW50X19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8cD48aSBjbGFzcz1cImZhcyBmYS1sb2NrXCI+PC9pPiB7eyB0cmFuc2xhdGlvbi5oZWFkZXIgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1jb250ZW50X19jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPHdiLWJsb2NrcyBbZHluYW1pY0hpZGRlbl09XCJpc0hpZGRlbkNvbmZpZ1wiIFtzZWxlY3RlZENvbmZpZ109XCJob3ZlckNoaWxkcmVuXCIgI2Jsb2NrIFtjb250ZW50c109XCJibG9ja3NDb250ZW50c1wiPjwvd2ItYmxvY2tzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2ItY29udGVudF9fZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPHA+PGkgY2xhc3M9XCJmYXMgZmEtbG9ja1wiPjwvaT4ge3sgdHJhbnNsYXRpb24uZm9vdGVyIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48aHIgaWQ9XCJ3Yi1mb290ZXJfX2Jsb2NrXCIgLz5cbiJdfQ==
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6aS1ibG9jay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy9saWIvd2l6aS1ibG9jay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy9saWIvd2l6aS1ibG9jay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUVoRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVF2RCxNQUFNLE9BQU8sa0JBQWtCO0lBcUMzQixZQUNZLGdCQUFrQyxFQUNsQyxhQUE0QixFQUM1QixjQUE4QixFQUMvQixnQkFBa0M7UUFIakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXZDcEMsVUFBSyxHQUFvQixJQUFJLENBQUM7UUFDOUIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVmLGtCQUFhLEdBQXdDLElBQUksWUFBWSxFQUFFLENBQUM7UUFJbEYsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsc0JBQWlCLEdBQXVCLElBQUksQ0FBQztRQUM3QyxtQkFBYyxHQUE2QixJQUFJLENBQUM7UUFDaEQsZUFBVSxHQUFzQixJQUFJLENBQUM7UUFDckMsZ0JBQVcsR0FBb0IsSUFBSSxDQUFDO1FBQ3BDLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFHZCxtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFLWixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDbEMsNEJBQXVCLEdBQWlCLElBQUksQ0FBQztRQUM3Qyw2QkFBd0IsR0FBaUIsSUFBSSxDQUFDO1FBQzlDLDBCQUFxQixHQUFlLEVBQUUsQ0FBQztRQUV2QyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFPekMsQ0FBQztJQUVKLElBQTJDLFlBQVksQ0FBQyxPQUF3QjtRQUM1RSxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0lBRWtDLGNBQWM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLEVBQUU7WUFDeEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3BFLElBQUksQ0FBQyxtQkFBbUIsR0FBRztnQkFDdkIsUUFBUSxDQUFDLE9BQU87Z0JBQ2hCLFFBQVEsQ0FBQyxNQUFNO2dCQUNmLFFBQVEsQ0FBQyxhQUFhO2dCQUN0QixRQUFRLENBQUMsTUFBTTtnQkFDZixRQUFRLENBQUMsZ0JBQWdCO2dCQUN6QixRQUFRLENBQUMsWUFBWTtnQkFDckIsUUFBUSxDQUFDLEtBQUs7Z0JBQ2QsUUFBUSxDQUFDLEtBQUs7Z0JBQ2QsUUFBUSxDQUFDLGFBQWE7Z0JBQ3RCLFFBQVEsQ0FBQyxPQUFPO2dCQUNoQixRQUFRLENBQUMsT0FBTztnQkFDaEIsUUFBUSxDQUFDLFdBQVc7Z0JBQ3BCLFFBQVEsQ0FBQyxVQUFVO2dCQUNuQixRQUFRLENBQUMsT0FBTztnQkFDaEIsUUFBUSxDQUFDLE9BQU87Z0JBQ2hCLFFBQVEsQ0FBQyxNQUFNO2dCQUNmLFFBQVEsQ0FBQyxLQUFLO2dCQUNkLFFBQVEsQ0FBQyxHQUFHO2dCQUNaLFFBQVEsQ0FBQyxJQUFJO2dCQUNiLFFBQVEsQ0FBQyxTQUFTO2dCQUNsQixRQUFRLENBQUMsR0FBRzthQUNmLENBQUM7U0FDTDtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUU5QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDckM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFeEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3RFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsYUFBYTthQUM1QyxXQUFXLEVBQUU7YUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3JCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtvQkFDakMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFO3dCQUM3RSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztxQkFDN0I7b0JBQ0QsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2FBQ3ZEO2lCQUFNO2dCQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQzlCO1lBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7YUFDcEI7WUFDRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2FBQy9CO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzRDtRQUNELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsY0FBYzthQUM5QyxZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNqQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNwQztZQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7WUFDbkQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFO1lBQzdDLElBQUksQ0FBQyxJQUFJLGFBQVksUUFBd0IsQ0FBQSxDQUFDLElBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxPQUFPLFNBQVMsRUFBRTtnQkFDbEcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzdDO2FBQ0o7U0FDSjtRQUNELG9EQUFvRDtRQUNwRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckMsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM3QyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUN4QyxJQUFJLFlBQVksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUU7b0JBQ2hELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7aUJBQ3RDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQU07UUFDWCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGVBQWUsQ0FBQyxrQkFBa0I7UUFDOUIsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzNCO2FBQU07WUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNqQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsR0FBRztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztTQUM3QjthQUFNO1lBQ0gsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBSztRQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDbkMsSUFBSSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxLQUFLLE9BQU8sU0FBUyxFQUFFO1lBQ3ZELEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUU7Z0JBQzFDLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDakgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzVEO3FCQUFNLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxHQUFHLEVBQUU7b0JBQ3ZELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDakc7YUFDSjtTQUNKO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLEVBQUUseUJBQXlCLENBQUMsQ0FBQztTQUM5RTtJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsZUFBZTtRQUN6QixJQUFJLGVBQWUsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN6RSxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLENBQUMsS0FBSyxhQUFZLFFBQXdCLENBQUEsQ0FBQyxFQUFFO2dCQUM5QyxJQUFJLElBQUksR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDMUQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ25EO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUdILElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDaEQsQ0FBQztJQUVPLGFBQWEsQ0FBQyxLQUFVO1FBQzVCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDL0IsSUFBSSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO29CQUN2QyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7aUJBQ3ZEO3FCQUFNO29CQUNILE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNqQyxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO3dCQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO3FCQUN6QztpQkFDSjthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDOzsrR0FoUlEsa0JBQWtCO21HQUFsQixrQkFBa0IsNGVDdkIvQixtL1FBOEpBLDhqRkR6SWdCLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLEVBQUUsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsQ0FBQzsyRkFFakcsa0JBQWtCO2tCQU45QixTQUFTOytCQUNJLGVBQWUsY0FHYixDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxFQUFFLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUM7K0xBR2pHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFFcUIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQW1DaUIsWUFBWTtzQkFBdEQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUlGLGNBQWM7c0JBQWhELFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaXppQmxvY2tTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy93aXppLWJsb2NrLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RydWN0dXJlc0xpc3REdG8gfSBmcm9tICcuL2R0b3MvY29uZmlncy9zdHJ1Y3R1cmVzL3N0cnVjdHVyZXMtbGlzdC5kdG8nO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25zRHRvIH0gZnJvbSAnLi9kdG9zL2NvbmZpZ3MvdHJhbnNsYXRpb25zL3RyYW5zbGF0aW9ucy5kdG8nO1xuaW1wb3J0IHsgVHlwZXNEdG8gfSBmcm9tICcuL2R0b3MvY29uZmlncy90eXBlcy90eXBlcy5kdG8nO1xuaW1wb3J0IHsgU3RydWN0dXJlQ29uZmlnRHRvIH0gZnJvbSAnLi9kdG9zL2NvbmZpZ3Mvc3RydWN0dXJlcy9zdHJ1Y3R1cmUtY29uZmlnLmR0byc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91dGlscy9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91dGlscy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgYW5pbWF0ZUxpc3RGcm9tUmlnaHQgfSBmcm9tICcuL3NoYXJlZC9hbmltYXRpb25zL2xpc3QvYW5pbWF0ZS1saXN0LWZyb20tcmlnaHQuYW5pbWF0aW9uJztcbmltcG9ydCB7IGFuaW1hdGVMaXN0RnJvbUxlZnQgfSBmcm9tICcuL3NoYXJlZC9hbmltYXRpb25zL2xpc3QvYW5pbWF0ZS1saXN0LWZyb20tbGVmdC5hbmltYXRpb24nO1xuaW1wb3J0IHsgUGFyZW50QmxvY2tEdG8gfSBmcm9tICcuL2R0b3MvYmxvY2tzL3BhcmVudC1ibG9jay5kdG8nO1xuaW1wb3J0IHsgRm9ybXNEdG8gfSBmcm9tICcuL2R0b3MvZm9ybXMvZm9ybXMuZHRvJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJsb2Nrc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ibG9ja3MvYmxvY2tzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnd2Itd2l6aS1ibG9jaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dpemktYmxvY2suY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogW10sXG4gICAgYW5pbWF0aW9uczogW2FuaW1hdGVMaXN0RnJvbVJpZ2h0KCcyMDBtcyBlYXNlLWluLW91dCcsICcxMDBtcycpLCBhbmltYXRlTGlzdEZyb21MZWZ0KCcxMDBtcyBlYXNlLWluLW91dCcpXSxcbn0pXG5leHBvcnQgY2xhc3MgV2l6aUJsb2NrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGF2YWlsYWJsZUNvbXBvbmVudHM6IEFycmF5PHN0cmluZz47XG4gICAgQElucHV0KCkgdGV4dHM6IFRyYW5zbGF0aW9uc0R0byA9IG51bGw7XG4gICAgQElucHV0KCkgY29udGVudCA9IFtdO1xuICAgIEBJbnB1dCgpIHZlcmJvc2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0luRGV2ID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgY29udGVudENoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PFBhcmVudEJsb2NrRHRvPj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAVmlld0NoaWxkKCdjb21wb25lbnRMaXN0JykgY29tcG9uZW50TGlzdDtcblxuICAgIGJyZWFrUG9pbnRTaXplID0gMTQyMTtcbiAgICBibG9ja3NDb250ZW50cyA9IFtdO1xuICAgIHNlbGVjdGVkU3RydWN0dXJlOiBTdHJ1Y3R1cmVDb25maWdEdG8gPSBudWxsO1xuICAgIHNlbGVjdGVkQ29uZmlnOiBGb3Jtc0R0bzxQYXJlbnRCbG9ja0R0bz4gPSBudWxsO1xuICAgIGNvbXBvbmVudHM6IFN0cnVjdHVyZXNMaXN0RHRvID0gbnVsbDtcbiAgICB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25zRHRvID0gbnVsbDtcbiAgICBpc0hpZGRlbkNvbmZpZyA9IFtdO1xuICAgIGlzRmlyc3RJbkxvb3AgPSBmYWxzZTtcbiAgICBsb29wSW5kZXggPSAwO1xuICAgIGhvdmVyQ2hpbGRyZW46IGJvb2xlYW4gfCBzdHJpbmc7XG5cbiAgICBjdXJyZW50VG9wVG9vbCA9IDA7XG4gICAgdG9vbFVucGluID0gZmFsc2U7XG4gICAgdG9vbEhpZGRlbiA9IGZhbHNlO1xuICAgIHNtYWxsU2NyZWVuID0gZmFsc2U7XG5cblxuICAgIGJsb2NrQ29tcG9uZW50OiBCbG9ja3NDb21wb25lbnQ7XG5cbiAgICBwcml2YXRlIHVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIGNvbmZpZ0V2ZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIHByaXZhdGUgY29udGVudEV2ZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgIHByaXZhdGUgd2l6aWJsb2NrU2VydmljZXNMaXN0OiBBcnJheTxhbnk+ID0gW107XG5cbiAgICBwcml2YXRlIExPQURJTkdfT0ZGU0VUID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgd2l6aUJsb2NrU2VydmljZTogV2l6aUJsb2NrU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBAVmlld0NoaWxkKCdibG9jaycsIHsgc3RhdGljOiBmYWxzZSB9KSBzZXQgY29udGVudEJsb2NrKGNvbnRyb2w6IEJsb2Nrc0NvbXBvbmVudCkge1xuICAgICAgICB0aGlzLmJsb2NrQ29tcG9uZW50ID0gY29udHJvbDtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgW10pIG9uV2luZG93U2Nyb2xsKCkge1xuICAgICAgICBjb25zdCBjdXJyZW50VG9wID0gd2luZG93LnNjcm9sbFk7XG4gICAgICAgIGlmICh0aGlzLnRvb2xVbnBpbiAmJiAhdGhpcy50b29sSGlkZGVuICYmIE1hdGguYWJzKGN1cnJlbnRUb3AgLSB0aGlzLmN1cnJlbnRUb3BUb29sKSA+IDgwMCkge1xuICAgICAgICAgICAgdGhpcy50b29sSGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNoZWNrV2l6aWJsb2NrcygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuYXZhaWxhYmxlQ29tcG9uZW50cyB8fCB0aGlzLmF2YWlsYWJsZUNvbXBvbmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmF2YWlsYWJsZUNvbXBvbmVudHMgPSBbXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8uc2xpZGVycyxcbiAgICAgICAgICAgICAgICBUeXBlc0R0by52aWRlb3MsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8ubGF1bmNoX3ZpZGVvcyxcbiAgICAgICAgICAgICAgICBUeXBlc0R0by5pbWFnZXMsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8udGV4dF9iYWNrZ3JvdW5kcyxcbiAgICAgICAgICAgICAgICBUeXBlc0R0by5pbWFnZXNfdGV4dHMsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8udGV4dHMsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8uZm9ybXMsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8ucHJvZHVjdHNfbGlzdCxcbiAgICAgICAgICAgICAgICBUeXBlc0R0by5wcm9kdWN0LFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLnNvY2lhbHMsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8ucmFzc3VyYW5jZXMsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8ubmV3c2xldHRlcixcbiAgICAgICAgICAgICAgICBUeXBlc0R0by53aXRuZXNzLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLnJldmlld3MsXG4gICAgICAgICAgICAgICAgVHlwZXNEdG8ucXVvdGVzLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLnRpbWVyLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLm1hcCxcbiAgICAgICAgICAgICAgICBUeXBlc0R0by5jb2RlLFxuICAgICAgICAgICAgICAgIFR5cGVzRHRvLnNlcGFyYXRvcixcbiAgICAgICAgICAgICAgICBUeXBlc0R0by5mYXEsXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5zZXREb2N1bWVudEV2ZW50TGlzdGVuZXIoKTtcblxuICAgICAgICBpZiAodGhpcy5pc0luRGV2KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuaXNJbkRldiA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLndpemlCbG9ja1NlcnZpY2Uuc2V0Q29uZmlnKHRoaXMuYXZhaWxhYmxlQ29tcG9uZW50cywgdGhpcy50ZXh0cyk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50cyA9IHRoaXMud2l6aUJsb2NrU2VydmljZS5nZXRDb21wb25lbnRzKCk7XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbiA9IHRoaXMud2l6aUJsb2NrU2VydmljZS5nZXRUcmFuc2xhdGlvbigpO1xuICAgICAgICB0aGlzLndpemlibG9ja1NlcnZpY2VzTGlzdCA9IHRoaXMud2l6aUJsb2NrU2VydmljZS5nZXRCbG9ja3NTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMuY29uZmlnRXZlbnRTdWJzY3JpcHRpb24gPSB0aGlzLmNvbmZpZ1NlcnZpY2VcbiAgICAgICAgICAgIC5jb25maWdFdmVudCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ29uZmlnID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZztcbiAgICAgICAgICAgICAgICB0aGlzLmlzRmlyc3RJbkxvb3AgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvb3BJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb25maWcpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBiIG9mIHRoaXMuYmxvY2tzQ29udGVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiWydibG9jayddWyd1dWlkJ10gPT09IHRoaXMuc2VsZWN0ZWRDb25maWcuYmxvY2sudXVpZCAmJiB0aGlzLmxvb3BJbmRleCA8IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRmlyc3RJbkxvb3AgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb29wSW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhvdmVyQ2hpbGRyZW4gPSB0aGlzLnNlbGVjdGVkQ29uZmlnLmJsb2NrLnV1aWQ7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3ZlckNoaWxkcmVuID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvb2xIaWRkZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRIaWRkZW4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTdHJ1Y3R1cmUgPT09IG51bGwgJiYgdGhpcy5zZWxlY3RlZENvbmZpZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdFN0cnVjdHVyZU9uRmx5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmICh0aGlzLnZlcmJvc2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBdmFpbGFibGUgY29udGVudCBvbiBzdGFydCcsIHRoaXMuY29udGVudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZW50RXZlbnRTdWJzY3JpcHRpb24gPSB0aGlzLmNvbnRlbnRTZXJ2aWNlXG4gICAgICAgICAgICAuY29udGVudEV2ZW50KClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRTZXJ2aWNlLmNvbnRlbnRzLmxlbmd0aCA8IHRoaXMuYmxvY2tzQ29udGVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvcCA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uVG9vbHModG9wKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja3NDb250ZW50cyA9IHRoaXMuY29udGVudFNlcnZpY2UuY29udGVudHM7XG4gICAgICAgICAgICAgICAgdGhpcy5lbWl0Q29udGVudCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UuY29udGVudHMgPSB0aGlzLmNvbnRlbnQ7XG4gICAgICAgIHRoaXMucmVzaXplV2l0aFdpZHRoKHdpbmRvdy5pbm5lcldpZHRoKTtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuY29udGVudFNlcnZpY2UuY29udGVudHMpIHtcbiAgICAgICAgICAgIGlmICgoaXRlbSBpbnN0YW5jZW9mIEZvcm1zRHRvPFBhcmVudEJsb2NrRHRvPikgICYmIHR5cGVvZiBpdGVtLmJsb2NrLmhpZGVfYmxvY2sgIT09IHR5cGVvZiB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5ibG9jay5oaWRlX2Jsb2NrID09PSAnMCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0hpZGRlbkNvbmZpZy5wdXNoKGl0ZW0uYmxvY2sudXVpZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGFkZGVkIHNtYWxsIHRpbWVvdXQgdG8gcHJldmVudCBhbnkgbG9hZGluZyBpc3N1ZXNcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrV2l6aWJsb2NrcygpO1xuICAgICAgICB9LCAxMDApO1xuICAgIH1cblxuICAgIGFkZFRoaXMoc2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5ibG9ja0NvbXBvbmVudC5hZGRUaGlzU2VsZWN0ZWQoc2VsZWN0ZWQsIHRoaXMudmVyYm9zZSk7XG4gICAgfVxuXG4gICAgY2xvc2VDb25maWcoKSB7XG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb25maWcgPSBudWxsO1xuICAgIH1cblxuICAgIHNlbGVjdFN0cnVjdHVyZU9uRmx5KCkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudHMuY29tcG9uZW50cy5mb3JFYWNoKChjb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbXBvbmVudC5jb250ZW50cy5mb3JFYWNoKChzdWJDb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3ViQ29tcG9uZW50LnR5cGUgPT09IHRoaXMuc2VsZWN0ZWRDb25maWcudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RydWN0dXJlID0gY29tcG9uZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBlbWl0Q29udGVudCgpIHtcbiAgICAgICAgY29uc3QgcGFyc2VkRHRvID0gW107XG4gICAgICAgIHRoaXMuYmxvY2tzQ29udGVudHMuZm9yRWFjaCgodikgPT4ge1xuICAgICAgICAgICAgcGFyc2VkRHRvLnB1c2godi5ibG9jayk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNvbnRlbnRDaGFuZ2UuZW1pdChwYXJzZWREdG8pO1xuICAgIH1cblxuICAgIG9uUmVzaXplKCRldmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZVdpdGhXaWR0aCgkZXZlbnQudGFyZ2V0LmlubmVyV2lkdGgpO1xuICAgIH1cblxuICAgIHJlc2l6ZVdpdGhXaWR0aChjdXJyZW50QnJvd3NlclNpemUpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRCcm93c2VyU2l6ZSA8IHRoaXMuYnJlYWtQb2ludFNpemUpIHtcbiAgICAgICAgICAgIHRoaXMudG9vbFVucGluID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc21hbGxTY3JlZW4gPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50b29sVW5waW4gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc21hbGxTY3JlZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFVucGluKCkge1xuICAgICAgICBjb25zdCB0b3AgPSB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgdGhpcy50b29sVW5waW4gPSAhdGhpcy50b29sVW5waW47XG4gICAgICAgIGlmICh0aGlzLnRvb2xVbnBpbikge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvblRvb2xzKHRvcCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRIaWRkZW4oKSB7XG4gICAgICAgIGNvbnN0IHRvcCA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgICB0aGlzLnRvb2xIaWRkZW4gPSAhdGhpcy50b29sSGlkZGVuO1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uVG9vbHModG9wKTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVQb3NpdGlvblRvb2xzKHRvcCkge1xuICAgICAgICBpZiAoIXRoaXMudG9vbEhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VG9wVG9vbCA9IHRvcDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFRvcFRvb2wgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hhbmdlQ29uZmlnV2l6aWJsb2NrcyhldmVudCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ29uZmlnID0gZXZlbnQuY29uZmlnO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2VsZWN0ZWRDb25maWcuZm9ybXMgIT09IHR5cGVvZiB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLnNlbGVjdGVkQ29uZmlnLmZvcm1zKSB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaWQgPT09ICdoaWRlX2Jsb2NrJyAmJiBpdGVtLnZhbHVlID09PSAnMCcgJiYgIXRoaXMuaXNIaWRkZW5Db25maWcuaW5jbHVkZXModGhpcy5zZWxlY3RlZENvbmZpZy5ibG9jay51dWlkKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzSGlkZGVuQ29uZmlnLnB1c2godGhpcy5zZWxlY3RlZENvbmZpZy5ibG9jay51dWlkKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0uaWQgPT09ICdoaWRlX2Jsb2NrJyAmJiBpdGVtLnZhbHVlID09PSAnMScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0hpZGRlbkNvbmZpZyA9IHRoaXMuaXNIaWRkZW5Db25maWcuZmlsdGVyKChlKSA9PiBlICE9PSB0aGlzLnNlbGVjdGVkQ29uZmlnLmJsb2NrLnV1aWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLndpemlCbG9ja1NlcnZpY2UuX2Jsb2Nrc1NlcnZpY2UgPSBbXTtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gW107XG4gICAgICAgIHRoaXMuYmxvY2tzQ29udGVudHMgPSBbXTtcblxuICAgICAgICB0aGlzLmNvbmZpZ0V2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuY29udGVudEV2ZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMudW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuY29udGVudFNlcnZpY2UuZGVsZXRlQWxsKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudmVyYm9zZSkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0dvb2RCeWUgV2l6aUJsb2NrIFlvdSBXZXJlIExvdmVkJywgJ0Rlc3Ryb3kgb2YgVGhpcyBTZXNzaW9uJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNoZWNrV2l6aWJsb2NrcygpIHtcbiAgICAgICAgbGV0IGJsb2NrQ29udGFpbmVycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy53Yi1ibG9ja3NfX2NvbnRhaW5lcicpO1xuICAgICAgICBsZXQgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICB2YXIgc2Nyb2xsWSA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgICB0aGlzLmNvbnRlbnQuZm9yRWFjaCgoYmxvY2ssIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoIShibG9jayBpbnN0YW5jZW9mIEZvcm1zRHRvPFBhcmVudEJsb2NrRHRvPikpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVjdCA9IGJsb2NrQ29udGFpbmVyc1tpbmRleF0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgdmFyIHBvcyA9IHJlY3QudG9wICsgc2Nyb2xsWTtcbiAgICAgICAgICAgICAgICBpZiAoKHdpbmRvd0hlaWdodCArIHNjcm9sbFkgKyB0aGlzLkxPQURJTkdfT0ZGU0VUKSA+PSAocG9zKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRbaW5kZXhdID0gdGhpcy5sb2FkV2l6aWJsb2NrKGJsb2NrKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIFxuICAgICAgICB0aGlzLmNvbnRlbnRTZXJ2aWNlLmNvbnRlbnRzID0gdGhpcy5jb250ZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFdpemlibG9jayhibG9jazogYW55KSB7XG4gICAgICAgIGxldCBjb250ZW50ID0gbnVsbDtcbiAgICAgICAgdGhpcy53aXppYmxvY2tTZXJ2aWNlc0xpc3QuZm9yRWFjaCgoc2VydmljZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGJsb2NrLnR5cGUgPT09IHNlcnZpY2UudHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBzZXJ2aWNlLmdldEZvcm0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignTm8gZm9ybSBmb3IgJyArIHNlcnZpY2UudHlwZSgpICsgJycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBzZXJ2aWNlLmdldEZvcm0oYmxvY2spO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50LnR5cGUgPSBzZXJ2aWNlLnR5cGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1NldCBhIGNvbnRlbnQnLCBjb250ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBpZD1cIndiLWNvbnRhaW5lclwiXG4gICAgY2xhc3M9XCJjb2x1bW5zIHdiLWNvbnRhaW5lclwiXG4gICAgKm5nSWY9XCJ0cmFuc2xhdGlvblwiXG4gICAgI2NvbnRhaW5lclxuICAgICh3aW5kb3c6cmVzaXplKT1cIm9uUmVzaXplKCRldmVudClcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2lzLXNtYWxsc2NyZWVuJzogc21hbGxTY3JlZW4gfVwiXG4+XG4gICAgPGRpdlxuICAgICAgICBjZGtEcmFnXG4gICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIXRvb2xVbnBpblwiXG4gICAgICAgIGNsYXNzPVwiY29sdW1uIHdiLWNvbnRhaW5lcl9fdG9vbHNcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy11bnBpbm5lZCc6IHRvb2xVbnBpbiAmJiAhdG9vbEhpZGRlbiwgJ2lzLXNtYWxsc2NyZWVuJzogc21hbGxTY3JlZW4sICdoYXMtbm8tdG9vbCc6IHRvb2xIaWRkZW4gfVwiXG4gICAgICAgIFtzdHlsZS50b3AucHhdPVwiY3VycmVudFRvcFRvb2xcIlxuICAgID5cbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7ICdpcy1oaWRkZW4nOiAhdG9vbEhpZGRlbiB9XCIgKGNsaWNrKT1cInNldEhpZGRlbigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgIDxkaXYgW253YlRvb2xUaXBdPVwiJ3diLnBhbmVsLmh0bWwuMScgfCB0cmFuc2xhdGVcIiBud2JUb29sVGlwUG9zaXRpb249XCJyaWdodFwiIGNsYXNzPVwiaXMtdG9vbHRpcC1pbmZvXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXIgZmEtYXJyb3ctZnJvbS1sZWZ0XCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsgJ2lzLWhpZGRlbic6IHRvb2xIaWRkZW4gfVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLXRvb2xzXCIgKm5nSWY9XCJzZWxlY3RlZFN0cnVjdHVyZSA9PT0gbnVsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi10b29sc19faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwid2ItdG9vbHNfX2hlYWRlcl9fYWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIGlzLXJvdW5kZWQgaXMtdG9vbHRpcC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbndiVG9vbFRpcF09XCJ0b29sVW5waW4gPyAnd2IucGFuZWwuaHRtbC4yJyA6ICgnd2IucGFuZWwuaHRtbC4zJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG53YlRvb2xUaXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMuc2V0VW5waW4oKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGkgY2xhc3M9XCJmYXJcIiBbbmdDbGFzc109XCJ7ICdmYS11bmxpbmsnOiAhdG9vbFVucGluLCAnZmEtbGluayc6IHRvb2xVbnBpbiB9XCI+PC9pXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiBpcy1yb3VuZGVkIGlzLXRvb2x0aXAtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW253YlRvb2xUaXBdPVwiJ3diLnBhbmVsLmh0bWwuNCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG53YlRvb2xUaXBQb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEhpZGRlbigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48aSBjbGFzcz1cImZhciBmYS1hcnJvdy1mcm9tLXJpZ2h0XCI+PC9pXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9hPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwid2ItdG9vbHNfX2hlYWRlcl9fbGlzdFwiPnt7IHRyYW5zbGF0aW9uLmxpc3RfY29tcG9uZW50IHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxuZy1zY3JvbGxiYXJcbiAgICAgICAgICAgICAgICAgICAgW3Zpc2liaWxpdHldPVwiJ2hvdmVyJ1wiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29tcG9uZW50c1wiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBtYXgtaGVpZ2h0OiA4NXZoXCJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9IZWlnaHREaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2ItdG9vbHNfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5zIGlzLW11bHRpbGluZVwiIFtAYW5pbWF0ZUxpc3RGcm9tTGVmdF09XCJjb21wb25lbnRzLmNvbXBvbmVudHMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbHVtbiBpcy02XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbXBvbmVudCBvZiBjb21wb25lbnRzLmNvbXBvbmVudHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRTdHJ1Y3R1cmUgPSBjb21wb25lbnQ7IHNlbGVjdGVkQ29uZmlnID0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiJ2Fzc2V0cy9ibG9ja3MvaW1hZ2VzL2ljb25zLycgKyBjb21wb25lbnQuaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiY29tcG9uZW50LnRleHQgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29tcG9uZW50LmltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD57eyBjb21wb25lbnQudGV4dCB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1zY3JvbGxiYXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1jb25maWd1cmF0aW9uXCIgKm5nSWY9XCJzZWxlY3RlZFN0cnVjdHVyZSAhPT0gbnVsbFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1jb25maWd1cmF0aW9uX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ3Yi10b29sc19faGVhZGVyX19hY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24gaXMtcm91bmRlZCBpcy10b29sdGlwLWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtud2JUb29sVGlwXT1cInRvb2xVbnBpbiA/ICd3Yi5wYW5lbC5odG1sLjInIDogKCd3Yi5wYW5lbC5odG1sLjMnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbndiVG9vbFRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidGhpcy5zZXRVbnBpbigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48aSBjbGFzcz1cImZhbFwiIFtuZ0NsYXNzXT1cInsgJ2ZhLXVubGluayc6ICF0b29sVW5waW4sICdmYS1saW5rJzogdG9vbFVucGluIH1cIj48L2lcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uIGlzLXJvdW5kZWQgaXMtdG9vbHRpcC1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbndiVG9vbFRpcF09XCInd2IucGFuZWwuaHRtbC40JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbndiVG9vbFRpcFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0SGlkZGVuKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjxpIGNsYXNzPVwiZmFyIGZhLWFycm93LWZyb20tcmlnaHRcIj48L2lcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ3Yi1jb25maWd1cmF0aW9uX19oZWFkZXItY2xpY2sgd2ItdG9vbHNfX2hlYWRlcl9fbGlzdFwiIChjbGljayk9XCJzZWxlY3RlZFN0cnVjdHVyZSA9IG51bGw7IGNsb3NlQ29uZmlnKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWFuZ2xlLWxlZnRcIj48L2k+IHt7IHNlbGVjdGVkU3RydWN0dXJlLnRleHQgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1jb25maWd1cmF0aW9uX19zdWJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cImNsb3NlQ29uZmlnKClcIiBbbmdDbGFzc109XCJ7ICdpcy1hY3RpdmUnOiBzZWxlY3RlZENvbmZpZyA9PT0gbnVsbCB9XCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uLnN0cnVjdHVyZSB8IHRyYW5zbGF0ZVxuICAgICAgICAgICAgICAgICAgICB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwieyAnaXMtYWN0aXZlJzogc2VsZWN0ZWRDb25maWcgIT09IG51bGwgfVwiICpuZ0lmPVwic2VsZWN0ZWRDb25maWcgIT09IG51bGxcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24uY29uZmlnIHwgdHJhbnNsYXRlXG4gICAgICAgICAgICAgICAgICAgIH19PC9hPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxuZy1zY3JvbGxiYXJcbiAgICAgICAgICAgICAgICAgICAgW3Zpc2liaWxpdHldPVwiJ2hvdmVyJ1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHNcIlxuICAgICAgICAgICAgICAgICAgICBwZXJmZWN0U2Nyb2xsYmFyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyBtYXgtaGVpZ2h0OiA4MHZoXCJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9IZWlnaHREaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2ItY29uZmlndXJhdGlvbl9fY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRDb25maWcgPT09IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2ItY29uZmlndXJhdGlvbl9fY29udGVudF9zdHJ1Y3R1cmVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQGFuaW1hdGVMaXN0RnJvbVJpZ2h0XT1cInNlbGVjdGVkU3RydWN0dXJlLmNvbnRlbnRzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcm9wTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCJibG9ja3NDb250ZW50cy5sZW5ndGggPT09IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3RDb25uZWN0ZWRUb109XCJbJ2Jsb2NrLWNvbnRlbnQnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzZWxlY3RlZCBvZiBzZWxlY3RlZFN0cnVjdHVyZS5jb250ZW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwic2VsZWN0ZWQuaW1hZ2UgfCBpbWdQYXRoXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgc2VsZWN0ZWQubmFtZSB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3Yi1jb25maWd1cmF0aW9uX19jb250ZW50X3N0cnVjdHVyZXNfX2RyYWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cInNlbGVjdGVkLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2RrRHJhZ0hhbmRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtZHJhZ2dhYmxlJzogYmxvY2tzQ29udGVudHMubGVuZ3RoIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZFRoaXMoc2VsZWN0ZWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ3Yi1jb25maWd1cmF0aW9uX19jb250ZW50X3N0cnVjdHVyZXNfX3ByZXZpZXdcIiAqY2RrRHJhZ1ByZXZpZXc+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ3Yi1jb25maWd1cmF0aW9uX19jb250ZW50X3N0cnVjdHVyZXNfX3BsYWNlaG9sZGVyXCIgKmNka0RyYWdQbGFjZWhvbGRlcj48c3Bhbj48L3NwYW4+PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkQ29uZmlnICE9PSBudWxsXCIgY2xhc3M9XCJ3Yi1jb25maWd1cmF0aW9uX19jb250ZW50X2NvbmZpZ3VyYXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8d2ItY29uZmlnc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNGaXJzdF09XCJpc0ZpcnN0SW5Mb29wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ3NdPVwic2VsZWN0ZWRDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlQ29uZmlnKT1cImNoYW5nZUNvbmZpZ1dpemlibG9ja3MoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvd2ItY29uZmlncz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXNjcm9sbGJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uIHdiLWNvbnRhaW5lcl9fY29udGVudFwiIFtuZ0NsYXNzXT1cInsgJ2hhcy1uby10b29sJzogdG9vbEhpZGRlbiB9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3Yi1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2ItY29udGVudF9faGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPHA+PGkgY2xhc3M9XCJmYXMgZmEtbG9ja1wiPjwvaT4ge3sgdHJhbnNsYXRpb24uaGVhZGVyIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2ItY29udGVudF9fY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDx3Yi1ibG9ja3MgW2R5bmFtaWNIaWRkZW5dPVwiaXNIaWRkZW5Db25maWdcIiBbc2VsZWN0ZWRDb25maWddPVwiaG92ZXJDaGlsZHJlblwiICNibG9jayBbY29udGVudHNdPVwiYmxvY2tzQ29udGVudHNcIj48L3diLWJsb2Nrcz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndiLWNvbnRlbnRfX2Zvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxwPjxpIGNsYXNzPVwiZmFzIGZhLWxvY2tcIj48L2k+IHt7IHRyYW5zbGF0aW9uLmZvb3RlciB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGhyIGlkPVwid2ItZm9vdGVyX19ibG9ja1wiIC8+XG4iXX0=
@@ -25273,7 +25273,7 @@ class WiziBlockComponent {
25273
25273
  this.configEventSubscription = null;
25274
25274
  this.contentEventSubscription = null;
25275
25275
  this.wiziblockServicesList = [];
25276
- this.LOADING_OFFSET = 600;
25276
+ this.LOADING_OFFSET = window.innerHeight;
25277
25277
  }
25278
25278
  set contentBlock(control) {
25279
25279
  this.blockComponent = control;
@@ -25461,7 +25461,6 @@ class WiziBlockComponent {
25461
25461
  var scrollY = window.scrollY;
25462
25462
  this.content.forEach((block, index) => {
25463
25463
  if (!(block instanceof (FormsDto))) {
25464
- console.log("not loaded");
25465
25464
  var rect = blockContainers[index].getBoundingClientRect();
25466
25465
  var pos = rect.top + scrollY;
25467
25466
  if ((windowHeight + scrollY + this.LOADING_OFFSET) >= (pos)) {