@progressio_resources/gravity-design-system 3.6.19 → 3.7.0

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.
Files changed (22) hide show
  1. package/esm2022/lib/components/gravity-tooltip-container/gravity-tooltip-container.component.mjs +44 -0
  2. package/esm2022/lib/gravity-design-system.module.mjs +8 -3
  3. package/esm2022/lib/layout/gravity-menu/gravity-menu.component.mjs +28 -5
  4. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.component.mjs +11 -9
  5. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.directive.mjs +22 -6
  6. package/esm2022/lib/vendor/gravity-tooltip/options.interface.mjs +1 -1
  7. package/esm2022/public-api.mjs +2 -1
  8. package/fesm2022/progressio_resources-gravity-design-system.mjs +101 -20
  9. package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
  10. package/lib/components/gravity-tooltip-container/gravity-tooltip-container.component.d.ts +40 -0
  11. package/lib/gravity-design-system.module.d.ts +10 -9
  12. package/lib/layout/gravity-menu/gravity-menu.component.d.ts +7 -4
  13. package/lib/vendor/gravity-tooltip/gravity-tooltip.component.d.ts +2 -1
  14. package/lib/vendor/gravity-tooltip/gravity-tooltip.directive.d.ts +3 -1
  15. package/lib/vendor/gravity-tooltip/options.interface.d.ts +1 -0
  16. package/package.json +1 -1
  17. package/public-api.d.ts +1 -0
  18. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.html +1 -0
  19. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.sass +12 -14
  20. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.ts +7 -7
  21. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.directive.ts +21 -4
  22. package/src/lib/vendor/gravity-tooltip/options.interface.ts +1 -0
@@ -140,6 +140,7 @@ export class GravityTooltipDirective {
140
140
  this.injector = injector;
141
141
  this._options = {};
142
142
  this._contentType = "string";
143
+ this.persistent = false;
143
144
  this.events = new EventEmitter();
144
145
  }
145
146
  onMouseEnter() {
@@ -149,7 +150,7 @@ export class GravityTooltipDirective {
149
150
  this.show();
150
151
  }
151
152
  onMouseLeave() {
152
- if (this.options['trigger'] === 'hover') {
153
+ if (this.options['trigger'] === 'hover' && !this.persistent) {
153
154
  this.destroyTooltip();
154
155
  }
155
156
  }
@@ -158,9 +159,11 @@ export class GravityTooltipDirective {
158
159
  return;
159
160
  }
160
161
  this.show();
161
- this.hideAfterClickTimeoutId = window.setTimeout(() => {
162
- this.destroyTooltip();
163
- }, this.options['hideDelayAfterClick']);
162
+ if (!this.persistent) {
163
+ this.hideAfterClickTimeoutId = window.setTimeout(() => {
164
+ this.destroyTooltip();
165
+ }, this.options['hideDelayAfterClick']);
166
+ }
164
167
  }
165
168
  ngOnChanges(changes) {
166
169
  this.initOptions = this.renameProperties(this.initOptions);
@@ -224,6 +227,9 @@ export class GravityTooltipDirective {
224
227
  destroyTooltip(options = {
225
228
  fast: false
226
229
  }) {
230
+ if (this.persistent) {
231
+ return;
232
+ }
227
233
  this.clearTimeouts();
228
234
  if (this.isTooltipDestroyed == false) {
229
235
  this.hideTimeoutId = window.setTimeout(() => {
@@ -347,8 +353,15 @@ export class GravityTooltipDirective {
347
353
  hide() {
348
354
  this.destroyTooltip();
349
355
  }
356
+ closeFromOutside() {
357
+ if (!this.componentRef || this.isTooltipDestroyed) {
358
+ return;
359
+ }
360
+ this.componentRef.instance.closeTooltip();
361
+ this.destroyTooltip({ fast: true });
362
+ }
350
363
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTooltipDirective, deps: [{ token: TooltipOptionsService, optional: true }, { token: i0.ElementRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
351
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GravityTooltipDirective, selector: "[tooltip]", inputs: { options: "options", tooltipValue: ["tooltip", "tooltipValue"], placement: "placement", autoPlacement: "autoPlacement", contentTypeBackwardCompatibility: ["content-type", "contentTypeBackwardCompatibility"], contentType: "contentType", hideDelayMobile: ["hide-delay-mobile", "hideDelayMobile"], hideDelayTouchscreen: "hideDelayTouchscreen", zIndexBackwardCompatibility: ["z-index", "zIndexBackwardCompatibility"], zIndex: "zIndex", animationDurationBackwardCompatibility: ["animation-duration", "animationDurationBackwardCompatibility"], animationDuration: "animationDuration", trigger: "trigger", tooltipClassBackwardCompatibility: ["tooltip-class", "tooltipClassBackwardCompatibility"], tooltipClass: "tooltipClass", display: "display", displayMobile: ["display-mobile", "displayMobile"], displayTouchscreen: "displayTouchscreen", shadow: "shadow", theme: "theme", offset: "offset", width: "width", maxWidthBackwardCompatibility: ["max-width", "maxWidthBackwardCompatibility"], maxWidth: "maxWidth", id: "id", showDelayBackwardCompatibility: ["show-delay", "showDelayBackwardCompatibility"], showDelay: "showDelay", hideDelayBackwardCompatibility: ["hide-delay", "hideDelayBackwardCompatibility"], hideDelay: "hideDelay", hideDelayAfterClick: "hideDelayAfterClick", pointerEvents: "pointerEvents", position: "position" }, outputs: { events: "events" }, host: { listeners: { "focusin": "onMouseEnter()", "mouseenter": "onMouseEnter()", "focusout": "onMouseLeave()", "mouseleave": "onMouseLeave()", "click": "onClick()" } }, exportAs: ["tooltip"], usesOnChanges: true, ngImport: i0 }); }
364
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GravityTooltipDirective, selector: "[tooltip]", inputs: { options: "options", tooltipValue: ["tooltip", "tooltipValue"], placement: "placement", autoPlacement: "autoPlacement", contentTypeBackwardCompatibility: ["content-type", "contentTypeBackwardCompatibility"], contentType: "contentType", hideDelayMobile: ["hide-delay-mobile", "hideDelayMobile"], hideDelayTouchscreen: "hideDelayTouchscreen", zIndexBackwardCompatibility: ["z-index", "zIndexBackwardCompatibility"], zIndex: "zIndex", animationDurationBackwardCompatibility: ["animation-duration", "animationDurationBackwardCompatibility"], animationDuration: "animationDuration", trigger: "trigger", tooltipClassBackwardCompatibility: ["tooltip-class", "tooltipClassBackwardCompatibility"], tooltipClass: "tooltipClass", display: "display", displayMobile: ["display-mobile", "displayMobile"], displayTouchscreen: "displayTouchscreen", shadow: "shadow", theme: "theme", offset: "offset", width: "width", persistent: "persistent", maxWidthBackwardCompatibility: ["max-width", "maxWidthBackwardCompatibility"], maxWidth: "maxWidth", id: "id", showDelayBackwardCompatibility: ["show-delay", "showDelayBackwardCompatibility"], showDelay: "showDelay", hideDelayBackwardCompatibility: ["hide-delay", "hideDelayBackwardCompatibility"], hideDelay: "hideDelay", hideDelayAfterClick: "hideDelayAfterClick", pointerEvents: "pointerEvents", position: "position" }, outputs: { events: "events" }, host: { listeners: { "focusin": "onMouseEnter()", "mouseenter": "onMouseEnter()", "focusout": "onMouseLeave()", "mouseleave": "onMouseLeave()", "click": "onClick()" } }, exportAs: ["tooltip"], usesOnChanges: true, ngImport: i0 }); }
352
365
  }
353
366
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTooltipDirective, decorators: [{
354
367
  type: Directive,
@@ -427,6 +440,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
427
440
  }], width: [{
428
441
  type: Input,
429
442
  args: ['width']
443
+ }], persistent: [{
444
+ type: Input,
445
+ args: ['persistent']
430
446
  }], maxWidthBackwardCompatibility: [{
431
447
  type: Input,
432
448
  args: ['max-width']
@@ -475,4 +491,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
475
491
  type: HostListener,
476
492
  args: ['click']
477
493
  }] } });
478
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAvZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUdULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBQyw0QkFBNEIsRUFBRSxjQUFjLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBZXZFLE1BQU0sT0FBTyx1QkFBdUI7SUFzQmxDLElBQXNCLE9BQU8sQ0FBQyxLQUFxQjtRQUNqRCxJQUFJLEtBQUssSUFBSSxjQUFjLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFNRCxlQUFlO0lBQ2YsSUFBMkIsZ0NBQWdDLENBQUMsS0FBcUM7UUFDL0YsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUEwQixXQUFXLENBQUMsS0FBcUM7UUFDekUsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENB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dUJBQUMscUJBQXFCO2dCQUNKLGFBQWE7c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFDSCxRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVU7Z0JBMEJQLE1BQU07c0JBQWYsTUFBTTtnQkFZUCxZQUFZO3NCQUZYLFlBQVk7dUJBQUMsU0FBUzs7c0JBQ3RCLFlBQVk7dUJBQUMsWUFBWTtnQkFXMUIsWUFBWTtzQkFGWCxZQUFZO3VCQUFDLFVBQVU7O3NCQUN2QixZQUFZO3VCQUFDLFlBQVk7Z0JBUTFCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7R3Jhdml0eVRvb2x0aXBDb21wb25lbnR9IGZyb20gJy4vZ3Jhdml0eS10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQge1Rvb2x0aXBPcHRpb25zU2VydmljZX0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtiYWNrd2FyZENvbXBhdGliaWxpdHlPcHRpb25zLCBkZWZhdWx0T3B0aW9uc30gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7VG9vbHRpcE9wdGlvbnN9IGZyb20gJy4vb3B0aW9ucy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkQ29tcG9uZW50IHtcbiAgZGF0YTogYW55O1xuICBzaG93OiBib29sZWFuO1xuICBjbG9zZTogYm9vbGVhbjtcbiAgZXZlbnRzOiBhbnk7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b29sdGlwXScsXG4gIGV4cG9ydEFzOiAndG9vbHRpcCcsXG59KVxuXG5leHBvcnQgY2xhc3MgR3Jhdml0eVRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIGhpZGVUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGRlc3Ryb3lUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGhpZGVBZnRlckNsaWNrVGltZW91dElkITogbnVtYmVyO1xuICBjcmVhdGVUaW1lb3V0SWQhOiBudW1iZXI7XG4gIHNob3dUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGNvbXBvbmVudFJlZjogYW55O1xuICBlbGVtZW50UG9zaXRpb246IGFueTtcbiAgX2lkOiBhbnk7XG4gIF9vcHRpb25zOiBhbnkgPSB7fTtcbiAgX2RlZmF1bHRPcHRpb25zOiBhbnk7XG4gIF9kZXN0cm95RGVsYXkhOiBudW1iZXI7XG4gIGNvbXBvbmVudFN1YnNjcmliZTogYW55O1xuICBfY29udGVudFR5cGU6IFwic3RyaW5nXCIgfCBcImh0bWxcIiB8IFwidGVtcGxhdGVcIiA9IFwic3RyaW5nXCI7XG4gIF9zaG93RGVsYXkhOiBudW1iZXI7XG4gIF9oaWRlRGVsYXkhOiBudW1iZXI7XG4gIF96SW5kZXghOiBudW1iZXI7XG4gIF90b29sdGlwQ2xhc3MhOiBzdHJpbmc7XG4gIF9hbmltYXRpb25EdXJhdGlvbiE6IG51bWJlcjtcbiAgX21heFdpZHRoITogc3RyaW5nO1xuXG4gIEBJbnB1dCgnb3B0aW9ucycpIHNldCBvcHRpb25zKHZhbHVlOiBUb29sdGlwT3B0aW9ucykge1xuICAgIGlmICh2YWx1ZSAmJiBkZWZhdWx0T3B0aW9ucykge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgQElucHV0KCd0b29sdGlwJykgdG9vbHRpcFZhbHVlITogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCdwbGFjZW1lbnQnKSBwbGFjZW1lbnQhOiBzdHJpbmc7XG4gIEBJbnB1dCgnYXV0b1BsYWNlbWVudCcpIGF1dG9QbGFjZW1lbnQhOiBib29sZWFuO1xuXG4gIC8vIENvbnRlbnQgdHlwZVxuICBASW5wdXQoJ2NvbnRlbnQtdHlwZScpIHNldCBjb250ZW50VHlwZUJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogXCJzdHJpbmdcIiB8IFwiaHRtbFwiIHwgXCJ0ZW1wbGF0ZVwiKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9jb250ZW50VHlwZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnY29udGVudFR5cGUnKSBzZXQgY29udGVudFR5cGUodmFsdWU6IFwic3RyaW5nXCIgfCBcImh0bWxcIiB8IFwidGVtcGxhdGVcIikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fY29udGVudFR5cGUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29udGVudFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRUeXBlO1xuICB9XG5cbiAgQElucHV0KCdoaWRlLWRlbGF5LW1vYmlsZScpIGhpZGVEZWxheU1vYmlsZSE6IG51bWJlcjtcbiAgQElucHV0KCdoaWRlRGVsYXlUb3VjaHNjcmVlbicpIGhpZGVEZWxheVRvdWNoc2NyZWVuITogbnVtYmVyO1xuXG4gIC8vIHotaW5kZXhcbiAgQElucHV0KCd6LWluZGV4Jykgc2V0IHpJbmRleEJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl96SW5kZXggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ3pJbmRleCcpIHNldCB6SW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fekluZGV4ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHpJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy5fekluZGV4O1xuICB9XG5cbiAgLy8gQW5pbWF0aW9uIGR1cmF0aW9uXG4gIEBJbnB1dCgnYW5pbWF0aW9uLWR1cmF0aW9uJykgc2V0IGFuaW1hdGlvbkR1cmF0aW9uQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdhbmltYXRpb25EdXJhdGlvbicpIHNldCBhbmltYXRpb25EdXJhdGlvbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9hbmltYXRpb25EdXJhdGlvbiA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhbmltYXRpb25EdXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uRHVyYXRpb247XG4gIH1cblxuXG4gIEBJbnB1dCgndHJpZ2dlcicpIHRyaWdnZXIhOiBzdHJpbmc7XG5cbiAgLy8gVG9vbHRpcCBjbGFzc1xuICBASW5wdXQoJ3Rvb2x0aXAtY2xhc3MnKSBzZXQgdG9vbHRpcENsYXNzQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3Rvb2x0aXBDbGFzcyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgndG9vbHRpcENsYXNzJykgc2V0IHRvb2x0aXBDbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl90b29sdGlwQ2xhc3MgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgdG9vbHRpcENsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLl90b29sdGlwQ2xhc3M7XG4gIH1cblxuICBASW5wdXQoJ2Rpc3BsYXknKSBkaXNwbGF5ITogYm9vbGVhbjtcbiAgQElucHV0KCdkaXNwbGF5LW1vYmlsZScpIGRpc3BsYXlNb2JpbGUhOiBib29sZWFuO1xuICBASW5wdXQoJ2Rpc3BsYXlUb3VjaHNjcmVlbicpIGRpc3BsYXlUb3VjaHNjcmVlbiE6IGJvb2xlYW47XG4gIEBJbnB1dCgnc2hhZG93Jykgc2hhZG93ITogYm9vbGVhbjtcbiAgQElucHV0KCd0aGVtZScpIHRoZW1lITogXCJkYXJrXCIgfCBcImxpZ2h0XCI7XG4gIEBJbnB1dCgnb2Zmc2V0Jykgb2Zmc2V0ITogbnVtYmVyO1xuICBASW5wdXQoJ3dpZHRoJykgd2lkdGghOiBzdHJpbmc7XG5cbiAgLy8gTWF4IHdpZHRoXG4gIEBJbnB1dCgnbWF4LXdpZHRoJykgc2V0IG1heFdpZHRoQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX21heFdpZHRoID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdtYXhXaWR0aCcpIHNldCBtYXhXaWR0aCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9tYXhXaWR0aCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtYXhXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4V2lkdGg7XG4gIH1cblxuXG4gIEBJbnB1dCgnaWQnKSBpZDogYW55O1xuXG4gIC8vIFNob3cgZGVsYXlcbiAgQElucHV0KCdzaG93LWRlbGF5Jykgc2V0IHNob3dEZWxheUJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9zaG93RGVsYXkgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ3Nob3dEZWxheScpIHNldCBzaG93RGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fc2hvd0RlbGF5ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNob3dEZWxheSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0RlbGF5O1xuICB9XG5cbiAgLy8gSGlkZSBkZWxheVxuICBASW5wdXQoJ2hpZGUtZGVsYXknKSBzZXQgaGlkZURlbGF5QmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2hpZGVEZWxheSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnaGlkZURlbGF5Jykgc2V0IGhpZGVEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9oaWRlRGVsYXkgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgaGlkZURlbGF5KCkge1xuICAgIHJldHVybiB0aGlzLl9oaWRlRGVsYXk7XG4gIH1cblxuICBASW5wdXQoJ2hpZGVEZWxheUFmdGVyQ2xpY2snKSBoaWRlRGVsYXlBZnRlckNsaWNrITogbnVtYmVyO1xuICBASW5wdXQoJ3BvaW50ZXJFdmVudHMnKSBwb2ludGVyRXZlbnRzITogJ2F1dG8nIHwgJ25vbmUnO1xuICBASW5wdXQoJ3Bvc2l0aW9uJykgcG9zaXRpb24hOiB7IHRvcDogbnVtYmVyLCBsZWZ0OiBudW1iZXIgfTtcblxuICBnZXQgaXNUb29sdGlwRGVzdHJveWVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlZiAmJiB0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldy5kZXN0cm95ZWQ7XG4gIH1cblxuICBnZXQgZGVzdHJveURlbGF5KCkge1xuICAgIGlmICh0aGlzLl9kZXN0cm95RGVsYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9kZXN0cm95RGVsYXk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBOdW1iZXIodGhpcy5nZXRIaWRlRGVsYXkoKSkgKyBOdW1iZXIodGhpcy5vcHRpb25zWydhbmltYXRpb25EdXJhdGlvbiddKTtcbiAgICB9XG4gIH1cblxuICBzZXQgZGVzdHJveURlbGF5KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9kZXN0cm95RGVsYXkgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCB0b29sdGlwUG9zaXRpb24oKSB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1sncG9zaXRpb24nXSkge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1sncG9zaXRpb24nXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFBvc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBldmVudHM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUb29sdGlwT3B0aW9uc1NlcnZpY2UpIHByaXZhdGUgaW5pdE9wdGlvbnM6IGFueSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nKVxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgb25Nb3VzZUVudGVyKCkge1xuICAgIGlmICh0aGlzLmlzRGlzcGxheU9uSG92ZXIgPT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWyd0cmlnZ2VyJ10gPT09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNwbGF5T25DbGljayA9PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdygpO1xuICAgIHRoaXMuaGlkZUFmdGVyQ2xpY2tUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XG4gICAgfSwgdGhpcy5vcHRpb25zWydoaWRlRGVsYXlBZnRlckNsaWNrJ10pXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5pbml0T3B0aW9ucyA9IHRoaXMucmVuYW1lUHJvcGVydGllcyh0aGlzLmluaXRPcHRpb25zKTtcbiAgICBsZXQgY2hhbmdlZE9wdGlvbnMgPSB0aGlzLmdldFByb3BlcnRpZXMoY2hhbmdlcyk7XG4gICAgY2hhbmdlZE9wdGlvbnMgPSB0aGlzLnJlbmFtZVByb3BlcnRpZXMoY2hhbmdlZE9wdGlvbnMpO1xuXG4gICAgdGhpcy5hcHBseU9wdGlvbnNEZWZhdWx0KGRlZmF1bHRPcHRpb25zLCBjaGFuZ2VkT3B0aW9ucyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKHtcbiAgICAgIGZhc3Q6IHRydWVcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbXBvbmVudFN1YnNjcmliZSkge1xuICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpYmUudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRTaG93RGVsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1snc2hvd0RlbGF5J107XG4gIH1cblxuICBnZXRIaWRlRGVsYXkoKSB7XG4gICAgY29uc3QgaGlkZURlbGF5ID0gdGhpcy5vcHRpb25zWydoaWRlRGVsYXknXTtcbiAgICBjb25zdCBoaWRlRGVsYXlUb3VjaHNjcmVlbiA9IHRoaXMub3B0aW9uc1snaGlkZURlbGF5VG91Y2hzY3JlZW4nXTtcblxuICAgIHJldHVybiB0aGlzLmlzVG91Y2hTY3JlZW4gPyBoaWRlRGVsYXlUb3VjaHNjcmVlbiA6IGhpZGVEZWxheTtcbiAgfVxuXG4gIGdldFByb3BlcnRpZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGxldCBkaXJlY3RpdmVQcm9wZXJ0aWVzOiBhbnkgPSB7fTtcbiAgICBsZXQgY3VzdG9tUHJvcGVydGllczogYW55ID0ge307XG4gICAgbGV0IGFsbFByb3BlcnRpZXM6IGFueTtcblxuICAgIGZvciAodmFyIHByb3AgaW4gY2hhbmdlcykge1xuICAgICAgaWYgKHByb3AgIT09ICdvcHRpb25zJyAmJiBwcm9wICE9PSAndG9vbHRpcFZhbHVlJykge1xuICAgICAgICBkaXJlY3RpdmVQcm9wZXJ0aWVzW3Byb3BdID0gY2hhbmdlc1twcm9wXS5jdXJyZW50VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAocHJvcCA9PT0gJ29wdGlvbnMnKSB7XG4gICAgICAgIGN1c3RvbVByb3BlcnRpZXMgPSBjaGFuZ2VzW3Byb3BdLmN1cnJlbnRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhbGxQcm9wZXJ0aWVzID0gT2JqZWN0LmFzc2lnbih7fSwgY3VzdG9tUHJvcGVydGllcywgZGlyZWN0aXZlUHJvcGVydGllcyk7XG4gICAgcmV0dXJuIGFsbFByb3BlcnRpZXM7XG4gIH1cblxuICByZW5hbWVQcm9wZXJ0aWVzKG9wdGlvbnM6IGFueSkge1xuICAgIGZvciAodmFyIHByb3AgaW4gb3B0aW9ucykge1xuICAgICAgaWYgKGJhY2t3YXJkQ29tcGF0aWJpbGl0eU9wdGlvbnNbcHJvcF0pIHtcbiAgICAgICAgb3B0aW9uc1tiYWNrd2FyZENvbXBhdGliaWxpdHlPcHRpb25zW3Byb3BdXSA9IG9wdGlvbnNbcHJvcF07XG4gICAgICAgIGRlbGV0ZSBvcHRpb25zW3Byb3BdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgZ2V0RWxlbWVudFBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudFBvc2l0aW9uID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBjcmVhdGVUb29sdGlwKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lb3V0cygpO1xuICAgIHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XG5cbiAgICB0aGlzLmNyZWF0ZVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYXBwZW5kQ29tcG9uZW50VG9Cb2R5KEdyYXZpdHlUb29sdGlwQ29tcG9uZW50KTtcbiAgICB9LCB0aGlzLmdldFNob3dEZWxheSgpKTtcblxuICAgIHRoaXMuc2hvd1RpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd1Rvb2x0aXBFbGVtKCk7XG4gICAgfSwgdGhpcy5nZXRTaG93RGVsYXkoKSk7XG4gIH1cblxuICBkZXN0cm95VG9vbHRpcChvcHRpb25zID0ge1xuICAgIGZhc3Q6IGZhbHNlXG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcblxuICAgIGlmICh0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCA9PSBmYWxzZSkge1xuICAgICAgdGhpcy5oaWRlVGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgICB9LCBvcHRpb25zLmZhc3QgPyAwIDogdGhpcy5nZXRIaWRlRGVsYXkoKSk7XG5cbiAgICAgIHRoaXMuZGVzdHJveVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZiB8fCB0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICAgIHR5cGU6ICdoaWRkZW4nLFxuICAgICAgICAgIHBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvblxuICAgICAgICB9KTtcbiAgICAgIH0sIG9wdGlvbnMuZmFzdCA/IDAgOiB0aGlzLmRlc3Ryb3lEZWxheSk7XG4gICAgfVxuICB9XG5cbiAgc2hvd1Rvb2x0aXBFbGVtKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lb3V0cygpO1xuICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLnNob3cgPSB0cnVlO1xuICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgdHlwZTogJ3Nob3cnLFxuICAgICAgcG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uXG4gICAgfSk7XG4gIH1cblxuICBoaWRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmIHx8IHRoaXMuaXNUb29sdGlwRGVzdHJveWVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLnNob3cgPSBmYWxzZTtcbiAgICB0aGlzLmV2ZW50cy5lbWl0KHtcbiAgICAgIHR5cGU6ICdoaWRlJyxcbiAgICAgIHBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvblxuICAgIH0pO1xuICB9XG5cbiAgYXBwZW5kQ29tcG9uZW50VG9Cb2R5KGNvbXBvbmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudClcbiAgICAgIC5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG5cbiAgICAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5kYXRhID0ge1xuICAgICAgdmFsdWU6IHRoaXMudG9vbHRpcFZhbHVlLFxuICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBlbGVtZW50UG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgfVxuICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgdGhpcy5jb21wb25lbnRTdWJzY3JpYmUgPSAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5ldmVudHMuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUV2ZW50cyhldmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBjbGVhclRpbWVvdXRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNyZWF0ZVRpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY3JlYXRlVGltZW91dElkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaG93VGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dElkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oaWRlVGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZW91dElkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXN0cm95VGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5kZXN0cm95VGltZW91dElkKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNEaXNwbGF5T25Ib3ZlcigpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5J10gPT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5VG91Y2hzY3JlZW4nXSA9PSBmYWxzZSAmJiB0aGlzLmlzVG91Y2hTY3JlZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zWyd0cmlnZ2VyJ10gPT09ICdob3Zlcic7XG4gIH1cblxuICBnZXQgaXNEaXNwbGF5T25DbGljaygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5J10gPT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5VG91Y2hzY3JlZW4nXSA9PSBmYWxzZSAmJiB0aGlzLmlzVG91Y2hTY3JlZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zWyd0cmlnZ2VyJ10gPT0gJ2NsaWNrJztcblxuXG4gIH1cblxuICBnZXQgaXNUb3VjaFNjcmVlbigpIHtcbiAgICB2YXIgcHJlZml4ZXMgPSAnIC13ZWJraXQtIC1tb3otIC1vLSAtbXMtICcuc3BsaXQoJyAnKTtcbiAgICB2YXIgbXEgPSBmdW5jdGlvbiAocXVlcnk6IGFueSkge1xuICAgICAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KS5tYXRjaGVzO1xuICAgIH1cblxuICAgIGlmICgoJ29udG91Y2hzdGFydCcgaW4gd2luZG93KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gaW5jbHVkZSB0aGUgJ2hlYXJ0eicgYXMgYSB3YXkgdG8gaGF2ZSBhIG5vbiBtYXRjaGluZyBNUSB0byBoZWxwIHRlcm1pbmF0ZSB0aGUgam9pblxuICAgIC8vIGh0dHBzOi8vZ2l0LmlvL3Z6bkZIXG4gICAgdmFyIHF1ZXJ5ID0gWycoJywgcHJlZml4ZXMuam9pbigndG91Y2gtZW5hYmxlZCksKCcpLCAnaGVhcnR6JywgJyknXS5qb2luKCcnKTtcbiAgICByZXR1cm4gbXEocXVlcnkpO1xuICB9XG5cbiAgYXBwbHlPcHRpb25zRGVmYXVsdChkZWZhdWx0T3B0aW9uczogYW55LCBvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucywgdGhpcy5pbml0T3B0aW9ucyB8fCB7fSwgdGhpcy5vcHRpb25zLCBvcHRpb25zKTtcbiAgfVxuXG4gIGhhbmRsZUV2ZW50cyhldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdzaG93bicpIHtcbiAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICB0eXBlOiAnc2hvd24nLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb25cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93KCkge1xuICAgIGlmICghdGhpcy50b29sdGlwVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmIHx8IHRoaXMuaXNUb29sdGlwRGVzdHJveWVkKSB7XG4gICAgICB0aGlzLmNyZWF0ZVRvb2x0aXAoKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgdGhpcy5zaG93VG9vbHRpcEVsZW0oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGlkZSgpIHtcbiAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XG4gIH1cbn1cbiJdfQ==
494
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAvZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUdULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBQyw0QkFBNEIsRUFBRSxjQUFjLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBZXZFLE1BQU0sT0FBTyx1QkFBdUI7SUFzQmxDLElBQXNCLE9BQU8sQ0FBQyxLQUFxQjtRQUNqRCxJQUFJLEtBQUssSUFBSSxjQUFjLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFNRCxlQUFlO0lBQ2YsSUFBMkIsZ0NBQWdDLENBQUMsS0FBcUM7UUFDL0YsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUEwQixXQUFXLENBQUMsS0FBcUM7UUFDekUsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENB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Szt1QkFBQyxPQUFPO2dCQUNHLE1BQU07c0JBQXRCLEtBQUs7dUJBQUMsUUFBUTtnQkFDQyxLQUFLO3NCQUFwQixLQUFLO3VCQUFDLE9BQU87Z0JBQ08sVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUdLLDZCQUE2QjtzQkFBcEQsS0FBSzt1QkFBQyxXQUFXO2dCQU1LLFFBQVE7c0JBQTlCLEtBQUs7dUJBQUMsVUFBVTtnQkFXSixFQUFFO3NCQUFkLEtBQUs7dUJBQUMsSUFBSTtnQkFHYyw4QkFBOEI7c0JBQXRELEtBQUs7dUJBQUMsWUFBWTtnQkFNSyxTQUFTO3NCQUFoQyxLQUFLO3VCQUFDLFdBQVc7Z0JBV08sOEJBQThCO3NCQUF0RCxLQUFLO3VCQUFDLFlBQVk7Z0JBTUssU0FBUztzQkFBaEMsS0FBSzt1QkFBQyxXQUFXO2dCQVVZLG1CQUFtQjtzQkFBaEQsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBQ0osYUFBYTtzQkFBcEMsS0FBSzt1QkFBQyxlQUFlO2dCQUNILFFBQVE7c0JBQTFCLEtBQUs7dUJBQUMsVUFBVTtnQkEwQlAsTUFBTTtzQkFBZixNQUFNO2dCQVlQLFlBQVk7c0JBRlgsWUFBWTt1QkFBQyxTQUFTOztzQkFDdEIsWUFBWTt1QkFBQyxZQUFZO2dCQVcxQixZQUFZO3NCQUZYLFlBQVk7dUJBQUMsVUFBVTs7c0JBQ3ZCLFlBQVk7dUJBQUMsWUFBWTtnQkFRMUIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtHcmF2aXR5VG9vbHRpcENvbXBvbmVudH0gZnJvbSAnLi9ncmF2aXR5LXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7VG9vbHRpcE9wdGlvbnNTZXJ2aWNlfSBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQge2JhY2t3YXJkQ29tcGF0aWJpbGl0eU9wdGlvbnMsIGRlZmF1bHRPcHRpb25zfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHtUb29sdGlwT3B0aW9uc30gZnJvbSAnLi9vcHRpb25zLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRDb21wb25lbnQge1xuICBkYXRhOiBhbnk7XG4gIHNob3c6IGJvb2xlYW47XG4gIGNsb3NlOiBib29sZWFuO1xuICBldmVudHM6IGFueTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3Rvb2x0aXBdJyxcbiAgZXhwb3J0QXM6ICd0b29sdGlwJyxcbn0pXG5cbmV4cG9ydCBjbGFzcyBHcmF2aXR5VG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgaGlkZVRpbWVvdXRJZCE6IG51bWJlcjtcbiAgZGVzdHJveVRpbWVvdXRJZCE6IG51bWJlcjtcbiAgaGlkZUFmdGVyQ2xpY2tUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGNyZWF0ZVRpbWVvdXRJZCE6IG51bWJlcjtcbiAgc2hvd1RpbWVvdXRJZCE6IG51bWJlcjtcbiAgY29tcG9uZW50UmVmOiBhbnk7XG4gIGVsZW1lbnRQb3NpdGlvbjogYW55O1xuICBfaWQ6IGFueTtcbiAgX29wdGlvbnM6IGFueSA9IHt9O1xuICBfZGVmYXVsdE9wdGlvbnM6IGFueTtcbiAgX2Rlc3Ryb3lEZWxheSE6IG51bWJlcjtcbiAgY29tcG9uZW50U3Vic2NyaWJlOiBhbnk7XG4gIF9jb250ZW50VHlwZTogXCJzdHJpbmdcIiB8IFwiaHRtbFwiIHwgXCJ0ZW1wbGF0ZVwiID0gXCJzdHJpbmdcIjtcbiAgX3Nob3dEZWxheSE6IG51bWJlcjtcbiAgX2hpZGVEZWxheSE6IG51bWJlcjtcbiAgX3pJbmRleCE6IG51bWJlcjtcbiAgX3Rvb2x0aXBDbGFzcyE6IHN0cmluZztcbiAgX2FuaW1hdGlvbkR1cmF0aW9uITogbnVtYmVyO1xuICBfbWF4V2lkdGghOiBzdHJpbmc7XG5cbiAgQElucHV0KCdvcHRpb25zJykgc2V0IG9wdGlvbnModmFsdWU6IFRvb2x0aXBPcHRpb25zKSB7XG4gICAgaWYgKHZhbHVlICYmIGRlZmF1bHRPcHRpb25zKSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICBASW5wdXQoJ3Rvb2x0aXAnKSB0b29sdGlwVmFsdWUhOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoJ3BsYWNlbWVudCcpIHBsYWNlbWVudCE6IHN0cmluZztcbiAgQElucHV0KCdhdXRvUGxhY2VtZW50JykgYXV0b1BsYWNlbWVudCE6IGJvb2xlYW47XG5cbiAgLy8gQ29udGVudCB0eXBlXG4gIEBJbnB1dCgnY29udGVudC10eXBlJykgc2V0IGNvbnRlbnRUeXBlQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBcInN0cmluZ1wiIHwgXCJodG1sXCIgfCBcInRlbXBsYXRlXCIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnRUeXBlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdjb250ZW50VHlwZScpIHNldCBjb250ZW50VHlwZSh2YWx1ZTogXCJzdHJpbmdcIiB8IFwiaHRtbFwiIHwgXCJ0ZW1wbGF0ZVwiKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9jb250ZW50VHlwZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjb250ZW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFR5cGU7XG4gIH1cblxuICBASW5wdXQoJ2hpZGUtZGVsYXktbW9iaWxlJykgaGlkZURlbGF5TW9iaWxlITogbnVtYmVyO1xuICBASW5wdXQoJ2hpZGVEZWxheVRvdWNoc2NyZWVuJykgaGlkZURlbGF5VG91Y2hzY3JlZW4hOiBudW1iZXI7XG5cbiAgLy8gei1pbmRleFxuICBASW5wdXQoJ3otaW5kZXgnKSBzZXQgekluZGV4QmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3pJbmRleCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnekluZGV4Jykgc2V0IHpJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl96SW5kZXggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgekluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLl96SW5kZXg7XG4gIH1cblxuICAvLyBBbmltYXRpb24gZHVyYXRpb25cbiAgQElucHV0KCdhbmltYXRpb24tZHVyYXRpb24nKSBzZXQgYW5pbWF0aW9uRHVyYXRpb25CYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fYW5pbWF0aW9uRHVyYXRpb24gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ2FuaW1hdGlvbkR1cmF0aW9uJykgc2V0IGFuaW1hdGlvbkR1cmF0aW9uKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGFuaW1hdGlvbkR1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9hbmltYXRpb25EdXJhdGlvbjtcbiAgfVxuXG5cbiAgQElucHV0KCd0cmlnZ2VyJykgdHJpZ2dlciE6IHN0cmluZztcblxuICAvLyBUb29sdGlwIGNsYXNzXG4gIEBJbnB1dCgndG9vbHRpcC1jbGFzcycpIHNldCB0b29sdGlwQ2xhc3NCYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fdG9vbHRpcENsYXNzID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCd0b29sdGlwQ2xhc3MnKSBzZXQgdG9vbHRpcENsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3Rvb2x0aXBDbGFzcyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0b29sdGlwQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBDbGFzcztcbiAgfVxuXG4gIEBJbnB1dCgnZGlzcGxheScpIGRpc3BsYXkhOiBib29sZWFuO1xuICBASW5wdXQoJ2Rpc3BsYXktbW9iaWxlJykgZGlzcGxheU1vYmlsZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgnZGlzcGxheVRvdWNoc2NyZWVuJykgZGlzcGxheVRvdWNoc2NyZWVuITogYm9vbGVhbjtcbiAgQElucHV0KCdzaGFkb3cnKSBzaGFkb3chOiBib29sZWFuO1xuICBASW5wdXQoJ3RoZW1lJykgdGhlbWUhOiBcImRhcmtcIiB8IFwibGlnaHRcIjtcbiAgQElucHV0KCdvZmZzZXQnKSBvZmZzZXQhOiBudW1iZXI7XG4gIEBJbnB1dCgnd2lkdGgnKSB3aWR0aCE6IHN0cmluZztcbiAgQElucHV0KCdwZXJzaXN0ZW50JykgcGVyc2lzdGVudDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIE1heCB3aWR0aFxuICBASW5wdXQoJ21heC13aWR0aCcpIHNldCBtYXhXaWR0aEJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9tYXhXaWR0aCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnbWF4V2lkdGgnKSBzZXQgbWF4V2lkdGgodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fbWF4V2lkdGggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgbWF4V2lkdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21heFdpZHRoO1xuICB9XG5cblxuICBASW5wdXQoJ2lkJykgaWQ6IGFueTtcblxuICAvLyBTaG93IGRlbGF5XG4gIEBJbnB1dCgnc2hvdy1kZWxheScpIHNldCBzaG93RGVsYXlCYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fc2hvd0RlbGF5ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdzaG93RGVsYXknKSBzZXQgc2hvd0RlbGF5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3Nob3dEZWxheSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93RGVsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dEZWxheTtcbiAgfVxuXG4gIC8vIEhpZGUgZGVsYXlcbiAgQElucHV0KCdoaWRlLWRlbGF5Jykgc2V0IGhpZGVEZWxheUJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9oaWRlRGVsYXkgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ2hpZGVEZWxheScpIHNldCBoaWRlRGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5faGlkZURlbGF5ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGhpZGVEZWxheSgpIHtcbiAgICByZXR1cm4gdGhpcy5faGlkZURlbGF5O1xuICB9XG5cbiAgQElucHV0KCdoaWRlRGVsYXlBZnRlckNsaWNrJykgaGlkZURlbGF5QWZ0ZXJDbGljayE6IG51bWJlcjtcbiAgQElucHV0KCdwb2ludGVyRXZlbnRzJykgcG9pbnRlckV2ZW50cyE6ICdhdXRvJyB8ICdub25lJztcbiAgQElucHV0KCdwb3NpdGlvbicpIHBvc2l0aW9uITogeyB0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyIH07XG5cbiAgZ2V0IGlzVG9vbHRpcERlc3Ryb3llZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRSZWYgJiYgdGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcuZGVzdHJveWVkO1xuICB9XG5cbiAgZ2V0IGRlc3Ryb3lEZWxheSgpIHtcbiAgICBpZiAodGhpcy5fZGVzdHJveURlbGF5KSB7XG4gICAgICByZXR1cm4gdGhpcy5fZGVzdHJveURlbGF5O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gTnVtYmVyKHRoaXMuZ2V0SGlkZURlbGF5KCkpICsgTnVtYmVyKHRoaXMub3B0aW9uc1snYW5pbWF0aW9uRHVyYXRpb24nXSk7XG4gICAgfVxuICB9XG5cbiAgc2V0IGRlc3Ryb3lEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fZGVzdHJveURlbGF5ID0gdmFsdWU7XG4gIH1cblxuICBnZXQgdG9vbHRpcFBvc2l0aW9uKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnNbJ3Bvc2l0aW9uJ10pIHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNbJ3Bvc2l0aW9uJ107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRQb3NpdGlvbjtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KCkgZXZlbnRzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVG9vbHRpcE9wdGlvbnNTZXJ2aWNlKSBwcml2YXRlIGluaXRPcHRpb25zOiBhbnksXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJylcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gIG9uTW91c2VFbnRlcigpIHtcbiAgICBpZiAodGhpcy5pc0Rpc3BsYXlPbkhvdmVyID09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1sndHJpZ2dlciddID09PSAnaG92ZXInICYmICF0aGlzLnBlcnNpc3RlbnQpIHtcbiAgICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNwbGF5T25DbGljayA9PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdygpO1xuXG4gICAgaWYgKCF0aGlzLnBlcnNpc3RlbnQpIHtcbiAgICAgIHRoaXMuaGlkZUFmdGVyQ2xpY2tUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgICAgIH0sIHRoaXMub3B0aW9uc1snaGlkZURlbGF5QWZ0ZXJDbGljayddKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5pbml0T3B0aW9ucyA9IHRoaXMucmVuYW1lUHJvcGVydGllcyh0aGlzLmluaXRPcHRpb25zKTtcbiAgICBsZXQgY2hhbmdlZE9wdGlvbnMgPSB0aGlzLmdldFByb3BlcnRpZXMoY2hhbmdlcyk7XG4gICAgY2hhbmdlZE9wdGlvbnMgPSB0aGlzLnJlbmFtZVByb3BlcnRpZXMoY2hhbmdlZE9wdGlvbnMpO1xuXG4gICAgdGhpcy5hcHBseU9wdGlvbnNEZWZhdWx0KGRlZmF1bHRPcHRpb25zLCBjaGFuZ2VkT3B0aW9ucyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKHtcbiAgICAgIGZhc3Q6IHRydWVcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbXBvbmVudFN1YnNjcmliZSkge1xuICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpYmUudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRTaG93RGVsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1snc2hvd0RlbGF5J107XG4gIH1cblxuICBnZXRIaWRlRGVsYXkoKSB7XG4gICAgY29uc3QgaGlkZURlbGF5ID0gdGhpcy5vcHRpb25zWydoaWRlRGVsYXknXTtcbiAgICBjb25zdCBoaWRlRGVsYXlUb3VjaHNjcmVlbiA9IHRoaXMub3B0aW9uc1snaGlkZURlbGF5VG91Y2hzY3JlZW4nXTtcblxuICAgIHJldHVybiB0aGlzLmlzVG91Y2hTY3JlZW4gPyBoaWRlRGVsYXlUb3VjaHNjcmVlbiA6IGhpZGVEZWxheTtcbiAgfVxuXG4gIGdldFByb3BlcnRpZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGxldCBkaXJlY3RpdmVQcm9wZXJ0aWVzOiBhbnkgPSB7fTtcbiAgICBsZXQgY3VzdG9tUHJvcGVydGllczogYW55ID0ge307XG4gICAgbGV0IGFsbFByb3BlcnRpZXM6IGFueTtcblxuICAgIGZvciAodmFyIHByb3AgaW4gY2hhbmdlcykge1xuICAgICAgaWYgKHByb3AgIT09ICdvcHRpb25zJyAmJiBwcm9wICE9PSAndG9vbHRpcFZhbHVlJykge1xuICAgICAgICBkaXJlY3RpdmVQcm9wZXJ0aWVzW3Byb3BdID0gY2hhbmdlc1twcm9wXS5jdXJyZW50VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAocHJvcCA9PT0gJ29wdGlvbnMnKSB7XG4gICAgICAgIGN1c3RvbVByb3BlcnRpZXMgPSBjaGFuZ2VzW3Byb3BdLmN1cnJlbnRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhbGxQcm9wZXJ0aWVzID0gT2JqZWN0LmFzc2lnbih7fSwgY3VzdG9tUHJvcGVydGllcywgZGlyZWN0aXZlUHJvcGVydGllcyk7XG4gICAgcmV0dXJuIGFsbFByb3BlcnRpZXM7XG4gIH1cblxuICByZW5hbWVQcm9wZXJ0aWVzKG9wdGlvbnM6IGFueSkge1xuICAgIGZvciAodmFyIHByb3AgaW4gb3B0aW9ucykge1xuICAgICAgaWYgKGJhY2t3YXJkQ29tcGF0aWJpbGl0eU9wdGlvbnNbcHJvcF0pIHtcbiAgICAgICAgb3B0aW9uc1tiYWNrd2FyZENvbXBhdGliaWxpdHlPcHRpb25zW3Byb3BdXSA9IG9wdGlvbnNbcHJvcF07XG4gICAgICAgIGRlbGV0ZSBvcHRpb25zW3Byb3BdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgZ2V0RWxlbWVudFBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudFBvc2l0aW9uID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBjcmVhdGVUb29sdGlwKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lb3V0cygpO1xuICAgIHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XG5cbiAgICB0aGlzLmNyZWF0ZVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYXBwZW5kQ29tcG9uZW50VG9Cb2R5KEdyYXZpdHlUb29sdGlwQ29tcG9uZW50KTtcbiAgICB9LCB0aGlzLmdldFNob3dEZWxheSgpKTtcblxuICAgIHRoaXMuc2hvd1RpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd1Rvb2x0aXBFbGVtKCk7XG4gICAgfSwgdGhpcy5nZXRTaG93RGVsYXkoKSk7XG4gIH1cblxuICBkZXN0cm95VG9vbHRpcChvcHRpb25zID0ge1xuICAgIGZhc3Q6IGZhbHNlXG4gIH0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wZXJzaXN0ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XG5cbiAgICBpZiAodGhpcy5pc1Rvb2x0aXBEZXN0cm95ZWQgPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaGlkZVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5oaWRlVG9vbHRpcCgpO1xuICAgICAgfSwgb3B0aW9ucy5mYXN0ID8gMCA6IHRoaXMuZ2V0SGlkZURlbGF5KCkpO1xuXG4gICAgICB0aGlzLmRlc3Ryb3lUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYgfHwgdGhpcy5pc1Rvb2x0aXBEZXN0cm95ZWQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmV2ZW50cy5lbWl0KHtcbiAgICAgICAgICB0eXBlOiAnaGlkZGVuJyxcbiAgICAgICAgICBwb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb25cbiAgICAgICAgfSk7XG4gICAgICB9LCBvcHRpb25zLmZhc3QgPyAwIDogdGhpcy5kZXN0cm95RGVsYXkpO1xuICAgIH1cbiAgfVxuXG4gIHNob3dUb29sdGlwRWxlbSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcbiAgICAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5zaG93ID0gdHJ1ZTtcbiAgICB0aGlzLmV2ZW50cy5lbWl0KHtcbiAgICAgIHR5cGU6ICdzaG93JyxcbiAgICAgIHBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvblxuICAgIH0pO1xuICB9XG5cbiAgaGlkZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZiB8fCB0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5zaG93ID0gZmFsc2U7XG4gICAgdGhpcy5ldmVudHMuZW1pdCh7XG4gICAgICB0eXBlOiAnaGlkZScsXG4gICAgICBwb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIGFwcGVuZENvbXBvbmVudFRvQm9keShjb21wb25lbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpXG4gICAgICAuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuXG4gICAgKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuZGF0YSA9IHtcbiAgICAgIHZhbHVlOiB0aGlzLnRvb2x0aXBWYWx1ZSxcbiAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgZWxlbWVudFBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvbixcbiAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9uc1xuICAgIH1cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICBjb25zdCBkb21FbGVtID0gKHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcblxuICAgIHRoaXMuY29tcG9uZW50U3Vic2NyaWJlID0gKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVFdmVudHMoZXZlbnQpO1xuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJUaW1lb3V0cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jcmVhdGVUaW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNyZWF0ZVRpbWVvdXRJZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd1RpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVvdXRJZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGlkZVRpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRpbWVvdXRJZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGVzdHJveVRpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuZGVzdHJveVRpbWVvdXRJZCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzRGlzcGxheU9uSG92ZXIoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1snZGlzcGxheSddID09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9uc1snZGlzcGxheVRvdWNoc2NyZWVuJ10gPT0gZmFsc2UgJiYgdGhpcy5pc1RvdWNoU2NyZWVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1sndHJpZ2dlciddID09PSAnaG92ZXInO1xuICB9XG5cbiAgZ2V0IGlzRGlzcGxheU9uQ2xpY2soKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1snZGlzcGxheSddID09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9uc1snZGlzcGxheVRvdWNoc2NyZWVuJ10gPT0gZmFsc2UgJiYgdGhpcy5pc1RvdWNoU2NyZWVuKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1sndHJpZ2dlciddID09ICdjbGljayc7XG5cblxuICB9XG5cbiAgZ2V0IGlzVG91Y2hTY3JlZW4oKSB7XG4gICAgdmFyIHByZWZpeGVzID0gJyAtd2Via2l0LSAtbW96LSAtby0gLW1zLSAnLnNwbGl0KCcgJyk7XG4gICAgdmFyIG1xID0gZnVuY3Rpb24gKHF1ZXJ5OiBhbnkpIHtcbiAgICAgIHJldHVybiB3aW5kb3cubWF0Y2hNZWRpYShxdWVyeSkubWF0Y2hlcztcbiAgICB9XG5cbiAgICBpZiAoKCdvbnRvdWNoc3RhcnQnIGluIHdpbmRvdykpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIGluY2x1ZGUgdGhlICdoZWFydHonIGFzIGEgd2F5IHRvIGhhdmUgYSBub24gbWF0Y2hpbmcgTVEgdG8gaGVscCB0ZXJtaW5hdGUgdGhlIGpvaW5cbiAgICAvLyBodHRwczovL2dpdC5pby92em5GSFxuICAgIHZhciBxdWVyeSA9IFsnKCcsIHByZWZpeGVzLmpvaW4oJ3RvdWNoLWVuYWJsZWQpLCgnKSwgJ2hlYXJ0eicsICcpJ10uam9pbignJyk7XG4gICAgcmV0dXJuIG1xKHF1ZXJ5KTtcbiAgfVxuXG4gIGFwcGx5T3B0aW9uc0RlZmF1bHQoZGVmYXVsdE9wdGlvbnM6IGFueSwgb3B0aW9uczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdE9wdGlvbnMsIHRoaXMuaW5pdE9wdGlvbnMgfHwge30sIHRoaXMub3B0aW9ucywgb3B0aW9ucyk7XG4gIH1cblxuICBoYW5kbGVFdmVudHMoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC50eXBlID09PSAnc2hvd24nKSB7XG4gICAgICB0aGlzLmV2ZW50cy5lbWl0KHtcbiAgICAgICAgdHlwZTogJ3Nob3duJyxcbiAgICAgICAgcG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvdygpIHtcbiAgICBpZiAoIXRoaXMudG9vbHRpcFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZiB8fCB0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgdGhpcy5jcmVhdGVUb29sdGlwKCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5pc1Rvb2x0aXBEZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuc2hvd1Rvb2x0aXBFbGVtKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhpZGUoKSB7XG4gICAgdGhpcy5kZXN0cm95VG9vbHRpcCgpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlRnJvbU91dHNpZGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZiB8fCB0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgICh0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBhbnkpLmNsb3NlVG9vbHRpcCgpO1xuICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoeyBmYXN0OiB0cnVlIH0pO1xuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi92ZW5kb3IvZ3Jhdml0eS10b29sdGlwL29wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRvb2x0aXBPcHRpb25zIHtcbiAgJ3BsYWNlbWVudCc/OiBzdHJpbmc7XG4gICdhdXRvUGxhY2VtZW50Jz86IGJvb2xlYW47XG4gICdjb250ZW50LXR5cGUnPzogJ3N0cmluZycgfCAnaHRtbCcgfCAndGVtcGxhdGUnO1xuICAnY29udGVudFR5cGUnPzogJ3N0cmluZycgfCAnaHRtbCcgfCAndGVtcGxhdGUnO1xuICAnZGVsYXknPzogbnVtYmVyO1xuICAnc2hvdy1kZWxheSc/OiBudW1iZXI7XG4gICdzaG93RGVsYXknPzogbnVtYmVyO1xuICAnaGlkZS1kZWxheSc/OiBudW1iZXI7XG4gICdoaWRlRGVsYXknPzogbnVtYmVyO1xuICAnaGlkZS1kZWxheS1tb2JpbGUnPzogbnVtYmVyO1xuICAnaGlkZURlbGF5TW9iaWxlJz86IG51bWJlcjtcbiAgJ2hpZGVEZWxheVRvdWNoc2NyZWVuJz86IG51bWJlcjtcbiAgJ3otaW5kZXgnPzogbnVtYmVyO1xuICAnekluZGV4Jz86IG51bWJlcjtcbiAgJ2FuaW1hdGlvbi1kdXJhdGlvbic/OiBudW1iZXI7XG4gICdhbmltYXRpb25EdXJhdGlvbic/OiBudW1iZXI7XG4gICdhbmltYXRpb24tZHVyYXRpb24tZGVmYXVsdCc/OiBudW1iZXI7XG4gICdhbmltYXRpb25EdXJhdGlvbkRlZmF1bHQnPzogbnVtYmVyO1xuICAndHJpZ2dlcic/OiBzdHJpbmc7XG4gICd0b29sdGlwLWNsYXNzJz86IHN0cmluZztcbiAgJ3Rvb2x0aXBDbGFzcyc/OiBzdHJpbmc7XG4gICdkaXNwbGF5Jz86IGJvb2xlYW47XG4gICdkaXNwbGF5LW1vYmlsZSc/OiBib29sZWFuO1xuICAnZGlzcGxheU1vYmlsZSc/OiBib29sZWFuO1xuICAnZGlzcGxheVRvdWNoc2NyZWVuJz86IGJvb2xlYW47XG4gICdzaGFkb3cnPzogYm9vbGVhbjtcbiAgJ3RoZW1lJz86IFwiZGFya1wiIHwgXCJsaWdodFwiO1xuICAnb2Zmc2V0Jz86IG51bWJlcjtcbiAgJ3dpZHRoJz86IHN0cmluZztcbiAgJ21heC13aWR0aCc/OiBzdHJpbmc7XG4gICdtYXhXaWR0aCc/OiBzdHJpbmc7XG4gICdpZCc/OiBzdHJpbmcgfCBudW1iZXI7XG4gICdoaWRlRGVsYXlBZnRlckNsaWNrJz86IG51bWJlcjtcbiAgJ3BvaW50ZXJFdmVudHMnPzogJ2F1dG8nIHwgJ25vbmUnO1xuICAncG9zaXRpb24nPzogeyB0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyIH07XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi92ZW5kb3IvZ3Jhdml0eS10b29sdGlwL29wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRvb2x0aXBPcHRpb25zIHtcbiAgJ3BsYWNlbWVudCc/OiBzdHJpbmc7XG4gICdhdXRvUGxhY2VtZW50Jz86IGJvb2xlYW47XG4gICdjb250ZW50LXR5cGUnPzogJ3N0cmluZycgfCAnaHRtbCcgfCAndGVtcGxhdGUnO1xuICAnY29udGVudFR5cGUnPzogJ3N0cmluZycgfCAnaHRtbCcgfCAndGVtcGxhdGUnO1xuICAnZGVsYXknPzogbnVtYmVyO1xuICAnc2hvdy1kZWxheSc/OiBudW1iZXI7XG4gICdzaG93RGVsYXknPzogbnVtYmVyO1xuICAnaGlkZS1kZWxheSc/OiBudW1iZXI7XG4gICdoaWRlRGVsYXknPzogbnVtYmVyO1xuICAnaGlkZS1kZWxheS1tb2JpbGUnPzogbnVtYmVyO1xuICAnaGlkZURlbGF5TW9iaWxlJz86IG51bWJlcjtcbiAgJ2hpZGVEZWxheVRvdWNoc2NyZWVuJz86IG51bWJlcjtcbiAgJ3otaW5kZXgnPzogbnVtYmVyO1xuICAnekluZGV4Jz86IG51bWJlcjtcbiAgJ2FuaW1hdGlvbi1kdXJhdGlvbic/OiBudW1iZXI7XG4gICdhbmltYXRpb25EdXJhdGlvbic/OiBudW1iZXI7XG4gICdhbmltYXRpb24tZHVyYXRpb24tZGVmYXVsdCc/OiBudW1iZXI7XG4gICdhbmltYXRpb25EdXJhdGlvbkRlZmF1bHQnPzogbnVtYmVyO1xuICAndHJpZ2dlcic/OiBzdHJpbmc7XG4gICd0b29sdGlwLWNsYXNzJz86IHN0cmluZztcbiAgJ3Rvb2x0aXBDbGFzcyc/OiBzdHJpbmc7XG4gICdkaXNwbGF5Jz86IGJvb2xlYW47XG4gICdkaXNwbGF5LW1vYmlsZSc/OiBib29sZWFuO1xuICAnZGlzcGxheU1vYmlsZSc/OiBib29sZWFuO1xuICAnZGlzcGxheVRvdWNoc2NyZWVuJz86IGJvb2xlYW47XG4gICdzaGFkb3cnPzogYm9vbGVhbjtcbiAgJ3RoZW1lJz86IFwiZGFya1wiIHwgXCJsaWdodFwiO1xuICAnb2Zmc2V0Jz86IG51bWJlcjtcbiAgJ3dpZHRoJz86IHN0cmluZztcbiAgJ21heC13aWR0aCc/OiBzdHJpbmc7XG4gICdtYXhXaWR0aCc/OiBzdHJpbmc7XG4gICdpZCc/OiBzdHJpbmcgfCBudW1iZXI7XG4gICdoaWRlRGVsYXlBZnRlckNsaWNrJz86IG51bWJlcjtcbiAgJ3BvaW50ZXJFdmVudHMnPzogJ2F1dG8nIHwgJ25vbmUnO1xuICAncG9zaXRpb24nPzogeyB0b3A6IG51bWJlciwgbGVmdDogbnVtYmVyIH07XG4gICdwZXJzaXN0ZW50Jz86IGJvb2xlYW47XG59XG4iXX0=
@@ -45,6 +45,7 @@ export * from './lib/components/gravity-backdrop/gravity-backdrop.component';
45
45
  export * from './lib/components/gravity-segmented-button/gravity-segmented-button.component';
46
46
  export * from './lib/components/gravity-push-notifications/gravity-push-notifications.component';
47
47
  export * from './lib/components/gravity-pagination/gravity-pagination.component';
48
+ export * from './lib/components/gravity-tooltip-container/gravity-tooltip-container.component';
48
49
  //Layout
49
50
  export * from './lib/layout/gravity-header/gravity-header.component';
50
51
  export * from './lib/layout/gravity-menu/gravity-menu.component';
@@ -55,4 +56,4 @@ export * from './lib/vendor/gravity-tooltip';
55
56
  //Models and interfaces
56
57
  export * from './lib/components/gravity-notification/gravity-notification-content.interface';
57
58
  export * from './lib/components/gravity-calendar-v2/datepicker/models';
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsWUFBWTtBQUNaLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxvRkFBb0YsQ0FBQztBQUNuRyxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsd0ZBQXdGLENBQUM7QUFDdkcsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLGdHQUFnRyxDQUFDO0FBQy9HLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYywwRkFBMEYsQ0FBQztBQUN6RyxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsb0VBQW9FLENBQUE7QUFDbEYsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsNEVBQTRFLENBQUM7QUFDM0YsY0FBYyw4RkFBOEYsQ0FBQTtBQUM1RyxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyxrRkFBa0YsQ0FBQztBQUNqRyxjQUFjLGtFQUFrRSxDQUFDO0FBRWpGLFFBQVE7QUFDUixjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0RBQWtELENBQUE7QUFFaEUsVUFBVTtBQUNWLGNBQWMsK0NBQStDLENBQUM7QUFFOUQsUUFBUTtBQUNSLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsdUJBQXVCO0FBQ3ZCLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyx3REFBd0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZ3Jhdml0eS1kZXNpZ24tc3lzdGVtXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3Jhdml0eS1kZXNpZ24tc3lzdGVtLm1vZHVsZSc7XG5cbi8vQ29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWF0dGFjaC1maWxlL2dyYXZpdHktYXR0YWNoLWZpbGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1hdmF0YXItc3RhY2svZ3Jhdml0eS1hdmF0YXItc3RhY2suY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1idXR0b24vZ3Jhdml0eS1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1jYWxlbmRhci12Mi9ncmF2aXR5LWNhbGVuZGFyLXYyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktZGF0ZS1waWNrZXIvZ3Jhdml0eS1kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNoZWNrYm94L2dyYXZpdHktY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1jdXJyZW5jeS9ncmF2aXR5LWN1cnJlbmN5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktY3VycmVuY3ktZGlzcGxheS12Mi9ncmF2aXR5LWN1cnJlbmN5LWRpc3BsYXktdjIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kYXRhLXZpZXdzLXYyL2dyYXZpdHktZGF0YS12aWV3cy12Mi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWRldGFpbC1jb250YWluZXIvZ3Jhdml0eS1kZXRhaWwtY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktZGlhbG9nL2dyYXZpdHktZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktZHJvcGRvd24tbGlzdC9ncmF2aXR5LWRyb3Bkb3duLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kcm9wZG93bi1saXN0LWRpc3BsYXkvZ3Jhdml0eS1kcm9wZG93bi1saXN0LWRpc3BsYXkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1pY29uL2dyYXZpdHktaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWljb24tYnV0dG9uL2dyYXZpdHktaWNvbi1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1tdWx0aS1sYW5ndWFnZS9ncmF2aXR5LW11bHRpLWxhbmd1YWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktbmV0d29yay1waWxsL2dyYXZpdHktbmV0d29yay1waWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktbm90aWZpY2F0aW9uLWluc3RhbnQvZ3Jhdml0eS1ub3RpZmljYXRpb24taW5zdGFudC1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1yYWRpby1idXR0b24vZ3Jhdml0eS1yYWRpby1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1zdGF0dXMtaW5kaWNhdG9yL2dyYXZpdHktc3RhdHVzLWluZGljYXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LXN0ZXBwZXIvZ3Jhdml0eS1zdGVwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktc3dpdGNoL2dyYXZpdHktc3dpdGNoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFibGUvZ3Jhdml0eS10YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LXRhYmxlcy12Mi9ncmF2aXR5LXRhYmxlcy12Mi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LXRleHQtZmllbGQvZ3Jhdml0eS10ZXh0LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGV4dC1maWVsZC1udW1iZXItb25seS9ncmF2aXR5LXRleHQtZmllbGQtbnVtYmVyLW9ubHkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10cmVlLXZpZXcvZ3Jhdml0eS10cmVlLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1nZW5lcmljLWF2YXRhci9ncmF2aXR5LWdlbmVyaWMtYXZhdGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktbW9kYWwvZ3Jhdml0eS1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWxpbmsvZ3Jhdml0eS1saW5rLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFiLXByaW1hcnkvZ3Jhdml0eS10YWItcHJpbWFyeS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFiLXNlY29uZGFyeS9ncmF2aXR5LXRhYi1zZWNvbmRhcnkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1jaGlwLWdyb3VwL2dyYXZpdHktY2hpcC1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWVkaXRhYmxlLWlucHV0L2dyYXZpdHktZWRpdGFibGUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1jYXJkLWJ1dHRvbi9ncmF2aXR5LWNhcmQtYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktZHJvcGRvd24tbGFiZWwvZ3Jhdml0eS1kcm9wZG93bi1sYWJlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LW5hdmlnYXRpb24tY2FyZC9ncmF2aXR5LW5hdmlnYXRpb24tY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWdlbmVyaWMtYXZhdGFyLXNlY29uZGFyeS9ncmF2aXR5LWdlbmVyaWMtYXZhdGFyLXNlY29uZGFyeS5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktYmFja2Ryb3AvZ3Jhdml0eS1iYWNrZHJvcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LXNlZ21lbnRlZC1idXR0b24vZ3Jhdml0eS1zZWdtZW50ZWQtYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktcHVzaC1ub3RpZmljYXRpb25zL2dyYXZpdHktcHVzaC1ub3RpZmljYXRpb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktcGFnaW5hdGlvbi9ncmF2aXR5LXBhZ2luYXRpb24uY29tcG9uZW50JztcblxuLy9MYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xheW91dC9ncmF2aXR5LWhlYWRlci9ncmF2aXR5LWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0L2dyYXZpdHktbWVudS9ncmF2aXR5LW1lbnUuY29tcG9uZW50J1xuXG4vL1NlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ncmF2aXR5LWRpYWxvZy1tYW5hZ2VyLnNlcnZpY2UnO1xuXG4vL1ZlbmRvclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdmVuZG9yL2dyYXZpdHktdG9vbHRpcCc7XG5cbi8vTW9kZWxzIGFuZCBpbnRlcmZhY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktbm90aWZpY2F0aW9uL2dyYXZpdHktbm90aWZpY2F0aW9uLWNvbnRlbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1jYWxlbmRhci12Mi9kYXRlcGlja2VyL21vZGVscyc7XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsWUFBWTtBQUNaLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxvRkFBb0YsQ0FBQztBQUNuRyxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsd0ZBQXdGLENBQUM7QUFDdkcsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLGdHQUFnRyxDQUFDO0FBQy9HLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYywwRkFBMEYsQ0FBQztBQUN6RyxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsb0VBQW9FLENBQUE7QUFDbEYsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsNEVBQTRFLENBQUM7QUFDM0YsY0FBYyw4RkFBOEYsQ0FBQTtBQUM1RyxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyxrRkFBa0YsQ0FBQztBQUNqRyxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsZ0ZBQWdGLENBQUM7QUFFL0YsUUFBUTtBQUNSLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxrREFBa0QsQ0FBQTtBQUVoRSxVQUFVO0FBQ1YsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxRQUFRO0FBQ1IsY0FBYyw4QkFBOEIsQ0FBQztBQUU3Qyx1QkFBdUI7QUFDdkIsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLHdEQUF3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBncmF2aXR5LWRlc2lnbi1zeXN0ZW1cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0ubW9kdWxlJztcblxuLy9Db21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktYXR0YWNoLWZpbGUvZ3Jhdml0eS1hdHRhY2gtZmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWF2YXRhci1zdGFjay9ncmF2aXR5LWF2YXRhci1zdGFjay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWJ1dHRvbi9ncmF2aXR5LWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNhbGVuZGFyLXYyL2dyYXZpdHktY2FsZW5kYXItdjIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kYXRlLXBpY2tlci9ncmF2aXR5LWRhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktY2hlY2tib3gvZ3Jhdml0eS1jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWN1cnJlbmN5L2dyYXZpdHktY3VycmVuY3kuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1jdXJyZW5jeS1kaXNwbGF5LXYyL2dyYXZpdHktY3VycmVuY3ktZGlzcGxheS12Mi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWRhdGEtdmlld3MtdjIvZ3Jhdml0eS1kYXRhLXZpZXdzLXYyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktZGV0YWlsLWNvbnRhaW5lci9ncmF2aXR5LWRldGFpbC1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kaWFsb2cvZ3Jhdml0eS1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kcm9wZG93bi1saXN0L2dyYXZpdHktZHJvcGRvd24tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWRyb3Bkb3duLWxpc3QtZGlzcGxheS9ncmF2aXR5LWRyb3Bkb3duLWxpc3QtZGlzcGxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWljb24vZ3Jhdml0eS1pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktaWNvbi1idXR0b24vZ3Jhdml0eS1pY29uLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LW11bHRpLWxhbmd1YWdlL2dyYXZpdHktbXVsdGktbGFuZ3VhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1uZXR3b3JrLXBpbGwvZ3Jhdml0eS1uZXR3b3JrLXBpbGwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1ub3RpZmljYXRpb24taW5zdGFudC9ncmF2aXR5LW5vdGlmaWNhdGlvbi1pbnN0YW50LWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LXJhZGlvLWJ1dHRvbi9ncmF2aXR5LXJhZGlvLWJ1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LXN0YXR1cy1pbmRpY2F0b3IvZ3Jhdml0eS1zdGF0dXMtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktc3RlcHBlci9ncmF2aXR5LXN0ZXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1zd2l0Y2gvZ3Jhdml0eS1zd2l0Y2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10YWJsZS9ncmF2aXR5LXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFibGVzLXYyL2dyYXZpdHktdGFibGVzLXYyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGV4dC1maWVsZC9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10ZXh0LWZpZWxkLW51bWJlci1vbmx5L2dyYXZpdHktdGV4dC1maWVsZC1udW1iZXItb25seS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LXRyZWUtdmlldy9ncmF2aXR5LXRyZWUtdmlldy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWdlbmVyaWMtYXZhdGFyL2dyYXZpdHktZ2VuZXJpYy1hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1tb2RhbC9ncmF2aXR5LW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktbGluay9ncmF2aXR5LWxpbmsuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10YWItcHJpbWFyeS9ncmF2aXR5LXRhYi1wcmltYXJ5LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10YWItc2Vjb25kYXJ5L2dyYXZpdHktdGFiLXNlY29uZGFyeS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNoaXAtZ3JvdXAvZ3Jhdml0eS1jaGlwLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktZWRpdGFibGUtaW5wdXQvZ3Jhdml0eS1lZGl0YWJsZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LWNhcmQtYnV0dG9uL2dyYXZpdHktY2FyZC1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1kcm9wZG93bi1sYWJlbC9ncmF2aXR5LWRyb3Bkb3duLWxhYmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktbmF2aWdhdGlvbi1jYXJkL2dyYXZpdHktbmF2aWdhdGlvbi1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktZ2VuZXJpYy1hdmF0YXItc2Vjb25kYXJ5L2dyYXZpdHktZ2VuZXJpYy1hdmF0YXItc2Vjb25kYXJ5LmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1iYWNrZHJvcC9ncmF2aXR5LWJhY2tkcm9wLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktc2VnbWVudGVkLWJ1dHRvbi9ncmF2aXR5LXNlZ21lbnRlZC1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1wdXNoLW5vdGlmaWNhdGlvbnMvZ3Jhdml0eS1wdXNoLW5vdGlmaWNhdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1wYWdpbmF0aW9uL2dyYXZpdHktcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ncmF2aXR5LXRvb2x0aXAtY29udGFpbmVyL2dyYXZpdHktdG9vbHRpcC1jb250YWluZXIuY29tcG9uZW50JztcblxuLy9MYXlvdXRcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xheW91dC9ncmF2aXR5LWhlYWRlci9ncmF2aXR5LWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0L2dyYXZpdHktbWVudS9ncmF2aXR5LW1lbnUuY29tcG9uZW50J1xuXG4vL1NlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ncmF2aXR5LWRpYWxvZy1tYW5hZ2VyLnNlcnZpY2UnO1xuXG4vL1ZlbmRvclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdmVuZG9yL2dyYXZpdHktdG9vbHRpcCc7XG5cbi8vTW9kZWxzIGFuZCBpbnRlcmZhY2VzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2dyYXZpdHktbm90aWZpY2F0aW9uL2dyYXZpdHktbm90aWZpY2F0aW9uLWNvbnRlbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZ3Jhdml0eS1jYWxlbmRhci12Mi9kYXRlcGlja2VyL21vZGVscyc7XG4iXX0=