@bravura/ui 1.23.2 → 1.24.1

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 (73) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/behavior/await.directive.d.ts +5 -1
  3. package/behavior/behavior.module.d.ts +6 -4
  4. package/behavior/observe-content-class.directive.d.ts +29 -0
  5. package/behavior/public-api.d.ts +1 -0
  6. package/behavior/sizing.directive.d.ts +2 -0
  7. package/bundles/bravura-ui-alert.umd.js +1 -1
  8. package/bundles/bravura-ui-behavior.umd.js +117 -17
  9. package/bundles/bravura-ui-behavior.umd.js.map +1 -1
  10. package/bundles/bravura-ui-currency-input.umd.js +0 -3
  11. package/bundles/bravura-ui-currency-input.umd.js.map +1 -1
  12. package/bundles/bravura-ui-decimal-input.umd.js +1 -5
  13. package/bundles/bravura-ui-decimal-input.umd.js.map +1 -1
  14. package/bundles/bravura-ui-file-upload.umd.js +47 -3
  15. package/bundles/bravura-ui-file-upload.umd.js.map +1 -1
  16. package/bundles/bravura-ui-panel.umd.js +266 -0
  17. package/bundles/bravura-ui-panel.umd.js.map +1 -0
  18. package/bundles/bravura-ui-radio-panel.umd.js +2 -2
  19. package/bundles/bravura-ui-radio-panel.umd.js.map +1 -1
  20. package/bundles/bravura-ui-stepper.umd.js +6 -2
  21. package/bundles/bravura-ui-stepper.umd.js.map +1 -1
  22. package/bundles/bravura-ui-tooltip.umd.js +34 -6
  23. package/bundles/bravura-ui-tooltip.umd.js.map +1 -1
  24. package/decimal-input/decimal-input.directive.d.ts +0 -1
  25. package/esm2015/alert/alert-message.component.js +1 -1
  26. package/esm2015/behavior/await.directive.js +15 -6
  27. package/esm2015/behavior/behavior.module.js +18 -6
  28. package/esm2015/behavior/observe-content-class.directive.js +63 -0
  29. package/esm2015/behavior/public-api.js +2 -1
  30. package/esm2015/behavior/sizing.directive.js +13 -4
  31. package/esm2015/currency-input/currency-input.directive.js +1 -4
  32. package/esm2015/decimal-input/decimal-input.directive.js +2 -6
  33. package/esm2015/file-upload/file-upload.component.js +48 -4
  34. package/esm2015/panel/bravura-ui-panel.js +5 -0
  35. package/esm2015/panel/panel-section.component.js +47 -0
  36. package/esm2015/panel/panel.component.js +93 -0
  37. package/esm2015/panel/panel.module.js +23 -0
  38. package/esm2015/panel/public-api.js +2 -0
  39. package/esm2015/panel/tinted.directive.js +60 -0
  40. package/esm2015/radio-panel/radio-panel-item.component.js +2 -2
  41. package/esm2015/radio-panel/radio-panel.component.js +1 -1
  42. package/esm2015/stepper/stepper.component.js +7 -3
  43. package/esm2015/tooltip/public-api.js +2 -1
  44. package/esm2015/tooltip/tooltip.directive.js +30 -4
  45. package/fesm2015/bravura-ui-alert.js +1 -1
  46. package/fesm2015/bravura-ui-behavior.js +104 -14
  47. package/fesm2015/bravura-ui-behavior.js.map +1 -1
  48. package/fesm2015/bravura-ui-currency-input.js +0 -3
  49. package/fesm2015/bravura-ui-currency-input.js.map +1 -1
  50. package/fesm2015/bravura-ui-decimal-input.js +1 -5
  51. package/fesm2015/bravura-ui-decimal-input.js.map +1 -1
  52. package/fesm2015/bravura-ui-file-upload.js +47 -3
  53. package/fesm2015/bravura-ui-file-upload.js.map +1 -1
  54. package/fesm2015/bravura-ui-panel.js +218 -0
  55. package/fesm2015/bravura-ui-panel.js.map +1 -0
  56. package/fesm2015/bravura-ui-radio-panel.js +2 -2
  57. package/fesm2015/bravura-ui-radio-panel.js.map +1 -1
  58. package/fesm2015/bravura-ui-stepper.js +6 -2
  59. package/fesm2015/bravura-ui-stepper.js.map +1 -1
  60. package/fesm2015/bravura-ui-tooltip.js +30 -4
  61. package/fesm2015/bravura-ui-tooltip.js.map +1 -1
  62. package/file-upload/file-upload.component.d.ts +11 -1
  63. package/package.json +1 -1
  64. package/panel/bravura-ui-panel.d.ts +5 -0
  65. package/panel/package.json +10 -0
  66. package/panel/panel-section.component.d.ts +15 -0
  67. package/panel/panel.component.d.ts +60 -0
  68. package/panel/panel.module.d.ts +16 -0
  69. package/panel/public-api.d.ts +1 -0
  70. package/panel/tinted.directive.d.ts +26 -0
  71. package/stepper/stepper.component.d.ts +1 -0
  72. package/tooltip/public-api.d.ts +1 -0
  73. package/tooltip/tooltip.directive.d.ts +8 -2
@@ -71,7 +71,7 @@ export class AlertMessageComponent {
71
71
  }
72
72
  }
73
73
  AlertMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AlertMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
- AlertMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AlertMessageComponent, selector: "bui-alert", inputs: { type: "type", message: "message", politeness: "politeness", dismissible: "dismissible", _id: ["id", "_id"] }, outputs: { dismissed: "dismissed", initialised: "initialised" }, host: { properties: { "class": "'bui-alert bui-host bui-alert-' + (type === 'warn' ? 'warning' : type) + (dismissible ? ' bui-alert-dismissible' : '')", "role": "politeness === 'off' ? 'region' : 'alert'", "attr.aria-live": "politeness === 'assertive' ? undefined : politeness", "id": "this._id" } }, ngImport: i0, template: "<div class=\"bui-alert-backdrop\"></div>\n<div class=\"bui-alert-frame\"></div>\n\n<div class=\"bui-alert-wrapper\">\n\t<div class=\"bui-alert-icon-area\">\n\t\t<mat-icon [buiIcon]=\"iconName\" variant=\"outlined\"></mat-icon>\n\t</div>\n\t<div class=\"bui-alert-content\"><div [innerHTML]=\"message\"></div></div>\n</div>\n\n<div class=\"bui-alert-button-area\" *ngIf=\"dismissible\">\n\t<div class=\"bui-alert-button-backdrop\"></div>\n\t<button mat-icon-button class=\"bui-alert-button\" (click)=\"_dismiss()\" aria-label=\"dismiss alert\">\n\t\t<mat-icon>cancel</mat-icon>\n\t</button>\n</div>\n", styles: [":host(:not([hidden])){display:block;padding:12px 14px 12px 19px;position:relative;border-radius:5px}:host-context([dir=rtl]) :host(:not([hidden])){padding:12px 19px 12px 14px}:host(:not([hidden])),:host(:not([hidden])) *{box-sizing:border-box}.bui-alert-backdrop,.bui-alert-frame{position:absolute;top:0;right:0;bottom:0;left:0}.bui-alert-backdrop{opacity:.1}:host(.bui-alert-dismissible) .bui-alert-backdrop{clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 18.75px) 18.75px,100% 25px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-backdrop{clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0,18.75px 18.75px)}.bui-alert-frame{border-radius:5px;border-width:1px 1px 1px 5px;border-style:solid}:host-context([dir=rtl]) .bui-alert-frame{border-width:1px 5px 1px 1px}:host(.bui-alert-dismissible) .bui-alert-frame{clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 25px) 25px,100% 25px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-frame{clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0)}.bui-alert-button-area{position:absolute;right:-15px;top:-15px;width:40px;height:40px;border-radius:20px;display:flex;align-items:center;justify-content:center}:host-context([dir=rtl]) .bui-alert-button-area{right:unset;left:-15px}.bui-alert-button-backdrop{position:absolute;border-radius:20px;width:100%;height:100%;clip-path:polygon(0 15px,25px 15px,25px 100%,0% 100%)}:host-context([dir=rtl]) .bui-alert-button-backdrop{clip-path:polygon(15px 15px,15px 100%,100% 100%,100% 15px)}.bui-alert-wrapper{display:flex;align-items:stretch}.bui-alert-icon-area{flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:5px;width:30px;height:30px;margin-right:14px;color:var(--bui-bg-card)}:host-context([dir=rtl]) .bui-alert-icon-area{margin-right:unset;margin-left:14px}.bui-alert-content{display:flex;align-items:center;z-index:1;flex-grow:1}:host(.bui-alert-dismissible) .bui-alert-content{clip-path:polygon(0 0,calc(100% - 11px) 0,100% 13px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-content{clip-path:polygon(0 13px,0 100%,100% 100%,100% 0,11px 0)}:host(.bui-alert-success) .bui-alert-frame{border-color:var(--bui-color-success)}:host(.bui-alert-success) .bui-alert-backdrop,:host(.bui-alert-success) .bui-alert-icon-area{background-color:var(--bui-color-success)}:host(.bui-alert-success) .bui-alert-button-backdrop{border:1px var(--bui-color-success) solid}:host(.bui-alert-success) .bui-alert-button{color:var(--bui-color-success)}:host(.bui-alert-info) .bui-alert-frame{border-color:var(--bui-color-info)}:host(.bui-alert-info) .bui-alert-backdrop,:host(.bui-alert-info) .bui-alert-icon-area{background-color:var(--bui-color-info)}:host(.bui-alert-info) .bui-alert-button-backdrop{border:1px var(--bui-color-info) solid}:host(.bui-alert-info) .bui-alert-button{color:var(--bui-color-info)}:host(.bui-alert-warning) .bui-alert-frame{border-color:var(--bui-color-warning)}:host(.bui-alert-warning) .bui-alert-backdrop,:host(.bui-alert-warning) .bui-alert-icon-area{background-color:var(--bui-color-warning)}:host(.bui-alert-warning) .bui-alert-button-backdrop{border:1px var(--bui-color-warning) solid}:host(.bui-alert-warning) .bui-alert-button{color:var(--bui-color-warning)}:host(.bui-alert-error) .bui-alert-frame{border-color:var(--bui-color-error)}:host(.bui-alert-error) .bui-alert-backdrop,:host(.bui-alert-error) .bui-alert-icon-area{background-color:var(--bui-color-error)}:host(.bui-alert-error) .bui-alert-button-backdrop{border:1px var(--bui-color-error) solid}:host(.bui-alert-error) .bui-alert-button{color:var(--bui-color-error)}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3.IconDirective, selector: "[buiIcon]", inputs: ["buiIcon", "size", "variant"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74
+ AlertMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AlertMessageComponent, selector: "bui-alert", inputs: { type: "type", message: "message", politeness: "politeness", dismissible: "dismissible", _id: ["id", "_id"] }, outputs: { dismissed: "dismissed", initialised: "initialised" }, host: { properties: { "class": "'bui-alert bui-host bui-alert-' + (type === 'warn' ? 'warning' : type) + (dismissible ? ' bui-alert-dismissible' : '')", "role": "politeness === 'off' ? 'region' : 'alert'", "attr.aria-live": "politeness === 'assertive' ? undefined : politeness", "id": "this._id" } }, ngImport: i0, template: "<div class=\"bui-alert-backdrop\"></div>\n<div class=\"bui-alert-frame\"></div>\n\n<div class=\"bui-alert-wrapper\">\n\t<div class=\"bui-alert-icon-area\">\n\t\t<mat-icon [buiIcon]=\"iconName\" variant=\"outlined\"></mat-icon>\n\t</div>\n\t<div class=\"bui-alert-content\"><div [innerHTML]=\"message\"></div></div>\n</div>\n\n<div class=\"bui-alert-button-area\" *ngIf=\"dismissible\">\n\t<div class=\"bui-alert-button-backdrop\"></div>\n\t<button mat-icon-button class=\"bui-alert-button\" (click)=\"_dismiss()\" aria-label=\"dismiss alert\">\n\t\t<mat-icon>cancel</mat-icon>\n\t</button>\n</div>\n", styles: [":host(:not([hidden])){display:block;padding:12px 14px 12px 19px;position:relative;border-radius:5px}:host-context([dir=rtl]) :host(:not([hidden])){padding:12px 19px 12px 14px}:host(:not([hidden])),:host(:not([hidden])) *{box-sizing:border-box}.bui-alert-backdrop,.bui-alert-frame{position:absolute;top:0;right:0;bottom:0;left:0}.bui-alert-backdrop{opacity:.1}:host(.bui-alert-dismissible) .bui-alert-backdrop{clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 18.75px) 18.75px,100% 25px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-backdrop{clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0,18.75px 18.75px)}.bui-alert-frame{border-radius:5px;border-width:1px 1px 1px 5px;border-style:solid}:host-context([dir=rtl]) .bui-alert-frame{border-width:1px 5px 1px 1px}:host(.bui-alert-dismissible) .bui-alert-frame{clip-path:polygon(0 0,calc(100% - 25px) 0,calc(100% - 25px) 25px,100% 25px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-frame{clip-path:polygon(0 25px,0 100%,100% 100%,100% 0,25px 0)}.bui-alert-button-area{position:absolute;right:-15px;top:-15px;width:40px;height:40px;border-radius:20px;display:flex;align-items:center;justify-content:center}:host-context([dir=rtl]) .bui-alert-button-area{right:unset;left:-15px}.bui-alert-button-backdrop{position:absolute;border-radius:20px;width:100%;height:100%;clip-path:polygon(0 15px,25px 15px,25px 100%,0% 100%)}:host-context([dir=rtl]) .bui-alert-button-backdrop{clip-path:polygon(15px 15px,15px 100%,100% 100%,100% 15px)}.bui-alert-wrapper{display:flex;align-items:stretch}.bui-alert-icon-area{flex-shrink:0;display:flex;justify-content:center;align-items:center;border-radius:5px;width:30px;height:30px;margin-right:14px;color:var(--bui-bg-card)}:host-context([dir=rtl]) .bui-alert-icon-area{margin-right:unset;margin-left:14px}.bui-alert-content{display:flex;align-items:center;z-index:1;flex-grow:1}:host(.bui-alert-dismissible) .bui-alert-content{clip-path:polygon(0 0,calc(100% - 11px) 0,100% 13px,100% 100%,0 100%)}:host-context([dir=rtl]) :host(.bui-alert-dismissible) .bui-alert-content{clip-path:polygon(0 13px,0 100%,100% 100%,100% 0,11px 0)}:host(.bui-alert-success) .bui-alert-frame{border-color:var(--bui-color-success)}:host(.bui-alert-success) .bui-alert-backdrop,:host(.bui-alert-success) .bui-alert-icon-area{background-color:var(--bui-color-success)}:host(.bui-alert-success) .bui-alert-button-backdrop{border:1px var(--bui-color-success) solid}:host(.bui-alert-success) .bui-alert-button{color:var(--bui-color-success)}:host(.bui-alert-info) .bui-alert-frame{border-color:var(--bui-color-info)}:host(.bui-alert-info) .bui-alert-backdrop,:host(.bui-alert-info) .bui-alert-icon-area{background-color:var(--bui-color-info)}:host(.bui-alert-info) .bui-alert-button-backdrop{border:1px var(--bui-color-info) solid}:host(.bui-alert-info) .bui-alert-button{color:var(--bui-color-info)}:host(.bui-alert-warning) .bui-alert-frame{border-color:var(--bui-color-warning)}:host(.bui-alert-warning) .bui-alert-backdrop,:host(.bui-alert-warning) .bui-alert-icon-area{background-color:var(--bui-color-warning)}:host(.bui-alert-warning) .bui-alert-button-backdrop{border:1px var(--bui-color-warning) solid}:host(.bui-alert-warning) .bui-alert-button{color:var(--bui-color-warning)}:host(.bui-alert-error) .bui-alert-frame{border-color:var(--bui-color-error)}:host(.bui-alert-error) .bui-alert-backdrop,:host(.bui-alert-error) .bui-alert-icon-area{background-color:var(--bui-color-error)}:host(.bui-alert-error) .bui-alert-button-backdrop{border:1px var(--bui-color-error) solid}:host(.bui-alert-error) .bui-alert-button{color:var(--bui-color-error)}@polyfill-unscoped-rule{content: \".bui-alert .bui-alert-content > div > *:first-child\"; margin-top: 0;}@polyfill-unscoped-rule{content: \".bui-alert .bui-alert-content > div > *:last-child\"; margin-bottom: 0;}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3.IconDirective, selector: "[buiIcon]", inputs: ["buiIcon", "size", "variant"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AlertMessageComponent, decorators: [{
76
76
  type: Component,
77
77
  args: [{
@@ -1,5 +1,5 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
- import { Directive, Inject, Input, Optional } from '@angular/core';
2
+ import { Directive, Inject, Input, Optional, ɵmarkDirty as markDirty } from '@angular/core';
3
3
  import { MatProgressSpinner } from '@angular/material/progress-spinner';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/material/button";
@@ -56,20 +56,28 @@ export class AwaitDirective {
56
56
  }
57
57
  /** @ignore */
58
58
  ngDoCheck() {
59
- const inProgress = this.buiAwait === true || (typeof this.buiAwait === 'object' && !this.buiAwait.closed);
59
+ const inProgress = this.buiAwait === true || (typeof this.buiAwait === 'object' && !this.buiAwait.closed) || this._isDeterminate;
60
60
  if (inProgress !== this._processing) {
61
61
  this._processing = inProgress;
62
- this._statusChanged();
62
+ this._statusChanged(this._isDeterminate ? 'determinate' : 'indeterminate');
63
63
  }
64
+ if (this._isDeterminate && this._spinnerRef && this._spinnerRef.instance.value !== this.buiAwait) {
65
+ this._spinnerRef.instance.value = this.buiAwait;
66
+ markDirty(this._spinnerRef.instance);
67
+ }
68
+ }
69
+ /** @ignore */
70
+ get _isDeterminate() {
71
+ return typeof this.buiAwait === 'number' && this.buiAwait >= 0 && this.buiAwait < 100;
64
72
  }
65
- _statusChanged() {
73
+ _statusChanged(mode) {
66
74
  if (this.button) {
67
75
  this.button.disabled = this._processing;
68
76
  if (this._processing) {
69
77
  this._spinnerRef = this._viewCont.createComponent(this._factory);
70
78
  const c = this._spinnerRef.instance;
71
79
  c.diameter = this.buiAwaitDiameter;
72
- c.mode = 'indeterminate';
80
+ c.mode = mode;
73
81
  c.color = this.button.color;
74
82
  const e = this._spinnerRef.location.nativeElement;
75
83
  e.setAttribute('aria-label', this.buiAwaitAriaLabel);
@@ -79,6 +87,7 @@ export class AwaitDirective {
79
87
  else {
80
88
  this._captionWrapper.style.visibility = '';
81
89
  this._spinnerRef.destroy();
90
+ this._spinnerRef = undefined;
82
91
  this._overlayEl.innerHTML = '';
83
92
  }
84
93
  }
@@ -103,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
103
112
  }], buiAwaitDiameter: [{
104
113
  type: Input
105
114
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdhaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvYmVoYXZpb3IvYXdhaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBS04sU0FBUyxFQUdULE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUVSLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFHeEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFJSCxNQUFNLE9BQU8sY0FBYztJQTJCMUIsWUFDa0IsS0FBOEIsRUFDbEIsTUFBaUIsRUFDWCxHQUFhLEVBQ2hELGVBQXlDLEVBQ2pDLFNBQTJCO1FBSmxCLFVBQUssR0FBTCxLQUFLLENBQXlCO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDWCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBRXhDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBbkJwQyxxRkFBcUY7UUFFckYsc0JBQWlCLEdBQUcsYUFBYSxDQUFDO1FBRWxDLDBFQUEwRTtRQUUxRSxxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFHZCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVkzQixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQzVELE9BQU87U0FDUDtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGNBQWM7SUFDZCxlQUFlO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPO2dCQUM1QixpSEFBaUgsQ0FBQztZQUNuSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBZ0IsQ0FBQztTQUNwRztJQUNGLENBQUM7SUFFRCxjQUFjO0lBQ2QsU0FBUztRQUNSLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0csSUFBSSxVQUFVLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdEI7SUFDRixDQUFDO0lBRU8sY0FBYztRQUNyQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUV4QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxDQUFDO2dCQUNsRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxJQUFJLEdBQUcsZUFBZSxDQUFDO2dCQUN6QixDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUM1QixNQUFNLENBQUMsR0FBZ0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO2dCQUMvRCxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLFVBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxlQUFnQixDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNOLElBQUksQ0FBQyxlQUFnQixDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsV0FBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsVUFBVyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7YUFDaEM7U0FDRDtJQUNGLENBQUM7OzRHQWxGVyxjQUFjLHFGQThCakIsUUFBUTtnR0E5QkwsY0FBYzs0RkFBZCxjQUFjO2tCQUgxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO2lCQUN0Qjs7MEJBOEJFLFFBQVE7OEJBQytCLFFBQVE7MEJBQS9DLE1BQU07MkJBQUMsUUFBUTtrSEFuQmpCLFFBQVE7c0JBRFAsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRBZnRlclZpZXdJbml0LFxuXHRDb21wb25lbnRGYWN0b3J5LFxuXHRDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG5cdENvbXBvbmVudFJlZixcblx0RGlyZWN0aXZlLFxuXHREb0NoZWNrLFxuXHRFbGVtZW50UmVmLFxuXHRJbmplY3QsXG5cdElucHV0LFxuXHRPcHRpb25hbCxcblx0Vmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFVzZSB0aGlzIGRpcmVjdGl2ZSBvbiBhIGBNYXRCdXR0b25gIGVsZW1lbnQgdG8gcHJvdmlkZSBhbiBhbHRlcm5hdGl2ZSB2aWV3IHdoZW4gYW4gc3luYyBvcGVyYXRpb24gaXMgaW4gcHJvZ3Jlc3MuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgXG4gKiA8YnV0dG9uIChjbGljayk9XCJzdWJtaXQoKTtcIiBbYnVpQXdhaXRdPVwic3VibWl0U3Vic2NyaXB0aW9uXCIgYnVpQXdhaXRBcmlhTGFiZWw9XCJzdWJtaXR0aW5nXCI+U3VibWl0PC9idXR0b24+XG4gKiBgYGBcbiAqXG4gKiBQbGVhc2UgcmVmZXIgdG8gW01hdGVyaWFsIERlc2lnbl0oaHR0cHM6Ly9tYXRlcmlhbC5pby9jb21wb25lbnRzL3Byb2dyZXNzLWluZGljYXRvcnMjY2lyY3VsYXItcHJvZ3Jlc3MtaW5kaWNhdG9ycylcbiAqIGZvciBtb3JlIGRldGFpbHMgb2YgaW50ZWdyYXRpbmcgY2lyY3VsYXIgc3Bpbm5lciBjb21wb25lbnQgd2l0aCBhY3Rpb24gYnV0dG9ucy5cbiAqXG4gKiBUaGUgb3BlcmF0aW9uIGlzIGNvbnNpZGVyZWQgJ2luIHByb2dyZXNzJyB3aGVuIHRoZSBib3VuZCBwcm9wZXJ0eSBgYnVpQXdhaXRgIGV2YWx1YXRlcyB0b1xuICpcbiAqIC0gYHRydWVgOyBvclxuICogLSBhbiBpbnN0YW5jZSBvZiBgcnhqcy9TdWJzY3JpcHRpb25gIGFuZCBgYnVpQXdhaXQuY2xvc2VkYCBpcyBmYWxzeVxuICpcbiAqIFdoZW4gaW4gcHJvZ3Jlc3NcbiAqXG4gKiAtIHRoZSBidXR0b24ncyBjYXB0aW9uIHdpbGwgYmUgaGlkZGVuO1xuICogLSBhIGA8bWF0LXByb2dyZXNzLXNwaW5uZXI+YCB3aWxsIGJlIGRpc3BsYXllZCBpbiBwbGFjZSBvZiB0aGUgY2FwdGlvbjtcbiAqIC0gdGhlIGJ1dHRvbiB3aWxsIGJlIGRpc2FibGVkIGJ5IHNldHRpbmcgdGhlIHByb3BlcnR5IGBkaXNhYmxlZGAgb2YgdGhlIGBNYXRCdXR0b25gIGluc3RhbmNlLlxuICovXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnVpQXdhaXRdJ1xufSlcbmV4cG9ydCBjbGFzcyBBd2FpdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIERvQ2hlY2sge1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoZSBgaW4gcHJvZ3Jlc3NgIHN0YXR1cyBvZiBhbiBhc3luYyBvcGVyYXRpb24uXG5cdCAqXG5cdCAqIFRoZSBvcGVyYXRpb24gaXMgY29uc2lkZXJlZCAnaW4gcHJvZ3Jlc3MnIHdoZW4gdGhlIHByb3BlcnR5IGV2YWx1YXRlcyB0b1xuXHQgKlxuXHQgKiAtIGB0cnVlYDsgb3Jcblx0ICogLSBhbiBpbnN0YW5jZSBvZiBgcnhqcy9TdWJzY3JpcHRpb25gIGFuZCBgYnVpQXdhaXQuY2xvc2VkYCBpcyBmYWxzeVxuXHQgKlxuXHQgKi9cblx0QElucHV0KClcblx0YnVpQXdhaXQ6IG51bGwgfCB1bmRlZmluZWQgfCBib29sZWFuIHwgU3Vic2NyaXB0aW9uO1xuXG5cdC8qKiBUaGUgQVJJQSBsYWJlbCB0byBiZSBwdXQgb24gdGhlIHNwaW5uZXIuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBcIkluIHByb2dyZXNzXCJgLiAqL1xuXHRASW5wdXQoKVxuXHRidWlBd2FpdEFyaWFMYWJlbCA9ICdJbiBwcm9ncmVzcyc7XG5cblx0LyoqIFRoZSBkaWFtZXRlciBvZiB0aGUgaW4tcHJvZ3Jlc3Mgc3Bpbm5lci4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYDIwYC4gKi9cblx0QElucHV0KClcblx0YnVpQXdhaXREaWFtZXRlciA9IDIwO1xuXG5cdHByaXZhdGUgX292ZXJsYXlFbDogSFRNTERpdkVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cdHByaXZhdGUgX3Byb2Nlc3NpbmcgPSBmYWxzZTtcblx0cHJpdmF0ZSBfZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxNYXRQcm9ncmVzc1NwaW5uZXI+IHwgdW5kZWZpbmVkO1xuXHRwcml2YXRlIF9zcGlubmVyUmVmOiBDb21wb25lbnRSZWY8TWF0UHJvZ3Jlc3NTcGlubmVyPiB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSBfY2FwdGlvbldyYXBwZXI6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgX2VSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuXHRcdEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgYnV0dG9uOiBNYXRCdXR0b24sXG5cdFx0QEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2M6IERvY3VtZW50LFxuXHRcdGZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuXHRcdHByaXZhdGUgX3ZpZXdDb250OiBWaWV3Q29udGFpbmVyUmVmXG5cdCkge1xuXHRcdGlmICghYnV0dG9uKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKCdbYnVpQXdhaXRdIGNhbiBvbmx5IGJlIHVzZWQgb24gYSBNYXRCdXR0b24nKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5fZmFjdG9yeSA9IGZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShNYXRQcm9ncmVzc1NwaW5uZXIpO1xuXHR9XG5cblx0LyoqIEBpZ25vcmUgKi9cblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmJ1dHRvbikge1xuXHRcdFx0dGhpcy5fb3ZlcmxheUVsID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdFx0XHR0aGlzLl9lUmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fb3ZlcmxheUVsKTtcblx0XHRcdHRoaXMuX292ZXJsYXlFbC5jbGFzc0xpc3QuYWRkKCdidWktYXdhaXQtb3ZlcmxheScpO1xuXHRcdFx0dGhpcy5fb3ZlcmxheUVsLnN0eWxlLmNzc1RleHQgPVxuXHRcdFx0XHQnZGlzcGxheTpmbGV4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IGJvdHRvbTowOyBsZWZ0OjA7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyJztcblx0XHRcdHRoaXMuX2NhcHRpb25XcmFwcGVyID0gdGhpcy5fZVJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tYXQtYnV0dG9uLXdyYXBwZXInKSBhcyBIVE1MRWxlbWVudDtcblx0XHR9XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRuZ0RvQ2hlY2soKTogdm9pZCB7XG5cdFx0Y29uc3QgaW5Qcm9ncmVzcyA9IHRoaXMuYnVpQXdhaXQgPT09IHRydWUgfHwgKHR5cGVvZiB0aGlzLmJ1aUF3YWl0ID09PSAnb2JqZWN0JyAmJiAhdGhpcy5idWlBd2FpdCEuY2xvc2VkKTtcblx0XHRpZiAoaW5Qcm9ncmVzcyAhPT0gdGhpcy5fcHJvY2Vzc2luZykge1xuXHRcdFx0dGhpcy5fcHJvY2Vzc2luZyA9IGluUHJvZ3Jlc3M7XG5cdFx0XHR0aGlzLl9zdGF0dXNDaGFuZ2VkKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfc3RhdHVzQ2hhbmdlZCgpIHtcblx0XHRpZiAodGhpcy5idXR0b24pIHtcblx0XHRcdHRoaXMuYnV0dG9uLmRpc2FibGVkID0gdGhpcy5fcHJvY2Vzc2luZztcblxuXHRcdFx0aWYgKHRoaXMuX3Byb2Nlc3NpbmcpIHtcblx0XHRcdFx0dGhpcy5fc3Bpbm5lclJlZiA9IHRoaXMuX3ZpZXdDb250LmNyZWF0ZUNvbXBvbmVudCh0aGlzLl9mYWN0b3J5ISk7XG5cdFx0XHRcdGNvbnN0IGMgPSB0aGlzLl9zcGlubmVyUmVmLmluc3RhbmNlO1xuXHRcdFx0XHRjLmRpYW1ldGVyID0gdGhpcy5idWlBd2FpdERpYW1ldGVyO1xuXHRcdFx0XHRjLm1vZGUgPSAnaW5kZXRlcm1pbmF0ZSc7XG5cdFx0XHRcdGMuY29sb3IgPSB0aGlzLmJ1dHRvbi5jb2xvcjtcblx0XHRcdFx0Y29uc3QgZTogSFRNTEVsZW1lbnQgPSB0aGlzLl9zcGlubmVyUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGUuc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgdGhpcy5idWlBd2FpdEFyaWFMYWJlbCk7XG5cdFx0XHRcdHRoaXMuX292ZXJsYXlFbCEuYXBwZW5kQ2hpbGQoZSk7XG5cdFx0XHRcdHRoaXMuX2NhcHRpb25XcmFwcGVyIS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLl9jYXB0aW9uV3JhcHBlciEuc3R5bGUudmlzaWJpbGl0eSA9ICcnO1xuXHRcdFx0XHR0aGlzLl9zcGlubmVyUmVmIS5kZXN0cm95KCk7XG5cdFx0XHRcdHRoaXMuX292ZXJsYXlFbCEuaW5uZXJIVE1MID0gJyc7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdhaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvYmVoYXZpb3IvYXdhaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBS04sU0FBUyxFQUdULE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUVSLFVBQVUsSUFBSSxTQUFTLEVBQ3ZCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBdUIsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBRzdGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUE2QjFCLFlBQ2tCLEtBQThCLEVBQ2xCLE1BQWlCLEVBQ1gsR0FBYSxFQUNoRCxlQUF5QyxFQUNqQyxTQUEyQjtRQUpsQixVQUFLLEdBQUwsS0FBSyxDQUF5QjtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ1gsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQUV4QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQW5CcEMscUZBQXFGO1FBRXJGLHNCQUFpQixHQUFHLGFBQWEsQ0FBQztRQUVsQywwRUFBMEU7UUFFMUUscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBR2QsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFZM0IsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUM1RCxPQUFPO1NBQ1A7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUks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QyxXQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO2dCQUM3QixJQUFJLENBQUMsVUFBVyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7YUFDaEM7U0FDRDtJQUNGLENBQUM7OzRHQWhHVyxjQUFjLHFGQWdDakIsUUFBUTtnR0FoQ0wsY0FBYzs0RkFBZCxjQUFjO2tCQUgxQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO2lCQUN0Qjs7MEJBZ0NFLFFBQVE7OEJBQytCLFFBQVE7MEJBQS9DLE1BQU07MkJBQUMsUUFBUTtrSEFuQmpCLFFBQVE7c0JBRFAsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBS04sZ0JBQWdCO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRBZnRlclZpZXdJbml0LFxuXHRDb21wb25lbnRGYWN0b3J5LFxuXHRDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG5cdENvbXBvbmVudFJlZixcblx0RGlyZWN0aXZlLFxuXHREb0NoZWNrLFxuXHRFbGVtZW50UmVmLFxuXHRJbmplY3QsXG5cdElucHV0LFxuXHRPcHRpb25hbCxcblx0Vmlld0NvbnRhaW5lclJlZixcblx0ybVtYXJrRGlydHkgYXMgbWFya0RpcnR5XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lciwgUHJvZ3Jlc3NTcGlubmVyTW9kZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogVXNlIHRoaXMgZGlyZWN0aXZlIG9uIGEgYE1hdEJ1dHRvbmAgZWxlbWVudCB0byBwcm92aWRlIGFuIGFsdGVybmF0aXZlIHZpZXcgd2hlbiBhbiBzeW5jIG9wZXJhdGlvbiBpcyBpbiBwcm9ncmVzcy5cbiAqXG4gKiBGb3IgZXhhbXBsZTpcbiAqXG4gKiBgYGBcbiAqIDxidXR0b24gKGNsaWNrKT1cInN1Ym1pdCgpO1wiIFtidWlBd2FpdF09XCJzdWJtaXRTdWJzY3JpcHRpb25cIiBidWlBd2FpdEFyaWFMYWJlbD1cInN1Ym1pdHRpbmdcIj5TdWJtaXQ8L2J1dHRvbj5cbiAqIGBgYFxuICpcbiAqIFBsZWFzZSByZWZlciB0byBbTWF0ZXJpYWwgRGVzaWduXShodHRwczovL21hdGVyaWFsLmlvL2NvbXBvbmVudHMvcHJvZ3Jlc3MtaW5kaWNhdG9ycyNjaXJjdWxhci1wcm9ncmVzcy1pbmRpY2F0b3JzKVxuICogZm9yIG1vcmUgZGV0YWlscyBvZiBpbnRlZ3JhdGluZyBjaXJjdWxhciBzcGlubmVyIGNvbXBvbmVudCB3aXRoIGFjdGlvbiBidXR0b25zLlxuICpcbiAqIFRoZSBvcGVyYXRpb24gaXMgY29uc2lkZXJlZCAnaW4gcHJvZ3Jlc3MnIHdoZW4gdGhlIGJvdW5kIHByb3BlcnR5IGBidWlBd2FpdGAgZXZhbHVhdGVzIHRvXG4gKlxuICogLSBgdHJ1ZWA7IG9yXG4gKiAtIGFuIGluc3RhbmNlIG9mIGByeGpzL1N1YnNjcmlwdGlvbmAgYW5kIGBidWlBd2FpdC5jbG9zZWRgIGlzIGZhbHN5XG4gKlxuICogV2hlbiBpbiBwcm9ncmVzc1xuICpcbiAqIC0gdGhlIGJ1dHRvbidzIGNhcHRpb24gd2lsbCBiZSBoaWRkZW47XG4gKiAtIGEgYDxtYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5gIHdpbGwgYmUgZGlzcGxheWVkIGluIHBsYWNlIG9mIHRoZSBjYXB0aW9uO1xuICogLSB0aGUgYnV0dG9uIHdpbGwgYmUgZGlzYWJsZWQgYnkgc2V0dGluZyB0aGUgcHJvcGVydHkgYGRpc2FibGVkYCBvZiB0aGUgYE1hdEJ1dHRvbmAgaW5zdGFuY2UuXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tidWlBd2FpdF0nXG59KVxuZXhwb3J0IGNsYXNzIEF3YWl0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjayB7XG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgdGhlIGBpbiBwcm9ncmVzc2Agc3RhdHVzIG9mIGFuIGFzeW5jIG9wZXJhdGlvbi5cblx0ICpcblx0ICogVGhlIG9wZXJhdGlvbiBpcyBjb25zaWRlcmVkICdpbiBwcm9ncmVzcycgd2hlbiB0aGUgcHJvcGVydHkgZXZhbHVhdGVzIHRvXG5cdCAqXG5cdCAqIC0gYHRydWVgOyBvclxuXHQgKiAtIGEgYG51bWJlcmAgd2l0aGluIDAgLSAxMDA7IG9yXG5cdCAqIC0gYW4gaW5zdGFuY2Ugb2YgYHJ4anMvU3Vic2NyaXB0aW9uYCBhbmQgYGJ1aUF3YWl0LmNsb3NlZGAgaXMgZmFsc3lcblx0ICpcblx0ICogV2hlbiBpdCBpcyBhIG51bWJlciwgaXQgcmVwcmVzZXRzIHRoZSBwcm9ncmVzcyBpbiBwZXJjZW50YWdlIHRlcm0uXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRidWlBd2FpdDogbnVsbCB8IHVuZGVmaW5lZCB8IGJvb2xlYW4gfCBTdWJzY3JpcHRpb24gfCBudW1iZXI7XG5cblx0LyoqIFRoZSBBUklBIGxhYmVsIHRvIGJlIHB1dCBvbiB0aGUgc3Bpbm5lci4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYFwiSW4gcHJvZ3Jlc3NcImAuICovXG5cdEBJbnB1dCgpXG5cdGJ1aUF3YWl0QXJpYUxhYmVsID0gJ0luIHByb2dyZXNzJztcblxuXHQvKiogVGhlIGRpYW1ldGVyIG9mIHRoZSBpbi1wcm9ncmVzcyBzcGlubmVyLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgMjBgLiAqL1xuXHRASW5wdXQoKVxuXHRidWlBd2FpdERpYW1ldGVyID0gMjA7XG5cblx0cHJpdmF0ZSBfb3ZlcmxheUVsOiBIVE1MRGl2RWxlbWVudCB8IHVuZGVmaW5lZDtcblx0cHJpdmF0ZSBfcHJvY2Vzc2luZyA9IGZhbHNlO1xuXHRwcml2YXRlIF9mYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PE1hdFByb2dyZXNzU3Bpbm5lcj4gfCB1bmRlZmluZWQ7XG5cdHByaXZhdGUgX3NwaW5uZXJSZWY6IENvbXBvbmVudFJlZjxNYXRQcm9ncmVzc1NwaW5uZXI+IHwgdW5kZWZpbmVkO1xuXHRwcml2YXRlIF9jYXB0aW9uV3JhcHBlcjogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSByZWFkb25seSBfZVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG5cdFx0QE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBidXR0b246IE1hdEJ1dHRvbixcblx0XHRASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvYzogRG9jdW1lbnQsXG5cdFx0ZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG5cdFx0cHJpdmF0ZSBfdmlld0NvbnQ6IFZpZXdDb250YWluZXJSZWZcblx0KSB7XG5cdFx0aWYgKCFidXR0b24pIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ1tidWlBd2FpdF0gY2FuIG9ubHkgYmUgdXNlZCBvbiBhIE1hdEJ1dHRvbicpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl9mYWN0b3J5ID0gZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1hdFByb2dyZXNzU3Bpbm5lcik7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuYnV0dG9uKSB7XG5cdFx0XHR0aGlzLl9vdmVybGF5RWwgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCdkaXYnKTtcblx0XHRcdHRoaXMuX2VSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9vdmVybGF5RWwpO1xuXHRcdFx0dGhpcy5fb3ZlcmxheUVsLmNsYXNzTGlzdC5hZGQoJ2J1aS1hd2FpdC1vdmVybGF5Jyk7XG5cdFx0XHR0aGlzLl9vdmVybGF5RWwuc3R5bGUuY3NzVGV4dCA9XG5cdFx0XHRcdCdkaXNwbGF5OmZsZXg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsgYm90dG9tOjA7IGxlZnQ6MDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXInO1xuXHRcdFx0dGhpcy5fY2FwdGlvbldyYXBwZXIgPSB0aGlzLl9lUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1hdC1idXR0b24td3JhcHBlcicpIGFzIEhUTUxFbGVtZW50O1xuXHRcdH1cblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdG5nRG9DaGVjaygpOiB2b2lkIHtcblx0XHRjb25zdCBpblByb2dyZXNzID1cblx0XHRcdHRoaXMuYnVpQXdhaXQgPT09IHRydWUgfHwgKHR5cGVvZiB0aGlzLmJ1aUF3YWl0ID09PSAnb2JqZWN0JyAmJiAhdGhpcy5idWlBd2FpdCEuY2xvc2VkKSB8fCB0aGlzLl9pc0RldGVybWluYXRlO1xuXHRcdGlmIChpblByb2dyZXNzICE9PSB0aGlzLl9wcm9jZXNzaW5nKSB7XG5cdFx0XHR0aGlzLl9wcm9jZXNzaW5nID0gaW5Qcm9ncmVzcztcblx0XHRcdHRoaXMuX3N0YXR1c0NoYW5nZWQodGhpcy5faXNEZXRlcm1pbmF0ZSA/ICdkZXRlcm1pbmF0ZScgOiAnaW5kZXRlcm1pbmF0ZScpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLl9pc0RldGVybWluYXRlICYmIHRoaXMuX3NwaW5uZXJSZWYgJiYgdGhpcy5fc3Bpbm5lclJlZi5pbnN0YW5jZS52YWx1ZSAhPT0gdGhpcy5idWlBd2FpdCkge1xuXHRcdFx0dGhpcy5fc3Bpbm5lclJlZi5pbnN0YW5jZS52YWx1ZSA9IHRoaXMuYnVpQXdhaXQgYXMgbnVtYmVyO1xuXHRcdFx0bWFya0RpcnR5KHRoaXMuX3NwaW5uZXJSZWYuaW5zdGFuY2UpO1xuXHRcdH1cblx0fVxuXG5cdC8qKiBAaWdub3JlICovXG5cdHByaXZhdGUgZ2V0IF9pc0RldGVybWluYXRlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0eXBlb2YgdGhpcy5idWlBd2FpdCA9PT0gJ251bWJlcicgJiYgdGhpcy5idWlBd2FpdCA+PSAwICYmIHRoaXMuYnVpQXdhaXQgPCAxMDA7XG5cdH1cblxuXHRwcml2YXRlIF9zdGF0dXNDaGFuZ2VkKG1vZGU6IFByb2dyZXNzU3Bpbm5lck1vZGUpIHtcblx0XHRpZiAodGhpcy5idXR0b24pIHtcblx0XHRcdHRoaXMuYnV0dG9uLmRpc2FibGVkID0gdGhpcy5fcHJvY2Vzc2luZztcblxuXHRcdFx0aWYgKHRoaXMuX3Byb2Nlc3NpbmcpIHtcblx0XHRcdFx0dGhpcy5fc3Bpbm5lclJlZiA9IHRoaXMuX3ZpZXdDb250LmNyZWF0ZUNvbXBvbmVudCh0aGlzLl9mYWN0b3J5ISk7XG5cdFx0XHRcdGNvbnN0IGMgPSB0aGlzLl9zcGlubmVyUmVmLmluc3RhbmNlO1xuXHRcdFx0XHRjLmRpYW1ldGVyID0gdGhpcy5idWlBd2FpdERpYW1ldGVyO1xuXHRcdFx0XHRjLm1vZGUgPSBtb2RlO1xuXHRcdFx0XHRjLmNvbG9yID0gdGhpcy5idXR0b24uY29sb3I7XG5cdFx0XHRcdGNvbnN0IGU6IEhUTUxFbGVtZW50ID0gdGhpcy5fc3Bpbm5lclJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRlLnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbCcsIHRoaXMuYnVpQXdhaXRBcmlhTGFiZWwpO1xuXHRcdFx0XHR0aGlzLl9vdmVybGF5RWwhLmFwcGVuZENoaWxkKGUpO1xuXHRcdFx0XHR0aGlzLl9jYXB0aW9uV3JhcHBlciEuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5fY2FwdGlvbldyYXBwZXIhLnN0eWxlLnZpc2liaWxpdHkgPSAnJztcblx0XHRcdFx0dGhpcy5fc3Bpbm5lclJlZiEuZGVzdHJveSgpO1xuXHRcdFx0XHR0aGlzLl9zcGlubmVyUmVmID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR0aGlzLl9vdmVybGF5RWwhLmlubmVySFRNTCA9ICcnO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuIl19
@@ -5,6 +5,8 @@ import { SizingMonitorDirective } from './sizing-monitor.directive';
5
5
  import { AwaitDirective } from './await.directive';
6
6
  import { MatButtonModule } from '@angular/material/button';
7
7
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
8
+ import { ObserveContentClassDirective } from './observe-content-class.directive';
9
+ import { ObserversModule } from '@angular/cdk/observers';
8
10
  import * as i0 from "@angular/core";
9
11
  /**
10
12
  * For functionality that cannot be easily achieved via CSS.
@@ -12,14 +14,24 @@ import * as i0 from "@angular/core";
12
14
  export class BehaviorModule {
13
15
  }
14
16
  BehaviorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BehaviorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
- BehaviorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BehaviorModule, declarations: [SizingDirective, SizingMonitorDirective, AwaitDirective], imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule], exports: [SizingDirective, SizingMonitorDirective, AwaitDirective, MatProgressSpinnerModule] });
16
- BehaviorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BehaviorModule, imports: [[CommonModule, MatButtonModule, MatProgressSpinnerModule], MatProgressSpinnerModule] });
17
+ BehaviorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BehaviorModule, declarations: [SizingDirective, SizingMonitorDirective, AwaitDirective, ObserveContentClassDirective], imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule, ObserversModule], exports: [SizingDirective,
18
+ SizingMonitorDirective,
19
+ AwaitDirective,
20
+ MatProgressSpinnerModule,
21
+ ObserveContentClassDirective] });
22
+ BehaviorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BehaviorModule, imports: [[CommonModule, MatButtonModule, MatProgressSpinnerModule, ObserversModule], MatProgressSpinnerModule] });
17
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BehaviorModule, decorators: [{
18
24
  type: NgModule,
19
25
  args: [{
20
- declarations: [SizingDirective, SizingMonitorDirective, AwaitDirective],
21
- imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule],
22
- exports: [SizingDirective, SizingMonitorDirective, AwaitDirective, MatProgressSpinnerModule]
26
+ declarations: [SizingDirective, SizingMonitorDirective, AwaitDirective, ObserveContentClassDirective],
27
+ imports: [CommonModule, MatButtonModule, MatProgressSpinnerModule, ObserversModule],
28
+ exports: [
29
+ SizingDirective,
30
+ SizingMonitorDirective,
31
+ AwaitDirective,
32
+ MatProgressSpinnerModule,
33
+ ObserveContentClassDirective
34
+ ]
23
35
  }]
24
36
  }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvYmVoYXZpb3IvYmVoYXZpb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUU5RTs7R0FFRztBQU1ILE1BQU0sT0FBTyxjQUFjOzs0R0FBZCxjQUFjOzZHQUFkLGNBQWMsaUJBSlgsZUFBZSxFQUFFLHNCQUFzQixFQUFFLGNBQWMsYUFDNUQsWUFBWSxFQUFFLGVBQWUsRUFBRSx3QkFBd0IsYUFDdkQsZUFBZSxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSx3QkFBd0I7NkdBRS9FLGNBQWMsWUFIakIsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLHdCQUF3QixDQUFDLEVBQ0Msd0JBQXdCOzRGQUUvRSxjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNULFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLENBQUM7b0JBQ3ZFLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsd0JBQXdCLENBQUM7b0JBQ2xFLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsd0JBQXdCLENBQUM7aUJBQzVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTaXppbmdEaXJlY3RpdmUgfSBmcm9tICcuL3NpemluZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2l6aW5nTW9uaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vc2l6aW5nLW1vbml0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEF3YWl0RGlyZWN0aXZlIH0gZnJvbSAnLi9hd2FpdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuXG4vKipcbiAqICBGb3IgZnVuY3Rpb25hbGl0eSB0aGF0IGNhbm5vdCBiZSBlYXNpbHkgYWNoaWV2ZWQgdmlhIENTUy5cbiAqL1xuQE5nTW9kdWxlKHtcblx0ZGVjbGFyYXRpb25zOiBbU2l6aW5nRGlyZWN0aXZlLCBTaXppbmdNb25pdG9yRGlyZWN0aXZlLCBBd2FpdERpcmVjdGl2ZV0sXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlXSxcblx0ZXhwb3J0czogW1NpemluZ0RpcmVjdGl2ZSwgU2l6aW5nTW9uaXRvckRpcmVjdGl2ZSwgQXdhaXREaXJlY3RpdmUsIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQmVoYXZpb3JNb2R1bGUge31cbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvYmVoYXZpb3IvYmVoYXZpb3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFekQ7O0dBRUc7QUFZSCxNQUFNLE9BQU8sY0FBYzs7NEdBQWQsY0FBYzs2R0FBZCxjQUFjLGlCQVZYLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsNEJBQTRCLGFBQzFGLFlBQVksRUFBRSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxhQUVqRixlQUFlO1FBQ2Ysc0JBQXNCO1FBQ3RCLGNBQWM7UUFDZCx3QkFBd0I7UUFDeEIsNEJBQTRCOzZHQUdqQixjQUFjLFlBVGpCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxlQUFlLENBQUMsRUFLbEYsd0JBQXdCOzRGQUliLGNBQWM7a0JBWDFCLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSw0QkFBNEIsQ0FBQztvQkFDckcsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxlQUFlLENBQUM7b0JBQ25GLE9BQU8sRUFBRTt3QkFDUixlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsY0FBYzt3QkFDZCx3QkFBd0I7d0JBQ3hCLDRCQUE0QjtxQkFDNUI7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNpemluZ0RpcmVjdGl2ZSB9IGZyb20gJy4vc2l6aW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTaXppbmdNb25pdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9zaXppbmctbW9uaXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXdhaXREaXJlY3RpdmUgfSBmcm9tICcuL2F3YWl0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBPYnNlcnZlQ29udGVudENsYXNzRGlyZWN0aXZlIH0gZnJvbSAnLi9vYnNlcnZlLWNvbnRlbnQtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IE9ic2VydmVyc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vYnNlcnZlcnMnO1xuXG4vKipcbiAqICBGb3IgZnVuY3Rpb25hbGl0eSB0aGF0IGNhbm5vdCBiZSBlYXNpbHkgYWNoaWV2ZWQgdmlhIENTUy5cbiAqL1xuQE5nTW9kdWxlKHtcblx0ZGVjbGFyYXRpb25zOiBbU2l6aW5nRGlyZWN0aXZlLCBTaXppbmdNb25pdG9yRGlyZWN0aXZlLCBBd2FpdERpcmVjdGl2ZSwgT2JzZXJ2ZUNvbnRlbnRDbGFzc0RpcmVjdGl2ZV0sXG5cdGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLCBPYnNlcnZlcnNNb2R1bGVdLFxuXHRleHBvcnRzOiBbXG5cdFx0U2l6aW5nRGlyZWN0aXZlLFxuXHRcdFNpemluZ01vbml0b3JEaXJlY3RpdmUsXG5cdFx0QXdhaXREaXJlY3RpdmUsXG5cdFx0TWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuXHRcdE9ic2VydmVDb250ZW50Q2xhc3NEaXJlY3RpdmVcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBCZWhhdmlvck1vZHVsZSB7fVxuIl19
@@ -0,0 +1,63 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/cdk/observers";
4
+ /**
5
+ * Use `[bui-class.not-empty]` to specify a style class activated only when the host element has DOM children;
6
+ *
7
+ * use `[bui-class.empty]` for a style class activated when it has no DOM children.
8
+ *
9
+ * Use `[bui-class.no-text]` to specify a style class activated only when the host element has text content;
10
+ *
11
+ * use `[bui-class.has-text]` for a style class activated when it has no text content.
12
+ */
13
+ export class ObserveContentClassDirective {
14
+ constructor(observer, elementRef) {
15
+ this.classToRemove = [];
16
+ this.element = elementRef.nativeElement;
17
+ this.subscription = observer.observe(elementRef).subscribe(() => this.checkClass());
18
+ }
19
+ ngOnInit() {
20
+ this.checkClass.bind(this);
21
+ }
22
+ ngOnDestroy() {
23
+ this.subscription.unsubscribe();
24
+ }
25
+ checkClass() {
26
+ this.element.classList.remove(...this.classToRemove);
27
+ this.classToRemove = [];
28
+ this.checkClassWith(this.classEmpty, this.classNotEmpty, () => { var _a; return this.element.childElementCount === 0 && !((_a = this.element.textContent) === null || _a === void 0 ? void 0 : _a.trim()); });
29
+ this.checkClassWith(this.classNoText, this.classHasText, () => { var _a; return !((_a = this.element.textContent) === null || _a === void 0 ? void 0 : _a.trim()); });
30
+ }
31
+ checkClassWith(withoutClass, withClass, isWithout) {
32
+ const without = isWithout();
33
+ this.addClass(without ? withoutClass : withClass);
34
+ }
35
+ addClass(cls) {
36
+ if (cls === null || cls === void 0 ? void 0 : cls.trim()) {
37
+ const classes = cls.trim().split(/\s+/);
38
+ this.element.classList.add(...classes);
39
+ this.classToRemove.push(...classes);
40
+ }
41
+ }
42
+ }
43
+ ObserveContentClassDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ObserveContentClassDirective, deps: [{ token: i1.ContentObserver }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
44
+ ObserveContentClassDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: ObserveContentClassDirective, selector: "[bui-class.empty],[bui-class.not-empty],[bui-class.no-text],[bui-class.has-text]", inputs: { classEmpty: ["bui-class.empty", "classEmpty"], classNotEmpty: ["bui-class.not-empty", "classNotEmpty"], classNoText: ["bui-class.no-text", "classNoText"], classHasText: ["bui-class.has-text", "classHasText"] }, ngImport: i0 });
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ObserveContentClassDirective, decorators: [{
46
+ type: Directive,
47
+ args: [{
48
+ selector: '[bui-class.empty],[bui-class.not-empty],[bui-class.no-text],[bui-class.has-text]'
49
+ }]
50
+ }], ctorParameters: function () { return [{ type: i1.ContentObserver }, { type: i0.ElementRef }]; }, propDecorators: { classEmpty: [{
51
+ type: Input,
52
+ args: ['bui-class.empty']
53
+ }], classNotEmpty: [{
54
+ type: Input,
55
+ args: ['bui-class.not-empty']
56
+ }], classNoText: [{
57
+ type: Input,
58
+ args: ['bui-class.no-text']
59
+ }], classHasText: [{
60
+ type: Input,
61
+ args: ['bui-class.has-text']
62
+ }] } });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS1jb250ZW50LWNsYXNzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2JlaGF2aW9yL29ic2VydmUtY29udGVudC1jbGFzcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7QUFHaEY7Ozs7Ozs7O0dBUUc7QUFJSCxNQUFNLE9BQU8sNEJBQTRCO0lBaUJ4QyxZQUFZLFFBQXlCLEVBQUUsVUFBbUM7UUFkbEUsa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFlcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFFBQVE7UUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLFVBQVU7UUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLGFBQWEsRUFDbEIsR0FBRyxFQUFFLFdBQUMsT0FBQSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsMENBQUUsSUFBSSxFQUFFLENBQUEsQ0FBQSxFQUFBLENBQy9FLENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsV0FBQyxPQUFBLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVywwQ0FBRSxJQUFJLEVBQUUsQ0FBQSxDQUFBLEVBQUEsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFTyxjQUFjLENBQ3JCLFlBQXVDLEVBQ3ZDLFNBQW9DLEVBQ3BDLFNBQXdCO1FBRXhCLE1BQU0sT0FBTyxHQUFHLFNBQVMsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFFLFNBQWlCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8sUUFBUSxDQUFDLEdBQWtCO1FBQ2xDLElBQUksR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLElBQUksRUFBRSxFQUFFO1lBQ2hCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztTQUNwQztJQUNGLENBQUM7OzBIQXhEVyw0QkFBNEI7OEdBQTVCLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUh4QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxrRkFBa0Y7aUJBQzVGOytIQU9RLFVBQVU7c0JBRGpCLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUloQixhQUFhO3NCQURwQixLQUFLO3VCQUFDLHFCQUFxQjtnQkFJcEIsV0FBVztzQkFEbEIsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBSWxCLFlBQVk7c0JBRG5CLEtBQUs7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL29ic2VydmVycyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogVXNlIGBbYnVpLWNsYXNzLm5vdC1lbXB0eV1gIHRvIHNwZWNpZnkgYSBzdHlsZSBjbGFzcyBhY3RpdmF0ZWQgb25seSB3aGVuIHRoZSBob3N0IGVsZW1lbnQgaGFzIERPTSBjaGlsZHJlbjtcbiAqXG4gKiB1c2UgYFtidWktY2xhc3MuZW1wdHldYCBmb3IgYSBzdHlsZSBjbGFzcyBhY3RpdmF0ZWQgd2hlbiBpdCBoYXMgbm8gRE9NIGNoaWxkcmVuLlxuICpcbiAqIFVzZSBgW2J1aS1jbGFzcy5uby10ZXh0XWAgdG8gc3BlY2lmeSBhIHN0eWxlIGNsYXNzIGFjdGl2YXRlZCBvbmx5IHdoZW4gdGhlIGhvc3QgZWxlbWVudCBoYXMgdGV4dCBjb250ZW50O1xuICpcbiAqIHVzZSBgW2J1aS1jbGFzcy5oYXMtdGV4dF1gIGZvciBhIHN0eWxlIGNsYXNzIGFjdGl2YXRlZCB3aGVuIGl0IGhhcyBubyB0ZXh0IGNvbnRlbnQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tidWktY2xhc3MuZW1wdHldLFtidWktY2xhc3Mubm90LWVtcHR5XSxbYnVpLWNsYXNzLm5vLXRleHRdLFtidWktY2xhc3MuaGFzLXRleHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBPYnNlcnZlQ29udGVudENsYXNzRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuXHRwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXHRwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIGNsYXNzVG9SZW1vdmU6IHN0cmluZ1tdID0gW107XG5cblx0QElucHV0KCdidWktY2xhc3MuZW1wdHknKVxuXHRwcml2YXRlIGNsYXNzRW1wdHk/OiBzdHJpbmc7XG5cblx0QElucHV0KCdidWktY2xhc3Mubm90LWVtcHR5Jylcblx0cHJpdmF0ZSBjbGFzc05vdEVtcHR5Pzogc3RyaW5nO1xuXG5cdEBJbnB1dCgnYnVpLWNsYXNzLm5vLXRleHQnKVxuXHRwcml2YXRlIGNsYXNzTm9UZXh0Pzogc3RyaW5nO1xuXG5cdEBJbnB1dCgnYnVpLWNsYXNzLmhhcy10ZXh0Jylcblx0cHJpdmF0ZSBjbGFzc0hhc1RleHQ/OiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3Iob2JzZXJ2ZXI6IENvbnRlbnRPYnNlcnZlciwgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcblx0XHR0aGlzLmVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb24gPSBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnRSZWYpLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoZWNrQ2xhc3MoKSk7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcblx0XHR0aGlzLmNoZWNrQ2xhc3MuYmluZCh0aGlzKTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdH1cblxuXHRwcml2YXRlIGNoZWNrQ2xhc3MoKTogdm9pZCB7XG5cdFx0dGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoLi4udGhpcy5jbGFzc1RvUmVtb3ZlKTtcblx0XHR0aGlzLmNsYXNzVG9SZW1vdmUgPSBbXTtcblx0XHR0aGlzLmNoZWNrQ2xhc3NXaXRoKFxuXHRcdFx0dGhpcy5jbGFzc0VtcHR5LFxuXHRcdFx0dGhpcy5jbGFzc05vdEVtcHR5LFxuXHRcdFx0KCkgPT4gdGhpcy5lbGVtZW50LmNoaWxkRWxlbWVudENvdW50ID09PSAwICYmICF0aGlzLmVsZW1lbnQudGV4dENvbnRlbnQ/LnRyaW0oKVxuXHRcdCk7XG5cdFx0dGhpcy5jaGVja0NsYXNzV2l0aCh0aGlzLmNsYXNzTm9UZXh0LCB0aGlzLmNsYXNzSGFzVGV4dCwgKCkgPT4gIXRoaXMuZWxlbWVudC50ZXh0Q29udGVudD8udHJpbSgpKTtcblx0fVxuXG5cdHByaXZhdGUgY2hlY2tDbGFzc1dpdGgoXG5cdFx0d2l0aG91dENsYXNzOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuXHRcdHdpdGhDbGFzczogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcblx0XHRpc1dpdGhvdXQ6ICgpID0+IGJvb2xlYW5cblx0KTogdm9pZCB7XG5cdFx0Y29uc3Qgd2l0aG91dCA9IGlzV2l0aG91dCgpO1xuXHRcdHRoaXMuYWRkQ2xhc3Mod2l0aG91dCA/IHdpdGhvdXRDbGFzcyA6ICh3aXRoQ2xhc3MgYXMgYW55KSk7XG5cdH1cblxuXHRwcml2YXRlIGFkZENsYXNzKGNsczogc3RyaW5nIHwgbnVsbCkge1xuXHRcdGlmIChjbHM/LnRyaW0oKSkge1xuXHRcdFx0Y29uc3QgY2xhc3NlcyA9IGNscy50cmltKCkuc3BsaXQoL1xccysvKTtcblx0XHRcdHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKC4uLmNsYXNzZXMpO1xuXHRcdFx0dGhpcy5jbGFzc1RvUmVtb3ZlLnB1c2goLi4uY2xhc3Nlcyk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
@@ -2,4 +2,5 @@ export * from './sizing.directive';
2
2
  export * from './sizing-monitor.directive';
3
3
  export * from './behavior.module';
4
4
  export * from './await.directive';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2JlaGF2aW9yL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2l6aW5nLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NpemluZy1tb25pdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2JlaGF2aW9yLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2F3YWl0LmRpcmVjdGl2ZSc7XG4iXX0=
5
+ export * from './observe-content-class.directive';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2JlaGF2aW9yL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaXppbmcuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc2l6aW5nLW1vbml0b3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYmVoYXZpb3IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vYXdhaXQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vb2JzZXJ2ZS1jb250ZW50LWNsYXNzLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -61,6 +61,7 @@ export class SizingDirective {
61
61
  this._width = 0;
62
62
  this._height = 0;
63
63
  this._reflowFrameCount = 0;
64
+ this._frameHandlerId = 0;
64
65
  this._element = elemRef.nativeElement;
65
66
  this._monitorTarget = this._element;
66
67
  }
@@ -134,15 +135,22 @@ export class SizingDirective {
134
135
  _setUpNodeMonitor() {
135
136
  this._tearDownNodeMonitor();
136
137
  if (this._monitorTarget) {
137
- this._observer = new ResizeObserver(() => this._calculateSize());
138
+ this._observer = new ResizeObserver(() => this._runWithObserver(this._calculateSize.bind(this)));
138
139
  this._observer.observe(this._monitorTarget, { box: 'border-box' });
139
140
  }
140
141
  }
141
142
  _tearDownNodeMonitor() {
142
- if (this._observer) {
143
+ cancelAnimationFrame(this._frameHandlerId);
144
+ this._runWithObserver(() => {
143
145
  this._observer.disconnect();
144
146
  this._observer = undefined;
147
+ });
148
+ }
149
+ _runWithObserver(func) {
150
+ if (this._observer) {
151
+ return func();
145
152
  }
153
+ return undefined;
146
154
  }
147
155
  _calculateSize() {
148
156
  const widthChanged = this._width !== this._monitorTarget.clientWidth;
@@ -201,7 +209,8 @@ export class SizingDirective {
201
209
  _reflowHeight() {
202
210
  const cnt = this._reflowFrameCount;
203
211
  if (cnt < 15) {
204
- requestAnimationFrame(this._reflowHeight.bind(this));
212
+ cancelAnimationFrame(this._frameHandlerId);
213
+ this._frameHandlerId = requestAnimationFrame(this._reflowHeight.bind(this));
205
214
  if (cnt === 0) {
206
215
  this._element.style.height = '0';
207
216
  }
@@ -244,4 +253,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
244
253
  }], buiFixedHeight: [{
245
254
  type: Input
246
255
  }] } });
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6aW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2JlaGF2aW9yL3NpemluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFrRTNCLFlBQzJCLElBQWMsRUFDcEIsY0FBc0MsRUFDMUQsT0FBZ0MsRUFDeEIsS0FBYTtRQUhLLFNBQUksR0FBSixJQUFJLENBQVU7UUFDcEIsbUJBQWMsR0FBZCxjQUFjLENBQXdCO1FBRWxELFVBQUssR0FBTCxLQUFLLENBQVE7UUFoRXRCOzs7Ozs7OztXQVFHO1FBRUgsY0FBUyxHQUF1RCxFQUFFLENBQUM7UUFFbkU7Ozs7O1dBS0c7UUFFSCxhQUFRLEdBQW9DLE1BQU0sQ0FBQztRQW1CbkQ7Ozs7V0FJRztRQUVILGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBcUMsQ0FBQztRQUVuRTs7V0FFRztRQUVILG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBSWYsZ0JBQVcsR0FBOEIsRUFBRSxDQUFDO1FBQzVDLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBUzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUN0QyxJQUFJ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SSxDQUFDLFFBQVEsQ0FBQztJQUN4RCxDQUFDOztBQWxPRDs7R0FFRztBQUNJLHdDQUF3QixHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQzs2R0FKMUMsZUFBZSxrQkFtRWxCLFFBQVE7aUdBbkVMLGVBQWU7NEZBQWYsZUFBZTtrQkFIM0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUseURBQXlEO2lCQUNuRTswREFvRWlDLFFBQVE7MEJBQXZDLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsUUFBUTswRkFwRFYsU0FBUztzQkFEUixLQUFLO2dCQVVOLFFBQVE7c0JBRFAsS0FBSztnQkFhRixXQUFXO3NCQURkLEtBQUs7Z0JBY04sVUFBVTtzQkFEVCxNQUFNO2dCQU9QLGNBQWM7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0Tmdab25lLFxuXHRPbkNoYW5nZXMsXG5cdE9uRGVzdHJveSxcblx0T3B0aW9uYWwsXG5cdE91dHB1dCxcblx0U2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNpemluZ01vbml0b3JEaXJlY3RpdmUgfSBmcm9tICcuL3NpemluZy1tb25pdG9yLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgbW9uaXRvcnMgdGhlIGNoYW5nZXMgaW4gdGhlIHdpZHRoIG9mIHRoZSBgc2l6aW5nQnlgIHRhcmdldCwgYW5kIGFwcGx5IHNwZWNpZmllZCBzdHlsZVxuICogIGNsYXNzZXMgYW5kL29yIGlubGluZSBzdHlsZXMgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCBkeW5hbWljYWxseS5cbiAqXG4gKiBJbiBvcmRlciBmb3IgdGhlIGxheW91dCBlbmdpbmUgdG8gZWZmaWNpZW50bHkgY2FsY3VsYXRlIGFuZCBzdGFiaWxpemUgdGhlIGRpbWVuc2lvbnMsIHRoZSBlZmZlY3RpdmUgc3R5bGUgcHJvcGVydHlcbiAqIGBib3gtc2l6aW5nYCBvZiB0aGUgYHNpemluZ0J5YCB0YXJnZXQgZWxlbWVudCBtdXN0IGJlIHNldCB0byBgYm9yZGVyLWJveGAuXG4gKlxuICogVGhlIGRpcmVjdGl2ZSB1c2VzIFtSZXNpemVPYnNlcnZlciBBUEldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9SZXNpemVfT2JzZXJ2ZXJfQVBJKVxuICogdG8gY2FwdHVyZSB0aGUgZXZlbnRzIG9mIGVsZW1lbnQgcmVzaXppbmcuIFBsZWFzZSB1c2UgYSBwb2x5ZmlsbCBpZiB5b3Ugd2FudCB0byBzdXBwb3J0IG9sZGVyIGJyb3dzZXJzXG4gKiB0aGF0IGRvIG5vdCBpbXBsZW1lbnQgUmVzaXplT2JzZXJ2ZXIgQVBJLlxuICpcbiAqIEV4YW1wbGVzOlxuICpcbiAqIGBgYGh0bWxcbiAqIDxkaXYgI3BhcmVudEVsZW1lbnQ+XG4gKiAgIDxkaXYgW2J1aVNpemluZ109XCJ7JzQwMCc6ICdzbWFsbCcsICc4MDAnOiAnbWVkaXVtJywgJ34nOiAnbGFyZ2UnfVwiIFtidWlTaXppbmdCeV09XCJwYXJlbnRFbGVtZW50XCI+PC9kaXY+XG4gKiAgIDxkaXYgW2J1aVNpemluZ109XCJbJ3NtYWxsJywgJ21lZGl1bScsICdsYXJnZSddXCIgW2J1aVNpemluZ0J5XT1cIidyb290J1wiPjwvZGl2PlxuICogICA8ZGl2IFtidWlTaXppbmddPVwieyc2NTAnOiAnYm9yZGVyLWNvbG9yOiAjMjg1NjknLCAnfic6ICdiZy1tdXRlZDsgYm9yZGVyLXN0eWxlOiBkb3R0ZWQnfVwiIFtidWlTaXppbmdCeV09XCJwYXJlbnRFbGVtZW50XCI+PC9kaXY+XG4gKiA8L2Rpdj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYnVpU2l6aW5nXSxbYnVpUmVzaXplZF0sW2J1aVNpemluZ0J5XSxbYnVpRml4ZWRIZWlnaHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBTaXppbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cdC8qKlxuXHQgKiBAaWdub3JlXG5cdCAqL1xuXHRzdGF0aWMgZGVmYXVsdFNpemluZ0JyZWFrcG9pbnRzID0gWyc0MDAnLCAnODAwJywgJ34nXTtcblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHRoZSBicmVha3BvaW50IHdpZHRocyBhbmQgdGhlIHN0eWxlIGNsYXNzZXMuXG5cdCAqXG5cdCAqIFRoZSBzaXppbmcgc3BlYyBge1wiNDAwXCI6IFwic21hbGxcIiwgXCI4MDBcIjogXCJtZWRpdW1cIiwgXCJ+XCI6IFwibGFyZ2VcIn1gIHRlbGxzIHRoZSBkaXJlY3RpdmUgdG8gYXBwbHlcblx0ICogYSBzdHlsZSBjbGFzcyBgc21hbGxgIHdoZW4gdGhlIHdpZHRoIG9mIHRoZSBtb25pdG9yZWQgdGFyZ2V0IGlzIHNtYWxsZXIgdGhhbiA0MDAgcGl4ZWxzLFxuXHQgKiBgbWVkaXVtYCB3aGVuIHRoZSB3aWR0aCBpcyBiZXR3ZWVuIDQwMCBhbmQgODAwIHBpeGVscywgYW5kIGBsYXJnZWAgd2hlbiBhYm92ZS5cblx0ICpcblx0ICogQGV4YW1wbGUgeyc0MDAnOiAnc21hbGwnLCAnODAwJzogJ21lZGl1bScsICd+JzogJ2xhcmdlJ31cblx0ICovXG5cdEBJbnB1dCgpXG5cdGJ1aVNpemluZzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPiB8IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuXHQvKipcblx0ICogVGhlIGFsaWFzIG9mIGBidWlTaXppbmdCeWAuXG5cdCAqIEBkZWZhdWx0ICdyb290J1xuXHQgKiBAZGVwcmVjYXRlZFxuXHQgKiBAaWdub3JlXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRzaXppbmdCeTogJ3Jvb3QnIHwgJ3BhcmVudCcgfCBIVE1MRWxlbWVudCA9ICdyb290JztcblxuXHQvKipcblx0ICogRGVzaWduYXRlIGFuIGVsZW1lbnQgdG8gYmUgbW9uaXRvcmVkIGZvciByZWNhbGN1bGF0aW5nIHRoZSBzdHlsZSBjbGFzc2VzIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuXG5cdCAqXG5cdCAqIC0gYHJvb3RgIHNwZWNpZmllcyB0aGUgZG9jdW1lbnQgcm9vdCBvciB0aGUgZW5jbG9zaW5nIHNoYWRvdyBob3N0LiBUaGlzIGlzIHRoZSBkZWZhdWx0IHZhbHVlLlxuXHQgKiAtIGBwYXJlbnRgIHNwZWNpZmllcyB0aGUgcGFyZW50IGVsZW1lbnQuXG5cdCAqXG5cdCAqIEBkZWZhdWx0ICdyb290J1xuXHQgKiBAYWxpYXMgc2l6aW5nQnlcblx0ICovXG5cdEBJbnB1dCgpXG5cdGdldCBidWlTaXppbmdCeSgpOiAncm9vdCcgfCAncGFyZW50JyB8IEhUTUxFbGVtZW50IHtcblx0XHRyZXR1cm4gdGhpcy5zaXppbmdCeTtcblx0fVxuXHRzZXQgYnVpU2l6aW5nQnkodGFyZ2V0OiAncm9vdCcgfCAncGFyZW50JyB8IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5zaXppbmdCeSA9IHRhcmdldDtcblx0fVxuXG5cdC8qKlxuXHQgKiBFbWl0cyBge3dpZHRoLCBoZWlnaHR9YCB3aGVuIHRoZSBtb25pdG9yIHRhcmdldCBlbGVtZW50IHJlc2l6ZXMuXG5cdCAqXG5cdCAqIE5vdGUgdGhhdCB0aGUgZGltZW5zaW9ucyBlbWl0dGVkIGFyZSBvZiB0aGUgW3NpemluZ0J5XSB0YXJnZXQsIGJ1dCBub3QgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICovXG5cdEBPdXRwdXQoKVxuXHRidWlSZXNpemVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0+KCk7XG5cblx0LyoqXG5cdCAqIFJlY2FsY3VsYXRlIHRoZSBoZWlnaHQgb2YgdGhpcyBlbGVtZW50IGFjY29yZGluZyB0byB0aGUgaGVpZ2h0IG9mIHRoZSBtb25pdG9yZWQgdGFyZ2V0LlxuXHQgKi9cblx0QElucHV0KClcblx0YnVpRml4ZWRIZWlnaHQgPSBmYWxzZTtcblxuXHRwcml2YXRlIF9tb25pdG9yVGFyZ2V0OiBIVE1MRWxlbWVudDtcblx0cHJpdmF0ZSBfb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgdW5kZWZpbmVkO1xuXHRwcml2YXRlIF9zaXppbmdTcGVjOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cdHByaXZhdGUgX3dpZHRoID0gMDtcblx0cHJpdmF0ZSBfaGVpZ2h0ID0gMDtcblx0cHJpdmF0ZSBfcmVmbG93RnJhbWVDb3VudCA9IDA7XG5cdHByaXZhdGUgX2VsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvYzogRG9jdW1lbnQsXG5cdFx0QE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGVmYXVsdFRhcmdldDogU2l6aW5nTW9uaXRvckRpcmVjdGl2ZSxcblx0XHRlbGVtUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pixcblx0XHRwcml2YXRlIF96b25lOiBOZ1pvbmVcblx0KSB7XG5cdFx0dGhpcy5fZWxlbWVudCA9IGVsZW1SZWYubmF0aXZlRWxlbWVudDtcblx0XHR0aGlzLl9tb25pdG9yVGFyZ2V0ID0gdGhpcy5fZWxlbWVudDtcblx0fVxuXG5cdG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRjb25zdCBkaXNjb25uZWN0ZWQgPSB0aGlzLl9lbGVtZW50LmdldFJvb3ROb2RlKCkgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcblx0XHRpZiAoZGlzY29ubmVjdGVkKSB7XG5cdFx0XHQvLyBkZWZlciBzaGFkb3cgZGV0ZWN0aW9uIHRpbGwgZG9tIGNvbm5lY3Rpb24gZXZlbnRcblx0XHRcdHRoaXMuX3pvbmUub25TdGFibGUucGlwZShkZWJvdW5jZVRpbWUoMTApLCB0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faW5pdE9yUmVzZXQoKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX2luaXRPclJlc2V0KCk7XG5cdFx0fVxuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5fdGVhckRvd25Ob2RlTW9uaXRvcigpO1xuXHR9XG5cblx0cHJpdmF0ZSBfaW5pdE9yUmVzZXQoKSB7XG5cdFx0Y29uc3Qgb3JpZ2luYWxUYXJnZXQgPSB0aGlzLl9tb25pdG9yVGFyZ2V0O1xuXHRcdGlmICh0aGlzLmJ1aVNpemluZ0J5IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcblx0XHRcdHRoaXMuX21vbml0b3JUYXJnZXQgPSB0aGlzLmJ1aVNpemluZ0J5O1xuXHRcdH0gZWxzZSBpZiAodGhpcy5fZGVmYXVsdFRhcmdldCkge1xuXHRcdFx0dGhpcy5fbW9uaXRvclRhcmdldCA9IHRoaXMuX2RlZmF1bHRUYXJnZXQuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXHRcdH0gZWxzZSBpZiAodGhpcy5idWlTaXppbmdCeSA9PT0gJ3Jvb3QnKSB7XG5cdFx0XHRjb25zdCByb290ID0gdGhpcy5fZWxlbWVudC5nZXRSb290Tm9kZSgpO1xuXHRcdFx0aWYgKHJvb3QgaW5zdGFuY2VvZiBTaGFkb3dSb290KSB7XG5cdFx0XHRcdHRoaXMuX21vbml0b3JUYXJnZXQgPSByb290Lmhvc3QgYXMgSFRNTEVsZW1lbnQ7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLl9tb25pdG9yVGFyZ2V0ID0gdGhpcy5fZG9jLmRvY3VtZW50RWxlbWVudDtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5fbW9uaXRvclRhcmdldCA9IHRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudCBhcyBhbnk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX21vbml0b3JUYXJnZXQgIT0gb3JpZ2luYWxUYXJnZXQpIHtcblx0XHRcdHRoaXMuX3NldFVwTm9kZU1vbml0b3IoKTtcblx0XHR9XG5cblx0XHR0aGlzLl9zaXppbmdTcGVjID0ge307XG5cdFx0bGV0IHNwZWMgPSB0aGlzLmJ1aVNpemluZztcblx0XHRpZiAodHlwZW9mIHNwZWMgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRzcGVjID0gc3BlYy5zcGxpdCgnLCcpLm1hcChrID0+IGsudHJpbSgpKTtcblx0XHR9XG5cblx0XHRpZiAoQXJyYXkuaXNBcnJheShzcGVjKSkge1xuXHRcdFx0c3BlYy5mb3JFYWNoKChjLCBpKSA9PiB7XG5cdFx0XHRcdHRoaXMuX3NpemluZ1NwZWNbU2l6aW5nRGlyZWN0aXZlLmRlZmF1bHRTaXppbmdCcmVha3BvaW50c1tpXSB8fCAnfiddID0gYztcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSBpZiAoc3BlYykge1xuXHRcdFx0dGhpcy5fc2l6aW5nU3BlYyA9IHNwZWM7XG5cdFx0fVxuXG5cdFx0dGhpcy5idWlGaXhlZEhlaWdodCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLmJ1aUZpeGVkSGVpZ2h0KTtcblxuXHRcdHRoaXMuX2NhbGN1bGF0ZVNpemUoKTtcblx0fVxuXG5cdHByaXZhdGUgX3NldFVwTm9kZU1vbml0b3IoKSB7XG5cdFx0dGhpcy5fdGVhckRvd25Ob2RlTW9uaXRvcigpO1xuXHRcdGlmICh0aGlzLl9tb25pdG9yVGFyZ2V0KSB7XG5cdFx0XHR0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB0aGlzLl9jYWxjdWxhdGVTaXplKCkpO1xuXG5cdFx0XHR0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX21vbml0b3JUYXJnZXQsIHsgYm94OiAnYm9yZGVyLWJveCcgfSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfdGVhckRvd25Ob2RlTW9uaXRvcigpIHtcblx0XHRpZiAodGhpcy5fb2JzZXJ2ZXIpIHtcblx0XHRcdHRoaXMuX29ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblx0XHRcdHRoaXMuX29ic2VydmVyID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2NhbGN1bGF0ZVNpemUoKSB7XG5cdFx0Y29uc3Qgd2lkdGhDaGFuZ2VkID0gdGhpcy5fd2lkdGggIT09IHRoaXMuX21vbml0b3JUYXJnZXQuY2xpZW50V2lkdGg7XG5cdFx0Y29uc3QgaGVpZ2h0Q2hhbmdlZCA9IHRoaXMuX2hlaWdodCAhPT0gdGhpcy5fbW9uaXRvclRhcmdldC5jbGllbnRIZWlnaHQ7XG5cdFx0aWYgKHdpZHRoQ2hhbmdlZCkge1xuXHRcdFx0dGhpcy5fd2lkdGggPSB0aGlzLl9tb25pdG9yVGFyZ2V0LmNsaWVudFdpZHRoO1xuXG5cdFx0XHRjb25zdCBia3MgPSBPYmplY3Qua2V5cyh0aGlzLl9zaXppbmdTcGVjKS5zb3J0KChhLCBiKSA9PiB0aGlzLl90b051bWJlcihhKSAtIHRoaXMuX3RvTnVtYmVyKGIpKTtcblx0XHRcdGxldCBmb3VuZCA9IGZhbHNlO1xuXHRcdFx0Zm9yIChjb25zdCBrZXkgb2YgYmtzKSB7XG5cdFx0XHRcdGNvbnN0IGNsYXNzZXNPclN0eWxlcyA9IHRoaXMuX3NpemluZ1NwZWNba2V5XS5zcGxpdCgvOysvKS5maWx0ZXIoYyA9PiBjKTtcblx0XHRcdFx0dGhpcy5fcmVtb3ZlQ2xhc3Nlc09yU3R5bGVzKGNsYXNzZXNPclN0eWxlcyk7XG5cdFx0XHRcdGNvbnN0IGV4cGVjdGVkV2lkdGggPSB0aGlzLl90b051bWJlcihrZXkpO1xuXHRcdFx0XHRpZiAodGhpcy5fd2lkdGggPD0gZXhwZWN0ZWRXaWR0aCAmJiAhZm91bmQpIHtcblx0XHRcdFx0XHR0aGlzLl9hcHBseUNsYXNzZXNPclN0eWxlcyhjbGFzc2VzT3JTdHlsZXMpO1xuXHRcdFx0XHRcdGZvdW5kID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICh3aWR0aENoYW5nZWQgfHwgaGVpZ2h0Q2hhbmdlZCkge1xuXHRcdFx0dGhpcy5faGVpZ2h0ID0gdGhpcy5fbW9uaXRvclRhcmdldC5jbGllbnRIZWlnaHQ7XG5cdFx0XHRpZiAodGhpcy5idWlGaXhlZEhlaWdodCkge1xuXHRcdFx0XHR0aGlzLl9yZWZsb3dGcmFtZUNvdW50ID0gMDtcblx0XHRcdFx0dGhpcy5fcmVmbG93SGVpZ2h0KCk7XG5cdFx0XHR9XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3pvbmUucnVuKCgpID0+IHRoaXMuYnVpUmVzaXplZC5lbWl0KHsgd2lkdGg6IHRoaXMuX3dpZHRoLCBoZWlnaHQ6IHRoaXMuX2hlaWdodCB9KSkpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2FwcGx5Q2xhc3Nlc09yU3R5bGVzKGNsc09yU3R5bGVzOiBzdHJpbmdbXSkge1xuXHRcdGNsc09yU3R5bGVzLmZvckVhY2gocyA9PiB7XG5cdFx0XHRpZiAocy5pbmNsdWRlcygnOicpKSB7XG5cdFx0XHRcdGNvbnN0IFtwcm9wLCB2YWxdID0gcy5zcGxpdCgnOicpO1xuXHRcdFx0XHR0aGlzLl9lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KHByb3AudHJpbSgpLCB2YWwudHJpbSgpKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IGNsYXNzZXMgPSBzLnNwbGl0KC9cXHMrLykuZmlsdGVyKGMgPT4gYyk7XG5cdFx0XHRcdGlmIChjbGFzc2VzLmxlbmd0aCkge1xuXHRcdFx0XHRcdHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCguLi5jbGFzc2VzKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVtb3ZlQ2xhc3Nlc09yU3R5bGVzKGNsc09yU3R5bGVzOiBzdHJpbmdbXSkge1xuXHRcdGNsc09yU3R5bGVzLmZvckVhY2gocyA9PiB7XG5cdFx0XHRpZiAocy5pbmNsdWRlcygnOicpKSB7XG5cdFx0XHRcdGNvbnN0IFtwcm9wXSA9IHMuc3BsaXQoJzonKTtcblx0XHRcdFx0dGhpcy5fZWxlbWVudC5zdHlsZS5yZW1vdmVQcm9wZXJ0eShwcm9wKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IGNsYXNzZXMgPSBzLnNwbGl0KC9cXHMrLykuZmlsdGVyKGMgPT4gYyk7XG5cdFx0XHRcdGlmIChjbGFzc2VzLmxlbmd0aCkge1xuXHRcdFx0XHRcdHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi5jbGFzc2VzKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVmbG93SGVpZ2h0KCkge1xuXHRcdGNvbnN0IGNudCA9IHRoaXMuX3JlZmxvd0ZyYW1lQ291bnQ7XG5cdFx0aWYgKGNudCA8IDE1KSB7XG5cdFx0XHRyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5fcmVmbG93SGVpZ2h0LmJpbmQodGhpcykpO1xuXG5cdFx0XHRpZiAoY250ID09PSAwKSB7XG5cdFx0XHRcdHRoaXMuX2VsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJzAnO1xuXHRcdFx0fSBlbHNlIGlmIChjbnQgPT09IDE0KSB7XG5cdFx0XHRcdGNvbnN0IGd0ID0gcGFyc2VJbnQoXG5cdFx0XHRcdFx0Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9tb25pdG9yVGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLXRvcCcpLnJlcGxhY2UoL3B4JC8sICcnKSB8fCAnMCcsXG5cdFx0XHRcdFx0MTBcblx0XHRcdFx0KTtcblx0XHRcdFx0Y29uc3QgZ2IgPSBwYXJzZUludChcblx0XHRcdFx0XHRnZXRDb21wdXRlZFN0eWxlKHRoaXMuX21vbml0b3JUYXJnZXQpLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctYm90dG9tJykucmVwbGFjZSgvcHgkLywgJycpIHx8ICcwJyxcblx0XHRcdFx0XHQxMFxuXHRcdFx0XHQpO1xuXHRcdFx0XHR0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke3RoaXMuX2hlaWdodCAtIGd0IC0gZ2IgLSA1fXB4YDtcblx0XHRcdH1cblx0XHR9XG5cdFx0dGhpcy5fcmVmbG93RnJhbWVDb3VudCsrO1xuXHR9XG5cblx0cHJpdmF0ZSBfdG9OdW1iZXIoczogc3RyaW5nKSB7XG5cdFx0cmV0dXJuIChzID09PSAnficgPyBJbmZpbml0eSA6IE51bWJlcihzKSkgfHwgLUluZmluaXR5O1xuXHR9XG59XG4iXX0=
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6aW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2JlaGF2aW9yL3NpemluZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBSUgsTUFBTSxPQUFPLGVBQWU7SUFtRTNCLFlBQzJCLElBQWMsRUFDcEIsY0FBc0MsRUFDMUQsT0FBZ0MsRUFDeEIsS0FBYTtRQUhLLFNBQUksR0FBSixJQUFJLENBQVU7UUFDcEIsbUJBQWMsR0FBZCxjQUFjLENBQXdCO1FBRWxELFVBQUssR0FBTCxLQUFLLENBQVE7UUFqRXRCOzs7Ozs7OztXQVFHO1FBRUgsY0FBUyxHQUF1RCxFQUFFLENBQUM7UUFFbkU7Ozs7O1dBS0c7UUFFSCxhQUFRLEdBQW9DLE1BQU0sQ0FBQztRQW1CbkQ7Ozs7V0FJRztRQUVILGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBcUMsQ0FBQztRQUVuRTs7V0FFRztRQUVILG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBSWYsZ0JBQVcsR0FBOEIsRUFBRSxDQUFDO1FBQzVDLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBUTNCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQztJQWhERDs7Ozs7Ozs7T0FRRztJQUNILElBQ0ksV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsTUFBdUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDeEIsQ0FBQztJQW1DRCxXQUFXLENBQUMsQ0FBZ0I7UUFDM0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBWSxXQUFXLENBQUM7UUFDeEUsSUFBSSxZQUFZLEVBQUU7WUFDakIsbURBQW1EO1lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1NBQ3pGO2FBQU07WUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDcEI7SUFDRixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxZQUFZO1FBQ25CLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsV0FBVyxZQUFZLFdBQVcsRUFBRTtZQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDdkM7YUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDaEU7YUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekMsSUFBSSxJQUFJLFlBQVksVUFBVSxFQUFFO2dCQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFtQixDQUFDO2FBQy9DO2lCQUFNO2dCQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDaEQ7U0FDRDthQUFNO1lBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQW9CLENBQUM7U0FDekQ7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksY0FBYyxFQUFFO1lBQzFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM3QixJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUUsQ0FBQyxDQUFDLENBQUM7U0FDSDthQUFNLElBQUksSUFBSSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxpQkFBaUI7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVqRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDbkU7SUFDRixDQUFDO0lBRU8sb0JBQW9CO1FBQzNCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUksQ0FBQyxTQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCLENBQUksSUFBYTtRQUN4QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsT0FBTyxJQUFJLEVBQUUsQ0FBQztTQUNkO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbEIsQ0FBQztJQUVPLGNBQWM7UUFDckIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztRQUNyRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDO1FBQ3hFLElBQUksWUFBWSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFFOUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEcsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2xCLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO2dCQUN0QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksYUFBYSxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUMzQyxJQUFJLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQzVDLEtBQUssR0FBRyxJQUFJLENBQUM7aUJBQ2I7YUFDRDtTQUNEO1FBRUQsSUFBSSxZQUFZLElBQUksYUFBYSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUM7WUFDaEQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDckI7WUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNHO0lBQ0YsQ0FBQztJQUVPLHFCQUFxQixDQUFDLFdBQXFCO1FBQ2xELFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwQixNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7YUFDekQ7aUJBQU07Z0JBQ04sTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO29CQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztpQkFDeEM7YUFDRDtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQixDQUFDLFdBQXFCO1FBQ25ELFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3pDO2lCQUFNO2dCQUNOLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtvQkFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7aUJBQzNDO2FBQ0Q7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxhQUFhO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNuQyxJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUU7WUFDYixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRTVFLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO2FBQ2pDO2lCQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUNsQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQy9GLEVBQUUsQ0FDRixDQUFDO2dCQUNGLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FDbEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLEVBQ2xHLEVBQUUsQ0FDRixDQUFDO2dCQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQzthQUMvRDtTQUNEO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLFNBQVMsQ0FBQyxDQUFTO1FBQzFCLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3hELENBQUM7O0FBNU9EOztHQUVHO0FBQ0ksd0NBQXdCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDOzZHQUoxQyxlQUFlLGtCQW9FbEIsUUFBUTtpR0FwRUwsZUFBZTs0RkFBZixlQUFlO2tCQUgzQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx5REFBeUQ7aUJBQ25FOzBEQXFFaUMsUUFBUTswQkFBdkMsTUFBTTsyQkFBQyxRQUFROzswQkFDZixRQUFROzBGQXJEVixTQUFTO3NCQURSLEtBQUs7Z0JBVU4sUUFBUTtzQkFEUCxLQUFLO2dCQWFGLFdBQVc7c0JBRGQsS0FBSztnQkFjTixVQUFVO3NCQURULE1BQU07Z0JBT1AsY0FBYztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbmplY3QsXG5cdElucHV0LFxuXHROZ1pvbmUsXG5cdE9uQ2hhbmdlcyxcblx0T25EZXN0cm95LFxuXHRPcHRpb25hbCxcblx0T3V0cHV0LFxuXHRTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU2l6aW5nTW9uaXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vc2l6aW5nLW1vbml0b3IuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBtb25pdG9ycyB0aGUgY2hhbmdlcyBpbiB0aGUgd2lkdGggb2YgdGhlIGBzaXppbmdCeWAgdGFyZ2V0LCBhbmQgYXBwbHkgc3BlY2lmaWVkIHN0eWxlXG4gKiAgY2xhc3NlcyBhbmQvb3IgaW5saW5lIHN0eWxlcyB0byB0aGUgY3VycmVudCBlbGVtZW50IGR5bmFtaWNhbGx5LlxuICpcbiAqIEluIG9yZGVyIGZvciB0aGUgbGF5b3V0IGVuZ2luZSB0byBlZmZpY2llbnRseSBjYWxjdWxhdGUgYW5kIHN0YWJpbGl6ZSB0aGUgZGltZW5zaW9ucywgdGhlIGVmZmVjdGl2ZSBzdHlsZSBwcm9wZXJ0eVxuICogYGJveC1zaXppbmdgIG9mIHRoZSBgc2l6aW5nQnlgIHRhcmdldCBlbGVtZW50IG11c3QgYmUgc2V0IHRvIGBib3JkZXItYm94YC5cbiAqXG4gKiBUaGUgZGlyZWN0aXZlIHVzZXMgW1Jlc2l6ZU9ic2VydmVyIEFQSV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1Jlc2l6ZV9PYnNlcnZlcl9BUEkpXG4gKiB0byBjYXB0dXJlIHRoZSBldmVudHMgb2YgZWxlbWVudCByZXNpemluZy4gUGxlYXNlIHVzZSBhIHBvbHlmaWxsIGlmIHlvdSB3YW50IHRvIHN1cHBvcnQgb2xkZXIgYnJvd3NlcnNcbiAqIHRoYXQgZG8gbm90IGltcGxlbWVudCBSZXNpemVPYnNlcnZlciBBUEkuXG4gKlxuICogRXhhbXBsZXM6XG4gKlxuICogYGBgaHRtbFxuICogPGRpdiAjcGFyZW50RWxlbWVudD5cbiAqICAgPGRpdiBbYnVpU2l6aW5nXT1cInsnNDAwJzogJ3NtYWxsJywgJzgwMCc6ICdtZWRpdW0nLCAnfic6ICdsYXJnZSd9XCIgW2J1aVNpemluZ0J5XT1cInBhcmVudEVsZW1lbnRcIj48L2Rpdj5cbiAqICAgPGRpdiBbYnVpU2l6aW5nXT1cIlsnc21hbGwnLCAnbWVkaXVtJywgJ2xhcmdlJ11cIiBbYnVpU2l6aW5nQnldPVwiJ3Jvb3QnXCI+PC9kaXY+XG4gKiAgIDxkaXYgW2J1aVNpemluZ109XCJ7JzY1MCc6ICdib3JkZXItY29sb3I6ICMyODU2OScsICd+JzogJ2JnLW11dGVkOyBib3JkZXItc3R5bGU6IGRvdHRlZCd9XCIgW2J1aVNpemluZ0J5XT1cInBhcmVudEVsZW1lbnRcIj48L2Rpdj5cbiAqIDwvZGl2PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1tidWlTaXppbmddLFtidWlSZXNpemVkXSxbYnVpU2l6aW5nQnldLFtidWlGaXhlZEhlaWdodF0nXG59KVxuZXhwb3J0IGNsYXNzIFNpemluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblx0LyoqXG5cdCAqIEBpZ25vcmVcblx0ICovXG5cdHN0YXRpYyBkZWZhdWx0U2l6aW5nQnJlYWtwb2ludHMgPSBbJzQwMCcsICc4MDAnLCAnfiddO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIGJyZWFrcG9pbnQgd2lkdGhzIGFuZCB0aGUgc3R5bGUgY2xhc3Nlcy5cblx0ICpcblx0ICogVGhlIHNpemluZyBzcGVjIGB7XCI0MDBcIjogXCJzbWFsbFwiLCBcIjgwMFwiOiBcIm1lZGl1bVwiLCBcIn5cIjogXCJsYXJnZVwifWAgdGVsbHMgdGhlIGRpcmVjdGl2ZSB0byBhcHBseVxuXHQgKiBhIHN0eWxlIGNsYXNzIGBzbWFsbGAgd2hlbiB0aGUgd2lkdGggb2YgdGhlIG1vbml0b3JlZCB0YXJnZXQgaXMgc21hbGxlciB0aGFuIDQwMCBwaXhlbHMsXG5cdCAqIGBtZWRpdW1gIHdoZW4gdGhlIHdpZHRoIGlzIGJldHdlZW4gNDAwIGFuZCA4MDAgcGl4ZWxzLCBhbmQgYGxhcmdlYCB3aGVuIGFib3ZlLlxuXHQgKlxuXHQgKiBAZXhhbXBsZSB7JzQwMCc6ICdzbWFsbCcsICc4MDAnOiAnbWVkaXVtJywgJ34nOiAnbGFyZ2UnfVxuXHQgKi9cblx0QElucHV0KClcblx0YnVpU2l6aW5nOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+IHwgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuXG5cdC8qKlxuXHQgKiBUaGUgYWxpYXMgb2YgYGJ1aVNpemluZ0J5YC5cblx0ICogQGRlZmF1bHQgJ3Jvb3QnXG5cdCAqIEBkZXByZWNhdGVkXG5cdCAqIEBpZ25vcmVcblx0ICovXG5cdEBJbnB1dCgpXG5cdHNpemluZ0J5OiAncm9vdCcgfCAncGFyZW50JyB8IEhUTUxFbGVtZW50ID0gJ3Jvb3QnO1xuXG5cdC8qKlxuXHQgKiBEZXNpZ25hdGUgYW4gZWxlbWVudCB0byBiZSBtb25pdG9yZWQgZm9yIHJlY2FsY3VsYXRpbmcgdGhlIHN0eWxlIGNsYXNzZXMgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC5cblx0ICpcblx0ICogLSBgcm9vdGAgc3BlY2lmaWVzIHRoZSBkb2N1bWVudCByb290IG9yIHRoZSBlbmNsb3Npbmcgc2hhZG93IGhvc3QuIFRoaXMgaXMgdGhlIGRlZmF1bHQgdmFsdWUuXG5cdCAqIC0gYHBhcmVudGAgc3BlY2lmaWVzIHRoZSBwYXJlbnQgZWxlbWVudC5cblx0ICpcblx0ICogQGRlZmF1bHQgJ3Jvb3QnXG5cdCAqIEBhbGlhcyBzaXppbmdCeVxuXHQgKi9cblx0QElucHV0KClcblx0Z2V0IGJ1aVNpemluZ0J5KCk6ICdyb290JyB8ICdwYXJlbnQnIHwgSFRNTEVsZW1lbnQge1xuXHRcdHJldHVybiB0aGlzLnNpemluZ0J5O1xuXHR9XG5cdHNldCBidWlTaXppbmdCeSh0YXJnZXQ6ICdyb290JyB8ICdwYXJlbnQnIHwgSFRNTEVsZW1lbnQpIHtcblx0XHR0aGlzLnNpemluZ0J5ID0gdGFyZ2V0O1xuXHR9XG5cblx0LyoqXG5cdCAqIEVtaXRzIGB7d2lkdGgsIGhlaWdodH1gIHdoZW4gdGhlIG1vbml0b3IgdGFyZ2V0IGVsZW1lbnQgcmVzaXplcy5cblx0ICpcblx0ICogTm90ZSB0aGF0IHRoZSBkaW1lbnNpb25zIGVtaXR0ZWQgYXJlIG9mIHRoZSBbc2l6aW5nQnldIHRhcmdldCwgYnV0IG5vdCB0aGUgY3VycmVudCBlbGVtZW50LlxuXHQgKi9cblx0QE91dHB1dCgpXG5cdGJ1aVJlc2l6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfT4oKTtcblxuXHQvKipcblx0ICogUmVjYWxjdWxhdGUgdGhlIGhlaWdodCBvZiB0aGlzIGVsZW1lbnQgYWNjb3JkaW5nIHRvIHRoZSBoZWlnaHQgb2YgdGhlIG1vbml0b3JlZCB0YXJnZXQuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRidWlGaXhlZEhlaWdodCA9IGZhbHNlO1xuXG5cdHByaXZhdGUgX21vbml0b3JUYXJnZXQ6IEhUTUxFbGVtZW50O1xuXHRwcml2YXRlIF9vYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXIgfCB1bmRlZmluZWQ7XG5cdHByaXZhdGUgX3NpemluZ1NwZWM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblx0cHJpdmF0ZSBfd2lkdGggPSAwO1xuXHRwcml2YXRlIF9oZWlnaHQgPSAwO1xuXHRwcml2YXRlIF9yZWZsb3dGcmFtZUNvdW50ID0gMDtcblx0cHJpdmF0ZSBfZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cdHByaXZhdGUgX2ZyYW1lSGFuZGxlcklkID0gMDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2M6IERvY3VtZW50LFxuXHRcdEBPcHRpb25hbCgpIHByaXZhdGUgX2RlZmF1bHRUYXJnZXQ6IFNpemluZ01vbml0b3JEaXJlY3RpdmUsXG5cdFx0ZWxlbVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG5cdFx0cHJpdmF0ZSBfem9uZTogTmdab25lXG5cdCkge1xuXHRcdHRoaXMuX2VsZW1lbnQgPSBlbGVtUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0dGhpcy5fbW9uaXRvclRhcmdldCA9IHRoaXMuX2VsZW1lbnQ7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhfOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0Y29uc3QgZGlzY29ubmVjdGVkID0gdGhpcy5fZWxlbWVudC5nZXRSb290Tm9kZSgpIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQ7XG5cdFx0aWYgKGRpc2Nvbm5lY3RlZCkge1xuXHRcdFx0Ly8gZGVmZXIgc2hhZG93IGRldGVjdGlvbiB0aWxsIGRvbSBjb25uZWN0aW9uIGV2ZW50XG5cdFx0XHR0aGlzLl96b25lLm9uU3RhYmxlLnBpcGUoZGVib3VuY2VUaW1lKDEwKSwgdGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2luaXRPclJlc2V0KCkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl9pbml0T3JSZXNldCgpO1xuXHRcdH1cblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuX3RlYXJEb3duTm9kZU1vbml0b3IoKTtcblx0fVxuXG5cdHByaXZhdGUgX2luaXRPclJlc2V0KCkge1xuXHRcdGNvbnN0IG9yaWdpbmFsVGFyZ2V0ID0gdGhpcy5fbW9uaXRvclRhcmdldDtcblx0XHRpZiAodGhpcy5idWlTaXppbmdCeSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG5cdFx0XHR0aGlzLl9tb25pdG9yVGFyZ2V0ID0gdGhpcy5idWlTaXppbmdCeTtcblx0XHR9IGVsc2UgaWYgKHRoaXMuX2RlZmF1bHRUYXJnZXQpIHtcblx0XHRcdHRoaXMuX21vbml0b3JUYXJnZXQgPSB0aGlzLl9kZWZhdWx0VGFyZ2V0LmVsZW1lbnQubmF0aXZlRWxlbWVudDtcblx0XHR9IGVsc2UgaWYgKHRoaXMuYnVpU2l6aW5nQnkgPT09ICdyb290Jykge1xuXHRcdFx0Y29uc3Qgcm9vdCA9IHRoaXMuX2VsZW1lbnQuZ2V0Um9vdE5vZGUoKTtcblx0XHRcdGlmIChyb290IGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuXHRcdFx0XHR0aGlzLl9tb25pdG9yVGFyZ2V0ID0gcm9vdC5ob3N0IGFzIEhUTUxFbGVtZW50O1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5fbW9uaXRvclRhcmdldCA9IHRoaXMuX2RvYy5kb2N1bWVudEVsZW1lbnQ7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX21vbml0b3JUYXJnZXQgPSB0aGlzLl9lbGVtZW50LnBhcmVudEVsZW1lbnQgYXMgYW55O1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLl9tb25pdG9yVGFyZ2V0ICE9IG9yaWdpbmFsVGFyZ2V0KSB7XG5cdFx0XHR0aGlzLl9zZXRVcE5vZGVNb25pdG9yKCk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fc2l6aW5nU3BlYyA9IHt9O1xuXHRcdGxldCBzcGVjID0gdGhpcy5idWlTaXppbmc7XG5cdFx0aWYgKHR5cGVvZiBzcGVjID09PSAnc3RyaW5nJykge1xuXHRcdFx0c3BlYyA9IHNwZWMuc3BsaXQoJywnKS5tYXAoayA9PiBrLnRyaW0oKSk7XG5cdFx0fVxuXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkoc3BlYykpIHtcblx0XHRcdHNwZWMuZm9yRWFjaCgoYywgaSkgPT4ge1xuXHRcdFx0XHR0aGlzLl9zaXppbmdTcGVjW1NpemluZ0RpcmVjdGl2ZS5kZWZhdWx0U2l6aW5nQnJlYWtwb2ludHNbaV0gfHwgJ34nXSA9IGM7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYgKHNwZWMpIHtcblx0XHRcdHRoaXMuX3NpemluZ1NwZWMgPSBzcGVjO1xuXHRcdH1cblxuXHRcdHRoaXMuYnVpRml4ZWRIZWlnaHQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5idWlGaXhlZEhlaWdodCk7XG5cblx0XHR0aGlzLl9jYWxjdWxhdGVTaXplKCk7XG5cdH1cblxuXHRwcml2YXRlIF9zZXRVcE5vZGVNb25pdG9yKCkge1xuXHRcdHRoaXMuX3RlYXJEb3duTm9kZU1vbml0b3IoKTtcblx0XHRpZiAodGhpcy5fbW9uaXRvclRhcmdldCkge1xuXHRcdFx0dGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5fcnVuV2l0aE9ic2VydmVyKHRoaXMuX2NhbGN1bGF0ZVNpemUuYmluZCh0aGlzKSkpO1xuXG5cdFx0XHR0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX21vbml0b3JUYXJnZXQsIHsgYm94OiAnYm9yZGVyLWJveCcgfSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfdGVhckRvd25Ob2RlTW9uaXRvcigpIHtcblx0XHRjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9mcmFtZUhhbmRsZXJJZCk7XG5cdFx0dGhpcy5fcnVuV2l0aE9ic2VydmVyKCgpID0+IHtcblx0XHRcdHRoaXMuX29ic2VydmVyIS5kaXNjb25uZWN0KCk7XG5cdFx0XHR0aGlzLl9vYnNlcnZlciA9IHVuZGVmaW5lZDtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgX3J1bldpdGhPYnNlcnZlcjxUPihmdW5jOiAoKSA9PiBUKTogVCB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuX29ic2VydmVyKSB7XG5cdFx0XHRyZXR1cm4gZnVuYygpO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0cHJpdmF0ZSBfY2FsY3VsYXRlU2l6ZSgpIHtcblx0XHRjb25zdCB3aWR0aENoYW5nZWQgPSB0aGlzLl93aWR0aCAhPT0gdGhpcy5fbW9uaXRvclRhcmdldC5jbGllbnRXaWR0aDtcblx0XHRjb25zdCBoZWlnaHRDaGFuZ2VkID0gdGhpcy5faGVpZ2h0ICE9PSB0aGlzLl9tb25pdG9yVGFyZ2V0LmNsaWVudEhlaWdodDtcblx0XHRpZiAod2lkdGhDaGFuZ2VkKSB7XG5cdFx0XHR0aGlzLl93aWR0aCA9IHRoaXMuX21vbml0b3JUYXJnZXQuY2xpZW50V2lkdGg7XG5cblx0XHRcdGNvbnN0IGJrcyA9IE9iamVjdC5rZXlzKHRoaXMuX3NpemluZ1NwZWMpLnNvcnQoKGEsIGIpID0+IHRoaXMuX3RvTnVtYmVyKGEpIC0gdGhpcy5fdG9OdW1iZXIoYikpO1xuXHRcdFx0bGV0IGZvdW5kID0gZmFsc2U7XG5cdFx0XHRmb3IgKGNvbnN0IGtleSBvZiBia3MpIHtcblx0XHRcdFx0Y29uc3QgY2xhc3Nlc09yU3R5bGVzID0gdGhpcy5fc2l6aW5nU3BlY1trZXldLnNwbGl0KC87Ky8pLmZpbHRlcihjID0+IGMpO1xuXHRcdFx0XHR0aGlzLl9yZW1vdmVDbGFzc2VzT3JTdHlsZXMoY2xhc3Nlc09yU3R5bGVzKTtcblx0XHRcdFx0Y29uc3QgZXhwZWN0ZWRXaWR0aCA9IHRoaXMuX3RvTnVtYmVyKGtleSk7XG5cdFx0XHRcdGlmICh0aGlzLl93aWR0aCA8PSBleHBlY3RlZFdpZHRoICYmICFmb3VuZCkge1xuXHRcdFx0XHRcdHRoaXMuX2FwcGx5Q2xhc3Nlc09yU3R5bGVzKGNsYXNzZXNPclN0eWxlcyk7XG5cdFx0XHRcdFx0Zm91bmQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHdpZHRoQ2hhbmdlZCB8fCBoZWlnaHRDaGFuZ2VkKSB7XG5cdFx0XHR0aGlzLl9oZWlnaHQgPSB0aGlzLl9tb25pdG9yVGFyZ2V0LmNsaWVudEhlaWdodDtcblx0XHRcdGlmICh0aGlzLmJ1aUZpeGVkSGVpZ2h0KSB7XG5cdFx0XHRcdHRoaXMuX3JlZmxvd0ZyYW1lQ291bnQgPSAwO1xuXHRcdFx0XHR0aGlzLl9yZWZsb3dIZWlnaHQoKTtcblx0XHRcdH1cblx0XHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5idWlSZXNpemVkLmVtaXQoeyB3aWR0aDogdGhpcy5fd2lkdGgsIGhlaWdodDogdGhpcy5faGVpZ2h0IH0pKSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfYXBwbHlDbGFzc2VzT3JTdHlsZXMoY2xzT3JTdHlsZXM6IHN0cmluZ1tdKSB7XG5cdFx0Y2xzT3JTdHlsZXMuZm9yRWFjaChzID0+IHtcblx0XHRcdGlmIChzLmluY2x1ZGVzKCc6JykpIHtcblx0XHRcdFx0Y29uc3QgW3Byb3AsIHZhbF0gPSBzLnNwbGl0KCc6Jyk7XG5cdFx0XHRcdHRoaXMuX2VsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkocHJvcC50cmltKCksIHZhbC50cmltKCkpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgY2xhc3NlcyA9IHMuc3BsaXQoL1xccysvKS5maWx0ZXIoYyA9PiBjKTtcblx0XHRcdFx0aWYgKGNsYXNzZXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKC4uLmNsYXNzZXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9yZW1vdmVDbGFzc2VzT3JTdHlsZXMoY2xzT3JTdHlsZXM6IHN0cmluZ1tdKSB7XG5cdFx0Y2xzT3JTdHlsZXMuZm9yRWFjaChzID0+IHtcblx0XHRcdGlmIChzLmluY2x1ZGVzKCc6JykpIHtcblx0XHRcdFx0Y29uc3QgW3Byb3BdID0gcy5zcGxpdCgnOicpO1xuXHRcdFx0XHR0aGlzLl9lbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KHByb3ApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgY2xhc3NlcyA9IHMuc3BsaXQoL1xccysvKS5maWx0ZXIoYyA9PiBjKTtcblx0XHRcdFx0aWYgKGNsYXNzZXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLmNsYXNzZXMpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9yZWZsb3dIZWlnaHQoKSB7XG5cdFx0Y29uc3QgY250ID0gdGhpcy5fcmVmbG93RnJhbWVDb3VudDtcblx0XHRpZiAoY250IDwgMTUpIHtcblx0XHRcdGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuX2ZyYW1lSGFuZGxlcklkKTtcblx0XHRcdHRoaXMuX2ZyYW1lSGFuZGxlcklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX3JlZmxvd0hlaWdodC5iaW5kKHRoaXMpKTtcblxuXHRcdFx0aWYgKGNudCA9PT0gMCkge1xuXHRcdFx0XHR0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodCA9ICcwJztcblx0XHRcdH0gZWxzZSBpZiAoY250ID09PSAxNCkge1xuXHRcdFx0XHRjb25zdCBndCA9IHBhcnNlSW50KFxuXHRcdFx0XHRcdGdldENvbXB1dGVkU3R5bGUodGhpcy5fbW9uaXRvclRhcmdldCkuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy10b3AnKS5yZXBsYWNlKC9weCQvLCAnJykgfHwgJzAnLFxuXHRcdFx0XHRcdDEwXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGNvbnN0IGdiID0gcGFyc2VJbnQoXG5cdFx0XHRcdFx0Z2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9tb25pdG9yVGFyZ2V0KS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpLnJlcGxhY2UoL3B4JC8sICcnKSB8fCAnMCcsXG5cdFx0XHRcdFx0MTBcblx0XHRcdFx0KTtcblx0XHRcdFx0dGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLl9oZWlnaHQgLSBndCAtIGdiIC0gNX1weGA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHRoaXMuX3JlZmxvd0ZyYW1lQ291bnQrKztcblx0fVxuXG5cdHByaXZhdGUgX3RvTnVtYmVyKHM6IHN0cmluZykge1xuXHRcdHJldHVybiAocyA9PT0gJ34nID8gSW5maW5pdHkgOiBOdW1iZXIocykpIHx8IC1JbmZpbml0eTtcblx0fVxufVxuIl19
@@ -212,9 +212,6 @@ export class CurrencyInputDirective {
212
212
  return this._decimalPipe.transform(n, '1.0-0');
213
213
  }
214
214
  _convert(input) {
215
- if (!input) {
216
- return NaN;
217
- }
218
215
  const val = input
219
216
  .replace(this._ds, 'd')
220
217
  .replace(/[^0-9d-]/g, '')
@@ -277,4 +274,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
277
274
  type: HostListener,
278
275
  args: ['blur']
279
276
  }] } });
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQ04scUJBQXFCLEVBQ3JCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBRVIsSUFBSSxFQUNKLGVBQWUsRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFpRGxDLFlBQ2lCLEdBQWlDLEVBQ3pDLFNBQW9CLEVBQ0QsT0FBZSxFQUNILG9CQUE0QixFQUN2QixNQUFxQjtRQUpqRCxRQUFHLEdBQUgsR0FBRyxDQUE4QjtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ0QsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNILHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBckRsRTs7O1dBR0c7UUFFSCxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUv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WTtzQkFEWCxLQUFLO2dCQVFOLFlBQVk7c0JBRFgsS0FBSztnQkFPTixNQUFNO3NCQURMLEtBQUs7Z0JBSUUsV0FBVztzQkFEbEIsV0FBVzt1QkFBQyxhQUFhO2dCQUlsQixZQUFZO3NCQURuQixXQUFXO3VCQUFDLGNBQWM7Z0JBSW5CLElBQUk7c0JBRFgsV0FBVzt1QkFBQyxNQUFNO2dCQUlYLFNBQVM7c0JBRGhCLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQWdDN0IsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU87Z0JBTXJCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY2ltYWxQaXBlLCBnZXRDdXJyZW5jeVN5bWJvbCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRERUZBVUxUX0NVUlJFTkNZX0NPREUsXG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0Zm9yd2FyZFJlZixcblx0SG9zdEJpbmRpbmcsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5qZWN0LFxuXHRJbnB1dCxcblx0TE9DQUxFX0lELFxuXHRPbkNoYW5nZXMsXG5cdE9uSW5pdCxcblx0T3B0aW9uYWwsXG5cdFJlbmRlcmVyMixcblx0U2VsZixcblx0ybVmaW5kTG9jYWxlRGF0YVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTUFUX0ZPUk1fRklFTEQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ3J4anMnO1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTpuby1lbXB0eSAqL1xuZXhwb3J0IGNvbnN0IG5vb3BfY29uc3VtZXIgPSAoXzogYW55KSA9PiB7fTtcblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSB3aWxsIGVuaGFuY2UgYW4gaW5wdXQgZWxlbWVudCB0byBmb3JtYXQgdGhlIG51bWJlcnMgZW50ZXJlZCB0byBhIGN1cnJlbmN5IGFtb3VudC5cbiAqL1xuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnaW5wdXRbYnVpQ3VycmVuY3lJbnB1dF0saW5wdXRbY3VycmVuY3lDb2RlXSxpbnB1dFtkYXRhLXR5cGU9Y3VycmVuY3ldJyxcblx0cHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ3VycmVuY3lJbnB1dERpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH1dXG59KVxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5SW5wdXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXHQvKipcblx0ICogdHJ1ZSB0byBhbGxvdyBuZWdhdGl2ZSBpbnB1dCwgb3RoZXJ3aXNlIGZhbHNlXG5cdCAqIERlZmF1bHQgdG8gZmFsc2UuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRhbGxvd05lZ2F0aXZlOiBib29sZWFuID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFByb3ZpZGUgdGhlIGN1cnJlbmN5IGNvZGUgdG8gZm9ybWF0IHRoZSBlbnRlcmVkIGFtb3VudC5cblx0ICogVXNlcyBhbmd1bGFyIHRva2VuIERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSBieSBkZWZhdWx0LlxuXHQgKi9cblx0QElucHV0KClcblx0Y3VycmVuY3lDb2RlOiBzdHJpbmcgPSAnJztcblxuXHQvKipcblx0ICogdHJ1ZSBpZiBubyBkZWNpbWFsIGRpZ2l0cyBhbGxvd2VkLCBvdGhlcndpc2UgZmFsc2UuXG5cdCAqIERlZmF1bHQgdG8gZmFsc2UuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRiYXNlVW5pdE9ubHkgPSBmYWxzZTtcblxuXHQvKipcblx0ICogVGhlIGZvcm1hdCB0aGUgb2YgdGhlIGFtb3VudCBlaXRoZXIgaW4gd2lkZSBvciBuYXJyb3cuXG5cdCAqL1xuXHRASW5wdXQoKVxuXHRmb3JtYXQ6ICduYXJyb3cnIHwgJ3dpZGUnID0gJ3dpZGUnO1xuXG5cdEBIb3N0QmluZGluZygncGxhY2Vob2xkZXInKVxuXHRwcml2YXRlIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuXHRASG9zdEJpbmRpbmcoJ2F1dG9jb21wbGV0ZScpXG5cdHByaXZhdGUgYXV0b2NvbXBsZXRlID0gJ29mZic7XG5cblx0QEhvc3RCaW5kaW5nKCd0eXBlJylcblx0cHJpdmF0ZSB0eXBlID0gJ3RleHQnO1xuXG5cdEBIb3N0QmluZGluZygnYXR0ci5pbnB1dG1vZGUnKVxuXHRwcml2YXRlIGlucHV0TW9kZSA9ICdkZWNpbWFsJztcblxuXHRwcml2YXRlIGNoYW5nZSA9IG5vb3BfY29uc3VtZXI7XG5cdHByaXZhdGUgb25Ub3VjaCA9IG5vb3A7XG5cdHByaXZhdGUgX3NhZmFyaTogYm9vbGVhbjtcblx0cHJpdmF0ZSBfc3ltYm9sOiBzdHJpbmcgPSAnJCc7XG5cdHByaXZhdGUgX2RlY2ltYWxQaXBlITogRGVjaW1hbFBpcGU7XG5cblx0cHJpdmF0ZSBfZHMgPSAnLic7IC8vIGRlY2ltYWwgc2VwYXJhdG9yXG5cdHByaXZhdGUgX3RyYWlsaW5nID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QFNlbGYoKSBwcml2YXRlIF9lbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pixcblx0XHRwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuXHRcdEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcblx0XHRASW5qZWN0KERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSkgcHJpdmF0ZSBfZGVmYXVsdEN1cnJlbmN5Q29kZTogc3RyaW5nLFxuXHRcdEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0ZPUk1fRklFTEQpIHByaXZhdGUgX2ZpZWxkPzogTWF0Rm9ybUZpZWxkXG5cdCkge1xuXHRcdGNvbnN0IHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XG5cdFx0dGhpcy5fc2FmYXJpID0gIXVzZXJBZ2VudC5tYXRjaCgvRmlyZWZveC9pKSAmJiAhdXNlckFnZW50Lm1hdGNoKC9DaHJvbWUvaSkgJiYgISF1c2VyQWdlbnQubWF0Y2goL3NhZmFyaS9pKTtcblx0XHR0aGlzLl9jdXJyZW5jeVVwZGF0ZWQoKTtcblx0fVxuXG5cdG5nT25Jbml0KCkge31cblxuXHRuZ09uQ2hhbmdlcygpOiB2b2lkIHtcblx0XHR0aGlzLl9jdXJyZW5jeVVwZGF0ZWQoKTtcblx0XHR0aGlzLm9uSW5wdXQoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2lucHV0Jylcblx0b25JbnB1dCgpIHtcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgZmFsc2UsIHRydWUpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuXHRvbkZvY3VzKCkge1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCBmYWxzZSwgdHJ1ZSk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdibHVyJylcblx0b25ibHVyKCkge1xuXHRcdHRoaXMub25Ub3VjaCgpO1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCB0cnVlLCBmYWxzZSk7XG5cdH1cblxuXHR3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcblx0XHR2YWx1ZSA9IHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XG5cdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgdmFsdWUpO1xuXHRcdHRoaXMuX2Zvcm1hdEN1cnJlbmN5KHRoaXMuX2VsLCB0cnVlLCBmYWxzZSk7XG5cdH1cblxuXHRyZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcblx0XHR0aGlzLmNoYW5nZSA9IGZuO1xuXHR9XG5cblx0cmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuXHRcdHRoaXMub25Ub3VjaCA9IGZuO1xuXHR9XG5cblx0cHJpdmF0ZSBfdXBkYXRlUGxhY2Vob2xkZXIoKSB7XG5cdFx0dGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgfHwgdGhpcy5fMFRleHQ7XG5cdFx0aWYgKHRoaXMuX2ZpZWxkPy5fY29udHJvbCBpbnN0YW5jZW9mIE1hdElucHV0KSB7XG5cdFx0XHR0aGlzLl9maWVsZC5fY29udHJvbC5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBfY3VycmVuY3lVcGRhdGVkKCkge1xuXHRcdHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5jdXJyZW5jeUNvZGUgfHwgdGhpcy5fZGVmYXVsdEN1cnJlbmN5Q29kZTtcblx0XHR0aGlzLl9zeW1ib2wgPSBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLmN1cnJlbmN5Q29kZSwgdGhpcy5mb3JtYXQsIHRoaXMuX2xvY2FsZSkgfHwgJyQnO1xuXHRcdGNvbnN0IGxvY2FsZURhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKHRoaXMuX2xvY2FsZSk7XG5cdFx0dGhpcy5fZHMgPSBsb2NhbGVEYXRhWzEzXVswXTtcblx0XHR0aGlzLl9kZWNpbWFsUGlwZSA9IG5ldyBEZWNpbWFsUGlwZSh0aGlzLl9sb2NhbGUpO1xuXHRcdGNvbnN0IGN1ckZvcm1hdDogc3RyaW5nID0gbG9jYWxlRGF0YVsxNF1bMl07XG5cdFx0dGhpcy5fdHJhaWxpbmcgPSBjdXJGb3JtYXQuaW5kZXhPZignwqQnKSA+IDA7XG5cdFx0dGhpcy5fdXBkYXRlUGxhY2Vob2xkZXIoKTtcblx0fVxuXG5cdHByaXZhdGUgX2Zvcm1hdEN1cnJlbmN5KGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LCBibHVyOiBib29sZWFuLCBmb2N1czogYm9vbGVhbikge1xuXHRcdC8vIGFwcGVuZHMgJCB0byB2YWx1ZSwgdmFsaWRhdGVzIGRlY2ltYWwgc2lkZVxuXHRcdC8vIGFuZCBwdXRzIGN1cnNvciBiYWNrIGluIHJpZ2h0IHBvc2l0aW9uLlxuXHRcdC8vIGdldCBpbnB1dCB2YWx1ZVxuXHRcdGxldCBpbnB1dF92YWwgPSBpbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuXG5cdFx0Ly8gZG9uJ3QgdmFsaWRhdGUgZW1wdHkgaW5wdXRcblx0XHRpZiAoaW5wdXRfdmFsID09PSAnJykge1xuXHRcdFx0dGhpcy5jaGFuZ2UobnVsbCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgbWludXMgPSB0aGlzLmFsbG93TmVnYXRpdmUgPyAnLScgOiAnJztcblxuXHRcdC8vIHJlbW92ZSBub24gZGlnaXQgdmFsdWVzIGV4Y2VwdCBjdXJyZW5jeSBzeW1ib2wsIGRlY2ltYWwgc2VwYXJhdG9yIGFuZCBoeXBlblxuXHRcdGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoYFteMC05JHttaW51c30ke3RoaXMuX3N5bWJvbH0ke3RoaXMuX2RzfV1gLCAnZycpO1xuXG5cdFx0bGV0IHNhbml0aXNlVmFsdWUgPSBpbnB1dF92YWwucmVwbGFjZShyZWcsICcnKTtcblxuXHRcdGlmIChzYW5pdGlzZVZhbHVlID09PSAnJyB8fCBzYW5pdGlzZVZhbHVlID09PSB0aGlzLl9zeW1ib2wpIHtcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xuXHRcdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoaW5wdXQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgJycpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHQodGhpcy5hbGxvd05lZ2F0aXZlICYmIHNhbml0aXNlVmFsdWUgPT09IGAtJHt0aGlzLl9zeW1ib2x9YCkgfHxcblx0XHRcdHNhbml0aXNlVmFsdWUgPT09ICctJyB8fFxuXHRcdFx0c2FuaXRpc2VWYWx1ZSA9PT0gJy0tJ1xuXHRcdCkge1xuXHRcdFx0dGhpcy5jaGFuZ2UobnVsbCk7XG5cdFx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShpbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCAnLScpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG5lZ2F0aXZlID0gdGhpcy5hbGxvd05lZ2F0aXZlICYmIGlucHV0X3ZhbC5pbmRleE9mKCctJykgPj0gMDtcblxuXHRcdC8vIG9yaWdpbmFsIGxlbmd0aFxuXHRcdGNvbnN0IG9yaWdpbmFsX2xlbiA9IGlucHV0X3ZhbC5sZW5ndGg7XG5cblx0XHQvLyBpbml0aWFsIGNhcmV0IHBvc2l0aW9uXG5cdFx0bGV0IGNhcmV0X3BvcyA9IGlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XG5cblx0XHRpbnB1dF92YWwgPSBpbnB1dF92YWwucmVwbGFjZShSZWdFeHAoYFteMC05JHttaW51c30ke3RoaXMuX2RzfV1gLCAnZycpLCAnJykucmVwbGFjZSgvXlxcLlxcLi8sICcnKTtcblx0XHQvLyBjaGVjayBmb3IgZGVjaW1hbFxuXHRcdGlmIChpbnB1dF92YWwuaW5kZXhPZih0aGlzLl9kcykgPj0gMCkge1xuXHRcdFx0Ly8gZ2V0IHBvc2l0aW9uIG9mIGZpcnN0IGRlY2ltYWxcblx0XHRcdC8vIHRoaXMgcHJldmVudHMgbXVsdGlwbGUgZGVjaW1hbHMgZnJvbVxuXHRcdFx0Ly8gYmVpbmcgZW50ZXJlZFxuXHRcdFx0bGV0IGRlY2ltYWxfcG9zID0gaW5wdXRfdmFsLmluZGV4T2YodGhpcy5fZHMpO1xuXG5cdFx0XHQvLyBzcGxpdCBudW1iZXIgYnkgZGVjaW1hbCBwb2ludFxuXHRcdFx0bGV0IGxlZnRfc2lkZSA9IGlucHV0X3ZhbC5zdWJzdHJpbmcoMCwgZGVjaW1hbF9wb3MpO1xuXHRcdFx0bGV0IHJpZ2h0X3NpZGUgPSBpbnB1dF92YWwuc3Vic3RyaW5nKGRlY2ltYWxfcG9zKTtcblxuXHRcdFx0Ly8gYWRkIGNvbW1hcyB0byBsZWZ0IHNpZGUgb2YgbnVtYmVyXG5cdFx0XHRsZWZ0X3NpZGUgPSB0aGlzLl9mb3JtYXROdW1iZXIobGVmdF9zaWRlLCBibHVyKSB8fCAnJztcblxuXHRcdFx0Ly8gbm8gdmFsdWUgYXBwZW5kIGEgemVybyBmb3IgZGVjaW1hbCB2YWx1ZXNcblx0XHRcdGlmICghbGVmdF9zaWRlLmxlbmd0aCkge1xuXHRcdFx0XHRsZWZ0X3NpZGUgPSAnMCc7XG5cdFx0XHR9XG5cblx0XHRcdGlmICghdGhpcy5iYXNlVW5pdE9ubHkpIHtcblx0XHRcdFx0Ly8gdmFsaWRhdGUgcmlnaHQgc2lkZVxuXHRcdFx0XHRyaWdodF9zaWRlID0gcmlnaHRfc2lkZS5yZXBsYWNlKC9cXEQvZywgJycpO1xuXG5cdFx0XHRcdC8vIExpbWl0IGRlY2ltYWwgdG8gb25seSAyIGRpZ2l0c1xuXHRcdFx0XHRsZXQgdiA9IE51bWJlcihgMC4ke3JpZ2h0X3NpZGV9YCk7XG5cdFx0XHRcdGlmICh2KSB7XG5cdFx0XHRcdFx0Y29uc3QgbGVuZ3RoID0gcmlnaHRfc2lkZS5sZW5ndGggPiAxID8gMiA6IDE7XG5cdFx0XHRcdFx0cmlnaHRfc2lkZSA9IHYudG9GaXhlZChsZW5ndGgpLnN1YnN0cmluZygyLCA0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE9uIGJsdXIgbWFrZSBzdXJlIDIgbnVtYmVycyBhZnRlciBkZWNpbWFsXG5cdFx0XHRcdGlmIChibHVyKSB7XG5cdFx0XHRcdFx0cmlnaHRfc2lkZSArPSAnMDAnO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmlnaHRfc2lkZSA9IHJpZ2h0X3NpZGUuc3Vic3RyaW5nKDAsIDIpO1xuXG5cdFx0XHRcdC8vIGpvaW4gbnVtYmVyIGJ5IC5cblx0XHRcdFx0aW5wdXRfdmFsID0gbGVmdF9zaWRlICsgdGhpcy5fZHMgKyByaWdodF9zaWRlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW5wdXRfdmFsID0gbGVmdF9zaWRlO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRpbnB1dF92YWwgPSB0aGlzLl9mb3JtYXROdW1iZXIoaW5wdXRfdmFsLCBibHVyKTtcblxuXHRcdFx0Ly8gZmluYWwgZm9ybWF0dGluZ1xuXHRcdFx0aWYgKGJsdXIgJiYgIXRoaXMuYmFzZVVuaXRPbmx5KSB7XG5cdFx0XHRcdGlucHV0X3ZhbCArPSBgJHt0aGlzLl9kc30wMGA7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Y29uc3QgbnVtU3RyID0gaW5wdXRfdmFsO1xuXHRcdC8vIGFwcGVuZCB0aGUgY3VycmVuY3kgc3ltYm9sXG5cdFx0aWYgKCF0aGlzLl9zYWZhcmkgfHwgIWZvY3VzKSB7XG5cdFx0XHRpZiAodGhpcy5fdHJhaWxpbmcpIHtcblx0XHRcdFx0aW5wdXRfdmFsID0gaW5wdXRfdmFsICsgJyAnICsgdGhpcy5fc3ltYm9sO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aW5wdXRfdmFsID0gdGhpcy5fc3ltYm9sICsgaW5wdXRfdmFsO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChuZWdhdGl2ZSkge1xuXHRcdFx0Ly8gYXBwZW5kIHRoZSBoeXBlbiBiYWNrIHRvIHRoZSB2YWx1ZSBpZiBhIG5lZ2F0aXZlIHZhbHVlIHdhcyBlbnRlcmVkXG5cdFx0XHRpbnB1dF92YWwgPSBgLSR7aW5wdXRfdmFsfWA7XG5cdFx0fVxuXG5cdFx0Y29uc3QgbnVtID0gdGhpcy5fY29udmVydCgobmVnYXRpdmUgPyAnLScgOiAnJykgKyBudW1TdHIpO1xuXG5cdFx0Ly8gdXBkYXRlIGNvbnRyb2wgdmFsdWUgZmlyc3Qgd2l0aCB0aGUgbnVtYmVyXG5cdFx0dGhpcy5jaGFuZ2UoTnVtYmVyKG51bSkpO1xuXG5cdFx0aWYgKGJsdXIgJiYgbnVtID09PSAwKSB7XG5cdFx0XHRpbnB1dF92YWwgPSB0aGlzLl8wVGV4dDtcblx0XHR9XG5cblx0XHQvLyB1cGRhdGUgZG9tIHdpdGggdGhlIGZvcm1hdHRlZCB2YWx1ZVxuXHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGlucHV0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIGlucHV0X3ZhbCk7XG5cdFx0Ly8gcHV0IGNhcmV0IGJhY2sgaW4gdGhlIHJpZ2h0IHBvc2l0aW9uXG5cdFx0bGV0IHVwZGF0ZWRfbGVuID0gaW5wdXRfdmFsLmxlbmd0aDtcblx0XHRpZiAoY2FyZXRfcG9zKSB7XG5cdFx0XHRjYXJldF9wb3MgPSB1cGRhdGVkX2xlbiAtIG9yaWdpbmFsX2xlbiArIGNhcmV0X3Bvcztcblx0XHRcdGlmIChpbnB1dF92YWwuc3Vic3RyaW5nKGNhcmV0X3BvcyAtIHRoaXMuX3N5bWJvbC5sZW5ndGgpID09PSB0aGlzLl9zeW1ib2wgJiYgdGhpcy5fdHJhaWxpbmcpIHtcblx0XHRcdFx0Y2FyZXRfcG9zIC09IHRoaXMuX3N5bWJvbC5sZW5ndGggKyAxO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoIXRoaXMuX3NhZmFyaSkge1xuXHRcdFx0aW5wdXQubmF0aXZlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShjYXJldF9wb3MsIGNhcmV0X3Bvcyk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gZm9ybWF0IHRoZSBudW1iZXIgaW50byBjdXJyZW5jeSBmb3JtYXRcblx0cHJpdmF0ZSBfZm9ybWF0TnVtYmVyKG46IHN0cmluZywgYmx1cjogYm9vbGVhbiA9IGZhbHNlKSB7XG5cdFx0Ly8gZm9ybWF0IG51bWJlciAxMDAwMDAwIHRvIDEsMjM0LDU2N1xuXHRcdG4gPSBuLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG5cdFx0aWYgKGJsdXIpIHtcblx0XHRcdG4gPSBuLnJlcGxhY2UoL14wKy8sICcnKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX2RlY2ltYWxQaXBlLnRyYW5zZm9ybShuLCAnMS4wLTAnKSBhcyBzdHJpbmc7XG5cdH1cblxuXHRwcml2YXRlIF9jb252ZXJ0KGlucHV0OiBzdHJpbmcpOiBudW1iZXIge1xuXHRcdGlmICghaW5wdXQpIHtcblx0XHRcdHJldHVybiBOYU47XG5cdFx0fVxuXHRcdGNvbnN0IHZhbCA9IGlucHV0XG5cdFx0XHQucmVwbGFjZSh0aGlzLl9kcywgJ2QnKVxuXHRcdFx0LnJlcGxhY2UoL1teMC05ZC1dL2csICcnKVxuXHRcdFx0LnJlcGxhY2UoJ2QnLCAnLicpO1xuXHRcdHJldHVybiBwYXJzZUZsb2F0KHZhbCk7XG5cdH1cblxuXHRwcml2YXRlIGdldCBfMFRleHQoKTogc3RyaW5nIHtcblx0XHRjb25zdCBkZWNpbWFsU3RyID0gdGhpcy5iYXNlVW5pdE9ubHkgPyAnJyA6IGAke3RoaXMuX2RzfTAwYDtcblx0XHRyZXR1cm4gdGhpcy5fdHJhaWxpbmcgPyBgMCR7ZGVjaW1hbFN0cn0gJHt0aGlzLl9zeW1ib2x9YCA6IGAke3RoaXMuX3N5bWJvbH0wJHtkZWNpbWFsU3RyfWA7XG5cdH1cbn1cbiJdfQ==
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY3VycmVuY3ktaW5wdXQvY3VycmVuY3ktaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQ04scUJBQXFCLEVBQ3JCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsRUFHVCxRQUFRLEVBRVIsSUFBSSxFQUNKLGVBQWUsRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFnQixjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRTVCLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztBQUU1Qzs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFpRGxDLFlBQ2lCLEdBQWlDLEVBQ3pDLFNBQW9CLEVBQ0QsT0FBZSxFQUNILG9CQUE0QixFQUN2QixNQUFxQjtRQUpqRCxRQUFHLEdBQUgsR0FBRyxDQUE4QjtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ0QsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNILHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBckRsRTs7O1dBR0c7UUFFSCxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUv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TCxLQUFLO2dCQUlFLFdBQVc7c0JBRGxCLFdBQVc7dUJBQUMsYUFBYTtnQkFJbEIsWUFBWTtzQkFEbkIsV0FBVzt1QkFBQyxjQUFjO2dCQUluQixJQUFJO3NCQURYLFdBQVc7dUJBQUMsTUFBTTtnQkFJWCxTQUFTO3NCQURoQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFnQzdCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTztnQkFNckIsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNpbWFsUGlwZSwgZ2V0Q3VycmVuY3lTeW1ib2wgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0REVGQVVMVF9DVVJSRU5DWV9DT0RFLFxuXHREaXJlY3RpdmUsXG5cdEVsZW1lbnRSZWYsXG5cdGZvcndhcmRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRIb3N0TGlzdGVuZXIsXG5cdEluamVjdCxcblx0SW5wdXQsXG5cdExPQ0FMRV9JRCxcblx0T25DaGFuZ2VzLFxuXHRPbkluaXQsXG5cdE9wdGlvbmFsLFxuXHRSZW5kZXJlcjIsXG5cdFNlbGYsXG5cdMm1ZmluZExvY2FsZURhdGFcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1BVF9GT1JNX0ZJRUxEIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdyeGpzJztcblxuLyogdHNsaW50OmRpc2FibGU6bm8tZW1wdHkgKi9cbmV4cG9ydCBjb25zdCBub29wX2NvbnN1bWVyID0gKF86IGFueSkgPT4ge307XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgd2lsbCBlbmhhbmNlIGFuIGlucHV0IGVsZW1lbnQgdG8gZm9ybWF0IHRoZSBudW1iZXJzIGVudGVyZWQgdG8gYSBjdXJyZW5jeSBhbW91bnQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ2lucHV0W2J1aUN1cnJlbmN5SW5wdXRdLGlucHV0W2N1cnJlbmN5Q29kZV0saW5wdXRbZGF0YS10eXBlPWN1cnJlbmN5XScsXG5cdHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEN1cnJlbmN5SW5wdXREaXJlY3RpdmUpLCBtdWx0aTogdHJ1ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUlucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblx0LyoqXG5cdCAqIHRydWUgdG8gYWxsb3cgbmVnYXRpdmUgaW5wdXQsIG90aGVyd2lzZSBmYWxzZVxuXHQgKiBEZWZhdWx0IHRvIGZhbHNlLlxuXHQgKi9cblx0QElucHV0KClcblx0YWxsb3dOZWdhdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBQcm92aWRlIHRoZSBjdXJyZW5jeSBjb2RlIHRvIGZvcm1hdCB0aGUgZW50ZXJlZCBhbW91bnQuXG5cdCAqIFVzZXMgYW5ndWxhciB0b2tlbiBERUZBVUxUX0NVUlJFTkNZX0NPREUgYnkgZGVmYXVsdC5cblx0ICovXG5cdEBJbnB1dCgpXG5cdGN1cnJlbmN5Q29kZTogc3RyaW5nID0gJyc7XG5cblx0LyoqXG5cdCAqIHRydWUgaWYgbm8gZGVjaW1hbCBkaWdpdHMgYWxsb3dlZCwgb3RoZXJ3aXNlIGZhbHNlLlxuXHQgKiBEZWZhdWx0IHRvIGZhbHNlLlxuXHQgKi9cblx0QElucHV0KClcblx0YmFzZVVuaXRPbmx5ID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFRoZSBmb3JtYXQgdGhlIG9mIHRoZSBhbW91bnQgZWl0aGVyIGluIHdpZGUgb3IgbmFycm93LlxuXHQgKi9cblx0QElucHV0KClcblx0Zm9ybWF0OiAnbmFycm93JyB8ICd3aWRlJyA9ICd3aWRlJztcblxuXHRASG9zdEJpbmRpbmcoJ3BsYWNlaG9sZGVyJylcblx0cHJpdmF0ZSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cblx0QEhvc3RCaW5kaW5nKCdhdXRvY29tcGxldGUnKVxuXHRwcml2YXRlIGF1dG9jb21wbGV0ZSA9ICdvZmYnO1xuXG5cdEBIb3N0QmluZGluZygndHlwZScpXG5cdHByaXZhdGUgdHlwZSA9ICd0ZXh0JztcblxuXHRASG9zdEJpbmRpbmcoJ2F0dHIuaW5wdXRtb2RlJylcblx0cHJpdmF0ZSBpbnB1dE1vZGUgPSAnZGVjaW1hbCc7XG5cblx0cHJpdmF0ZSBjaGFuZ2UgPSBub29wX2NvbnN1bWVyO1xuXHRwcml2YXRlIG9uVG91Y2ggPSBub29wO1xuXHRwcml2YXRlIF9zYWZhcmk6IGJvb2xlYW47XG5cdHByaXZhdGUgX3N5bWJvbDogc3RyaW5nID0gJyQnO1xuXHRwcml2YXRlIF9kZWNpbWFsUGlwZSE6IERlY2ltYWxQaXBlO1xuXG5cdHByaXZhdGUgX2RzID0gJy4nOyAvLyBkZWNpbWFsIHNlcGFyYXRvclxuXHRwcml2YXRlIF90cmFpbGluZyA9IGZhbHNlO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdEBTZWxmKCkgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG5cdFx0cHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRASW5qZWN0KExPQ0FMRV9JRCkgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmcsXG5cdFx0QEluamVjdChERUZBVUxUX0NVUlJFTkNZX0NPREUpIHByaXZhdGUgX2RlZmF1bHRDdXJyZW5jeUNvZGU6IHN0cmluZyxcblx0XHRAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9GT1JNX0ZJRUxEKSBwcml2YXRlIF9maWVsZD86IE1hdEZvcm1GaWVsZFxuXHQpIHtcblx0XHRjb25zdCB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50O1xuXHRcdHRoaXMuX3NhZmFyaSA9ICF1c2VyQWdlbnQubWF0Y2goL0ZpcmVmb3gvaSkgJiYgIXVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lL2kpICYmICEhdXNlckFnZW50Lm1hdGNoKC9zYWZhcmkvaSk7XG5cdFx0dGhpcy5fY3VycmVuY3lVcGRhdGVkKCk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHt9XG5cblx0bmdPbkNoYW5nZXMoKTogdm9pZCB7XG5cdFx0dGhpcy5fY3VycmVuY3lVcGRhdGVkKCk7XG5cdFx0dGhpcy5vbklucHV0KCk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdpbnB1dCcpXG5cdG9uSW5wdXQoKSB7XG5cdFx0dGhpcy5fZm9ybWF0Q3VycmVuY3kodGhpcy5fZWwsIGZhbHNlLCB0cnVlKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcblx0b25Gb2N1cygpIHtcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgZmFsc2UsIHRydWUpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignYmx1cicpXG5cdG9uYmx1cigpIHtcblx0XHR0aGlzLm9uVG91Y2goKTtcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgdHJ1ZSwgZmFsc2UpO1xuXHR9XG5cblx0d3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG5cdFx0dmFsdWUgPSB0aGlzLl9kZWNpbWFsUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xuXHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsIHZhbHVlKTtcblx0XHR0aGlzLl9mb3JtYXRDdXJyZW5jeSh0aGlzLl9lbCwgdHJ1ZSwgZmFsc2UpO1xuXHR9XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG5cdFx0dGhpcy5jaGFuZ2UgPSBmbjtcblx0fVxuXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcblx0XHR0aGlzLm9uVG91Y2ggPSBmbjtcblx0fVxuXG5cdHByaXZhdGUgX3VwZGF0ZVBsYWNlaG9sZGVyKCkge1xuXHRcdHRoaXMucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyIHx8IHRoaXMuXzBUZXh0O1xuXHRcdGlmICh0aGlzLl9maWVsZD8uX2NvbnRyb2wgaW5zdGFuY2VvZiBNYXRJbnB1dCkge1xuXHRcdFx0dGhpcy5fZmllbGQuX2NvbnRyb2wucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2N1cnJlbmN5VXBkYXRlZCgpIHtcblx0XHR0aGlzLmN1cnJlbmN5Q29kZSA9IHRoaXMuY3VycmVuY3lDb2RlIHx8IHRoaXMuX2RlZmF1bHRDdXJyZW5jeUNvZGU7XG5cdFx0dGhpcy5fc3ltYm9sID0gZ2V0Q3VycmVuY3lTeW1ib2wodGhpcy5jdXJyZW5jeUNvZGUsIHRoaXMuZm9ybWF0LCB0aGlzLl9sb2NhbGUpIHx8ICckJztcblx0XHRjb25zdCBsb2NhbGVEYXRhID0gybVmaW5kTG9jYWxlRGF0YSh0aGlzLl9sb2NhbGUpO1xuXHRcdHRoaXMuX2RzID0gbG9jYWxlRGF0YVsxM11bMF07XG5cdFx0dGhpcy5fZGVjaW1hbFBpcGUgPSBuZXcgRGVjaW1hbFBpcGUodGhpcy5fbG9jYWxlKTtcblx0XHRjb25zdCBjdXJGb3JtYXQ6IHN0cmluZyA9IGxvY2FsZURhdGFbMTRdWzJdO1xuXHRcdHRoaXMuX3RyYWlsaW5nID0gY3VyRm9ybWF0LmluZGV4T2YoJ8KkJykgPiAwO1xuXHRcdHRoaXMuX3VwZGF0ZVBsYWNlaG9sZGVyKCk7XG5cdH1cblxuXHRwcml2YXRlIF9mb3JtYXRDdXJyZW5jeShpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiwgYmx1cjogYm9vbGVhbiwgZm9jdXM6IGJvb2xlYW4pIHtcblx0XHQvLyBhcHBlbmRzICQgdG8gdmFsdWUsIHZhbGlkYXRlcyBkZWNpbWFsIHNpZGVcblx0XHQvLyBhbmQgcHV0cyBjdXJzb3IgYmFjayBpbiByaWdodCBwb3NpdGlvbi5cblx0XHQvLyBnZXQgaW5wdXQgdmFsdWVcblx0XHRsZXQgaW5wdXRfdmFsID0gaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcblxuXHRcdC8vIGRvbid0IHZhbGlkYXRlIGVtcHR5IGlucHV0XG5cdFx0aWYgKGlucHV0X3ZhbCA9PT0gJycpIHtcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IG1pbnVzID0gdGhpcy5hbGxvd05lZ2F0aXZlID8gJy0nIDogJyc7XG5cblx0XHQvLyByZW1vdmUgbm9uIGRpZ2l0IHZhbHVlcyBleGNlcHQgY3VycmVuY3kgc3ltYm9sLCBkZWNpbWFsIHNlcGFyYXRvciBhbmQgaHlwZW5cblx0XHRjb25zdCByZWcgPSBuZXcgUmVnRXhwKGBbXjAtOSR7bWludXN9JHt0aGlzLl9zeW1ib2x9JHt0aGlzLl9kc31dYCwgJ2cnKTtcblxuXHRcdGxldCBzYW5pdGlzZVZhbHVlID0gaW5wdXRfdmFsLnJlcGxhY2UocmVnLCAnJyk7XG5cblx0XHRpZiAoc2FuaXRpc2VWYWx1ZSA9PT0gJycgfHwgc2FuaXRpc2VWYWx1ZSA9PT0gdGhpcy5fc3ltYm9sKSB7XG5cdFx0XHR0aGlzLmNoYW5nZShudWxsKTtcblx0XHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KGlucHV0Lm5hdGl2ZUVsZW1lbnQsICd2YWx1ZScsICcnKTtcblx0XHRcdHJldHVybjtcblx0XHR9IGVsc2UgaWYgKFxuXHRcdFx0KHRoaXMuYWxsb3dOZWdhdGl2ZSAmJiBzYW5pdGlzZVZhbHVlID09PSBgLSR7dGhpcy5fc3ltYm9sfWApIHx8XG5cdFx0XHRzYW5pdGlzZVZhbHVlID09PSAnLScgfHxcblx0XHRcdHNhbml0aXNlVmFsdWUgPT09ICctLSdcblx0XHQpIHtcblx0XHRcdHRoaXMuY2hhbmdlKG51bGwpO1xuXHRcdFx0dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkoaW5wdXQubmF0aXZlRWxlbWVudCwgJ3ZhbHVlJywgJy0nKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBuZWdhdGl2ZSA9IHRoaXMuYWxsb3dOZWdhdGl2ZSAmJiBpbnB1dF92YWwuaW5kZXhPZignLScpID49IDA7XG5cblx0XHQvLyBvcmlnaW5hbCBsZW5ndGhcblx0XHRjb25zdCBvcmlnaW5hbF9sZW4gPSBpbnB1dF92YWwubGVuZ3RoO1xuXG5cdFx0Ly8gaW5pdGlhbCBjYXJldCBwb3NpdGlvblxuXHRcdGxldCBjYXJldF9wb3MgPSBpbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuXG5cdFx0aW5wdXRfdmFsID0gaW5wdXRfdmFsLnJlcGxhY2UoUmVnRXhwKGBbXjAtOSR7bWludXN9JHt0aGlzLl9kc31dYCwgJ2cnKSwgJycpLnJlcGxhY2UoL15cXC5cXC4vLCAnJyk7XG5cdFx0Ly8gY2hlY2sgZm9yIGRlY2ltYWxcblx0XHRpZiAoaW5wdXRfdmFsLmluZGV4T2YodGhpcy5fZHMpID49IDApIHtcblx0XHRcdC8vIGdldCBwb3NpdGlvbiBvZiBmaXJzdCBkZWNpbWFsXG5cdFx0XHQvLyB0aGlzIHByZXZlbnRzIG11bHRpcGxlIGRlY2ltYWxzIGZyb21cblx0XHRcdC8vIGJlaW5nIGVudGVyZWRcblx0XHRcdGxldCBkZWNpbWFsX3BvcyA9IGlucHV0X3ZhbC5pbmRleE9mKHRoaXMuX2RzKTtcblxuXHRcdFx0Ly8gc3BsaXQgbnVtYmVyIGJ5IGRlY2ltYWwgcG9pbnRcblx0XHRcdGxldCBsZWZ0X3NpZGUgPSBpbnB1dF92YWwuc3Vic3RyaW5nKDAsIGRlY2ltYWxfcG9zKTtcblx0XHRcdGxldCByaWdodF9zaWRlID0gaW5wdXRfdmFsLnN1YnN0cmluZyhkZWNpbWFsX3Bvcyk7XG5cblx0XHRcdC8vIGFkZCBjb21tYXMgdG8gbGVmdCBzaWRlIG9mIG51bWJlclxuXHRcdFx0bGVmdF9zaWRlID0gdGhpcy5fZm9ybWF0TnVtYmVyKGxlZnRfc2lkZSwgYmx1cikgfHwgJyc7XG5cblx0XHRcdC8vIG5vIHZhbHVlIGFwcGVuZCBhIHplcm8gZm9yIGRlY2ltYWwgdmFsdWVzXG5cdFx0XHRpZiAoIWxlZnRfc2lkZS5sZW5ndGgpIHtcblx0XHRcdFx0bGVmdF9zaWRlID0gJzAnO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIXRoaXMuYmFzZVVuaXRPbmx5KSB7XG5cdFx0XHRcdC8vIHZhbGlkYXRlIHJpZ2h0IHNpZGVcblx0XHRcdFx0cmlnaHRfc2lkZSA9IHJpZ2h0X3NpZGUucmVwbGFjZSgvXFxEL2csICcnKTtcblxuXHRcdFx0XHQvLyBMaW1pdCBkZWNpbWFsIHRvIG9ubHkgMiBkaWdpdHNcblx0XHRcdFx0bGV0IHYgPSBOdW1iZXIoYDAuJHtyaWdodF9zaWRlfWApO1xuXHRcdFx0XHRpZiAodikge1xuXHRcdFx0XHRcdGNvbnN0IGxlbmd0aCA9IHJpZ2h0X3NpZGUubGVuZ3RoID4gMSA/IDIgOiAxO1xuXHRcdFx0XHRcdHJpZ2h0X3NpZGUgPSB2LnRvRml4ZWQobGVuZ3RoKS5zdWJzdHJpbmcoMiwgNCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBPbiBibHVyIG1ha2Ugc3VyZSAyIG51bWJlcnMgYWZ0ZXIgZGVjaW1hbFxuXHRcdFx0XHRpZiAoYmx1cikge1xuXHRcdFx0XHRcdHJpZ2h0X3NpZGUgKz0gJzAwJztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJpZ2h0X3NpZGUgPSByaWdodF9zaWRlLnN1YnN0cmluZygwLCAyKTtcblxuXHRcdFx0XHQvLyBqb2luIG51bWJlciBieSAuXG5cdFx0XHRcdGlucHV0X3ZhbCA9IGxlZnRfc2lkZSArIHRoaXMuX2RzICsgcmlnaHRfc2lkZTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlucHV0X3ZhbCA9IGxlZnRfc2lkZTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aW5wdXRfdmFsID0gdGhpcy5fZm9ybWF0TnVtYmVyKGlucHV0X3ZhbCwgYmx1cik7XG5cblx0XHRcdC8vIGZpbmFsIGZvcm1hdHRpbmdcblx0XHRcdGlmIChibHVyICYmICF0aGlzLmJhc2VVbml0T25seSkge1xuXHRcdFx0XHRpbnB1dF92YWwgKz0gYCR7dGhpcy5fZHN9MDBgO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IG51bVN0ciA9IGlucHV0X3ZhbDtcblx0XHQvLyBhcHBlbmQgdGhlIGN1cnJlbmN5IHN5bWJvbFxuXHRcdGlmICghdGhpcy5fc2FmYXJpIHx8ICFmb2N1cykge1xuXHRcdFx0aWYgKHRoaXMuX3RyYWlsaW5nKSB7XG5cdFx0XHRcdGlucHV0X3ZhbCA9IGlucHV0X3ZhbCArICcgJyArIHRoaXMuX3N5bWJvbDtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGlucHV0X3ZhbCA9IHRoaXMuX3N5bWJvbCArIGlucHV0X3ZhbDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAobmVnYXRpdmUpIHtcblx0XHRcdC8vIGFwcGVuZCB0aGUgaHlwZW4gYmFjayB0byB0aGUgdmFsdWUgaWYgYSBuZWdhdGl2ZSB2YWx1ZSB3YXMgZW50ZXJlZFxuXHRcdFx0aW5wdXRfdmFsID0gYC0ke2lucHV0X3ZhbH1gO1xuXHRcdH1cblxuXHRcdGNvbnN0IG51bSA9IHRoaXMuX2NvbnZlcnQoKG5lZ2F0aXZlID8gJy0nIDogJycpICsgbnVtU3RyKTtcblxuXHRcdC8vIHVwZGF0ZSBjb250cm9sIHZhbHVlIGZpcnN0IHdpdGggdGhlIG51bWJlclxuXHRcdHRoaXMuY2hhbmdlKE51bWJlcihudW0pKTtcblxuXHRcdGlmIChibHVyICYmIG51bSA9PT0gMCkge1xuXHRcdFx0aW5wdXRfdmFsID0gdGhpcy5fMFRleHQ7XG5cdFx0fVxuXG5cdFx0Ly8gdXBkYXRlIGRvbSB3aXRoIHRoZSBmb3JtYXR0ZWQgdmFsdWVcblx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eShpbnB1dC5uYXRpdmVFbGVtZW50LCAndmFsdWUnLCBpbnB1dF92YWwpO1xuXHRcdC8vIHB1dCBjYXJldCBiYWNrIGluIHRoZSByaWdodCBwb3NpdGlvblxuXHRcdGxldCB1cGRhdGVkX2xlbiA9IGlucHV0X3ZhbC5sZW5ndGg7XG5cdFx0aWYgKGNhcmV0X3Bvcykge1xuXHRcdFx0Y2FyZXRfcG9zID0gdXBkYXRlZF9sZW4gLSBvcmlnaW5hbF9sZW4gKyBjYXJldF9wb3M7XG5cdFx0XHRpZiAoaW5wdXRfdmFsLnN1YnN0cmluZyhjYXJldF9wb3MgLSB0aGlzLl9zeW1ib2wubGVuZ3RoKSA9PT0gdGhpcy5fc3ltYm9sICYmIHRoaXMuX3RyYWlsaW5nKSB7XG5cdFx0XHRcdGNhcmV0X3BvcyAtPSB0aGlzLl9zeW1ib2wubGVuZ3RoICsgMTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKCF0aGlzLl9zYWZhcmkpIHtcblx0XHRcdGlucHV0Lm5hdGl2ZUVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoY2FyZXRfcG9zLCBjYXJldF9wb3MpO1xuXHRcdH1cblx0fVxuXG5cdC8vIGZvcm1hdCB0aGUgbnVtYmVyIGludG8gY3VycmVuY3kgZm9ybWF0XG5cdHByaXZhdGUgX2Zvcm1hdE51bWJlcihuOiBzdHJpbmcsIGJsdXI6IGJvb2xlYW4gPSBmYWxzZSkge1xuXHRcdC8vIGZvcm1hdCBudW1iZXIgMTAwMDAwMCB0byAxLDIzNCw1Njdcblx0XHRuID0gbi5yZXBsYWNlKC9cXEQvZywgJycpO1xuXHRcdGlmIChibHVyKSB7XG5cdFx0XHRuID0gbi5yZXBsYWNlKC9eMCsvLCAnJyk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl9kZWNpbWFsUGlwZS50cmFuc2Zvcm0obiwgJzEuMC0wJykgYXMgc3RyaW5nO1xuXHR9XG5cblx0cHJpdmF0ZSBfY29udmVydChpbnB1dDogc3RyaW5nKTogbnVtYmVyIHtcblx0XHRjb25zdCB2YWwgPSBpbnB1dFxuXHRcdFx0LnJlcGxhY2UodGhpcy5fZHMsICdkJylcblx0XHRcdC5yZXBsYWNlKC9bXjAtOWQtXS9nLCAnJylcblx0XHRcdC5yZXBsYWNlKCdkJywgJy4nKTtcblx0XHRyZXR1cm4gcGFyc2VGbG9hdCh2YWwpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXQgXzBUZXh0KCk6IHN0cmluZyB7XG5cdFx0Y29uc3QgZGVjaW1hbFN0ciA9IHRoaXMuYmFzZVVuaXRPbmx5ID8gJycgOiBgJHt0aGlzLl9kc30wMGA7XG5cdFx0cmV0dXJuIHRoaXMuX3RyYWlsaW5nID8gYDAke2RlY2ltYWxTdHJ9ICR7dGhpcy5fc3ltYm9sfWAgOiBgJHt0aGlzLl9zeW1ib2x9MCR7ZGVjaW1hbFN0cn1gO1xuXHR9XG59XG4iXX0=