@colijnit/homedecorator 255.1.4 → 255.1.6

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 (89) hide show
  1. package/app/core/enum/message-type.enum.d.ts +3 -1
  2. package/app/core/interface/message-with-payload.interface.d.ts +6 -0
  3. package/app/core/model/homedecorator-settings-options.d.ts +2 -0
  4. package/app/core/service/homedecorator-app-event.service.d.ts +1 -0
  5. package/app/core/service/homedecorator-connector-adapter.service.d.ts +2 -0
  6. package/app/core/service/homedecorator-connector.service.d.ts +5 -4
  7. package/app/core/service/homedecorator-settings.service.d.ts +2 -1
  8. package/app/core/service/presets.service.d.ts +3 -1
  9. package/app/homedecorator.component.d.ts +3 -1
  10. package/app/homedecorator.module.d.ts +2 -1
  11. package/app/plugins/core3d/service/floor-pattern.service.d.ts +1 -1
  12. package/app/plugins/core3d/service/floor-tile-intersection.service.d.ts +2 -1
  13. package/app/plugins/core3d/service/floor.service.d.ts +3 -1
  14. package/app/plugins/core3d/service/post-processing.service.d.ts +21 -7
  15. package/app/plugins/core3d/service/scene.service.d.ts +1 -1
  16. package/app/plugins/core3d/service/ssr.service.d.ts +0 -1
  17. package/app/plugins/model-uploader/model-previewer/model-preview.component.d.ts +11 -2
  18. package/app/plugins/model-uploader/model-previewer/model-preview.component.scss +185 -15
  19. package/app/plugins/model-uploader/model-uploader.module.d.ts +5 -1
  20. package/app/plugins/render/render-dialog/render-dialog.component.d.ts +4 -1
  21. package/app/plugins/render/render-dialog/render-dialog.component.scss +5 -5
  22. package/app/plugins/room-planner/components/floorplanner/floorplanner.component.d.ts +3 -1
  23. package/app/plugins/room-planner/components/floorplanner/service/room.service.d.ts +1 -0
  24. package/app/plugins/room-planner/components/settings/settings.component.d.ts +5 -1
  25. package/app/plugins/room-planner/components/texture-editor/texture-editor.component.d.ts +4 -1
  26. package/app/plugins/room-planner/room-planner/room-planner.component.scss +1 -0
  27. package/app/plugins/threedselector/threedselector/service/build-furniture.service.d.ts +1 -3
  28. package/app/plugins/toolbar/draw-dialog/draw-dialog.component.d.ts +2 -0
  29. package/app/plugins/toolbar/draw-dialog/draw-dialog.component.scss +1 -1
  30. package/app/plugins/toolbar/toolbar/toolbar.component.d.ts +2 -0
  31. package/assets/icons/dash-button.svg +7 -0
  32. package/assets/icons/pen-ruler.svg +1 -0
  33. package/assets/icons/retry-button.svg +7 -0
  34. package/bundles/colijnit-homedecorator.umd.js +822 -601
  35. package/bundles/colijnit-homedecorator.umd.js.map +1 -1
  36. package/esm2015/app/app.version.js +3 -3
  37. package/esm2015/app/core/enum/message-type.enum.js +3 -1
  38. package/esm2015/app/core/interface/message-with-payload.interface.js +1 -1
  39. package/esm2015/app/core/model/homedecorator-settings-options.js +3 -1
  40. package/esm2015/app/core/service/3dm-api.js +4 -4
  41. package/esm2015/app/core/service/homedecorator-app-event.service.js +2 -1
  42. package/esm2015/app/core/service/homedecorator-connector-adapter.service.js +25 -2
  43. package/esm2015/app/core/service/homedecorator-connector.service.js +25 -22
  44. package/esm2015/app/core/service/homedecorator-settings.service.js +3 -2
  45. package/esm2015/app/core/service/presets.service.js +13 -5
  46. package/esm2015/app/core/utils/material.utils.js +3 -3
  47. package/esm2015/app/homedecorator.component.js +26 -19
  48. package/esm2015/app/homedecorator.module.js +8 -4
  49. package/esm2015/app/plugins/core3d/core3d/components/scenecontrol/scene-control.component.js +5 -5
  50. package/esm2015/app/plugins/core3d/items/custom-cylinder-floor-item.js +2 -2
  51. package/esm2015/app/plugins/core3d/items/custom-cylinder-wall-item.js +2 -2
  52. package/esm2015/app/plugins/core3d/items/custom-shape-floor-item.js +2 -2
  53. package/esm2015/app/plugins/core3d/items/custom-shape-wall-item.js +2 -2
  54. package/esm2015/app/plugins/core3d/items/factory.js +3 -2
  55. package/esm2015/app/plugins/core3d/service/ar.service.js +2 -1
  56. package/esm2015/app/plugins/core3d/service/floor-pattern.service.js +24 -18
  57. package/esm2015/app/plugins/core3d/service/floor-tile-intersection.service.js +13 -8
  58. package/esm2015/app/plugins/core3d/service/floor.service.js +9 -4
  59. package/esm2015/app/plugins/core3d/service/light-presets.service.js +10 -8
  60. package/esm2015/app/plugins/core3d/service/lights.service.js +8 -1
  61. package/esm2015/app/plugins/core3d/service/outline.service.js +4 -6
  62. package/esm2015/app/plugins/core3d/service/post-processing.service.js +148 -51
  63. package/esm2015/app/plugins/core3d/service/scene-event.service.js +14 -7
  64. package/esm2015/app/plugins/core3d/service/scene.service.js +84 -74
  65. package/esm2015/app/plugins/core3d/service/ssr.service.js +2 -53
  66. package/esm2015/app/plugins/lite-selector/lite-selector/component/answers-slideout/answers-slideout.component.js +10 -5
  67. package/esm2015/app/plugins/lite-selector/lite-selector/lite-selector.component.js +2 -2
  68. package/esm2015/app/plugins/model-uploader/model-previewer/model-preview.component.js +281 -166
  69. package/esm2015/app/plugins/model-uploader/model-uploader.module.js +22 -3
  70. package/esm2015/app/plugins/render/render-controls/render-controls.component.js +3 -2
  71. package/esm2015/app/plugins/render/render-dialog/render-dialog.component.js +19 -14
  72. package/esm2015/app/plugins/render/service/new-render.service.js +4 -2
  73. package/esm2015/app/plugins/room-planner/components/custom-cylinder-creator/custom-cylinder-creator.component.js +4 -2
  74. package/esm2015/app/plugins/room-planner/components/custome-shape-creator/custom-shape-creator.component.js +2 -2
  75. package/esm2015/app/plugins/room-planner/components/floorplanner/floorplanner.component.js +29 -15
  76. package/esm2015/app/plugins/room-planner/components/floorplanner/service/room.service.js +5 -2
  77. package/esm2015/app/plugins/room-planner/components/settings/settings.component.js +12 -5
  78. package/esm2015/app/plugins/room-planner/components/texture-editor/texture-editor.component.js +31 -15
  79. package/esm2015/app/plugins/room-planner/room-planner/room-planner.component.js +691 -683
  80. package/esm2015/app/plugins/threedselector/threedselector/service/build-furniture.service.js +43 -41
  81. package/esm2015/app/plugins/threedselector/threedselector/threedselector.component.js +1 -1
  82. package/esm2015/app/plugins/toolbar/draw-dialog/draw-dialog.component.js +26 -20
  83. package/esm2015/app/plugins/toolbar/save-dialog/save-dialog.component.js +2 -2
  84. package/esm2015/app/plugins/toolbar/toolbar/toolbar.component.js +15 -8
  85. package/esm2015/app/shared/loading-overlay/loading-overlay.component.js +4 -2
  86. package/esm2015/app/shared/model-dialog/model-dialog-furniture-list.component.js +3 -3
  87. package/fesm2015/colijnit-homedecorator.js +1656 -1322
  88. package/fesm2015/colijnit-homedecorator.js.map +1 -1
  89. package/package.json +1 -1
@@ -19,21 +19,22 @@ import * as i5 from "@angular/material/icon";
19
19
  import * as i6 from "@angular/platform-browser";
20
20
  import * as i7 from "./core/service/message-bus.service";
21
21
  import * as i8 from "./core/service/homedecorator.service";
22
- import * as i9 from "./shared/progress-bar/progress-bar.component";
23
- import * as i10 from "./shared/loading-overlay/loading-overlay.component";
24
- import * as i11 from "./plugins/core3d/core3d/core3d.component";
25
- import * as i12 from "./plugins/room-planner/room-planner/room-planner.component";
26
- import * as i13 from "./plugins/furniture-manager/furniture-manager/furniture-manager.component";
27
- import * as i14 from "./plugins/presets/presets/presets.component";
28
- import * as i15 from "./plugins/threedselector/threedselector/threedselector.component";
29
- import * as i16 from "./plugins/toolbar/toolbar/toolbar.component";
30
- import * as i17 from "./plugins/product-catalog/product-catalog/product-catalog.component";
31
- import * as i18 from "./plugins/lite-selector/lite-selector/lite-selector.component";
32
- import * as i19 from "./plugins/help/help/help.component";
33
- import * as i20 from "./shared/loader/hd-loader.component";
34
- import * as i21 from "@angular/common";
22
+ import * as i9 from "./core/service/homedecorator-app-event.service";
23
+ import * as i10 from "./shared/progress-bar/progress-bar.component";
24
+ import * as i11 from "./shared/loading-overlay/loading-overlay.component";
25
+ import * as i12 from "./plugins/core3d/core3d/core3d.component";
26
+ import * as i13 from "./plugins/room-planner/room-planner/room-planner.component";
27
+ import * as i14 from "./plugins/furniture-manager/furniture-manager/furniture-manager.component";
28
+ import * as i15 from "./plugins/presets/presets/presets.component";
29
+ import * as i16 from "./plugins/threedselector/threedselector/threedselector.component";
30
+ import * as i17 from "./plugins/toolbar/toolbar/toolbar.component";
31
+ import * as i18 from "./plugins/product-catalog/product-catalog/product-catalog.component";
32
+ import * as i19 from "./plugins/lite-selector/lite-selector/lite-selector.component";
33
+ import * as i20 from "./plugins/help/help/help.component";
34
+ import * as i21 from "./shared/loader/hd-loader.component";
35
+ import * as i22 from "@angular/common";
35
36
  export class HomedecoratorComponent {
36
- constructor(controllerService, appState, presetsService, screenAnalysis, _componentFactoryResolver, _iconRegistry, _domSanitizer, _messageService, _homedecoratorService) {
37
+ constructor(controllerService, appState, presetsService, screenAnalysis, _componentFactoryResolver, _iconRegistry, _domSanitizer, _messageService, _homedecoratorService, _eventService) {
37
38
  this.controllerService = controllerService;
38
39
  this.appState = appState;
39
40
  this.presetsService = presetsService;
@@ -43,6 +44,7 @@ export class HomedecoratorComponent {
43
44
  this._domSanitizer = _domSanitizer;
44
45
  this._messageService = _messageService;
45
46
  this._homedecoratorService = _homedecoratorService;
47
+ this._eventService = _eventService;
46
48
  this.showClass = true;
47
49
  this.loaded = false;
48
50
  this.title = 'MyRoomPlans';
@@ -151,6 +153,7 @@ export class HomedecoratorComponent {
151
153
  this.loaded = true;
152
154
  }
153
155
  }));
156
+ yield this._startWithEmptyRoom(true);
154
157
  });
155
158
  }
156
159
  ngOnDestroy() {
@@ -174,7 +177,10 @@ export class HomedecoratorComponent {
174
177
  'hand-pointer',
175
178
  'check',
176
179
  'move-phone-ar',
177
- 'cart-shopping-regular'
180
+ 'cart-shopping-regular',
181
+ 'pen-ruler',
182
+ 'dash-button',
183
+ 'retry-button'
178
184
  ].map(addIcon);
179
185
  }
180
186
  keyup(event) {
@@ -198,6 +204,7 @@ export class HomedecoratorComponent {
198
204
  });
199
205
  }
200
206
  _startWithEmptyRoom(switchTo2D) {
207
+ this._eventService.dirty.next(true);
201
208
  const preset = Preset.CreateModelFromInterface({ filename: 'assets/presets/empty.json' });
202
209
  this._startWithPreset(preset, switchTo2D);
203
210
  }
@@ -212,7 +219,7 @@ export class HomedecoratorComponent {
212
219
  this._messageService.emit(MessageType.LoadRoomFromPreset, preset);
213
220
  }
214
221
  }
215
- HomedecoratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HomedecoratorComponent, deps: [{ token: i1.HomedecoratorConnectorService }, { token: i2.AppStateService }, { token: i3.PresetsService }, { token: i4.ScreenSizeAnalysisService }, { token: i0.ComponentFactoryResolver }, { token: i5.MatIconRegistry }, { token: i6.DomSanitizer }, { token: i7.MessageBusService }, { token: i8.HomedecoratorService }], target: i0.ɵɵFactoryTarget.Component });
222
+ HomedecoratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HomedecoratorComponent, deps: [{ token: i1.HomedecoratorConnectorService }, { token: i2.AppStateService }, { token: i3.PresetsService }, { token: i4.ScreenSizeAnalysisService }, { token: i0.ComponentFactoryResolver }, { token: i5.MatIconRegistry }, { token: i6.DomSanitizer }, { token: i7.MessageBusService }, { token: i8.HomedecoratorService }, { token: i9.HomedecoratorAppEventService }], target: i0.ɵɵFactoryTarget.Component });
216
223
  HomedecoratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: HomedecoratorComponent, selector: "co-homedecorator", inputs: { settings: "settings" }, host: { listeners: { "document:keyup": "keyup($event)" }, properties: { "class.co-homedecorator": "this.showClass" } }, ngImport: i0, template: `
217
224
  <div class="viewport" *ngIf="loaded">
218
225
  <progress-bar></progress-bar>
@@ -239,7 +246,7 @@ HomedecoratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
239
246
  -->
240
247
  </div>
241
248
  </div>
242
- `, isInline: true, components: [{ type: i9.ProgressBarComponent, selector: "progress-bar" }, { type: i10.LoadingOverlayComponent, selector: "rp-loading-overlay" }, { type: i11.Core3dComponent, selector: "rp-core3d" }, { type: i12.RoomPlannerComponent, selector: "rp-room-planner", inputs: ["isLoading"], outputs: ["done", "showPlugin", "focusControls"] }, { type: i13.FurnitureManagerComponent, selector: "rp-furniture-manager" }, { type: i14.PresetsComponent, selector: "rp-presets" }, { type: i15.ThreedselectorComponent, selector: "rp-threedselector", inputs: ["selections"], outputs: ["customizeButtonClicked"] }, { type: i16.ToolbarComponent, selector: "rp-toolbar" }, { type: i17.ProductCatalogComponent, selector: "rp-product-catalog" }, { type: i18.LiteSelectorComponent, selector: "rp-lite-selector", inputs: ["showAnswers", "show", "showSelections", "showLabel", "canClose", "metadata", "customDimensions"], outputs: ["showChange", "answerChosen"] }, { type: i19.HelpComponent, selector: "rp-help" }, { type: i20.HdLoaderComponent, selector: "rp-loader", inputs: ["show"] }], directives: [{ type: i21.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
249
+ `, isInline: true, components: [{ type: i10.ProgressBarComponent, selector: "progress-bar" }, { type: i11.LoadingOverlayComponent, selector: "rp-loading-overlay" }, { type: i12.Core3dComponent, selector: "rp-core3d" }, { type: i13.RoomPlannerComponent, selector: "rp-room-planner", inputs: ["isLoading"], outputs: ["done", "showPlugin", "focusControls"] }, { type: i14.FurnitureManagerComponent, selector: "rp-furniture-manager" }, { type: i15.PresetsComponent, selector: "rp-presets" }, { type: i16.ThreedselectorComponent, selector: "rp-threedselector", inputs: ["selections"], outputs: ["customizeButtonClicked"] }, { type: i17.ToolbarComponent, selector: "rp-toolbar" }, { type: i18.ProductCatalogComponent, selector: "rp-product-catalog" }, { type: i19.LiteSelectorComponent, selector: "rp-lite-selector", inputs: ["showAnswers", "show", "showSelections", "showLabel", "canClose", "metadata", "customDimensions"], outputs: ["showChange", "answerChosen"] }, { type: i20.HelpComponent, selector: "rp-help" }, { type: i21.HdLoaderComponent, selector: "rp-loader", inputs: ["show"] }], directives: [{ type: i22.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
243
250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HomedecoratorComponent, decorators: [{
244
251
  type: Component,
245
252
  args: [{
@@ -273,7 +280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
273
280
  `,
274
281
  encapsulation: ViewEncapsulation.None
275
282
  }]
276
- }], ctorParameters: function () { return [{ type: i1.HomedecoratorConnectorService }, { type: i2.AppStateService }, { type: i3.PresetsService }, { type: i4.ScreenSizeAnalysisService }, { type: i0.ComponentFactoryResolver }, { type: i5.MatIconRegistry }, { type: i6.DomSanitizer }, { type: i7.MessageBusService }, { type: i8.HomedecoratorService }]; }, propDecorators: { settings: [{
283
+ }], ctorParameters: function () { return [{ type: i1.HomedecoratorConnectorService }, { type: i2.AppStateService }, { type: i3.PresetsService }, { type: i4.ScreenSizeAnalysisService }, { type: i0.ComponentFactoryResolver }, { type: i5.MatIconRegistry }, { type: i6.DomSanitizer }, { type: i7.MessageBusService }, { type: i8.HomedecoratorService }, { type: i9.HomedecoratorAppEventService }]; }, propDecorators: { settings: [{
277
284
  type: Input
278
285
  }], showClass: [{
279
286
  type: HostBinding,
@@ -282,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
282
289
  type: HostListener,
283
290
  args: ['document:keyup', ['$event']]
284
291
  }] } });
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9ob21lZGVjb3JhdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUE0QixXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFVMUksT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTFELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQzNDLE1BQU0sT0FBTyxzQkFBc0I7SUFpR2pDLFlBQ1MsaUJBQWdELEVBQ2hELFFBQXlCLEVBQ3pCLGNBQThCLEVBQzlCLGNBQXlDLEVBQ3hDLHlCQUFtRCxFQUNuRCxhQUE4QixFQUM5QixhQUEyQixFQUMzQixlQUFrQyxFQUNsQyxxQkFBMkM7UUFSNUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUErQjtRQUNoRCxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQTJCO1FBQ3hDLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFDbkQsa0JBQWEsR0FBYixhQUFhLENBQWlCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBdEY5QyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRTFCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsVUFBSyxHQUFXLGFBQWEsQ0FBQztRQUM5QixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUNoQywrQkFBMEIsR0FBWSxLQUFLLENBQUM7UUFFbkQsc0JBQXNCO1FBQ3RCLDBDQUEwQztRQUMxQyx3QkFBd0I7UUFDeEIsc0JBQXNCO1FBQ3RCLG1CQUFtQjtRQUNuQixtQkFBbUI7UUFDbkIsdUJBQXVCO1FBQ3ZCLHdDQUF3QztRQUN4Qyx1REFBdUQ7UUFDdkQsNkRBQTZEO1FBQzdELGtEQUFrRDtRQUNsRCwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLHlCQUF5QjtRQUN6Qix3QkFBd0I7UUFDeEIsZ0NBQWdDO1FBQ2hDLHlCQUF5QjtRQUN6QixpQkFBaUI7UUFDakIsMkJBQTJCO1FBQzNCLCtCQUErQjtRQUMvQiw4QkFBOEI7UUFDOUIsZ0NBQWdDO1FBQ2hDLDZCQUE2QjtRQUM3Qiw0QkFBNEI7UUFDNUIsZ0NBQWdDO1FBQ2hDLG9DQUFvQztRQUNwQyw4QkFBOEI7UUFDOUIsK0JBQStCO1FBQy9CLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLDhCQUE4QjtRQUM5QiwyQkFBMkI7UUFDM0IsZ0NBQWdDO1FBQ2hDLG9DQUFvQztRQUNwQyxnQ0FBZ0M7UUFDaEMsNEJBQTRCO1FBQzVCLG1DQUFtQztRQUNuQyxzQ0FBc0M7UUFDdEMsNEJBQTRCO1FBQzVCLE9BQU87UUFDUCwyQkFBMkI7UUFDM0Isc0NBQXNDO1FBQ3RDLHdDQUF3QztRQUN4QyxxQ0FBcUM7UUFDckMsbUNBQW1DO1FBQ25DLHVDQUF1QztRQUN2QyxPQUFPO1FBQ1AsMEJBQTBCO1FBQzFCLHNDQUFzQztRQUN0QyxvQkFBb0I7UUFDcEIsc0JBQXNCO1FBQ3RCLGtDQUFrQztRQUNsQyxPQUFPO1FBQ1AsNkJBQTZCO1FBQzdCLHNEQUFzRDtRQUN0RCw2Q0FBNkM7UUFDN0MsbUJBQW1CO1FBQ25CLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQixNQUFNO1FBQ04sS0FBSztRQUVHLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBY25DLENBQUM7SUExR0QsSUFDVyxRQUFRLENBQUMsS0FBVTtRQUM1QixJQUFJLEtBQUssRUFBRTtZQUNULElBQUksUUFBYSxDQUFDO1lBQ2xCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUM3QixRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxRQUFRLEdBQUcsS0FBSyxDQUFDO2FBQ2xCO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUE2RkssUUFBUTs7WUFDWixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQW9CLEVBQUUsRUFBRTtnQkFDdkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7Z0JBQzFDLElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQzlGLENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1lBQzlCLENBQUMsQ0FBQyxFQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7Z0JBQ2xFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFDLEVBQUUsRUFBRTtnQkFDbkYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQWUsRUFBRSxFQUFFO2dCQUM5RCxJQUFJLE1BQU0sRUFBRTtvQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDcEI7WUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsRUFBRSxDQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25IO1lBQ0UsY0FBYztZQUNkLGVBQWU7WUFDZixrQkFBa0I7WUFDbEIseUJBQXlCO1lBQ3pCLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsWUFBWTtZQUNaLFlBQVk7WUFDWixhQUFhO1lBQ2IsZUFBZTtZQUNmLGFBQWE7WUFDYixZQUFZO1lBQ1osY0FBYztZQUNkLE9BQU87WUFDUCxlQUFlO1lBQ2YsdUJBQXVCO1NBQ3hCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFHRCxLQUFLLENBQUMsS0FBb0I7UUFDeEIsTUFBTSxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFDLEdBQXdELEtBQUssQ0FBQztRQUMzRixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxPQUFPLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUMzRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxPQUFPLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUMzRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLElBQUksTUFBTSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxDQUFDLEVBQUU7WUFDcEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3ZELElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDbkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLGdCQUFnQixDQUFDLENBQUM7YUFDL0U7U0FDRjtJQUNILENBQUM7SUFFYSxZQUFZLENBQUMsUUFBYTs7WUFDdEMsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxDQUFDO0tBQUE7SUFFTyxtQkFBbUIsQ0FBQyxVQUFtQjtRQUM3QyxNQUFNLE1BQU0sR0FBVyxNQUFNLENBQUMsd0JBQXdCLENBQUMsRUFBQyxRQUFRLEVBQUUsMkJBQTJCLEVBQUMsQ0FBQyxDQUFDO1FBQ2hHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxhQUFzQixLQUFLO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztTQUN2RTthQUFNO1lBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BFLENBQUM7O29IQXZNVSxzQkFBc0I7d0dBQXRCLHNCQUFzQixrTkE3QnZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVDs0RkFHVSxzQkFBc0I7a0JBL0JsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQ7b0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDOzBYQUlZLFFBQVE7c0JBRGxCLEtBQUs7Z0JBa0JDLFNBQVM7c0JBRGYsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBbUpyQyxLQUFLO3NCQURKLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXRJY29uUmVnaXN0cnl9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtBcHBTdGF0ZVNlcnZpY2V9IGZyb20gJy4vY29yZS9zZXJ2aWNlL2FwcC1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtQcmVzZXRzU2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvcHJlc2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7U2NyZWVuU2l6ZUFuYWx5c2lzU2VydmljZX0gZnJvbSAnLi9zaGFyZWQvc2NyZWVuLXNpemUtYW5hbHlzaXMvc2NyZWVuLXNpemUtYW5hbHlzaXMuc2VydmljZSc7XHJcbmltcG9ydCB7TWVzc2FnZUJ1c1NlcnZpY2V9IGZyb20gJy4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NjcmVlblNpemVJbmZvfSBmcm9tICcuL3NoYXJlZC9zY3JlZW4tc2l6ZS1hbmFseXNpcy9zY3JlZW4tc2l6ZS1pbmZvJztcclxuaW1wb3J0IHtNZXNzYWdlVHlwZX0gZnJvbSAnLi9jb3JlL2VudW0vbWVzc2FnZS10eXBlLmVudW0nO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JTZXJ2aWNlfSBmcm9tICcuL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ByZXNldH0gZnJvbSAnLi9jb3JlL21vZGVsL3ByZXNldCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLWhvbWVkZWNvcmF0b3InLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidmlld3BvcnRcIiAqbmdJZj1cImxvYWRlZFwiPlxyXG4gICAgICA8cHJvZ3Jlc3MtYmFyPjwvcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICA8cnAtbG9hZGluZy1vdmVybGF5PlxyXG4gICAgICAgICAgPHJwLWNvcmUzZD48L3JwLWNvcmUzZD5cclxuICAgICAgICAgIDxycC1yb29tLXBsYW5uZXI+PC9ycC1yb29tLXBsYW5uZXI+XHJcbiAgICAgICAgICA8cnAtZnVybml0dXJlLW1hbmFnZXI+PC9ycC1mdXJuaXR1cmUtbWFuYWdlcj5cclxuICAgICAgICAgIDxycC1wcmVzZXRzPjwvcnAtcHJlc2V0cz5cclxuICAgICAgICAgIDxycC10aHJlZWRzZWxlY3Rvcj48L3JwLXRocmVlZHNlbGVjdG9yPlxyXG4gICAgICAgICAgPHJwLXRvb2xiYXI+PC9ycC10b29sYmFyPlxyXG4gICAgICAgICAgPHJwLXByb2R1Y3QtY2F0YWxvZz48L3JwLXByb2R1Y3QtY2F0YWxvZz5cclxuICAgICAgICAgIDxycC1saXRlLXNlbGVjdG9yPjwvcnAtbGl0ZS1zZWxlY3Rvcj5cclxuICAgICAgICAgIDxycC1oZWxwPjwvcnAtaGVscD5cclxuICAgICAgPC9ycC1sb2FkaW5nLW92ZXJsYXk+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxycC1sb2FkZXIgW3Nob3ddPVwiY29udHJvbGxlclNlcnZpY2Uuc2hvdWxkU2hvd0xvYWRlclwiPjwvcnAtbG9hZGVyPlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3VsZFNob3dMYW5kc2NhcGVNZXNzYWdlXCIgY2xhc3M9XCJtb2JpbGUtcG9ydHJhaXQtb3ZlcmxheVwiPlxyXG48IS0tXHJcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwidGlsdC1waG9uZVwiIGNsYXNzPVwidGlsdC1waG9uZS1pY29uXCI+PC9tYXQtaWNvbj5cclxuLS0+XHJcbiAgICAgIDxkaXY+XHJcbjwhLS1cclxuICAgICAgICB7eydQTEVBU0VfVVNFX1BIT05FX0lOX0xBTkRTQ0FQRV9NT0RFJyB8IGxvY2FsaXplfX1cclxuLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb21lZGVjb3JhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgc2V0dGluZ3ModmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGxldCBzZXR0aW5nczogYW55O1xyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHNldHRpbmdzID0gSlNPTi5wYXJzZSh2YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2V0dGluZ3MgPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9zZXRTZXR0aW5ncyhzZXR0aW5ncyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNldHRpbmdzKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWhvbWVkZWNvcmF0b3InKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRpdGxlOiBzdHJpbmcgPSAnTXlSb29tUGxhbnMnO1xyXG4gIHB1YmxpYyBwaG9uZVNpemVTY3JlZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNQb3J0cmFpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0lPbmVMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvdWxkU2hvd0xhbmRzY2FwZU1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gcHVibGljIHNldHRpbmdzID0ge1xyXG4gIC8vICAgJ3VybCc6ICdodHRwczovL2RlbW8xLmlvbmVjbG91ZC5ubC8nLFxyXG4gIC8vICAgJ3NjaGVtYSc6ICcxMzQ1OTInLFxyXG4gIC8vICAgJ3ZlcnNpb24nOiAnMjUzJyxcclxuICAvLyAgICdicmFuY2gnOiAnMScsXHJcbiAgLy8gICAnY3VycmVuY3knOiAzLFxyXG4gIC8vICAgJ3VzZUdyb3Vwcyc6IHRydWUsXHJcbiAgLy8gICAnYXNzZXRJbmRleCc6ICdpbmRleC1kZXZlbG9wLmpzb24nLFxyXG4gIC8vICAgJ2Fzc2V0UGF0aCc6ICdodHRwczovL2Nkbi5pb25lMzYwLmNvbS9jb250ZW50NDMvJyxcclxuICAvLyAgICd0aHJlZURBc3NldFBhdGgnOiAnaHR0cHM6Ly9jZG4uaW9uZTM2MC5jb20vY29udGVudDQzLycsXHJcbiAgLy8gICAnYXBpVXJsJzogJ2h0dHBzOi8vbXlyb29tcGxhbnMuY29saWpuLWl0Lm5sJyxcclxuICAvLyAgICd0aW1lb3V0SW5Ncyc6IDMwMDAwLFxyXG4gIC8vICAgJ2xhbmd1YWdlQ29kZSc6ICdOTCcsXHJcbiAgLy8gICAndXNlcm5hbWUnOiAncnViZW4nLFxyXG4gIC8vICAgJ3Bhc3N3b3JkJzogJ2dlZW4nLFxyXG4gIC8vICAgJ3VzZUxvZ2luRW5jcnlwdGlvbic6IHRydWUsXHJcbiAgLy8gICAnand0RW5hYmxlZCc6IGZhbHNlLFxyXG4gIC8vICAgJ29wdGlvbnMnOiB7XHJcbiAgLy8gICAgICdkZXZlbG9wbWVudCc6IHRydWUsXHJcbiAgLy8gICAgICdzaG93U3RvY2tTdGF0dXMnOiB0cnVlLFxyXG4gIC8vICAgICAnc2hvd1pvb21CdXR0b24nOiB0cnVlLFxyXG4gIC8vICAgICAnc2hvd0FzQ29uZmlndXJlZCc6IHRydWUsXHJcbiAgLy8gICAgICdzaG93VGFnRmlsdGVyJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dBckJ1dHRvbic6IHRydWUsXHJcbiAgLy8gICAgICdzaG93M0RXYXRlcm1hcmsnOiBmYWxzZSxcclxuICAvLyAgICAgJ3Nob3dDYXB0aW9uQWRkQnV0dG9uJzogdHJ1ZSxcclxuICAvLyAgICAgJ2JvdHRvbUFuc3dlcnMnOiBmYWxzZSxcclxuICAvLyAgICAgJ2luc3RhbnRSZXBsYWNlJzogZmFsc2UsXHJcbiAgLy8gICAgICdhckVuYWJsZWQnOiB0cnVlLFxyXG4gIC8vICAgICAndnJFbmFibGVkJzogZmFsc2UsXHJcbiAgLy8gICAgICd4ckRlYnVnJzogZmFsc2UsXHJcbiAgLy8gICAgICdpbmxpbmVBbnN3ZXJzJzogZmFsc2UsXHJcbiAgLy8gICAgICdvbmx5VGhyZWVEJzogZmFsc2UsXHJcbiAgLy8gICAgICdzaG93UHJpY2VGaWx0ZXInOiBmYWxzZSxcclxuICAvLyAgICAgJ2NhbWVyYVBvc2l0aW9uRml4ZWQnOiBmYWxzZSxcclxuICAvLyAgICAgJ2luc3RhbnRFZGl0TWVudSc6IGZhbHNlLFxyXG4gIC8vICAgICAndXNlTmV3UmVuZGVyJzogdHJ1ZSxcclxuICAvLyAgICAgJ3VzZVJlbmRlcldlYnNvY2tldCc6IGZhbHNlLFxyXG4gIC8vICAgICAnc2hvd1Jvb21Eb3dubG9hZEJ1dHRvbic6IHRydWUsXHJcbiAgLy8gICAgICdzZWFyY2hPblN0YXJ0JzogdHJ1ZVxyXG4gIC8vICAgfSxcclxuICAvLyAgICdjYXRhbG9nUGFyYW1ldGVycyc6IHtcclxuICAvLyAgICAgJ3Nob3dDdXN0b21pemVkQXJ0aWNsZXMnOiB0cnVlLFxyXG4gIC8vICAgICAnc2hvd0NvbmZpZ3VyYWJsZUFydGljbGVzJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dJbmFjdGl2ZUFydGljbGVzJzogZmFsc2UsXHJcbiAgLy8gICAgICdzaG93UmVndWxhckFydGljbGVzJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dDb21wb3NpdGlvbkFydGljbGVzJzogZmFsc2VcclxuICAvLyAgIH0sXHJcbiAgLy8gICAncmVuZGVyUGFyYW1ldGVycyc6IHtcclxuICAvLyAgICAgJ2hvc3QnOiAncmVuZGVyMS5jb2xpam4taXQubmwnLFxyXG4gIC8vICAgICAncG9ydCc6IDg0NDMsXHJcbiAgLy8gICAgICdzZWN1cmUnOiB0cnVlLFxyXG4gIC8vICAgICAncmVuZGVyTW9kZSc6ICdyZW5kZXJfcm9vbSdcclxuICAvLyAgIH0sXHJcbiAgLy8gICAnbmV3UmVuZGVyUGFyYW1ldGVycyc6IHtcclxuICAvLyAgICAgJ3dlYnNvY2tldCc6ICd3c3M6Ly9yZW5kZXIxLmNvbGlqbi1pdC5ubDo4MDgzJyxcclxuICAvLyAgICAgJ2hvc3QnOiAnaHR0cHM6Ly9yZW5kZXIuY29saWpuLWl0Lm5sJyxcclxuICAvLyAgICAgJ3BvcnQnOiA0NDMsXHJcbiAgLy8gICAgICdpdGVyYXRpb25zJzogMTAwLFxyXG4gIC8vICAgICAnaW1hZ2VXaWR0aCc6IDE5MjAsXHJcbiAgLy8gICAgICdpbWFnZUhlaWdodCc6IDEwODAsXHJcbiAgLy8gICAgICdoZHJpSW50ZW5zaXR5JzogMS4xXHJcbiAgLy8gICB9XHJcbiAgLy8gfTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF9zZXR0aW5nczogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb250cm9sbGVyU2VydmljZTogSG9tZWRlY29yYXRvckNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcclxuICAgIHB1YmxpYyBwcmVzZXRzU2VydmljZTogUHJlc2V0c1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2NyZWVuQW5hbHlzaXM6IFNjcmVlblNpemVBbmFseXNpc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX2ljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgcHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZUJ1c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9ob21lZGVjb3JhdG9yU2VydmljZTogSG9tZWRlY29yYXRvclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5yZWdpc3RlckN1c3RvbUljb25zKCk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuc2NyZWVuQW5hbHlzaXMuc2NyZWVuU2l6ZUNoYW5nZWQuc3Vic2NyaWJlKChpbmZvOiBTY3JlZW5TaXplSW5mbykgPT4ge1xyXG4gICAgICAgIHRoaXMucGhvbmVTaXplU2NyZWVuID0gaW5mby5pc1Bob25lU2l6ZTtcclxuICAgICAgICB0aGlzLmlzUG9ydHJhaXRNb2RlID0gaW5mby5pc1BvcnRyYWl0TW9kZTtcclxuICAgICAgICB0aGlzLnNob3VsZFNob3dMYW5kc2NhcGVNZXNzYWdlID0gdGhpcy5zY3JlZW5BbmFseXNpcy5pc01vYmlsZURldmljZSAmJiB0aGlzLmlzUG9ydHJhaXRNb2RlO1xyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlKE1lc3NhZ2VUeXBlLlNob3dJT25lTG9hZGluZ0luZGljYXRvciwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0lPbmVMb2FkZXIgPSB0cnVlO1xyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlKE1lc3NhZ2VUeXBlLkhpZGVJT25lTG9hZGluZ0luZGljYXRvciwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0lPbmVMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1YnNjcmliZShNZXNzYWdlVHlwZS5TdGFydFdpdGhFbXB0eVJvb20sICgpID0+IHtcclxuICAgICAgICB0aGlzLl9zdGFydFdpdGhFbXB0eVJvb20odHJ1ZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zdWJzY3JpYmUoTWVzc2FnZVR5cGUuU3RhcnRXaXRoUHJlc2V0LCAoe3ByZXNldCwgc3dpdGNoVG8yRH0pID0+IHtcclxuICAgICAgICB0aGlzLl9zdGFydFdpdGhQcmVzZXQocHJlc2V0LCBzd2l0Y2hUbzJEKTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX2hvbWVkZWNvcmF0b3JTZXJ2aWNlLmxvYWRlZC5zdWJzY3JpYmUoKGxvYWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJDdXN0b21JY29ucygpIHtcclxuICAgIGNvbnN0IGFkZEljb24gPSBrZXkgPT5cclxuICAgICAgdGhpcy5faWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb24oa2V5LCB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGBhc3NldHMvaWNvbnMvJHtrZXl9LnN2Z2ApKTtcclxuICAgIFtcclxuICAgICAgJ2N1YmUtb3V0bGluZScsXHJcbiAgICAgICdjdWJlLXVuZm9sZGVkJyxcclxuICAgICAgJ2dvb2dsZS1jYXJkYm9hcmQnLFxyXG4gICAgICAnZ29vZ2xlLWNhcmRib2FyZC1vcmFuZ2UnLFxyXG4gICAgICAnc3RyZWV0LXZpZXcnLFxyXG4gICAgICAnc3RyZWV0LXZpZXctb3JhbmdlJyxcclxuICAgICAgJ21hZ2ljLXdhbmQnLFxyXG4gICAgICAnYWRkLWJ1dHRvbicsXHJcbiAgICAgICdlZGl0LWJ1dHRvbicsXHJcbiAgICAgICdkZWxldGUtYnV0dG9uJyxcclxuICAgICAgJ3N3YXAtYnV0dG9uJyxcclxuICAgICAgJ3RpbHQtcGhvbmUnLFxyXG4gICAgICAnaGFuZC1wb2ludGVyJyxcclxuICAgICAgJ2NoZWNrJyxcclxuICAgICAgJ21vdmUtcGhvbmUtYXInLFxyXG4gICAgICAnY2FydC1zaG9wcGluZy1yZWd1bGFyJ1xyXG4gICAgXS5tYXAoYWRkSWNvbik7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXHJcbiAga2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IHtjb2RlLCBjdHJsS2V5LCBhbHRLZXl9OiB7IGNvZGU6IHN0cmluZywgY3RybEtleTogYm9vbGVhbiwgYWx0S2V5OiBib29sZWFuIH0gPSBldmVudDtcclxuICAgIGlmICghdGhpcy5wcmVzZXRzU2VydmljZS5pc0xvYWRpbmcgJiYgdGhpcy5hcHBTdGF0ZS5jYW5VbmRvKCkgJiYgY3RybEtleSAmJiBjb2RlID09PSAnS2V5WicpIHtcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5VbmRvKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5wcmVzZXRzU2VydmljZS5pc0xvYWRpbmcgJiYgdGhpcy5hcHBTdGF0ZS5jYW5SZWRvKCkgJiYgY3RybEtleSAmJiBjb2RlID09PSAnS2V5WScpIHtcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5SZWRvKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5wcmVzZXRzU2VydmljZS5pc0xvYWRpbmcgJiYgYWx0S2V5ICYmIChjb2RlID09PSAnS2V5SCcgfHwgY29kZSA9PT0gJ0tleVgnKSkge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLkhpZGVMZWZ0U2lkZWJhcik7XHJcbiAgICAgIGlmIChjb2RlID09PSAnS2V5SCcpIHtcclxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlNob3dGdXJuaXR1cmVTaWRlYmFyLCAnVGVzdCBGdXJuaXR1cmUnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfc2V0U2V0dGluZ3Moc2V0dGluZ3M6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5faG9tZWRlY29yYXRvclNlcnZpY2UuaW5pdChzZXR0aW5ncywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdGFydFdpdGhFbXB0eVJvb20oc3dpdGNoVG8yRDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgcHJlc2V0OiBQcmVzZXQgPSBQcmVzZXQuQ3JlYXRlTW9kZWxGcm9tSW50ZXJmYWNlKHtmaWxlbmFtZTogJ2Fzc2V0cy9wcmVzZXRzL2VtcHR5Lmpzb24nfSk7XHJcbiAgICB0aGlzLl9zdGFydFdpdGhQcmVzZXQocHJlc2V0LCBzd2l0Y2hUbzJEKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0YXJ0V2l0aFByZXNldChwcmVzZXQ6IFByZXNldCwgc3dpdGNoVG8yRDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlJlc2V0Um9vbXBsYW4pO1xyXG4gICAgaWYgKHN3aXRjaFRvMkQpIHtcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5TZXQyRFZpZXcsIHtzZW5kVXBkYXRlczogdHJ1ZX0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5TZXQzRFZpZXcsIHtzZW5kVXBkYXRlczogdHJ1ZX0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5Mb2FkUm9vbUZyb21QcmVzZXQsIHByZXNldCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9ob21lZGVjb3JhdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUE0QixXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFVMUksT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTFELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0MzQyxNQUFNLE9BQU8sc0JBQXNCO0lBaUdqQyxZQUNTLGlCQUFnRCxFQUNoRCxRQUF5QixFQUN6QixjQUE4QixFQUM5QixjQUF5QyxFQUN4Qyx5QkFBbUQsRUFDbkQsYUFBOEIsRUFDOUIsYUFBMkIsRUFDM0IsZUFBa0MsRUFDbEMscUJBQTJDLEVBQzNDLGFBQTJDO1FBVDVDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBK0I7UUFDaEQsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUEyQjtRQUN4Qyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBQ25ELGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFzQjtRQUMzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBOEI7UUF2RjlDLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFMUIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixVQUFLLEdBQVcsYUFBYSxDQUFDO1FBQzlCLG9CQUFlLEdBQVksS0FB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YUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDO3FhQUlZLFFBQVE7c0JBRGxCLEtBQUs7Z0JBa0JDLFNBQVM7c0JBRGYsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBd0pyQyxLQUFLO3NCQURKLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtNYXRJY29uUmVnaXN0cnl9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtBcHBTdGF0ZVNlcnZpY2V9IGZyb20gJy4vY29yZS9zZXJ2aWNlL2FwcC1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtQcmVzZXRzU2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvcHJlc2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtIb21lZGVjb3JhdG9yQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7U2NyZWVuU2l6ZUFuYWx5c2lzU2VydmljZX0gZnJvbSAnLi9zaGFyZWQvc2NyZWVuLXNpemUtYW5hbHlzaXMvc2NyZWVuLXNpemUtYW5hbHlzaXMuc2VydmljZSc7XHJcbmltcG9ydCB7TWVzc2FnZUJ1c1NlcnZpY2V9IGZyb20gJy4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NjcmVlblNpemVJbmZvfSBmcm9tICcuL3NoYXJlZC9zY3JlZW4tc2l6ZS1hbmFseXNpcy9zY3JlZW4tc2l6ZS1pbmZvJztcclxuaW1wb3J0IHtNZXNzYWdlVHlwZX0gZnJvbSAnLi9jb3JlL2VudW0vbWVzc2FnZS10eXBlLmVudW0nO1xyXG5pbXBvcnQge0hvbWVkZWNvcmF0b3JTZXJ2aWNlfSBmcm9tICcuL2NvcmUvc2VydmljZS9ob21lZGVjb3JhdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge1ByZXNldH0gZnJvbSAnLi9jb3JlL21vZGVsL3ByZXNldCc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvckFwcEV2ZW50U2VydmljZX0gZnJvbSAnLi9jb3JlL3NlcnZpY2UvaG9tZWRlY29yYXRvci1hcHAtZXZlbnQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLWhvbWVkZWNvcmF0b3InLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidmlld3BvcnRcIiAqbmdJZj1cImxvYWRlZFwiPlxyXG4gICAgICA8cHJvZ3Jlc3MtYmFyPjwvcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICA8cnAtbG9hZGluZy1vdmVybGF5PlxyXG4gICAgICAgICAgPHJwLWNvcmUzZD48L3JwLWNvcmUzZD5cclxuICAgICAgICAgIDxycC1yb29tLXBsYW5uZXI+PC9ycC1yb29tLXBsYW5uZXI+XHJcbiAgICAgICAgICA8cnAtZnVybml0dXJlLW1hbmFnZXI+PC9ycC1mdXJuaXR1cmUtbWFuYWdlcj5cclxuICAgICAgICAgIDxycC1wcmVzZXRzPjwvcnAtcHJlc2V0cz5cclxuICAgICAgICAgIDxycC10aHJlZWRzZWxlY3Rvcj48L3JwLXRocmVlZHNlbGVjdG9yPlxyXG4gICAgICAgICAgPHJwLXRvb2xiYXI+PC9ycC10b29sYmFyPlxyXG4gICAgICAgICAgPHJwLXByb2R1Y3QtY2F0YWxvZz48L3JwLXByb2R1Y3QtY2F0YWxvZz5cclxuICAgICAgICAgIDxycC1saXRlLXNlbGVjdG9yPjwvcnAtbGl0ZS1zZWxlY3Rvcj5cclxuICAgICAgICAgIDxycC1oZWxwPjwvcnAtaGVscD5cclxuICAgICAgPC9ycC1sb2FkaW5nLW92ZXJsYXk+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxycC1sb2FkZXIgW3Nob3ddPVwiY29udHJvbGxlclNlcnZpY2Uuc2hvdWxkU2hvd0xvYWRlclwiPjwvcnAtbG9hZGVyPlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3VsZFNob3dMYW5kc2NhcGVNZXNzYWdlXCIgY2xhc3M9XCJtb2JpbGUtcG9ydHJhaXQtb3ZlcmxheVwiPlxyXG48IS0tXHJcbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwidGlsdC1waG9uZVwiIGNsYXNzPVwidGlsdC1waG9uZS1pY29uXCI+PC9tYXQtaWNvbj5cclxuLS0+XHJcbiAgICAgIDxkaXY+XHJcbjwhLS1cclxuICAgICAgICB7eydQTEVBU0VfVVNFX1BIT05FX0lOX0xBTkRTQ0FQRV9NT0RFJyB8IGxvY2FsaXplfX1cclxuLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb21lZGVjb3JhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgc2V0dGluZ3ModmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGxldCBzZXR0aW5nczogYW55O1xyXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHNldHRpbmdzID0gSlNPTi5wYXJzZSh2YWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2V0dGluZ3MgPSB2YWx1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9zZXRTZXR0aW5ncyhzZXR0aW5ncyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNldHRpbmdzKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLWhvbWVkZWNvcmF0b3InKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRpdGxlOiBzdHJpbmcgPSAnTXlSb29tUGxhbnMnO1xyXG4gIHB1YmxpYyBwaG9uZVNpemVTY3JlZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNQb3J0cmFpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0lPbmVMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvdWxkU2hvd0xhbmRzY2FwZU1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gcHVibGljIHNldHRpbmdzID0ge1xyXG4gIC8vICAgJ3VybCc6ICdodHRwczovL2RlbW8xLmlvbmVjbG91ZC5ubC8nLFxyXG4gIC8vICAgJ3NjaGVtYSc6ICcxMzQ1OTInLFxyXG4gIC8vICAgJ3ZlcnNpb24nOiAnMjUzJyxcclxuICAvLyAgICdicmFuY2gnOiAnMScsXHJcbiAgLy8gICAnY3VycmVuY3knOiAzLFxyXG4gIC8vICAgJ3VzZUdyb3Vwcyc6IHRydWUsXHJcbiAgLy8gICAnYXNzZXRJbmRleCc6ICdpbmRleC1kZXZlbG9wLmpzb24nLFxyXG4gIC8vICAgJ2Fzc2V0UGF0aCc6ICdodHRwczovL2Nkbi5pb25lMzYwLmNvbS9jb250ZW50NDMvJyxcclxuICAvLyAgICd0aHJlZURBc3NldFBhdGgnOiAnaHR0cHM6Ly9jZG4uaW9uZTM2MC5jb20vY29udGVudDQzLycsXHJcbiAgLy8gICAnYXBpVXJsJzogJ2h0dHBzOi8vbXlyb29tcGxhbnMuY29saWpuLWl0Lm5sJyxcclxuICAvLyAgICd0aW1lb3V0SW5Ncyc6IDMwMDAwLFxyXG4gIC8vICAgJ2xhbmd1YWdlQ29kZSc6ICdOTCcsXHJcbiAgLy8gICAndXNlcm5hbWUnOiAncnViZW4nLFxyXG4gIC8vICAgJ3Bhc3N3b3JkJzogJ2dlZW4nLFxyXG4gIC8vICAgJ3VzZUxvZ2luRW5jcnlwdGlvbic6IHRydWUsXHJcbiAgLy8gICAnand0RW5hYmxlZCc6IGZhbHNlLFxyXG4gIC8vICAgJ29wdGlvbnMnOiB7XHJcbiAgLy8gICAgICdkZXZlbG9wbWVudCc6IHRydWUsXHJcbiAgLy8gICAgICdzaG93U3RvY2tTdGF0dXMnOiB0cnVlLFxyXG4gIC8vICAgICAnc2hvd1pvb21CdXR0b24nOiB0cnVlLFxyXG4gIC8vICAgICAnc2hvd0FzQ29uZmlndXJlZCc6IHRydWUsXHJcbiAgLy8gICAgICdzaG93VGFnRmlsdGVyJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dBckJ1dHRvbic6IHRydWUsXHJcbiAgLy8gICAgICdzaG93M0RXYXRlcm1hcmsnOiBmYWxzZSxcclxuICAvLyAgICAgJ3Nob3dDYXB0aW9uQWRkQnV0dG9uJzogdHJ1ZSxcclxuICAvLyAgICAgJ2JvdHRvbUFuc3dlcnMnOiBmYWxzZSxcclxuICAvLyAgICAgJ2luc3RhbnRSZXBsYWNlJzogZmFsc2UsXHJcbiAgLy8gICAgICdhckVuYWJsZWQnOiB0cnVlLFxyXG4gIC8vICAgICAndnJFbmFibGVkJzogZmFsc2UsXHJcbiAgLy8gICAgICd4ckRlYnVnJzogZmFsc2UsXHJcbiAgLy8gICAgICdpbmxpbmVBbnN3ZXJzJzogZmFsc2UsXHJcbiAgLy8gICAgICdvbmx5VGhyZWVEJzogZmFsc2UsXHJcbiAgLy8gICAgICdzaG93UHJpY2VGaWx0ZXInOiBmYWxzZSxcclxuICAvLyAgICAgJ2NhbWVyYVBvc2l0aW9uRml4ZWQnOiBmYWxzZSxcclxuICAvLyAgICAgJ2luc3RhbnRFZGl0TWVudSc6IGZhbHNlLFxyXG4gIC8vICAgICAndXNlTmV3UmVuZGVyJzogdHJ1ZSxcclxuICAvLyAgICAgJ3VzZVJlbmRlcldlYnNvY2tldCc6IGZhbHNlLFxyXG4gIC8vICAgICAnc2hvd1Jvb21Eb3dubG9hZEJ1dHRvbic6IHRydWUsXHJcbiAgLy8gICAgICdzZWFyY2hPblN0YXJ0JzogdHJ1ZVxyXG4gIC8vICAgfSxcclxuICAvLyAgICdjYXRhbG9nUGFyYW1ldGVycyc6IHtcclxuICAvLyAgICAgJ3Nob3dDdXN0b21pemVkQXJ0aWNsZXMnOiB0cnVlLFxyXG4gIC8vICAgICAnc2hvd0NvbmZpZ3VyYWJsZUFydGljbGVzJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dJbmFjdGl2ZUFydGljbGVzJzogZmFsc2UsXHJcbiAgLy8gICAgICdzaG93UmVndWxhckFydGljbGVzJzogdHJ1ZSxcclxuICAvLyAgICAgJ3Nob3dDb21wb3NpdGlvbkFydGljbGVzJzogZmFsc2VcclxuICAvLyAgIH0sXHJcbiAgLy8gICAncmVuZGVyUGFyYW1ldGVycyc6IHtcclxuICAvLyAgICAgJ2hvc3QnOiAncmVuZGVyMS5jb2xpam4taXQubmwnLFxyXG4gIC8vICAgICAncG9ydCc6IDg0NDMsXHJcbiAgLy8gICAgICdzZWN1cmUnOiB0cnVlLFxyXG4gIC8vICAgICAncmVuZGVyTW9kZSc6ICdyZW5kZXJfcm9vbSdcclxuICAvLyAgIH0sXHJcbiAgLy8gICAnbmV3UmVuZGVyUGFyYW1ldGVycyc6IHtcclxuICAvLyAgICAgJ3dlYnNvY2tldCc6ICd3c3M6Ly9yZW5kZXIxLmNvbGlqbi1pdC5ubDo4MDgzJyxcclxuICAvLyAgICAgJ2hvc3QnOiAnaHR0cHM6Ly9yZW5kZXIuY29saWpuLWl0Lm5sJyxcclxuICAvLyAgICAgJ3BvcnQnOiA0NDMsXHJcbiAgLy8gICAgICdpdGVyYXRpb25zJzogMTAwLFxyXG4gIC8vICAgICAnaW1hZ2VXaWR0aCc6IDE5MjAsXHJcbiAgLy8gICAgICdpbWFnZUhlaWdodCc6IDEwODAsXHJcbiAgLy8gICAgICdoZHJpSW50ZW5zaXR5JzogMS4xXHJcbiAgLy8gICB9XHJcbiAgLy8gfTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF9zZXR0aW5nczogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjb250cm9sbGVyU2VydmljZTogSG9tZWRlY29yYXRvckNvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgYXBwU3RhdGU6IEFwcFN0YXRlU2VydmljZSxcclxuICAgIHB1YmxpYyBwcmVzZXRzU2VydmljZTogUHJlc2V0c1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2NyZWVuQW5hbHlzaXM6IFNjcmVlblNpemVBbmFseXNpc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX2ljb25SZWdpc3RyeTogTWF0SWNvblJlZ2lzdHJ5LFxyXG4gICAgcHJpdmF0ZSBfZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZUJ1c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9ob21lZGVjb3JhdG9yU2VydmljZTogSG9tZWRlY29yYXRvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9ldmVudFNlcnZpY2U6IEhvbWVkZWNvcmF0b3JBcHBFdmVudFNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5yZWdpc3RlckN1c3RvbUljb25zKCk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuc2NyZWVuQW5hbHlzaXMuc2NyZWVuU2l6ZUNoYW5nZWQuc3Vic2NyaWJlKChpbmZvOiBTY3JlZW5TaXplSW5mbykgPT4ge1xyXG4gICAgICAgIHRoaXMucGhvbmVTaXplU2NyZWVuID0gaW5mby5pc1Bob25lU2l6ZTtcclxuICAgICAgICB0aGlzLmlzUG9ydHJhaXRNb2RlID0gaW5mby5pc1BvcnRyYWl0TW9kZTtcclxuICAgICAgICB0aGlzLnNob3VsZFNob3dMYW5kc2NhcGVNZXNzYWdlID0gdGhpcy5zY3JlZW5BbmFseXNpcy5pc01vYmlsZURldmljZSAmJiB0aGlzLmlzUG9ydHJhaXRNb2RlO1xyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlKE1lc3NhZ2VUeXBlLlNob3dJT25lTG9hZGluZ0luZGljYXRvciwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0lPbmVMb2FkZXIgPSB0cnVlO1xyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc3Vic2NyaWJlKE1lc3NhZ2VUeXBlLkhpZGVJT25lTG9hZGluZ0luZGljYXRvciwgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2hvd0lPbmVMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnN1YnNjcmliZShNZXNzYWdlVHlwZS5TdGFydFdpdGhFbXB0eVJvb20sICgpID0+IHtcclxuICAgICAgICB0aGlzLl9zdGFydFdpdGhFbXB0eVJvb20odHJ1ZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zdWJzY3JpYmUoTWVzc2FnZVR5cGUuU3RhcnRXaXRoUHJlc2V0LCAoe3ByZXNldCwgc3dpdGNoVG8yRH0pID0+IHtcclxuICAgICAgICB0aGlzLl9zdGFydFdpdGhQcmVzZXQocHJlc2V0LCBzd2l0Y2hUbzJEKTtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX2hvbWVkZWNvcmF0b3JTZXJ2aWNlLmxvYWRlZC5zdWJzY3JpYmUoKGxvYWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgYXdhaXQgdGhpcy5fc3RhcnRXaXRoRW1wdHlSb29tKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJDdXN0b21JY29ucygpIHtcclxuICAgIGNvbnN0IGFkZEljb24gPSBrZXkgPT5cclxuICAgICAgdGhpcy5faWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb24oa2V5LCB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKGBhc3NldHMvaWNvbnMvJHtrZXl9LnN2Z2ApKTtcclxuICAgIFtcclxuICAgICAgJ2N1YmUtb3V0bGluZScsXHJcbiAgICAgICdjdWJlLXVuZm9sZGVkJyxcclxuICAgICAgJ2dvb2dsZS1jYXJkYm9hcmQnLFxyXG4gICAgICAnZ29vZ2xlLWNhcmRib2FyZC1vcmFuZ2UnLFxyXG4gICAgICAnc3RyZWV0LXZpZXcnLFxyXG4gICAgICAnc3RyZWV0LXZpZXctb3JhbmdlJyxcclxuICAgICAgJ21hZ2ljLXdhbmQnLFxyXG4gICAgICAnYWRkLWJ1dHRvbicsXHJcbiAgICAgICdlZGl0LWJ1dHRvbicsXHJcbiAgICAgICdkZWxldGUtYnV0dG9uJyxcclxuICAgICAgJ3N3YXAtYnV0dG9uJyxcclxuICAgICAgJ3RpbHQtcGhvbmUnLFxyXG4gICAgICAnaGFuZC1wb2ludGVyJyxcclxuICAgICAgJ2NoZWNrJyxcclxuICAgICAgJ21vdmUtcGhvbmUtYXInLFxyXG4gICAgICAnY2FydC1zaG9wcGluZy1yZWd1bGFyJyxcclxuICAgICAgJ3Blbi1ydWxlcicsXHJcbiAgICAgICdkYXNoLWJ1dHRvbicsXHJcbiAgICAgICdyZXRyeS1idXR0b24nXHJcbiAgICBdLm1hcChhZGRJY29uKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwJywgWyckZXZlbnQnXSlcclxuICBrZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3Qge2NvZGUsIGN0cmxLZXksIGFsdEtleX06IHsgY29kZTogc3RyaW5nLCBjdHJsS2V5OiBib29sZWFuLCBhbHRLZXk6IGJvb2xlYW4gfSA9IGV2ZW50O1xyXG4gICAgaWYgKCF0aGlzLnByZXNldHNTZXJ2aWNlLmlzTG9hZGluZyAmJiB0aGlzLmFwcFN0YXRlLmNhblVuZG8oKSAmJiBjdHJsS2V5ICYmIGNvZGUgPT09ICdLZXlaJykge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlVuZG8pO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnByZXNldHNTZXJ2aWNlLmlzTG9hZGluZyAmJiB0aGlzLmFwcFN0YXRlLmNhblJlZG8oKSAmJiBjdHJsS2V5ICYmIGNvZGUgPT09ICdLZXlZJykge1xyXG4gICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5lbWl0KE1lc3NhZ2VUeXBlLlJlZG8pO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnByZXNldHNTZXJ2aWNlLmlzTG9hZGluZyAmJiBhbHRLZXkgJiYgKGNvZGUgPT09ICdLZXlIJyB8fCBjb2RlID09PSAnS2V5WCcpKSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuSGlkZUxlZnRTaWRlYmFyKTtcclxuICAgICAgaWYgKGNvZGUgPT09ICdLZXlIJykge1xyXG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuU2hvd0Z1cm5pdHVyZVNpZGViYXIsICdUZXN0IEZ1cm5pdHVyZScpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9zZXRTZXR0aW5ncyhzZXR0aW5nczogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLl9ob21lZGVjb3JhdG9yU2VydmljZS5pbml0KHNldHRpbmdzLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0YXJ0V2l0aEVtcHR5Um9vbShzd2l0Y2hUbzJEOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuZGlydHkubmV4dCh0cnVlKTtcclxuICAgIGNvbnN0IHByZXNldDogUHJlc2V0ID0gUHJlc2V0LkNyZWF0ZU1vZGVsRnJvbUludGVyZmFjZSh7ZmlsZW5hbWU6ICdhc3NldHMvcHJlc2V0cy9lbXB0eS5qc29uJ30pO1xyXG4gICAgdGhpcy5fc3RhcnRXaXRoUHJlc2V0KHByZXNldCwgc3dpdGNoVG8yRCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdGFydFdpdGhQcmVzZXQocHJlc2V0OiBQcmVzZXQsIHN3aXRjaFRvMkQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWVzc2FnZVNlcnZpY2UuZW1pdChNZXNzYWdlVHlwZS5SZXNldFJvb21wbGFuKTtcclxuICAgIGlmIChzd2l0Y2hUbzJEKSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuU2V0MkRWaWV3LCB7c2VuZFVwZGF0ZXM6IHRydWV9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuU2V0M0RWaWV3LCB7c2VuZFVwZGF0ZXM6IHRydWV9KTtcclxuICAgIH1cclxuICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLmVtaXQoTWVzc2FnZVR5cGUuTG9hZFJvb21Gcm9tUHJlc2V0LCBwcmVzZXQpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -9,6 +9,7 @@ import { ExportDialogModule } from './shared/export-dialog/export-dialog.module'
9
9
  import { PluginsModule } from './plugins/plugins.module';
10
10
  import { InfoDialogModule } from './shared/info-dialog/info-dialog.module';
11
11
  import { DialogModule } from './shared/dialog/dialog.module';
12
+ import { LightboxModule } from 'ngx-lightbox';
12
13
  import * as i0 from "@angular/core";
13
14
  export class HomedecoratorModule {
14
15
  constructor(_injector) {
@@ -24,7 +25,8 @@ HomedecoratorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
24
25
  ExportDialogModule,
25
26
  InfoDialogModule,
26
27
  PluginsModule,
27
- DialogModule], exports: [HomedecoratorComponent] });
28
+ DialogModule,
29
+ LightboxModule], exports: [HomedecoratorComponent] });
28
30
  HomedecoratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HomedecoratorModule, imports: [[
29
31
  CommonModule,
30
32
  ProgressBarModule,
@@ -33,7 +35,8 @@ HomedecoratorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
33
35
  ExportDialogModule,
34
36
  InfoDialogModule,
35
37
  PluginsModule,
36
- DialogModule
38
+ DialogModule,
39
+ LightboxModule
37
40
  ]] });
38
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: HomedecoratorModule, decorators: [{
39
42
  type: NgModule,
@@ -46,7 +49,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
46
49
  ExportDialogModule,
47
50
  InfoDialogModule,
48
51
  PluginsModule,
49
- DialogModule
52
+ DialogModule,
53
+ LightboxModule
50
54
  ],
51
55
  declarations: [
52
56
  HomedecoratorComponent
@@ -57,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
57
61
  bootstrap: [HomedecoratorComponent]
58
62
  }]
59
63
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9ob21lZGVjb3JhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7O0FBcUIzRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLFNBQW1CO1FBQW5CLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDckMsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7O2lIQUhVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLHNCQUFzQixrQkFMaEMsc0JBQXNCLGFBVnRCLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCxrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixZQUFZLGFBTVosc0JBQXNCO2tIQUliLG1CQUFtQixZQWxCckI7WUFDUCxZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsWUFBWTtTQUNiOzRGQVNVLG1CQUFtQjtrQkFuQi9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3FCQUN2QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvckNvbXBvbmVudH0gZnJvbSAnLi9ob21lZGVjb3JhdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U2VydmljZUxvY2F0b3J9IGZyb20gJy4vc2VydmljZS9zZXJ2aWNlLWxvY2F0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1Byb2dyZXNzQmFyTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLm1vZHVsZSc7XHJcbmltcG9ydCB7TG9hZGluZ092ZXJsYXlNb2R1bGV9IGZyb20gJy4vc2hhcmVkL2xvYWRpbmctb3ZlcmxheS9sb2FkaW5nLW92ZXJsYXkubW9kdWxlJztcclxuaW1wb3J0IHtIZExvYWRlck1vZHVsZX0gZnJvbSAnLi9zaGFyZWQvbG9hZGVyL2hkLWxvYWRlci5tb2R1bGUnO1xyXG5pbXBvcnQge0V4cG9ydERpYWxvZ01vZHVsZX0gZnJvbSAnLi9zaGFyZWQvZXhwb3J0LWRpYWxvZy9leHBvcnQtZGlhbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7UGx1Z2luc01vZHVsZX0gZnJvbSAnLi9wbHVnaW5zL3BsdWdpbnMubW9kdWxlJztcclxuaW1wb3J0IHtJbmZvRGlhbG9nTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9pbmZvLWRpYWxvZy9pbmZvLWRpYWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQge0RpYWxvZ01vZHVsZX0gZnJvbSAnLi9zaGFyZWQvZGlhbG9nL2RpYWxvZy5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBQcm9ncmVzc0Jhck1vZHVsZSxcclxuICAgIExvYWRpbmdPdmVybGF5TW9kdWxlLFxyXG4gICAgSGRMb2FkZXJNb2R1bGUsXHJcbiAgICBFeHBvcnREaWFsb2dNb2R1bGUsXHJcbiAgICBJbmZvRGlhbG9nTW9kdWxlLFxyXG4gICAgUGx1Z2luc01vZHVsZSxcclxuICAgIERpYWxvZ01vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBIb21lZGVjb3JhdG9yQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBIb21lZGVjb3JhdG9yQ29tcG9uZW50XHJcbiAgXSxcclxuICBib290c3RyYXA6IFtIb21lZGVjb3JhdG9yQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSG9tZWRlY29yYXRvck1vZHVsZSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBTZXJ2aWNlTG9jYXRvci5pbmplY3RvciA9IHRoaXMuX2luamVjdG9yO1xyXG4gIH1cclxufVxyXG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZWRlY29yYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9ob21lZGVjb3JhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGNBQWMsQ0FBQzs7QUFzQjVDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFBb0IsU0FBbUI7UUFBbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNyQyxjQUFjLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDM0MsQ0FBQzs7aUhBSFUsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FGbEIsc0JBQXNCLGtCQUxoQyxzQkFBc0IsYUFYdEIsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixvQkFBb0I7UUFDcEIsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLFlBQVk7UUFDWixjQUFjLGFBTWQsc0JBQXNCO2tIQUliLG1CQUFtQixZQW5CckI7WUFDUCxZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsWUFBWTtZQUNaLGNBQWM7U0FDZjs0RkFTVSxtQkFBbUI7a0JBcEIvQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osY0FBYztxQkFDZjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCO3FCQUN2QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SG9tZWRlY29yYXRvckNvbXBvbmVudH0gZnJvbSAnLi9ob21lZGVjb3JhdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U2VydmljZUxvY2F0b3J9IGZyb20gJy4vc2VydmljZS9zZXJ2aWNlLWxvY2F0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1Byb2dyZXNzQmFyTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLm1vZHVsZSc7XHJcbmltcG9ydCB7TG9hZGluZ092ZXJsYXlNb2R1bGV9IGZyb20gJy4vc2hhcmVkL2xvYWRpbmctb3ZlcmxheS9sb2FkaW5nLW92ZXJsYXkubW9kdWxlJztcclxuaW1wb3J0IHtIZExvYWRlck1vZHVsZX0gZnJvbSAnLi9zaGFyZWQvbG9hZGVyL2hkLWxvYWRlci5tb2R1bGUnO1xyXG5pbXBvcnQge0V4cG9ydERpYWxvZ01vZHVsZX0gZnJvbSAnLi9zaGFyZWQvZXhwb3J0LWRpYWxvZy9leHBvcnQtZGlhbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7UGx1Z2luc01vZHVsZX0gZnJvbSAnLi9wbHVnaW5zL3BsdWdpbnMubW9kdWxlJztcclxuaW1wb3J0IHtJbmZvRGlhbG9nTW9kdWxlfSBmcm9tICcuL3NoYXJlZC9pbmZvLWRpYWxvZy9pbmZvLWRpYWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQge0RpYWxvZ01vZHVsZX0gZnJvbSAnLi9zaGFyZWQvZGlhbG9nL2RpYWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQge0xpZ2h0Ym94TW9kdWxlfSBmcm9tICduZ3gtbGlnaHRib3gnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBQcm9ncmVzc0Jhck1vZHVsZSxcclxuICAgIExvYWRpbmdPdmVybGF5TW9kdWxlLFxyXG4gICAgSGRMb2FkZXJNb2R1bGUsXHJcbiAgICBFeHBvcnREaWFsb2dNb2R1bGUsXHJcbiAgICBJbmZvRGlhbG9nTW9kdWxlLFxyXG4gICAgUGx1Z2luc01vZHVsZSxcclxuICAgIERpYWxvZ01vZHVsZSxcclxuICAgIExpZ2h0Ym94TW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEhvbWVkZWNvcmF0b3JDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEhvbWVkZWNvcmF0b3JDb21wb25lbnRcclxuICBdLFxyXG4gIGJvb3RzdHJhcDogW0hvbWVkZWNvcmF0b3JDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb21lZGVjb3JhdG9yTW9kdWxlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIFNlcnZpY2VMb2NhdG9yLmluamVjdG9yID0gdGhpcy5faW5qZWN0b3I7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -57,7 +57,7 @@ export class SceneControlComponent {
57
57
  this.addRenderOptions(this._sceneService.renderer);
58
58
  this.addLights(this._sceneService.scene);
59
59
  }
60
- addRenderOptions(renderer) {
60
+ addRenderOptions(renderer /*| WebGPURenderer*/) {
61
61
  const folder = this.gui.addFolder('renderer');
62
62
  folder.add(renderer, 'toneMappingExposure', 0, 5).onChange(() => {
63
63
  this._updateScene();
@@ -183,9 +183,9 @@ export class SceneControlComponent {
183
183
  folder.add(light, 'decay', 0, 5).onChange((val) => {
184
184
  this._updateScene();
185
185
  });
186
- folder.add(light, 'distance', 0, 100).onChange((val) => {
187
- this._updateScene();
188
- });
186
+ // folder.add(light, 'distance', 0, 100).onChange((val: any) => {
187
+ // this._updateScene();
188
+ // });
189
189
  }
190
190
  folder.add(light, 'intensity', 0.01, 20).step(0.01).onChange(() => {
191
191
  this._updateScene();
@@ -286,4 +286,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
286
286
  styleUrls: ['./scene-control.component.scss']
287
287
  }]
288
288
  }], ctorParameters: function () { return [{ type: i1.SceneService }, { type: i2.MessageBusService }, { type: i3.ConfigurationService }, { type: i4.LightPresetsService }]; } });
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUtY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL2NvcmUzZC9jb3JlM2QvY29tcG9uZW50cy9zY2VuZWNvbnRyb2wvc2NlbmUtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL2NvcmUzZC9jb3JlM2QvY29tcG9uZW50cy9zY2VuZWNvbnRyb2wvc2NlbmUtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEtBQUssR0FBRyxNQUFNLFNBQVMsQ0FBQztBQUUvQixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQzs7Ozs7O0FBUS9CLE1BQU0sT0FBTyxXQUFXO0lBQXhCO1FBRVMsVUFBSyxHQUFRLFFBQVEsQ0FBQztRQUN0QixhQUFRLEdBQVEsUUFBUSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVEsUUFBUSxDQUFDO1FBQzVCLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUNyQyxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHeEIsa0JBQWEsR0FBWSxLQUFLLENBQUM7SUFDeEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUFFUyxXQUFNLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7SUFDakQsQ0FBQztDQUFBO0FBT0QsTUFBTSxPQUFPLHFCQUFxQjtJQU1oQyxZQUNVLGFBQTJCLEVBQzNCLGtCQUFxQyxFQUNyQyxxQkFBMkMsRUFDM0MsbUJBQXdDO1FBSHhDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHVC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QUNMLENBQUM7O21IQXpRVSxxQkFBcUI7dUdBQXJCLHFCQUFxQix3RENuQ2xDLEVBQUE7NEZEbUNhLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixXQUFXLEVBQUUsZ0NBQWdDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBkYXQgZnJvbSAnZGF0Lmd1aSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge1NjZW5lU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2VuZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtNZXNzYWdlQnVzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2UvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtMaWdodFByZXNldHNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2xpZ2h0LXByZXNldHMuc2VydmljZSc7XHJcbmltcG9ydCBXZWJHUFVSZW5kZXJlciBmcm9tICd0aHJlZS9leGFtcGxlcy9qc20vcmVuZGVyZXJzL3dlYmdwdS9XZWJHUFVSZW5kZXJlcic7XHJcbmltcG9ydCB7V2ViR0xSZW5kZXJlcn0gZnJvbSAndGhyZWUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIExpZ2h0UGFyYW1zIHtcclxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBjb2xvcjogYW55ID0gMHhmZmZmZmY7XHJcbiAgcHVibGljIHNreUNvbG9yOiBhbnkgPSAweGZmZmZmZjtcclxuICBwdWJsaWMgZ3JvdW5kQ29sb3I6IGFueSA9IDB4ZmZmZmZmO1xyXG4gIHB1YmxpYyB1c2VBZGRpdGlvbmFsQ29sb3JzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHBvc2l0aW9uaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgc2hvd0hlbHBlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoZWxwZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYWRkSGVscGVyRm46IEZ1bmN0aW9uO1xyXG4gIHB1YmxpYyByZW1vdmVIZWxwZXJGbjogRnVuY3Rpb247XHJcbiAgcHVibGljIGNhbkNhc3RTaGFkb3c6IGJvb2xlYW4gPSBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExpZ2h0Q29udHJvbCB7XHJcbiAgcHVibGljIGxpZ2h0OiBUSFJFRS5MaWdodDtcclxuICBwdWJsaWMgcGFyYW1zOiBMaWdodFBhcmFtcyA9IG5ldyBMaWdodFBhcmFtcygpO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JwLXNjZW5lLWNvbnRyb2wnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2VuZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zY2VuZS1jb250cm9sLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNjZW5lQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgcHJpdmF0ZSBndWk6IGFueTtcclxuICBwcml2YXRlIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgcHJpdmF0ZSBsaWdodHM6IExpZ2h0Q29udHJvbFtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2NlbmVTZXJ2aWNlOiBTY2VuZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlQnVzU2VydmljZTogTWVzc2FnZUJ1c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9saWdodFByZXNldFNlcnZpY2U6IExpZ2h0UHJlc2V0c1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZUluaXRpYWxpemVkLnN1YnNjcmliZSgoaW5pdGlhbGl6ZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgIHRoaXMuaW5pdEd1aSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLnN1YnMucHVzaChcclxuICAgICAgdGhpcy5fbGlnaHRQcmVzZXRTZXJ2aWNlLnByZXNldExvYWRlZC5zdWJzY3JpYmUoKGxvYWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMuaW5pdEd1aSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMuZ3VpLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEd1aSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmd1aSkge1xyXG4gICAgICB0aGlzLmd1aS5kZXN0cm95KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmd1aSA9IG5ldyBkYXQuR1VJKCk7XHJcbiAgICB0aGlzLmxpZ2h0cy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5hZGRSZW5kZXJPcHRpb25zKHRoaXMuX3NjZW5lU2VydmljZS5yZW5kZXJlcik7XHJcbiAgICB0aGlzLmFkZExpZ2h0cyh0aGlzLl9zY2VuZVNlcnZpY2Uuc2NlbmUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRSZW5kZXJPcHRpb25zKHJlbmRlcmVyOiBXZWJHTFJlbmRlcmVyIHwgV2ViR1BVUmVuZGVyZXIpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IHRoaXMuZ3VpLmFkZEZvbGRlcigncmVuZGVyZXInKTtcclxuICAgIGZvbGRlci5hZGQocmVuZGVyZXIsICd0b25lTWFwcGluZ0V4cG9zdXJlJywgMCwgNSkub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgfSk7XHJcbiAgICAvLyBmb2xkZXIuYWRkKHJlbmRlcmVyLCAncGh5c2ljYWxseUNvcnJlY3RMaWdodHMnKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAvLyB9KTtcclxuICAgIC8vIGZvbGRlci5hZGQocmVuZGVyZXIsICdnYW1tYUlucHV0Jykub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgLy8gfSk7XHJcbiAgICAvLyBmb2xkZXIuYWRkKHJlbmRlcmVyLCAnZ2FtbWFPdXRwdXQnKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAvLyAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkTGlnaHRzKHNjZW5lOiBUSFJFRS5TY2VuZSk6IHZvaWQge1xyXG4gICAgbGV0IG51bVNwb3RMaWdodHM6IG51bWJlciA9IDA7XHJcbiAgICBsZXQgbnVtRGlyZWN0aW9uYWxMaWdodHM6IG51bWJlciA9IDA7XHJcbiAgICBzY2VuZS5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgIGlmIChjIGluc3RhbmNlb2YgVEhSRUUuU3BvdExpZ2h0KSB7XHJcbiAgICAgICAgY29uc3QgbGlnaHRDb250cm9sOiBMaWdodENvbnRyb2wgPSBuZXcgTGlnaHRDb250cm9sKCk7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLmxpZ2h0ID0gYztcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLm5hbWUgPSBjLm5hbWU7IC8vICdTcG90bGlnaHQnICsgKG51bVNwb3RMaWdodHMgPyBudW1TcG90TGlnaHRzIDogJycpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuY29sb3IgPSBjLmNvbG9yLmdldEhleCgpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuY2FuQ2FzdFNoYWRvdyA9IHRydWU7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5zaG93SGVscGVyID0gdHJ1ZTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLmFkZEhlbHBlckZuID0gKGxpZ2h0LCBuYW1lKSA9PiB0aGlzLmNyZWF0ZVNwb3RsaWdodEhlbHBlcihsaWdodCwgbmFtZSk7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5yZW1vdmVIZWxwZXJGbiA9IChuYW1lKSA9PiB0aGlzLnJlbW92ZUxpZ2h0SGVscGVyKG5hbWUpO1xyXG4gICAgICAgIHRoaXMubGlnaHRzLnB1c2gobGlnaHRDb250cm9sKTtcclxuICAgICAgICBudW1TcG90TGlnaHRzKys7XHJcbiAgICAgIH0gZWxzZSBpZiAoYyBpbnN0YW5jZW9mIFRIUkVFLlBvaW50TGlnaHQpIHtcclxuICAgICAgICBjb25zdCBsaWdodENvbnRyb2w6IExpZ2h0Q29udHJvbCA9IG5ldyBMaWdodENvbnRyb2woKTtcclxuICAgICAgICBsaWdodENvbnRyb2wubGlnaHQgPSBjO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMubmFtZSA9IGMubmFtZTsgLy8gJ1BvaW50bGlnaHQnO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuY29sb3IgPSBjLmNvbG9yLmdldEhleCgpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuY2FuQ2FzdFNoYWRvdyA9IHRydWU7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5zaG93SGVscGVyID0gdHJ1ZTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLmFkZEhlbHBlckZuID0gKGxpZ2h0LCBuYW1lKSA9PiB0aGlzLmNyZWF0ZVBvaW50bGlnaHRIZWxwZXIobGlnaHQsIG5hbWUpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMucmVtb3ZlSGVscGVyRm4gPSAobmFtZSkgPT4gdGhpcy5yZW1vdmVMaWdodEhlbHBlcihuYW1lKTtcclxuICAgICAgICB0aGlzLmxpZ2h0cy5wdXNoKGxpZ2h0Q29udHJvbCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoYyBpbnN0YW5jZW9mIFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQpIHtcclxuICAgICAgICBjb25zdCBsaWdodENvbnRyb2w6IExpZ2h0Q29udHJvbCA9IG5ldyBMaWdodENvbnRyb2woKTtcclxuICAgICAgICBsaWdodENvbnRyb2wubGlnaHQgPSBjO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMubmFtZSA9IGMubmFtZTsgLy8gJ0RpcmVjdGlvbmFsbGlnaHQnICsgKG51bURpcmVjdGlvbmFsTGlnaHRzID8gbnVtRGlyZWN0aW9uYWxMaWdodHMgOiAnJyk7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5jb2xvciA9IGMuY29sb3IuZ2V0SGV4KCk7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5jYW5DYXN0U2hhZG93ID0gdHJ1ZTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLnNob3dIZWxwZXIgPSB0cnVlO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuYWRkSGVscGVyRm4gPSAobGlnaHQsIG5hbWUpID0+IHRoaXMuY3JlYXRlRGlyZWN0aW9uYWxMaWdodEhlbHBlcihsaWdodCwgbmFtZSk7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5yZW1vdmVIZWxwZXJGbiA9IChuYW1lKSA9PiB0aGlzLnJlbW92ZUxpZ2h0SGVscGVyKG5hbWUpO1xyXG4gICAgICAgIHRoaXMubGlnaHRzLnB1c2gobGlnaHRDb250cm9sKTtcclxuICAgICAgICBudW1EaXJlY3Rpb25hbExpZ2h0cysrO1xyXG4gICAgICB9IGVsc2UgaWYgKGMgaW5zdGFuY2VvZiBUSFJFRS5BbWJpZW50TGlnaHQpIHtcclxuICAgICAgICBjb25zdCBsaWdodENvbnRyb2w6IExpZ2h0Q29udHJvbCA9IG5ldyBMaWdodENvbnRyb2woKTtcclxuICAgICAgICBsaWdodENvbnRyb2wubGlnaHQgPSBjO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMubmFtZSA9IGMubmFtZTsgLy8gJ0FtYmllbnRsaWdodCc7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5jb2xvciA9IGMuY29sb3IuZ2V0SGV4KCk7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5wb3NpdGlvbmluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubGlnaHRzLnB1c2gobGlnaHRDb250cm9sKTtcclxuICAgICAgfSBlbHNlIGlmIChjIGluc3RhbmNlb2YgVEhSRUUuSGVtaXNwaGVyZUxpZ2h0KSB7XHJcbiAgICAgICAgY29uc3QgbGlnaHRDb250cm9sOiBMaWdodENvbnRyb2wgPSBuZXcgTGlnaHRDb250cm9sKCk7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLmxpZ2h0ID0gYztcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLm5hbWUgPSBjLm5hbWU7IC8vICdIZW1pc3BoZXJlbGlnaHQnO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuc2t5Q29sb3IgPSBjLmNvbG9yLmdldEhleCgpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuZ3JvdW5kQ29sb3IgPSBjLmdyb3VuZENvbG9yLmdldEhleCgpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMudXNlQWRkaXRpb25hbENvbG9ycyA9IHRydWU7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5wb3NpdGlvbmluZyA9IGZhbHNlO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuc2hvd0hlbHBlciA9IHRydWU7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5hZGRIZWxwZXJGbiA9IChsaWdodCwgbmFtZSkgPT4gdGhpcy5jcmVhdGVIZW1pc3BoZXJlTGlnaHRIZWxwZXIobGlnaHQsIG5hbWUpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMucmVtb3ZlSGVscGVyRm4gPSAobmFtZSkgPT4gdGhpcy5yZW1vdmVMaWdodEhlbHBlcihuYW1lKTtcclxuICAgICAgICB0aGlzLmxpZ2h0cy5wdXNoKGxpZ2h0Q29udHJvbCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jcmVhdGVMaWdodENvbnRyb2xzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxpZ2h0Q29udHJvbHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpZ2h0cy5mb3JFYWNoKGxjID0+IHRoaXMuY3JlYXRlTGlnaHRGb2xkZXIobGMubGlnaHQsIGxjLnBhcmFtcykpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVMaWdodEZvbGRlcihsaWdodDogVEhSRUUuTGlnaHQsIGxpZ2h0UGFyYW1zOiBMaWdodFBhcmFtcyk6IHZvaWQge1xyXG4gICAgY29uc3QgZm9sZGVyID0gdGhpcy5ndWkuYWRkRm9sZGVyKGxpZ2h0UGFyYW1zLm5hbWUpO1xyXG4gICAgZm9sZGVyLmFkZChsaWdodCwgJ3Zpc2libGUnKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICB9KTtcclxuICAgIGlmICghbGlnaHRQYXJhbXMudXNlQWRkaXRpb25hbENvbG9ycykge1xyXG4gICAgICBmb2xkZXIuYWRkQ29sb3IobGlnaHRQYXJhbXMsICdjb2xvcicpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgICAgICBsaWdodC5jb2xvci5zZXQobGlnaHRQYXJhbXMuY29sb3IpO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9sZGVyLmFkZENvbG9yKGxpZ2h0UGFyYW1zLCAnc2t5Q29sb3InKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAgICAgbGlnaHQuY29sb3Iuc2V0KGxpZ2h0UGFyYW1zLnNreUNvbG9yKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgZm9sZGVyLmFkZENvbG9yKGxpZ2h0UGFyYW1zLCAnZ3JvdW5kQ29sb3InKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAgICAgKGxpZ2h0IGFzIGFueSkuZ3JvdW5kQ29sb3Iuc2V0KGxpZ2h0UGFyYW1zLmdyb3VuZENvbG9yKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChsaWdodFBhcmFtcy5wb3NpdGlvbmluZykge1xyXG4gICAgICBmb2xkZXIuYWRkKGxpZ2h0LnBvc2l0aW9uLCAneCcsIC01MCwgNTApLnN0ZXAoMSkub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBmb2xkZXIuYWRkKGxpZ2h0LnBvc2l0aW9uLCAneScsIDAsIDUwKS5zdGVwKDEpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgZm9sZGVyLmFkZChsaWdodC5wb3NpdGlvbiwgJ3onLCAtNTAsIDUwKS5zdGVwKDEpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChsaWdodCBpbnN0YW5jZW9mIFRIUkVFLlNwb3RMaWdodCkge1xyXG4gICAgICBmb2xkZXIuYWRkKGxpZ2h0LCAnYW5nbGUnLCAwLCBNYXRoLlBJIC8gMykub25DaGFuZ2UoKHZhbDogYW55KSA9PiB7XHJcbiAgICAgICAgbGlnaHQuYW5nbGUgPSB2YWw7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAobGlnaHQgaW5zdGFuY2VvZiBUSFJFRS5Qb2ludExpZ2h0IHx8IGxpZ2h0IGluc3RhbmNlb2YgVEhSRUUuU3BvdExpZ2h0KSB7XHJcbiAgICAgIGZvbGRlci5hZGQobGlnaHQsICdwb3dlcicsIDAsIDE1MDAwKS5vbkNoYW5nZSgodmFsOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgZm9sZGVyLmFkZChsaWdodCwgJ2RlY2F5JywgMCwgNSkub25DaGFuZ2UoKHZhbDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGZvbGRlci5hZGQobGlnaHQsICdkaXN0YW5jZScsIDAsIDEwMCkub25DaGFuZ2UoKHZhbDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBmb2xkZXIuYWRkKGxpZ2h0LCAnaW50ZW5zaXR5JywgMC4wMSwgMjApLnN0ZXAoMC4wMSkub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAobGlnaHQuc2hhZG93KSB7XHJcbiAgICAgIGNvbnN0IHNoYWRvdyA9IGxpZ2h0LnNoYWRvdztcclxuICAgICAgZm9sZGVyLmFkZChzaGFkb3csICdiaWFzJywgLTEsIDEpLnN0ZXAoMC4wMDAxKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGZvbGRlci5hZGQoc2hhZG93LCAncmFkaXVzJywgLTEwLCAxMCkuc3RlcCgwLjEpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChsaWdodCBpbnN0YW5jZW9mIFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQgfHwgbGlnaHQgaW5zdGFuY2VvZiBUSFJFRS5TcG90TGlnaHQpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0Rm9sZGVyID0gZm9sZGVyLmFkZEZvbGRlcigndGFyZ2V0Jyk7XHJcbiAgICAgIHRhcmdldEZvbGRlci5hZGQobGlnaHQudGFyZ2V0LnBvc2l0aW9uLCAneCcsIC01MCwgNTApLnN0ZXAoMSkub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0YXJnZXRGb2xkZXIuYWRkKGxpZ2h0LnRhcmdldC5wb3NpdGlvbiwgJ3knLCAwLCA1MCkuc3RlcCgxKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRhcmdldEZvbGRlci5hZGQobGlnaHQudGFyZ2V0LnBvc2l0aW9uLCAneicsIC01MCwgNTApLnN0ZXAoMSkub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKGxpZ2h0UGFyYW1zLmNhbkNhc3RTaGFkb3cpIHtcclxuICAgICAgZm9sZGVyLmFkZChsaWdodCwgJ2Nhc3RTaGFkb3cnKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAobGlnaHRQYXJhbXMuc2hvd0hlbHBlcikge1xyXG4gICAgICBmb2xkZXIuYWRkKGxpZ2h0UGFyYW1zLCAnaGVscGVyJykub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgIGlmIChsaWdodFBhcmFtcy5oZWxwZXIpIHtcclxuICAgICAgICAgIGxpZ2h0UGFyYW1zLmFkZEhlbHBlckZuLmNhbGwodGhpcywgbGlnaHQsIGxpZ2h0UGFyYW1zLm5hbWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsaWdodFBhcmFtcy5yZW1vdmVIZWxwZXJGbi5jYWxsKHRoaXMsIGxpZ2h0UGFyYW1zLm5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlU3BvdGxpZ2h0SGVscGVyKGxpZ2h0OiBUSFJFRS5MaWdodCwgbmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBoZWxwZXI6IFRIUkVFLlNwb3RMaWdodEhlbHBlciA9IG5ldyBUSFJFRS5TcG90TGlnaHRIZWxwZXIobGlnaHQpO1xyXG4gICAgaGVscGVyLm5hbWUgPSBuYW1lICsgJ0hlbHBlcic7XHJcbiAgICB0aGlzLl9zY2VuZVNlcnZpY2Uuc2NlbmUuYWRkKGhlbHBlcik7XHJcbiAgICBjb25zdCBzaGFkb3dDYW1lcmFIZWxwZXIgPSBuZXcgVEhSRUUuQ2FtZXJhSGVscGVyKGxpZ2h0LnNoYWRvdy5jYW1lcmEpO1xyXG4gICAgc2hhZG93Q2FtZXJhSGVscGVyLm5hbWUgPSBuYW1lICsgJ0NhbWVyYUhlbHBlcic7XHJcbiAgICB0aGlzLl9zY2VuZVNlcnZpY2Uuc2NlbmUuYWRkKHNoYWRvd0NhbWVyYUhlbHBlcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVBvaW50bGlnaHRIZWxwZXIobGlnaHQ6IFRIUkVFLlBvaW50TGlnaHQsIG5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgaGVscGVyOiBUSFJFRS5Qb2ludExpZ2h0SGVscGVyID0gbmV3IFRIUkVFLlBvaW50TGlnaHRIZWxwZXIobGlnaHQsIDEwKTtcclxuICAgIGhlbHBlci5uYW1lID0gbmFtZSArICdIZWxwZXInO1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLnNjZW5lLmFkZChoZWxwZXIpO1xyXG4gICAgLy8gY29uc3Qgc2hhZG93Q2FtZXJhSGVscGVyID0gbmV3IFRIUkVFLkNhbWVyYUhlbHBlcihsaWdodC5zaGFkb3cuY2FtZXJhKTtcclxuICAgIC8vIHNoYWRvd0NhbWVyYUhlbHBlci5uYW1lID0gbmFtZSArICdDYW1lcmFIZWxwZXInO1xyXG4gICAgLy8gdGhpcy5fdGhyZWVTZXJ2aWNlLm1vZGVsLnNjZW5lLmdldFNjZW5lKCkuYWRkKHNoYWRvd0NhbWVyYUhlbHBlcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZURpcmVjdGlvbmFsTGlnaHRIZWxwZXIobGlnaHQ6IFRIUkVFLkxpZ2h0LCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGhlbHBlcjogVEhSRUUuRGlyZWN0aW9uYWxMaWdodEhlbHBlciA9IG5ldyBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0SGVscGVyKDxUSFJFRS5EaXJlY3Rpb25hbExpZ2h0PmxpZ2h0LCA1KTtcclxuICAgIGhlbHBlci5uYW1lID0gbmFtZSArICdIZWxwZXInO1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLnNjZW5lLmFkZChoZWxwZXIpO1xyXG4gICAgY29uc3Qgc2hhZG93Q2FtZXJhSGVscGVyID0gbmV3IFRIUkVFLkNhbWVyYUhlbHBlcihsaWdodC5zaGFkb3cuY2FtZXJhKTtcclxuICAgIHNoYWRvd0NhbWVyYUhlbHBlci5uYW1lID0gbmFtZSArICdDYW1lcmFIZWxwZXInO1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLnNjZW5lLmFkZChzaGFkb3dDYW1lcmFIZWxwZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVIZW1pc3BoZXJlTGlnaHRIZWxwZXIobGlnaHQ6IFRIUkVFLkxpZ2h0LCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGhlbHBlcjogVEhSRUUuSGVtaXNwaGVyZUxpZ2h0SGVscGVyID0gbmV3IFRIUkVFLkhlbWlzcGhlcmVMaWdodEhlbHBlcig8VEhSRUUuSGVtaXNwaGVyZUxpZ2h0PmxpZ2h0LCA1KTtcclxuICAgIGhlbHBlci5uYW1lID0gbmFtZSArICdIZWxwZXInO1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLnNjZW5lLmFkZChoZWxwZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVMaWdodEhlbHBlcihuYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGhlbHBlck5hbWU6IHN0cmluZyA9IG5hbWUgKyAnSGVscGVyJztcclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZS5yZW1vdmUodGhpcy5fc2NlbmVTZXJ2aWNlLnNjZW5lLmdldE9iamVjdEJ5TmFtZShoZWxwZXJOYW1lKSk7XHJcbiAgICBjb25zdCBjYW1lcmFIZWxwZXJOYW1lOiBzdHJpbmcgPSBuYW1lICsgJ0NhbWVyYUhlbHBlcic7XHJcbiAgICB0aGlzLl9zY2VuZVNlcnZpY2Uuc2NlbmUucmVtb3ZlKHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZS5nZXRPYmplY3RCeU5hbWUoY2FtZXJhSGVscGVyTmFtZSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlU2NlbmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zY2VuZVNlcnZpY2UubmVlZHNSZW5kZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLnNjZW5lLmNoaWxkcmVuLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGlmIChjLm5hbWUgJiYgYy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZignaGVscGVyJykgPiAtMSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAoYyBhcyBhbnkpLnVwZGF0ZSgpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiIl19
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUtY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL2NvcmUzZC9jb3JlM2QvY29tcG9uZW50cy9zY2VuZWNvbnRyb2wvc2NlbmUtY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL2NvcmUzZC9jb3JlM2QvY29tcG9uZW50cy9zY2VuZWNvbnRyb2wvc2NlbmUtY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEtBQUssR0FBRyxNQUFNLFNBQVMsQ0FBQztBQUUvQixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQzs7Ozs7O0FBUS9CLE1BQU0sT0FBTyxXQUFXO0lBQXhCO1FBRVMsVUFBSyxHQUFRLFFBQVEsQ0FBQztRQUN0QixhQUFRLEdBQVEsUUFBUSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVEsUUFBUSxDQUFDO1FBQzVCLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUNyQyxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHeEIsa0JBQWEsR0FBWSxLQUFLLENBQUM7SUFDeEMsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUFFUyxXQUFNLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7SUFDakQsQ0FBQztDQUFBO0FBT0QsTUFBTSxPQUFPLHFCQUFxQjtJQU1oQyxZQUNVLGFBQTJCLEVBQzNCLGtCQUFxQyxFQUNyQyxxQkFBMkMsRUFDM0MsbUJBQXdDO1FBSHhDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHVC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O29CQUM1QixXQUFXLEVBQUUsZ0NBQWdDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBkYXQgZnJvbSAnZGF0Lmd1aSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge1NjZW5lU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9zY2VuZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtNZXNzYWdlQnVzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlL21lc3NhZ2UtYnVzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2UvY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtMaWdodFByZXNldHNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2xpZ2h0LXByZXNldHMuc2VydmljZSc7XHJcbi8vIGltcG9ydCBXZWJHUFVSZW5kZXJlciBmcm9tICd0aHJlZS9leGFtcGxlcy9qc20vcmVuZGVyZXJzL3dlYmdwdS9XZWJHUFVSZW5kZXJlcic7XHJcbmltcG9ydCB7V2ViR0xSZW5kZXJlcn0gZnJvbSAndGhyZWUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIExpZ2h0UGFyYW1zIHtcclxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBjb2xvcjogYW55ID0gMHhmZmZmZmY7XHJcbiAgcHVibGljIHNreUNvbG9yOiBhbnkgPSAweGZmZmZmZjtcclxuICBwdWJsaWMgZ3JvdW5kQ29sb3I6IGFueSA9IDB4ZmZmZmZmO1xyXG4gIHB1YmxpYyB1c2VBZGRpdGlvbmFsQ29sb3JzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHBvc2l0aW9uaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgc2hvd0hlbHBlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoZWxwZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYWRkSGVscGVyRm46IEZ1bmN0aW9uO1xyXG4gIHB1YmxpYyByZW1vdmVIZWxwZXJGbjogRnVuY3Rpb247XHJcbiAgcHVibGljIGNhbkNhc3RTaGFkb3c6IGJvb2xlYW4gPSBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExpZ2h0Q29udHJvbCB7XHJcbiAgcHVibGljIGxpZ2h0OiBUSFJFRS5MaWdodDtcclxuICBwdWJsaWMgcGFyYW1zOiBMaWdodFBhcmFtcyA9IG5ldyBMaWdodFBhcmFtcygpO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JwLXNjZW5lLWNvbnRyb2wnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2VuZS1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zY2VuZS1jb250cm9sLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNjZW5lQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgcHJpdmF0ZSBndWk6IGFueTtcclxuICBwcml2YXRlIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgcHJpdmF0ZSBsaWdodHM6IExpZ2h0Q29udHJvbFtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc2NlbmVTZXJ2aWNlOiBTY2VuZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlQnVzU2VydmljZTogTWVzc2FnZUJ1c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9saWdodFByZXNldFNlcnZpY2U6IExpZ2h0UHJlc2V0c1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZUluaXRpYWxpemVkLnN1YnNjcmliZSgoaW5pdGlhbGl6ZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgIHRoaXMuaW5pdEd1aSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLnN1YnMucHVzaChcclxuICAgICAgdGhpcy5fbGlnaHRQcmVzZXRTZXJ2aWNlLnByZXNldExvYWRlZC5zdWJzY3JpYmUoKGxvYWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChsb2FkZWQpIHtcclxuICAgICAgICAgIHRoaXMuaW5pdEd1aSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMuZ3VpLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEd1aSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmd1aSkge1xyXG4gICAgICB0aGlzLmd1aS5kZXN0cm95KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmd1aSA9IG5ldyBkYXQuR1VJKCk7XHJcbiAgICB0aGlzLmxpZ2h0cy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5hZGRSZW5kZXJPcHRpb25zKHRoaXMuX3NjZW5lU2VydmljZS5yZW5kZXJlcik7XHJcbiAgICB0aGlzLmFkZExpZ2h0cyh0aGlzLl9zY2VuZVNlcnZpY2Uuc2NlbmUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRSZW5kZXJPcHRpb25zKHJlbmRlcmVyOiBXZWJHTFJlbmRlcmVyIC8qfCBXZWJHUFVSZW5kZXJlciovKTogdm9pZCB7XHJcbiAgICBjb25zdCBmb2xkZXIgPSB0aGlzLmd1aS5hZGRGb2xkZXIoJ3JlbmRlcmVyJyk7XHJcbiAgICBmb2xkZXIuYWRkKHJlbmRlcmVyLCAndG9uZU1hcHBpbmdFeHBvc3VyZScsIDAsIDUpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgIH0pO1xyXG4gICAgLy8gZm9sZGVyLmFkZChyZW5kZXJlciwgJ3BoeXNpY2FsbHlDb3JyZWN0TGlnaHRzJykub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgLy8gfSk7XHJcbiAgICAvLyBmb2xkZXIuYWRkKHJlbmRlcmVyLCAnZ2FtbWFJbnB1dCcpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgIC8vICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgIC8vIH0pO1xyXG4gICAgLy8gZm9sZGVyLmFkZChyZW5kZXJlciwgJ2dhbW1hT3V0cHV0Jykub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZExpZ2h0cyhzY2VuZTogVEhSRUUuU2NlbmUpOiB2b2lkIHtcclxuICAgIGxldCBudW1TcG90TGlnaHRzOiBudW1iZXIgPSAwO1xyXG4gICAgbGV0IG51bURpcmVjdGlvbmFsTGlnaHRzOiBudW1iZXIgPSAwO1xyXG4gICAgc2NlbmUuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xyXG4gICAgICBpZiAoYyBpbnN0YW5jZW9mIFRIUkVFLlNwb3RMaWdodCkge1xyXG4gICAgICAgIGNvbnN0IGxpZ2h0Q29udHJvbDogTGlnaHRDb250cm9sID0gbmV3IExpZ2h0Q29udHJvbCgpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5saWdodCA9IGM7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5uYW1lID0gYy5uYW1lOyAvLyAnU3BvdGxpZ2h0JyArIChudW1TcG90TGlnaHRzID8gbnVtU3BvdExpZ2h0cyA6ICcnKTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLmNvbG9yID0gYy5jb2xvci5nZXRIZXgoKTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLmNhbkNhc3RTaGFkb3cgPSB0cnVlO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuc2hvd0hlbHBlciA9IHRydWU7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5hZGRIZWxwZXJGbiA9IChsaWdodCwgbmFtZSkgPT4gdGhpcy5jcmVhdGVTcG90bGlnaHRIZWxwZXIobGlnaHQsIG5hbWUpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMucmVtb3ZlSGVscGVyRm4gPSAobmFtZSkgPT4gdGhpcy5yZW1vdmVMaWdodEhlbHBlcihuYW1lKTtcclxuICAgICAgICB0aGlzLmxpZ2h0cy5wdXNoKGxpZ2h0Q29udHJvbCk7XHJcbiAgICAgICAgbnVtU3BvdExpZ2h0cysrO1xyXG4gICAgICB9IGVsc2UgaWYgKGMgaW5zdGFuY2VvZiBUSFJFRS5Qb2ludExpZ2h0KSB7XHJcbiAgICAgICAgY29uc3QgbGlnaHRDb250cm9sOiBMaWdodENvbnRyb2wgPSBuZXcgTGlnaHRDb250cm9sKCk7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLmxpZ2h0ID0gYztcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLm5hbWUgPSBjLm5hbWU7IC8vICdQb2ludGxpZ2h0JztcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLmNvbG9yID0gYy5jb2xvci5nZXRIZXgoKTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLmNhbkNhc3RTaGFkb3cgPSB0cnVlO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuc2hvd0hlbHBlciA9IHRydWU7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5hZGRIZWxwZXJGbiA9IChsaWdodCwgbmFtZSkgPT4gdGhpcy5jcmVhdGVQb2ludGxpZ2h0SGVscGVyKGxpZ2h0LCBuYW1lKTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLnJlbW92ZUhlbHBlckZuID0gKG5hbWUpID0+IHRoaXMucmVtb3ZlTGlnaHRIZWxwZXIobmFtZSk7XHJcbiAgICAgICAgdGhpcy5saWdodHMucHVzaChsaWdodENvbnRyb2wpO1xyXG4gICAgICB9IGVsc2UgaWYgKGMgaW5zdGFuY2VvZiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0KSB7XHJcbiAgICAgICAgY29uc3QgbGlnaHRDb250cm9sOiBMaWdodENvbnRyb2wgPSBuZXcgTGlnaHRDb250cm9sKCk7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLmxpZ2h0ID0gYztcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLm5hbWUgPSBjLm5hbWU7IC8vICdEaXJlY3Rpb25hbGxpZ2h0JyArIChudW1EaXJlY3Rpb25hbExpZ2h0cyA/IG51bURpcmVjdGlvbmFsTGlnaHRzIDogJycpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuY29sb3IgPSBjLmNvbG9yLmdldEhleCgpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuY2FuQ2FzdFNoYWRvdyA9IHRydWU7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5zaG93SGVscGVyID0gdHJ1ZTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLmFkZEhlbHBlckZuID0gKGxpZ2h0LCBuYW1lKSA9PiB0aGlzLmNyZWF0ZURpcmVjdGlvbmFsTGlnaHRIZWxwZXIobGlnaHQsIG5hbWUpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMucmVtb3ZlSGVscGVyRm4gPSAobmFtZSkgPT4gdGhpcy5yZW1vdmVMaWdodEhlbHBlcihuYW1lKTtcclxuICAgICAgICB0aGlzLmxpZ2h0cy5wdXNoKGxpZ2h0Q29udHJvbCk7XHJcbiAgICAgICAgbnVtRGlyZWN0aW9uYWxMaWdodHMrKztcclxuICAgICAgfSBlbHNlIGlmIChjIGluc3RhbmNlb2YgVEhSRUUuQW1iaWVudExpZ2h0KSB7XHJcbiAgICAgICAgY29uc3QgbGlnaHRDb250cm9sOiBMaWdodENvbnRyb2wgPSBuZXcgTGlnaHRDb250cm9sKCk7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLmxpZ2h0ID0gYztcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLm5hbWUgPSBjLm5hbWU7IC8vICdBbWJpZW50bGlnaHQnO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuY29sb3IgPSBjLmNvbG9yLmdldEhleCgpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMucG9zaXRpb25pbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxpZ2h0cy5wdXNoKGxpZ2h0Q29udHJvbCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoYyBpbnN0YW5jZW9mIFRIUkVFLkhlbWlzcGhlcmVMaWdodCkge1xyXG4gICAgICAgIGNvbnN0IGxpZ2h0Q29udHJvbDogTGlnaHRDb250cm9sID0gbmV3IExpZ2h0Q29udHJvbCgpO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5saWdodCA9IGM7XHJcbiAgICAgICAgbGlnaHRDb250cm9sLnBhcmFtcy5uYW1lID0gYy5uYW1lOyAvLyAnSGVtaXNwaGVyZWxpZ2h0JztcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLnNreUNvbG9yID0gYy5jb2xvci5nZXRIZXgoKTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLmdyb3VuZENvbG9yID0gYy5ncm91bmRDb2xvci5nZXRIZXgoKTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLnVzZUFkZGl0aW9uYWxDb2xvcnMgPSB0cnVlO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMucG9zaXRpb25pbmcgPSBmYWxzZTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLnNob3dIZWxwZXIgPSB0cnVlO1xyXG4gICAgICAgIGxpZ2h0Q29udHJvbC5wYXJhbXMuYWRkSGVscGVyRm4gPSAobGlnaHQsIG5hbWUpID0+IHRoaXMuY3JlYXRlSGVtaXNwaGVyZUxpZ2h0SGVscGVyKGxpZ2h0LCBuYW1lKTtcclxuICAgICAgICBsaWdodENvbnRyb2wucGFyYW1zLnJlbW92ZUhlbHBlckZuID0gKG5hbWUpID0+IHRoaXMucmVtb3ZlTGlnaHRIZWxwZXIobmFtZSk7XHJcbiAgICAgICAgdGhpcy5saWdodHMucHVzaChsaWdodENvbnRyb2wpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY3JlYXRlTGlnaHRDb250cm9scygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVMaWdodENvbnRyb2xzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5saWdodHMuZm9yRWFjaChsYyA9PiB0aGlzLmNyZWF0ZUxpZ2h0Rm9sZGVyKGxjLmxpZ2h0LCBsYy5wYXJhbXMpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTGlnaHRGb2xkZXIobGlnaHQ6IFRIUkVFLkxpZ2h0LCBsaWdodFBhcmFtczogTGlnaHRQYXJhbXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvbGRlciA9IHRoaXMuZ3VpLmFkZEZvbGRlcihsaWdodFBhcmFtcy5uYW1lKTtcclxuICAgIGZvbGRlci5hZGQobGlnaHQsICd2aXNpYmxlJykub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAoIWxpZ2h0UGFyYW1zLnVzZUFkZGl0aW9uYWxDb2xvcnMpIHtcclxuICAgICAgZm9sZGVyLmFkZENvbG9yKGxpZ2h0UGFyYW1zLCAnY29sb3InKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAgICAgbGlnaHQuY29sb3Iuc2V0KGxpZ2h0UGFyYW1zLmNvbG9yKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvbGRlci5hZGRDb2xvcihsaWdodFBhcmFtcywgJ3NreUNvbG9yJykub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgIGxpZ2h0LmNvbG9yLnNldChsaWdodFBhcmFtcy5za3lDb2xvcik7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGZvbGRlci5hZGRDb2xvcihsaWdodFBhcmFtcywgJ2dyb3VuZENvbG9yJykub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgIChsaWdodCBhcyBhbnkpLmdyb3VuZENvbG9yLnNldChsaWdodFBhcmFtcy5ncm91bmRDb2xvcik7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAobGlnaHRQYXJhbXMucG9zaXRpb25pbmcpIHtcclxuICAgICAgZm9sZGVyLmFkZChsaWdodC5wb3NpdGlvbiwgJ3gnLCAtNTAsIDUwKS5zdGVwKDEpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgZm9sZGVyLmFkZChsaWdodC5wb3NpdGlvbiwgJ3knLCAwLCA1MCkuc3RlcCgxKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGZvbGRlci5hZGQobGlnaHQucG9zaXRpb24sICd6JywgLTUwLCA1MCkuc3RlcCgxKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAobGlnaHQgaW5zdGFuY2VvZiBUSFJFRS5TcG90TGlnaHQpIHtcclxuICAgICAgZm9sZGVyLmFkZChsaWdodCwgJ2FuZ2xlJywgMCwgTWF0aC5QSSAvIDMpLm9uQ2hhbmdlKCh2YWw6IGFueSkgPT4ge1xyXG4gICAgICAgIGxpZ2h0LmFuZ2xlID0gdmFsO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKGxpZ2h0IGluc3RhbmNlb2YgVEhSRUUuUG9pbnRMaWdodCB8fCBsaWdodCBpbnN0YW5jZW9mIFRIUkVFLlNwb3RMaWdodCkge1xyXG4gICAgICBmb2xkZXIuYWRkKGxpZ2h0LCAncG93ZXInLCAwLCAxNTAwMCkub25DaGFuZ2UoKHZhbDogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGZvbGRlci5hZGQobGlnaHQsICdkZWNheScsIDAsIDUpLm9uQ2hhbmdlKCh2YWw6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyBmb2xkZXIuYWRkKGxpZ2h0LCAnZGlzdGFuY2UnLCAwLCAxMDApLm9uQ2hhbmdlKCh2YWw6IGFueSkgPT4ge1xyXG4gICAgICAvLyAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAgIC8vIH0pO1xyXG4gICAgfVxyXG4gICAgZm9sZGVyLmFkZChsaWdodCwgJ2ludGVuc2l0eScsIDAuMDEsIDIwKS5zdGVwKDAuMDEpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgIH0pO1xyXG4gICAgaWYgKGxpZ2h0LnNoYWRvdykge1xyXG4gICAgICBjb25zdCBzaGFkb3cgPSBsaWdodC5zaGFkb3c7XHJcbiAgICAgIGZvbGRlci5hZGQoc2hhZG93LCAnYmlhcycsIC0xLCAxKS5zdGVwKDAuMDAwMSkub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBmb2xkZXIuYWRkKHNoYWRvdywgJ3JhZGl1cycsIC0xMCwgMTApLnN0ZXAoMC4xKS5vbkNoYW5nZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAobGlnaHQgaW5zdGFuY2VvZiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0IHx8IGxpZ2h0IGluc3RhbmNlb2YgVEhSRUUuU3BvdExpZ2h0KSB7XHJcbiAgICAgIGNvbnN0IHRhcmdldEZvbGRlciA9IGZvbGRlci5hZGRGb2xkZXIoJ3RhcmdldCcpO1xyXG4gICAgICB0YXJnZXRGb2xkZXIuYWRkKGxpZ2h0LnRhcmdldC5wb3NpdGlvbiwgJ3gnLCAtNTAsIDUwKS5zdGVwKDEpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGFyZ2V0Rm9sZGVyLmFkZChsaWdodC50YXJnZXQucG9zaXRpb24sICd5JywgMCwgNTApLnN0ZXAoMSkub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0YXJnZXRGb2xkZXIuYWRkKGxpZ2h0LnRhcmdldC5wb3NpdGlvbiwgJ3onLCAtNTAsIDUwKS5zdGVwKDEpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl91cGRhdGVTY2VuZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmIChsaWdodFBhcmFtcy5jYW5DYXN0U2hhZG93KSB7XHJcbiAgICAgIGZvbGRlci5hZGQobGlnaHQsICdjYXN0U2hhZG93Jykub25DaGFuZ2UoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVNjZW5lKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKGxpZ2h0UGFyYW1zLnNob3dIZWxwZXIpIHtcclxuICAgICAgZm9sZGVyLmFkZChsaWdodFBhcmFtcywgJ2hlbHBlcicpLm9uQ2hhbmdlKCgpID0+IHtcclxuICAgICAgICBpZiAobGlnaHRQYXJhbXMuaGVscGVyKSB7XHJcbiAgICAgICAgICBsaWdodFBhcmFtcy5hZGRIZWxwZXJGbi5jYWxsKHRoaXMsIGxpZ2h0LCBsaWdodFBhcmFtcy5uYW1lKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGlnaHRQYXJhbXMucmVtb3ZlSGVscGVyRm4uY2FsbCh0aGlzLCBsaWdodFBhcmFtcy5uYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlU2NlbmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVNwb3RsaWdodEhlbHBlcihsaWdodDogVEhSRUUuTGlnaHQsIG5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgaGVscGVyOiBUSFJFRS5TcG90TGlnaHRIZWxwZXIgPSBuZXcgVEhSRUUuU3BvdExpZ2h0SGVscGVyKGxpZ2h0KTtcclxuICAgIGhlbHBlci5uYW1lID0gbmFtZSArICdIZWxwZXInO1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLnNjZW5lLmFkZChoZWxwZXIpO1xyXG4gICAgY29uc3Qgc2hhZG93Q2FtZXJhSGVscGVyID0gbmV3IFRIUkVFLkNhbWVyYUhlbHBlcihsaWdodC5zaGFkb3cuY2FtZXJhKTtcclxuICAgIHNoYWRvd0NhbWVyYUhlbHBlci5uYW1lID0gbmFtZSArICdDYW1lcmFIZWxwZXInO1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLnNjZW5lLmFkZChzaGFkb3dDYW1lcmFIZWxwZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVQb2ludGxpZ2h0SGVscGVyKGxpZ2h0OiBUSFJFRS5Qb2ludExpZ2h0LCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGhlbHBlcjogVEhSRUUuUG9pbnRMaWdodEhlbHBlciA9IG5ldyBUSFJFRS5Qb2ludExpZ2h0SGVscGVyKGxpZ2h0LCAxMCk7XHJcbiAgICBoZWxwZXIubmFtZSA9IG5hbWUgKyAnSGVscGVyJztcclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZS5hZGQoaGVscGVyKTtcclxuICAgIC8vIGNvbnN0IHNoYWRvd0NhbWVyYUhlbHBlciA9IG5ldyBUSFJFRS5DYW1lcmFIZWxwZXIobGlnaHQuc2hhZG93LmNhbWVyYSk7XHJcbiAgICAvLyBzaGFkb3dDYW1lcmFIZWxwZXIubmFtZSA9IG5hbWUgKyAnQ2FtZXJhSGVscGVyJztcclxuICAgIC8vIHRoaXMuX3RocmVlU2VydmljZS5tb2RlbC5zY2VuZS5nZXRTY2VuZSgpLmFkZChzaGFkb3dDYW1lcmFIZWxwZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVEaXJlY3Rpb25hbExpZ2h0SGVscGVyKGxpZ2h0OiBUSFJFRS5MaWdodCwgbmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBoZWxwZXI6IFRIUkVFLkRpcmVjdGlvbmFsTGlnaHRIZWxwZXIgPSBuZXcgVEhSRUUuRGlyZWN0aW9uYWxMaWdodEhlbHBlcig8VEhSRUUuRGlyZWN0aW9uYWxMaWdodD5saWdodCwgNSk7XHJcbiAgICBoZWxwZXIubmFtZSA9IG5hbWUgKyAnSGVscGVyJztcclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZS5hZGQoaGVscGVyKTtcclxuICAgIGNvbnN0IHNoYWRvd0NhbWVyYUhlbHBlciA9IG5ldyBUSFJFRS5DYW1lcmFIZWxwZXIobGlnaHQuc2hhZG93LmNhbWVyYSk7XHJcbiAgICBzaGFkb3dDYW1lcmFIZWxwZXIubmFtZSA9IG5hbWUgKyAnQ2FtZXJhSGVscGVyJztcclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZS5hZGQoc2hhZG93Q2FtZXJhSGVscGVyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlSGVtaXNwaGVyZUxpZ2h0SGVscGVyKGxpZ2h0OiBUSFJFRS5MaWdodCwgbmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBoZWxwZXI6IFRIUkVFLkhlbWlzcGhlcmVMaWdodEhlbHBlciA9IG5ldyBUSFJFRS5IZW1pc3BoZXJlTGlnaHRIZWxwZXIoPFRIUkVFLkhlbWlzcGhlcmVMaWdodD5saWdodCwgNSk7XHJcbiAgICBoZWxwZXIubmFtZSA9IG5hbWUgKyAnSGVscGVyJztcclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZS5hZGQoaGVscGVyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlTGlnaHRIZWxwZXIobmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBoZWxwZXJOYW1lOiBzdHJpbmcgPSBuYW1lICsgJ0hlbHBlcic7XHJcbiAgICB0aGlzLl9zY2VuZVNlcnZpY2Uuc2NlbmUucmVtb3ZlKHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZS5nZXRPYmplY3RCeU5hbWUoaGVscGVyTmFtZSkpO1xyXG4gICAgY29uc3QgY2FtZXJhSGVscGVyTmFtZTogc3RyaW5nID0gbmFtZSArICdDYW1lcmFIZWxwZXInO1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLnNjZW5lLnJlbW92ZSh0aGlzLl9zY2VuZVNlcnZpY2Uuc2NlbmUuZ2V0T2JqZWN0QnlOYW1lKGNhbWVyYUhlbHBlck5hbWUpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZVNjZW5lKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2NlbmVTZXJ2aWNlLm5lZWRzUmVuZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMuX3NjZW5lU2VydmljZS5zY2VuZS5jaGlsZHJlbi5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBpZiAoYy5uYW1lICYmIGMubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2hlbHBlcicpID4gLTEpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgKGMgYXMgYW55KS51cGRhdGUoKTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIiJdfQ==
@@ -26,7 +26,7 @@ export class CustomCylinderFloorItem extends FloorItem {
26
26
  });
27
27
  const origScale = this.metadata.scale ? new Vector3(1, 1, 1).divide(this.metadata.scale) : new Vector3(1, 1, 1);
28
28
  const metadata = Object.assign({}, this.metadata);
29
- metadata.skin = this.skin;
29
+ metadata.skin = Object.assign({}, this.skin);
30
30
  const copy = new CustomCylinderFloorItem(metadata, new Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
31
31
  copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
32
32
  copy.calculateHalfSize();
@@ -38,4 +38,4 @@ export class CustomCylinderFloorItem extends FloorItem {
38
38
  this.setScale(x, y, x);
39
39
  }
40
40
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWN5bGluZGVyLWZsb29yLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL2NvcmUzZC9pdGVtcy9jdXN0b20tY3lsaW5kZXItZmxvb3ItaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFZLElBQUksRUFBWSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDL0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUd2QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVuRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsU0FBUztJQUVwRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JGLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUNFLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLE9BQWlCO1FBR2pCLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFTSxTQUFTO1FBQ2QsTUFBTSxTQUFTLEdBQWUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlILE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUMvQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pILE1BQU0sUUFBUSxxQkFBaUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMxQixNQUFNLElBQUksR0FBNEIsSUFBSSx1QkFBdUIsQ0FDL0QsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDdEgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFlLEVBQUUsTUFBZTtRQUM1QyxNQUFNLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMvQixNQUFNLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbG9yLCBNYXRlcmlhbCwgTWVzaCwgT2JqZWN0M0QsIFZlY3RvcjN9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtGbG9vckl0ZW19IGZyb20gJy4vZmxvb3ItaXRlbSc7XHJcbmltcG9ydCB7TWV0YWRhdGF9IGZyb20gJy4vbWV0YWRhdGEnO1xyXG5pbXBvcnQge1RleHR1cmV9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWwvdGV4dHVyZSc7XHJcbmltcG9ydCB7Q3lsaW5kZXJTa2luRGVmYXVsdH0gZnJvbSAnLi4vbW9kZWwvY3lsaW5kZXItc2tpbi1kZWZhdWx0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21DeWxpbmRlckZsb29ySXRlbSBleHRlbmRzIEZsb29ySXRlbSB7XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VzdG9tTWVzaCgpOiBNZXNoIHtcclxuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuICYmIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMCA/IHRoaXMuY2hpbGRyZW5bMF0gYXMgTWVzaCA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXQgcmFkaXVzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRXaWR0aCgpIC8gMjtcclxuICB9XHJcblxyXG4gIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmdldEhlaWdodCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBtZXRhZGF0YTogTWV0YWRhdGEsXHJcbiAgICBvYmplY3Q6IE9iamVjdDNEIHwgTWVzaCxcclxuICAgIHRleHR1cmU/OiBUZXh0dXJlXHJcbiAgKSB7XHJcblxyXG4gICAgc3VwZXIobWV0YWRhdGEsIG9iamVjdCwgdGV4dHVyZSk7XHJcbiAgICBpZiAoIXRoaXMuc2tpbikge1xyXG4gICAgICB0aGlzLnNraW4gPSBDeWxpbmRlclNraW5EZWZhdWx0LmdlbmVyYXRlRGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb25lSXRlbSgpOiBDdXN0b21DeWxpbmRlckZsb29ySXRlbSB7XHJcbiAgICBjb25zdCBtYXRlcmlhbHM6IE1hdGVyaWFsW10gPSBBcnJheS5pc0FycmF5KHRoaXMuY3VzdG9tTWVzaC5tYXRlcmlhbCkgPyB0aGlzLmN1c3RvbU1lc2gubWF0ZXJpYWwgOiBbdGhpcy5jdXN0b21NZXNoLm1hdGVyaWFsXTtcclxuICAgIGNvbnN0IG1hdGVyaWFsc0Nsb25lZCA9IG1hdGVyaWFscy5tYXAoKG06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBtYXRlcmlhbCA9IG0uY2xvbmUoKTtcclxuICAgICAgbWF0ZXJpYWwuZW1pc3NpdmUgPSBuZXcgQ29sb3IoMHgwMDAwMDApO1xyXG4gICAgICByZXR1cm4gbWF0ZXJpYWw7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG9yaWdTY2FsZTogVmVjdG9yMyA9IHRoaXMubWV0YWRhdGEuc2NhbGUgPyBuZXcgVmVjdG9yMygxLCAxLCAxKS5kaXZpZGUodGhpcy5tZXRhZGF0YS5zY2FsZSkgOiBuZXcgVmVjdG9yMygxLCAxLCAxKTtcclxuICAgIGNvbnN0IG1ldGFkYXRhOiBNZXRhZGF0YSA9IHsuLi50aGlzLm1ldGFkYXRhfTtcclxuICAgIG1ldGFkYXRhLnNraW4gPSB0aGlzLnNraW47XHJcbiAgICBjb25zdCBjb3B5OiBDdXN0b21DeWxpbmRlckZsb29ySXRlbSA9IG5ldyBDdXN0b21DeWxpbmRlckZsb29ySXRlbShcclxuICAgICAgbWV0YWRhdGEsIG5ldyBNZXNoKHRoaXMuY3VzdG9tTWVzaC5nZW9tZXRyeS5jbG9uZSgpLnNjYWxlKG9yaWdTY2FsZS54LCBvcmlnU2NhbGUueSwgb3JpZ1NjYWxlLnopLCBtYXRlcmlhbHNDbG9uZWQpKTtcclxuICAgIGNvcHkuc2NhbGVHZW9tZXRyeSh0aGlzLnNjYWxlLngsIHRoaXMuc2NhbGUueSwgdGhpcy5zY2FsZS56KTtcclxuICAgIGNvcHkuY2FsY3VsYXRlSGFsZlNpemUoKTtcclxuICAgIHJldHVybiBjb3B5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2l6ZShyYWRpdXM/OiBudW1iZXIsIGhlaWdodD86IG51bWJlcikge1xyXG4gICAgY29uc3QgeCA9IHJhZGl1cyAvIHRoaXMucmFkaXVzO1xyXG4gICAgY29uc3QgeSA9IGhlaWdodCAvIHRoaXMuZ2V0SGVpZ2h0KCk7XHJcbiAgICB0aGlzLnNldFNjYWxlKHgsIHksIHgpO1xyXG4gIH1cclxufVxyXG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWN5bGluZGVyLWZsb29yLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL2NvcmUzZC9pdGVtcy9jdXN0b20tY3lsaW5kZXItZmxvb3ItaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFZLElBQUksRUFBWSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDL0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUd2QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVuRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsU0FBUztJQUVwRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JGLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxZQUNFLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLE9BQWlCO1FBR2pCLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFTSxTQUFTO1FBQ2QsTUFBTSxTQUFTLEdBQWUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlILE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUMvQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pILE1BQU0sUUFBUSxxQkFBaUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sSUFBSSxHQUE0QixJQUFJLHVCQUF1QixDQUMvRCxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN0SCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQWUsRUFBRSxNQUFlO1FBQzVDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sb3IsIE1hdGVyaWFsLCBNZXNoLCBPYmplY3QzRCwgVmVjdG9yM30gZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge0Zsb29ySXRlbX0gZnJvbSAnLi9mbG9vci1pdGVtJztcclxuaW1wb3J0IHtNZXRhZGF0YX0gZnJvbSAnLi9tZXRhZGF0YSc7XHJcbmltcG9ydCB7VGV4dHVyZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbC90ZXh0dXJlJztcclxuaW1wb3J0IHtDeWxpbmRlclNraW5EZWZhdWx0fSBmcm9tICcuLi9tb2RlbC9jeWxpbmRlci1za2luLWRlZmF1bHQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUN5bGluZGVyRmxvb3JJdGVtIGV4dGVuZHMgRmxvb3JJdGVtIHtcclxuXHJcbiAgcHVibGljIGdldCBjdXN0b21NZXNoKCk6IE1lc2gge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4gJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwID8gdGhpcy5jaGlsZHJlblswXSBhcyBNZXNoIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldCByYWRpdXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmdldFdpZHRoKCkgLyAyO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhlaWdodCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0SGVpZ2h0KCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG1ldGFkYXRhOiBNZXRhZGF0YSxcclxuICAgIG9iamVjdDogT2JqZWN0M0QgfCBNZXNoLFxyXG4gICAgdGV4dHVyZT86IFRleHR1cmVcclxuICApIHtcclxuXHJcbiAgICBzdXBlcihtZXRhZGF0YSwgb2JqZWN0LCB0ZXh0dXJlKTtcclxuICAgIGlmICghdGhpcy5za2luKSB7XHJcbiAgICAgIHRoaXMuc2tpbiA9IEN5bGluZGVyU2tpbkRlZmF1bHQuZ2VuZXJhdGVEZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvbmVJdGVtKCk6IEN1c3RvbUN5bGluZGVyRmxvb3JJdGVtIHtcclxuICAgIGNvbnN0IG1hdGVyaWFsczogTWF0ZXJpYWxbXSA9IEFycmF5LmlzQXJyYXkodGhpcy5jdXN0b21NZXNoLm1hdGVyaWFsKSA/IHRoaXMuY3VzdG9tTWVzaC5tYXRlcmlhbCA6IFt0aGlzLmN1c3RvbU1lc2gubWF0ZXJpYWxdO1xyXG4gICAgY29uc3QgbWF0ZXJpYWxzQ2xvbmVkID0gbWF0ZXJpYWxzLm1hcCgobTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG1hdGVyaWFsID0gbS5jbG9uZSgpO1xyXG4gICAgICBtYXRlcmlhbC5lbWlzc2l2ZSA9IG5ldyBDb2xvcigweDAwMDAwMCk7XHJcbiAgICAgIHJldHVybiBtYXRlcmlhbDtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgb3JpZ1NjYWxlOiBWZWN0b3IzID0gdGhpcy5tZXRhZGF0YS5zY2FsZSA/IG5ldyBWZWN0b3IzKDEsIDEsIDEpLmRpdmlkZSh0aGlzLm1ldGFkYXRhLnNjYWxlKSA6IG5ldyBWZWN0b3IzKDEsIDEsIDEpO1xyXG4gICAgY29uc3QgbWV0YWRhdGE6IE1ldGFkYXRhID0gey4uLnRoaXMubWV0YWRhdGF9O1xyXG4gICAgbWV0YWRhdGEuc2tpbiA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc2tpbik7XHJcbiAgICBjb25zdCBjb3B5OiBDdXN0b21DeWxpbmRlckZsb29ySXRlbSA9IG5ldyBDdXN0b21DeWxpbmRlckZsb29ySXRlbShcclxuICAgICAgbWV0YWRhdGEsIG5ldyBNZXNoKHRoaXMuY3VzdG9tTWVzaC5nZW9tZXRyeS5jbG9uZSgpLnNjYWxlKG9yaWdTY2FsZS54LCBvcmlnU2NhbGUueSwgb3JpZ1NjYWxlLnopLCBtYXRlcmlhbHNDbG9uZWQpKTtcclxuICAgIGNvcHkuc2NhbGVHZW9tZXRyeSh0aGlzLnNjYWxlLngsIHRoaXMuc2NhbGUueSwgdGhpcy5zY2FsZS56KTtcclxuICAgIGNvcHkuY2FsY3VsYXRlSGFsZlNpemUoKTtcclxuICAgIHJldHVybiBjb3B5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2l6ZShyYWRpdXM/OiBudW1iZXIsIGhlaWdodD86IG51bWJlcikge1xyXG4gICAgY29uc3QgeCA9IHJhZGl1cyAvIHRoaXMucmFkaXVzO1xyXG4gICAgY29uc3QgeSA9IGhlaWdodCAvIHRoaXMuZ2V0SGVpZ2h0KCk7XHJcbiAgICB0aGlzLnNldFNjYWxlKHgsIHksIHgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -30,7 +30,7 @@ export class CustomCylinderWallItem extends WallItem {
30
30
  });
31
31
  const origScale = this.metadata.scale ? new Vector3(1, 1, 1).divide(this.metadata.scale) : new Vector3(1, 1, 1);
32
32
  const metadata = Object.assign({}, this.metadata);
33
- metadata.skin = this.skin;
33
+ metadata.skin = Object.assign({}, this.skin);
34
34
  const copy = new CustomCylinderWallItem(metadata, new Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
35
35
  copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
36
36
  copy.calculateHalfSize();
@@ -42,4 +42,4 @@ export class CustomCylinderWallItem extends WallItem {
42
42
  this.setScale(x, x, y);
43
43
  }
44
44
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWN5bGluZGVyLXdhbGwtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvY29yZTNkL2l0ZW1zL2N1c3RvbS1jeWxpbmRlci13YWxsLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBWSxJQUFJLEVBQVksT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUduRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsUUFBUTtJQUVsRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JGLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUNFLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLE9BQWlCO1FBR2pCLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxTQUFTO1FBQ2QsTUFBTSxTQUFTLEdBQWUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlILE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUMvQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pILE1BQU0sUUFBUSxxQkFBaUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMxQixNQUFNLElBQUksR0FBMkIsSUFBSSxzQkFBc0IsQ0FDN0QsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDdEgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFlLEVBQUUsTUFBZTtRQUM1QyxNQUFNLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMvQixNQUFNLENBQUMsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbG9yLCBNYXRlcmlhbCwgTWVzaCwgT2JqZWN0M0QsIFZlY3RvcjN9IGZyb20gJ3RocmVlJztcclxuaW1wb3J0IHtXYWxsSXRlbX0gZnJvbSAnLi93YWxsLW9iamVjdHMnO1xyXG5pbXBvcnQge01ldGFkYXRhfSBmcm9tICcuL21ldGFkYXRhJztcclxuaW1wb3J0IHtDeWxpbmRlclNraW5EZWZhdWx0fSBmcm9tICcuLi9tb2RlbC9jeWxpbmRlci1za2luLWRlZmF1bHQnO1xyXG5pbXBvcnQge1RleHR1cmV9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWwvdGV4dHVyZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ3lsaW5kZXJXYWxsSXRlbSBleHRlbmRzIFdhbGxJdGVtIHtcclxuXHJcbiAgcHVibGljIGdldCBjdXN0b21NZXNoKCk6IE1lc2gge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4gJiYgdGhpcy5jaGlsZHJlbi5sZW5ndGggPiAwID8gdGhpcy5jaGlsZHJlblswXSBhcyBNZXNoIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldCByYWRpdXMoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmdldFdpZHRoKCkgLyAyO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGhlaWdodCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RGVwdGgoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgbWV0YWRhdGE6IE1ldGFkYXRhLFxyXG4gICAgb2JqZWN0OiBPYmplY3QzRCB8IE1lc2gsXHJcbiAgICB0ZXh0dXJlPzogVGV4dHVyZVxyXG4gICkge1xyXG5cclxuICAgIHN1cGVyKG1ldGFkYXRhLCBvYmplY3QsIHRleHR1cmUpO1xyXG4gICAgaWYgKCF0aGlzLnNraW4pIHtcclxuICAgICAgdGhpcy5za2luID0gQ3lsaW5kZXJTa2luRGVmYXVsdC5nZW5lcmF0ZURlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2l6ZWQoKSB7XHJcbiAgICBzdXBlci5yZXNpemVkKCk7XHJcbiAgICB0aGlzLnBsYWNlT25FZGdlKHRoaXMuY3VycmVudFdhbGxFZGdlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9uZUl0ZW0oKTogQ3VzdG9tQ3lsaW5kZXJXYWxsSXRlbSB7XHJcbiAgICBjb25zdCBtYXRlcmlhbHM6IE1hdGVyaWFsW10gPSBBcnJheS5pc0FycmF5KHRoaXMuY3VzdG9tTWVzaC5tYXRlcmlhbCkgPyB0aGlzLmN1c3RvbU1lc2gubWF0ZXJpYWwgOiBbdGhpcy5jdXN0b21NZXNoLm1hdGVyaWFsXTtcclxuICAgIGNvbnN0IG1hdGVyaWFsc0Nsb25lZCA9IG1hdGVyaWFscy5tYXAoKG06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBtYXRlcmlhbCA9IG0uY2xvbmUoKTtcclxuICAgICAgbWF0ZXJpYWwuZW1pc3NpdmUgPSBuZXcgQ29sb3IoMHgwMDAwMDApO1xyXG4gICAgICByZXR1cm4gbWF0ZXJpYWw7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG9yaWdTY2FsZTogVmVjdG9yMyA9IHRoaXMubWV0YWRhdGEuc2NhbGUgPyBuZXcgVmVjdG9yMygxLCAxLCAxKS5kaXZpZGUodGhpcy5tZXRhZGF0YS5zY2FsZSkgOiBuZXcgVmVjdG9yMygxLCAxLCAxKTtcclxuICAgIGNvbnN0IG1ldGFkYXRhOiBNZXRhZGF0YSA9IHsuLi50aGlzLm1ldGFkYXRhfTtcclxuICAgIG1ldGFkYXRhLnNraW4gPSB0aGlzLnNraW47XHJcbiAgICBjb25zdCBjb3B5OiBDdXN0b21DeWxpbmRlcldhbGxJdGVtID0gbmV3IEN1c3RvbUN5bGluZGVyV2FsbEl0ZW0oXHJcbiAgICAgIG1ldGFkYXRhLCBuZXcgTWVzaCh0aGlzLmN1c3RvbU1lc2guZ2VvbWV0cnkuY2xvbmUoKS5zY2FsZShvcmlnU2NhbGUueCwgb3JpZ1NjYWxlLnksIG9yaWdTY2FsZS56KSwgbWF0ZXJpYWxzQ2xvbmVkKSk7XHJcbiAgICBjb3B5LnNjYWxlR2VvbWV0cnkodGhpcy5zY2FsZS54LCB0aGlzLnNjYWxlLnksIHRoaXMuc2NhbGUueik7XHJcbiAgICBjb3B5LmNhbGN1bGF0ZUhhbGZTaXplKCk7XHJcbiAgICByZXR1cm4gY29weTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNpemUocmFkaXVzPzogbnVtYmVyLCBoZWlnaHQ/OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHggPSByYWRpdXMgLyB0aGlzLnJhZGl1cztcclxuICAgIGNvbnN0IHkgPSBoZWlnaHQgLyB0aGlzLmdldERlcHRoKCk7XHJcbiAgICB0aGlzLnNldFNjYWxlKHgsIHgsIHkpO1xyXG4gIH1cclxufVxyXG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWN5bGluZGVyLXdhbGwtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jbGllbnQvYXBwL3BsdWdpbnMvY29yZTNkL2l0ZW1zL2N1c3RvbS1jeWxpbmRlci13YWxsLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBWSxJQUFJLEVBQVksT0FBTyxFQUFDLE1BQU0sT0FBTyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUduRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsUUFBUTtJQUVsRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JGLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUNFLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLE9BQWlCO1FBR2pCLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxTQUFTO1FBQ2QsTUFBTSxTQUFTLEdBQWUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlILE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUMvQyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sU0FBUyxHQUFZLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pILE1BQU0sUUFBUSxxQkFBaUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLE1BQU0sSUFBSSxHQUEyQixJQUFJLHNCQUFzQixDQUM3RCxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN0SCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQWUsRUFBRSxNQUFlO1FBQzVDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxHQUFHLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sb3IsIE1hdGVyaWFsLCBNZXNoLCBPYmplY3QzRCwgVmVjdG9yM30gZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge1dhbGxJdGVtfSBmcm9tICcuL3dhbGwtb2JqZWN0cyc7XHJcbmltcG9ydCB7TWV0YWRhdGF9IGZyb20gJy4vbWV0YWRhdGEnO1xyXG5pbXBvcnQge0N5bGluZGVyU2tpbkRlZmF1bHR9IGZyb20gJy4uL21vZGVsL2N5bGluZGVyLXNraW4tZGVmYXVsdCc7XHJcbmltcG9ydCB7VGV4dHVyZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbC90ZXh0dXJlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21DeWxpbmRlcldhbGxJdGVtIGV4dGVuZHMgV2FsbEl0ZW0ge1xyXG5cclxuICBwdWJsaWMgZ2V0IGN1c3RvbU1lc2goKTogTWVzaCB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbiAmJiB0aGlzLmNoaWxkcmVuLmxlbmd0aCA+IDAgPyB0aGlzLmNoaWxkcmVuWzBdIGFzIE1lc2ggOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJhZGl1cygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0V2lkdGgoKSAvIDI7XHJcbiAgfVxyXG5cclxuICBnZXQgaGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXREZXB0aCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBtZXRhZGF0YTogTWV0YWRhdGEsXHJcbiAgICBvYmplY3Q6IE9iamVjdDNEIHwgTWVzaCxcclxuICAgIHRleHR1cmU/OiBUZXh0dXJlXHJcbiAgKSB7XHJcblxyXG4gICAgc3VwZXIobWV0YWRhdGEsIG9iamVjdCwgdGV4dHVyZSk7XHJcbiAgICBpZiAoIXRoaXMuc2tpbikge1xyXG4gICAgICB0aGlzLnNraW4gPSBDeWxpbmRlclNraW5EZWZhdWx0LmdlbmVyYXRlRGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzaXplZCgpIHtcclxuICAgIHN1cGVyLnJlc2l6ZWQoKTtcclxuICAgIHRoaXMucGxhY2VPbkVkZ2UodGhpcy5jdXJyZW50V2FsbEVkZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb25lSXRlbSgpOiBDdXN0b21DeWxpbmRlcldhbGxJdGVtIHtcclxuICAgIGNvbnN0IG1hdGVyaWFsczogTWF0ZXJpYWxbXSA9IEFycmF5LmlzQXJyYXkodGhpcy5jdXN0b21NZXNoLm1hdGVyaWFsKSA/IHRoaXMuY3VzdG9tTWVzaC5tYXRlcmlhbCA6IFt0aGlzLmN1c3RvbU1lc2gubWF0ZXJpYWxdO1xyXG4gICAgY29uc3QgbWF0ZXJpYWxzQ2xvbmVkID0gbWF0ZXJpYWxzLm1hcCgobTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG1hdGVyaWFsID0gbS5jbG9uZSgpO1xyXG4gICAgICBtYXRlcmlhbC5lbWlzc2l2ZSA9IG5ldyBDb2xvcigweDAwMDAwMCk7XHJcbiAgICAgIHJldHVybiBtYXRlcmlhbDtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgb3JpZ1NjYWxlOiBWZWN0b3IzID0gdGhpcy5tZXRhZGF0YS5zY2FsZSA/IG5ldyBWZWN0b3IzKDEsIDEsIDEpLmRpdmlkZSh0aGlzLm1ldGFkYXRhLnNjYWxlKSA6IG5ldyBWZWN0b3IzKDEsIDEsIDEpO1xyXG4gICAgY29uc3QgbWV0YWRhdGE6IE1ldGFkYXRhID0gey4uLnRoaXMubWV0YWRhdGF9O1xyXG4gICAgbWV0YWRhdGEuc2tpbiA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuc2tpbik7XHJcbiAgICBjb25zdCBjb3B5OiBDdXN0b21DeWxpbmRlcldhbGxJdGVtID0gbmV3IEN1c3RvbUN5bGluZGVyV2FsbEl0ZW0oXHJcbiAgICAgIG1ldGFkYXRhLCBuZXcgTWVzaCh0aGlzLmN1c3RvbU1lc2guZ2VvbWV0cnkuY2xvbmUoKS5zY2FsZShvcmlnU2NhbGUueCwgb3JpZ1NjYWxlLnksIG9yaWdTY2FsZS56KSwgbWF0ZXJpYWxzQ2xvbmVkKSk7XHJcbiAgICBjb3B5LnNjYWxlR2VvbWV0cnkodGhpcy5zY2FsZS54LCB0aGlzLnNjYWxlLnksIHRoaXMuc2NhbGUueik7XHJcbiAgICBjb3B5LmNhbGN1bGF0ZUhhbGZTaXplKCk7XHJcbiAgICByZXR1cm4gY29weTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNpemUocmFkaXVzPzogbnVtYmVyLCBoZWlnaHQ/OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHggPSByYWRpdXMgLyB0aGlzLnJhZGl1cztcclxuICAgIGNvbnN0IHkgPSBoZWlnaHQgLyB0aGlzLmdldERlcHRoKCk7XHJcbiAgICB0aGlzLnNldFNjYWxlKHgsIHgsIHkpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -35,11 +35,11 @@ export class CustomShapeFloorItem extends FloorItem {
35
35
  });
36
36
  const origScale = this.metadata.scale ? new Vector3(1, 1, 1).divide(this.metadata.scale) : new Vector3(1, 1, 1);
37
37
  const metadata = Object.assign({}, this.metadata);
38
- metadata.skin = this.skin;
38
+ metadata.skin = Object.assign({}, this.skin);
39
39
  const copy = new CustomShapeFloorItem(metadata, new Mesh(this.customMesh.geometry.clone().scale(origScale.x, origScale.y, origScale.z), materialsCloned));
40
40
  copy.scaleGeometry(this.scale.x, this.scale.y, this.scale.z);
41
41
  copy.calculateHalfSize();
42
42
  return copy;
43
43
  }
44
44
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNoYXBlLWZsb29yLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL2NvcmUzZC9pdGVtcy9jdXN0b20tc2hhcGUtZmxvb3ItaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFZLElBQUksRUFBWSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDL0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUd2QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsU0FBUztJQUVqRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JGLENBQUM7SUFFRCxZQUNFLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLE9BQWlCO1FBRWpCLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsTUFBTSxRQUFRLEdBQUksTUFBYyxDQUFDLFFBQVEsQ0FBQztZQUMxQyxJQUFJLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNoRSxJQUFJLENBQUMsSUFBSSxHQUFHO29CQUNWLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztvQkFDL0ksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUUsUUFBUSxDQUFDLENBQUMsQ0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDO29CQUMvSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUM7b0JBQy9JLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztvQkFDL0ksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUUsUUFBUSxDQUFDLENBQUMsQ0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDO29CQUMvSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUM7b0JBQy9JLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztpQkFDcEUsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQzlDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sU0FBUztRQUNkLE1BQU0sU0FBUyxHQUFlLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5SCxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDL0MsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBWSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6SCxNQUFNLFFBQVEscUJBQWlCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUIsTUFBTSxJQUFJLEdBQXlCLElBQUksb0JBQW9CLENBQ3pELFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3RILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sb3IsIE1hdGVyaWFsLCBNZXNoLCBPYmplY3QzRCwgVmVjdG9yM30gZnJvbSAndGhyZWUnO1xyXG5pbXBvcnQge0Zsb29ySXRlbX0gZnJvbSAnLi9mbG9vci1pdGVtJztcclxuaW1wb3J0IHtNZXRhZGF0YX0gZnJvbSAnLi9tZXRhZGF0YSc7XHJcbmltcG9ydCB7VGV4dHVyZX0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbC90ZXh0dXJlJztcclxuaW1wb3J0IHtGYWNlfSBmcm9tICcuLi9tb2RlbC9mYWNlJztcclxuaW1wb3J0IHtCb3hTa2luRGVmYXVsdH0gZnJvbSAnLi4vbW9kZWwvYm94LXNraW4tZGVmYXVsdCc7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tU2hhcGVGbG9vckl0ZW0gZXh0ZW5kcyBGbG9vckl0ZW0ge1xyXG5cclxuICBwdWJsaWMgZ2V0IGN1c3RvbU1lc2goKTogTWVzaCB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGlsZHJlbiAmJiB0aGlzLmNoaWxkcmVuLmxlbmd0aCA+IDAgPyB0aGlzLmNoaWxkcmVuWzBdIGFzIE1lc2ggOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBtZXRhZGF0YTogTWV0YWRhdGEsXHJcbiAgICBvYmplY3Q6IE9iamVjdDNEIHwgTWVzaCxcclxuICAgIHRleHR1cmU/OiBUZXh0dXJlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtZXRhZGF0YSwgb2JqZWN0LCB0ZXh0dXJlKTtcclxuICAgIGlmICghdGhpcy5za2luKSB7XHJcbiAgICAgIGNvbnN0IG1hdGVyaWFsID0gKG9iamVjdCBhcyBhbnkpLm1hdGVyaWFsO1xyXG4gICAgICBpZiAobWF0ZXJpYWwgJiYgQXJyYXkuaXNBcnJheShtYXRlcmlhbCkgJiYgbWF0ZXJpYWwubGVuZ3RoID09PSA2KSB7XHJcbiAgICAgICAgdGhpcy5za2luID0ge1xyXG4gICAgICAgICAgW0ZhY2UuRnJvbnRdOiAgeyBjb2xvcjogbWF0ZXJpYWxbMF0uaGFzT3duUHJvcGVydHkoJ2NvbG9yJykgPyAobWF0ZXJpYWxbMF0gYXMgYW55KS5jb2xvci5nZXRIZXgoKSA6IEJveFNraW5EZWZhdWx0LmRlZmF1bHRDb2xvciwgdGV4dHVyZTogbnVsbH0sXHJcbiAgICAgICAgICBbRmFjZS5CYWNrXTogICB7IGNvbG9yOiBtYXRlcmlhbFsxXS5oYXNPd25Qcm9wZXJ0eSgnY29sb3InKSA/IChtYXRlcmlhbFsxXSBhcyBhbnkpLmNvbG9yLmdldEhleCgpIDogQm94U2tpbkRlZmF1bHQuZGVmYXVsdENvbG9yLCB0ZXh0dXJlOiBudWxsfSxcclxuICAgICAgICAgIFtGYWNlLkxlZnRdOiAgIHsgY29sb3I6IG1hdGVyaWFsWzRdLmhhc093blByb3BlcnR5KCdjb2xvcicpID8gKG1hdGVyaWFsWzRdIGFzIGFueSkuY29sb3IuZ2V0SGV4KCkgOiBCb3hTa2luRGVmYXVsdC5kZWZhdWx0Q29sb3IsIHRleHR1cmU6IG51bGx9LFxyXG4gICAgICAgICAgW0ZhY2UuUmlnaHRdOiAgeyBjb2xvcjogbWF0ZXJpYWxbM10uaGFzT3duUHJvcGVydHkoJ2NvbG9yJykgPyAobWF0ZXJpYWxbM10gYXMgYW55KS5jb2xvci5nZXRIZXgoKSA6IEJveFNraW5EZWZhdWx0LmRlZmF1bHRDb2xvciwgdGV4dHVyZTogbnVsbH0sXHJcbiAgICAgICAgICBbRmFjZS5Ub3BdOiAgICB7IGNvbG9yOiBtYXRlcmlhbFsyXS5oYXNPd25Qcm9wZXJ0eSgnY29sb3InKSA/IChtYXRlcmlhbFsyXSBhcyBhbnkpLmNvbG9yLmdldEhleCgpIDogQm94U2tpbkRlZmF1bHQuZGVmYXVsdENvbG9yLCB0ZXh0dXJlOiBudWxsfSxcclxuICAgICAgICAgIFtGYWNlLkJvdHRvbV06IHsgY29sb3I6IG1hdGVyaWFsWzVdLmhhc093blByb3BlcnR5KCdjb2xvcicpID8gKG1hdGVyaWFsWzVdIGFzIGFueSkuY29sb3IuZ2V0SGV4KCkgOiBCb3hTa2luRGVmYXVsdC5kZWZhdWx0Q29sb3IsIHRleHR1cmU6IG51bGx9LFxyXG4gICAgICAgICAgW0ZhY2UuQWxsXTogICAgeyBjb2xvcjogQm94U2tpbkRlZmF1bHQuZGVmYXVsdENvbG9yLCB0ZXh0dXJlOiBudWxsfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5za2luID0gQm94U2tpbkRlZmF1bHQuZ2VuZXJhdGVEZWZhdWx0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9uZUl0ZW0oKTogQ3VzdG9tU2hhcGVGbG9vckl0ZW0ge1xyXG4gICAgY29uc3QgbWF0ZXJpYWxzOiBNYXRlcmlhbFtdID0gQXJyYXkuaXNBcnJheSh0aGlzLmN1c3RvbU1lc2gubWF0ZXJpYWwpID8gdGhpcy5jdXN0b21NZXNoLm1hdGVyaWFsIDogW3RoaXMuY3VzdG9tTWVzaC5tYXRlcmlhbF07XHJcbiAgICBjb25zdCBtYXRlcmlhbHNDbG9uZWQgPSBtYXRlcmlhbHMubWFwKChtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbWF0ZXJpYWwgPSBtLmNsb25lKCk7XHJcbiAgICAgIG1hdGVyaWFsLmVtaXNzaXZlID0gbmV3IENvbG9yKDB4MDAwMDAwKTtcclxuICAgICAgcmV0dXJuIG1hdGVyaWFsO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBvcmlnU2NhbGU6IFZlY3RvcjMgPSB0aGlzLm1ldGFkYXRhLnNjYWxlID8gbmV3IFZlY3RvcjMoMSwgMSwgMSkuZGl2aWRlKHRoaXMubWV0YWRhdGEuc2NhbGUpIDogbmV3IFZlY3RvcjMoMSwgMSwgMSk7XHJcbiAgICBjb25zdCBtZXRhZGF0YTogTWV0YWRhdGEgPSB7Li4udGhpcy5tZXRhZGF0YX07XHJcbiAgICBtZXRhZGF0YS5za2luID0gdGhpcy5za2luO1xyXG4gICAgY29uc3QgY29weTogQ3VzdG9tU2hhcGVGbG9vckl0ZW0gPSBuZXcgQ3VzdG9tU2hhcGVGbG9vckl0ZW0oXHJcbiAgICAgIG1ldGFkYXRhLCBuZXcgTWVzaCh0aGlzLmN1c3RvbU1lc2guZ2VvbWV0cnkuY2xvbmUoKS5zY2FsZShvcmlnU2NhbGUueCwgb3JpZ1NjYWxlLnksIG9yaWdTY2FsZS56KSwgbWF0ZXJpYWxzQ2xvbmVkKSk7XHJcbiAgICBjb3B5LnNjYWxlR2VvbWV0cnkodGhpcy5zY2FsZS54LCB0aGlzLnNjYWxlLnksIHRoaXMuc2NhbGUueik7XHJcbiAgICBjb3B5LmNhbGN1bGF0ZUhhbGZTaXplKCk7XHJcbiAgICByZXR1cm4gY29weTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNoYXBlLWZsb29yLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2xpZW50L2FwcC9wbHVnaW5zL2NvcmUzZC9pdGVtcy9jdXN0b20tc2hhcGUtZmxvb3ItaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsS0FBSyxFQUFZLElBQUksRUFBWSxPQUFPLEVBQUMsTUFBTSxPQUFPLENBQUM7QUFDL0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUd2QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25DLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsU0FBUztJQUVqRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JGLENBQUM7SUFFRCxZQUNFLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLE9BQWlCO1FBRWpCLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsTUFBTSxRQUFRLEdBQUksTUFBYyxDQUFDLFFBQVEsQ0FBQztZQUMxQyxJQUFJLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNoRSxJQUFJLENBQUMsSUFBSSxHQUFHO29CQUNWLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztvQkFDL0ksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUUsUUFBUSxDQUFDLENBQUMsQ0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDO29CQUMvSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUM7b0JBQy9JLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztvQkFDL0ksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUUsUUFBUSxDQUFDLENBQUMsQ0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDO29CQUMvSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUM7b0JBQy9JLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFLLEVBQUUsS0FBSyxFQUFFLGNBQWMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztpQkFDcEUsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQzlDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sU0FBUztRQUNkLE1BQU0sU0FBUyxHQUFlLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5SCxNQUFNLGVBQWUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7WUFDL0MsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBWSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6SCxNQUFNLFFBQVEscUJBQWlCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxRQUFRLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBeUIsSUFBSSxvQkFBb0IsQ0FDekQsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDdEgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb2xvciwgTWF0ZXJpYWwsIE1lc2gsIE9iamVjdDNELCBWZWN0b3IzfSBmcm9tICd0aHJlZSc7XHJcbmltcG9ydCB7Rmxvb3JJdGVtfSBmcm9tICcuL2Zsb29yLWl0ZW0nO1xyXG5pbXBvcnQge01ldGFkYXRhfSBmcm9tICcuL21ldGFkYXRhJztcclxuaW1wb3J0IHtUZXh0dXJlfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVsL3RleHR1cmUnO1xyXG5pbXBvcnQge0ZhY2V9IGZyb20gJy4uL21vZGVsL2ZhY2UnO1xyXG5pbXBvcnQge0JveFNraW5EZWZhdWx0fSBmcm9tICcuLi9tb2RlbC9ib3gtc2tpbi1kZWZhdWx0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21TaGFwZUZsb29ySXRlbSBleHRlbmRzIEZsb29ySXRlbSB7XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VzdG9tTWVzaCgpOiBNZXNoIHtcclxuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuICYmIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMCA/IHRoaXMuY2hpbGRyZW5bMF0gYXMgTWVzaCA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG1ldGFkYXRhOiBNZXRhZGF0YSxcclxuICAgIG9iamVjdDogT2JqZWN0M0QgfCBNZXNoLFxyXG4gICAgdGV4dHVyZT86IFRleHR1cmVcclxuICApIHtcclxuICAgIHN1cGVyKG1ldGFkYXRhLCBvYmplY3QsIHRleHR1cmUpO1xyXG4gICAgaWYgKCF0aGlzLnNraW4pIHtcclxuICAgICAgY29uc3QgbWF0ZXJpYWwgPSAob2JqZWN0IGFzIGFueSkubWF0ZXJpYWw7XHJcbiAgICAgIGlmIChtYXRlcmlhbCAmJiBBcnJheS5pc0FycmF5KG1hdGVyaWFsKSAmJiBtYXRlcmlhbC5sZW5ndGggPT09IDYpIHtcclxuICAgICAgICB0aGlzLnNraW4gPSB7XHJcbiAgICAgICAgICBbRmFjZS5Gcm9udF06ICB7IGNvbG9yOiBtYXRlcmlhbFswXS5oYXNPd25Qcm9wZXJ0eSgnY29sb3InKSA/IChtYXRlcmlhbFswXSBhcyBhbnkpLmNvbG9yLmdldEhleCgpIDogQm94U2tpbkRlZmF1bHQuZGVmYXVsdENvbG9yLCB0ZXh0dXJlOiBudWxsfSxcclxuICAgICAgICAgIFtGYWNlLkJhY2tdOiAgIHsgY29sb3I6IG1hdGVyaWFsWzFdLmhhc093blByb3BlcnR5KCdjb2xvcicpID8gKG1hdGVyaWFsWzFdIGFzIGFueSkuY29sb3IuZ2V0SGV4KCkgOiBCb3hTa2luRGVmYXVsdC5kZWZhdWx0Q29sb3IsIHRleHR1cmU6IG51bGx9LFxyXG4gICAgICAgICAgW0ZhY2UuTGVmdF06ICAgeyBjb2xvcjogbWF0ZXJpYWxbNF0uaGFzT3duUHJvcGVydHkoJ2NvbG9yJykgPyAobWF0ZXJpYWxbNF0gYXMgYW55KS5jb2xvci5nZXRIZXgoKSA6IEJveFNraW5EZWZhdWx0LmRlZmF1bHRDb2xvciwgdGV4dHVyZTogbnVsbH0sXHJcbiAgICAgICAgICBbRmFjZS5SaWdodF06ICB7IGNvbG9yOiBtYXRlcmlhbFszXS5oYXNPd25Qcm9wZXJ0eSgnY29sb3InKSA/IChtYXRlcmlhbFszXSBhcyBhbnkpLmNvbG9yLmdldEhleCgpIDogQm94U2tpbkRlZmF1bHQuZGVmYXVsdENvbG9yLCB0ZXh0dXJlOiBudWxsfSxcclxuICAgICAgICAgIFtGYWNlLlRvcF06ICAgIHsgY29sb3I6IG1hdGVyaWFsWzJdLmhhc093blByb3BlcnR5KCdjb2xvcicpID8gKG1hdGVyaWFsWzJdIGFzIGFueSkuY29sb3IuZ2V0SGV4KCkgOiBCb3hTa2luRGVmYXVsdC5kZWZhdWx0Q29sb3IsIHRleHR1cmU6IG51bGx9LFxyXG4gICAgICAgICAgW0ZhY2UuQm90dG9tXTogeyBjb2xvcjogbWF0ZXJpYWxbNV0uaGFzT3duUHJvcGVydHkoJ2NvbG9yJykgPyAobWF0ZXJpYWxbNV0gYXMgYW55KS5jb2xvci5nZXRIZXgoKSA6IEJveFNraW5EZWZhdWx0LmRlZmF1bHRDb2xvciwgdGV4dHVyZTogbnVsbH0sXHJcbiAgICAgICAgICBbRmFjZS5BbGxdOiAgICB7IGNvbG9yOiBCb3hTa2luRGVmYXVsdC5kZWZhdWx0Q29sb3IsIHRleHR1cmU6IG51bGx9XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNraW4gPSBCb3hTa2luRGVmYXVsdC5nZW5lcmF0ZURlZmF1bHQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb25lSXRlbSgpOiBDdXN0b21TaGFwZUZsb29ySXRlbSB7XHJcbiAgICBjb25zdCBtYXRlcmlhbHM6IE1hdGVyaWFsW10gPSBBcnJheS5pc0FycmF5KHRoaXMuY3VzdG9tTWVzaC5tYXRlcmlhbCkgPyB0aGlzLmN1c3RvbU1lc2gubWF0ZXJpYWwgOiBbdGhpcy5jdXN0b21NZXNoLm1hdGVyaWFsXTtcclxuICAgIGNvbnN0IG1hdGVyaWFsc0Nsb25lZCA9IG1hdGVyaWFscy5tYXAoKG06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBtYXRlcmlhbCA9IG0uY2xvbmUoKTtcclxuICAgICAgbWF0ZXJpYWwuZW1pc3NpdmUgPSBuZXcgQ29sb3IoMHgwMDAwMDApO1xyXG4gICAgICByZXR1cm4gbWF0ZXJpYWw7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG9yaWdTY2FsZTogVmVjdG9yMyA9IHRoaXMubWV0YWRhdGEuc2NhbGUgPyBuZXcgVmVjdG9yMygxLCAxLCAxKS5kaXZpZGUodGhpcy5tZXRhZGF0YS5zY2FsZSkgOiBuZXcgVmVjdG9yMygxLCAxLCAxKTtcclxuICAgIGNvbnN0IG1ldGFkYXRhOiBNZXRhZGF0YSA9IHsuLi50aGlzLm1ldGFkYXRhfTtcclxuICAgIG1ldGFkYXRhLnNraW4gPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnNraW4pO1xyXG4gICAgY29uc3QgY29weTogQ3VzdG9tU2hhcGVGbG9vckl0ZW0gPSBuZXcgQ3VzdG9tU2hhcGVGbG9vckl0ZW0oXHJcbiAgICAgIG1ldGFkYXRhLCBuZXcgTWVzaCh0aGlzLmN1c3RvbU1lc2guZ2VvbWV0cnkuY2xvbmUoKS5zY2FsZShvcmlnU2NhbGUueCwgb3JpZ1NjYWxlLnksIG9yaWdTY2FsZS56KSwgbWF0ZXJpYWxzQ2xvbmVkKSk7XHJcbiAgICBjb3B5LnNjYWxlR2VvbWV0cnkodGhpcy5zY2FsZS54LCB0aGlzLnNjYWxlLnksIHRoaXMuc2NhbGUueik7XHJcbiAgICBjb3B5LmNhbGN1bGF0ZUhhbGZTaXplKCk7XHJcbiAgICByZXR1cm4gY29weTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==