@smarterplan/ngx-smarterplan-core 1.4.20 → 1.4.21

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 (99) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/components/csv-export/csv-export.component.mjs +3 -3
  3. package/esm2022/lib/components/loader/loader.component.mjs +3 -3
  4. package/esm2022/lib/components/menu-bar/avatar/avatar.component.mjs +1 -1
  5. package/esm2022/lib/components/menu-bar/menu-bar.component.mjs +3 -3
  6. package/esm2022/lib/components/menu-bar/navigation-bar/navigation-bar.component.mjs +3 -3
  7. package/esm2022/lib/components/modal-switch-visit/modal-switch-visit.component.mjs +3 -3
  8. package/esm2022/lib/components/search-bar/search-bar.component.mjs +3 -3
  9. package/esm2022/lib/components/support-modal/support-modal.component.mjs +3 -3
  10. package/esm2022/lib/config.mjs +1 -1
  11. package/esm2022/lib/helpers.service.mjs +1 -1
  12. package/esm2022/lib/matterport-extensions/nest-thermostat/CanvasImage.mjs +1 -1
  13. package/esm2022/lib/matterport-extensions/nest-thermostat/CanvasRenderer.mjs +1 -1
  14. package/esm2022/lib/matterport-extensions/nest-thermostat/NestThermostat.mjs +1 -1
  15. package/esm2022/lib/matterport-extensions/nest-thermostat/PlaneRenderer.mjs +1 -1
  16. package/esm2022/lib/matterport-extensions/scene-component/SceneComponent.mjs +1 -1
  17. package/esm2022/lib/matterport-extensions/security-camera/SecurityCamera.mjs +49 -28
  18. package/esm2022/lib/matterport-extensions/tv-player/TvPlayer.mjs +1 -1
  19. package/esm2022/lib/matterport-extensions/view-frustum-mesh/ViewFrustumMesh.mjs +22 -22
  20. package/esm2022/lib/mattertagData.mjs +1 -1
  21. package/esm2022/lib/ngx-smarterplan-core.module.mjs +1 -1
  22. package/esm2022/lib/ngx-smarterplan-core.service.mjs +1 -1
  23. package/esm2022/lib/pipes/duration-to-string.pipe.mjs +1 -1
  24. package/esm2022/lib/pipes/format-date-number-to-digits.pipe.mjs +1 -1
  25. package/esm2022/lib/pipes/hashtag-from-id.pipe.mjs +1 -1
  26. package/esm2022/lib/pipes/safe-url.pipe.mjs +1 -1
  27. package/esm2022/lib/pipes/time-date-to-local-string.pipe.mjs +1 -1
  28. package/esm2022/lib/pipes/username-from-id.pipe.mjs +1 -1
  29. package/esm2022/lib/services/amplify-cache.service.mjs +1 -1
  30. package/esm2022/lib/services/base-tab.service.mjs +1 -1
  31. package/esm2022/lib/services/baseVisibility.service.mjs +1 -1
  32. package/esm2022/lib/services/content.service.mjs +1 -1
  33. package/esm2022/lib/services/filter.service.mjs +1 -1
  34. package/esm2022/lib/services/intervention.service.mjs +1 -1
  35. package/esm2022/lib/services/locale.service.mjs +1 -1
  36. package/esm2022/lib/services/matterport-import.service.mjs +1 -1
  37. package/esm2022/lib/services/matterport-measurement.service.mjs +1 -1
  38. package/esm2022/lib/services/matterport-navigation.service.mjs +1 -1
  39. package/esm2022/lib/services/matterport-object3d.service.mjs +657 -133
  40. package/esm2022/lib/services/matterport-pointer.service.mjs +6 -6
  41. package/esm2022/lib/services/matterport-tag-copy.service.mjs +1 -1
  42. package/esm2022/lib/services/matterport-tag.service.mjs +1 -1
  43. package/esm2022/lib/services/matterport.service.mjs +346 -25
  44. package/esm2022/lib/services/models/affectation.service.mjs +1 -1
  45. package/esm2022/lib/services/models/base-object.service.mjs +1 -1
  46. package/esm2022/lib/services/models/capture.service.mjs +1 -1
  47. package/esm2022/lib/services/models/comment.service.mjs +1 -1
  48. package/esm2022/lib/services/models/domain.service.mjs +1 -1
  49. package/esm2022/lib/services/models/equipment.service.mjs +1 -1
  50. package/esm2022/lib/services/models/event.service.mjs +1 -1
  51. package/esm2022/lib/services/models/feature.service.mjs +1 -1
  52. package/esm2022/lib/services/models/hashtag.service.mjs +1 -1
  53. package/esm2022/lib/services/models/layer.service.mjs +1 -1
  54. package/esm2022/lib/services/models/measurement.service.mjs +1 -1
  55. package/esm2022/lib/services/models/mission.service.mjs +1 -1
  56. package/esm2022/lib/services/models/navigation.service.mjs +1 -1
  57. package/esm2022/lib/services/models/node.service.mjs +1 -1
  58. package/esm2022/lib/services/models/object3D.service.mjs +1 -1
  59. package/esm2022/lib/services/models/operation.service.mjs +1 -1
  60. package/esm2022/lib/services/models/organisation.service.mjs +1 -1
  61. package/esm2022/lib/services/models/plan.service.mjs +1 -1
  62. package/esm2022/lib/services/models/poi.service.mjs +27 -27
  63. package/esm2022/lib/services/models/profile.service.mjs +1 -1
  64. package/esm2022/lib/services/models/property.service.mjs +1 -1
  65. package/esm2022/lib/services/models/space.service.mjs +1 -1
  66. package/esm2022/lib/services/models/template.service.mjs +1 -1
  67. package/esm2022/lib/services/models/ticket.service.mjs +1 -1
  68. package/esm2022/lib/services/models/visit.service.mjs +1 -1
  69. package/esm2022/lib/services/models/zone.service.mjs +1 -1
  70. package/esm2022/lib/services/navigator.service.mjs +1 -1
  71. package/esm2022/lib/services/s3.service.mjs +1 -1
  72. package/esm2022/lib/services/search.service.mjs +1 -1
  73. package/esm2022/lib/services/support.service.mjs +1 -1
  74. package/esm2022/lib/services/sweep-locator.service.mjs +1 -1
  75. package/esm2022/lib/services/tag.service.mjs +16 -16
  76. package/esm2022/lib/services/threejs-import.service.mjs +1 -1
  77. package/esm2022/lib/services/threejs.service.mjs +1 -1
  78. package/esm2022/lib/services/user.service.mjs +1 -1
  79. package/esm2022/lib/services/utils/matterport-framing.util.mjs +63 -0
  80. package/esm2022/lib/services/utils/matterport-transform.util.mjs +1 -1
  81. package/esm2022/lib/services/validators.service.mjs +1 -1
  82. package/esm2022/lib/services/viewer.service.mjs +1 -1
  83. package/esm2022/lib/services/zone-drawer.service.mjs +1 -1
  84. package/esm2022/lib/services/zoneChange.service.mjs +1 -1
  85. package/esm2022/lib/tokens/matterport-sdk-key.token.mjs +1 -1
  86. package/esm2022/lib/types.service.mjs +3 -1
  87. package/esm2022/lib/validators/email.directive.mjs +1 -1
  88. package/esm2022/lib/validators/no-empty.directive.mjs +1 -1
  89. package/esm2022/lib/validators/number.directive.mjs +1 -1
  90. package/esm2022/lib/validators/text.directive.mjs +1 -1
  91. package/esm2022/public-api.mjs +1 -1
  92. package/fesm2022/smarterplan-ngx-smarterplan-core.mjs +1192 -263
  93. package/fesm2022/smarterplan-ngx-smarterplan-core.mjs.map +1 -1
  94. package/lib/services/matterport-object3d.service.d.ts +125 -5
  95. package/lib/services/matterport.service.d.ts +106 -7
  96. package/lib/services/utils/matterport-framing.util.d.ts +40 -0
  97. package/lib/types.service.d.ts +42 -1
  98. package/package.json +1 -1
  99. package/src/assets/vs-app.json +67 -67
@@ -93,11 +93,11 @@ export class MatterportPointerService {
93
93
  }
94
94
  updateCursorDisplay(poseMatterport) {
95
95
  if (this.textDisplayCursorPositionPanel && poseMatterport) {
96
- this.textDisplayCursorPositionPanel.innerHTML = `position:
97
- ${pointToString(poseMatterport.position)}\n
98
- normal:
99
- ${pointToString(poseMatterport.normal)}\n
100
- floorId:
96
+ this.textDisplayCursorPositionPanel.innerHTML = `position:
97
+ ${pointToString(poseMatterport.position)}\n
98
+ normal:
99
+ ${pointToString(poseMatterport.normal)}\n
100
+ floorId:
101
101
  ${poseMatterport.floorId}`;
102
102
  if (this.getCursorPositionButton) {
103
103
  this.getCursorPositionButton.style.display = 'none';
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
127
127
  providedIn: 'root',
128
128
  }]
129
129
  }], ctorParameters: () => [] });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0dGVycG9ydC1wb2ludGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21hdHRlcnBvcnQtcG9pbnRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUtuRCxNQUFNLE9BQU8sd0JBQXdCO0lBQzNCLGFBQWEsR0FBdUIsSUFBSSxDQUFDO0lBQ3pDLHVCQUF1QixHQUF1QixJQUFJLENBQUM7SUFDbkQsOEJBQThCLEdBQXVCLElBQUksQ0FBQztJQUUxRCw2QkFBNkIsR0FBRyxLQUFLLENBQUM7SUFDdEMsNkJBQTZCLENBQU07SUFDbkMsWUFBWSxDQUFNO0lBQ2xCLHlCQUF5QixDQUFNO0lBRXZDLGdCQUFnQixDQUFDO0lBRWpCLElBQUksQ0FDRixTQUFzQixFQUN0QixhQUEwQixFQUMxQix1QkFBb0MsRUFDcEMsOEJBQTJDLEVBQzNDLFNBSUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkQsSUFBSSxDQUFDLDhCQUE4QixHQUFHLDhCQUE4QixDQUFDO1FBRXJFLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENB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Q0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZ0NBQWdDLENBQUMsS0FBYztRQUM3QyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsS0FBSyxDQUFDO0lBQzdDLENBQUM7d0dBdkpVLHdCQUF3Qjs0R0FBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBwb2ludFRvU3RyaW5nIH0gZnJvbSAnLi4vaGVscGVycy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1hdHRlcnBvcnRQb2ludGVyU2VydmljZSB7XG4gIHByaXZhdGUgcG9pbnRlckJ1dHRvbjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBnZXRDdXJzb3JQb3NpdGlvbkJ1dHRvbjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0ZXh0RGlzcGxheUN1cnNvclBvc2l0aW9uUGFuZWw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBjdXJzb3JQb3NpdGlvbkJ1dHRvbkRpc3BsYXllZCA9IGZhbHNlO1xuICBwcml2YXRlIGludGVydmFsQ3Vyc29yUG9pbnRlclBvc2l0aW9uOiBhbnk7XG4gIHByaXZhdGUgdGltZXJQb2ludGVyOiBhbnk7XG4gIHByaXZhdGUgb2xkUG9zZU1hdHRlcnBvcnRQb3NpdGlvbjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgaW5pdChcbiAgICBjb250YWluZXI6IEhUTUxFbGVtZW50LFxuICAgIHBvaW50ZXJCdXR0b246IEhUTUxFbGVtZW50LFxuICAgIGdldEN1cnNvclBvc2l0aW9uQnV0dG9uOiBIVE1MRWxlbWVudCxcbiAgICB0ZXh0RGlzcGxheUN1cnNvclBvc2l0aW9uUGFuZWw6IEhUTUxFbGVtZW50LFxuICAgIGNhbGxiYWNrczoge1xuICAgICAgb25MZWZ0Q2xpY2s6IChldnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgICBvblJpZ2h0Q2xpY2s6IChldnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgICBvbk1pZGRsZUNsaWNrOiAoZXZ0OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIH1cbiAgKSB7XG4gICAgdGhpcy5wb2ludGVyQnV0dG9uID0gcG9pbnRlckJ1dHRvbjtcbiAgICB0aGlzLmdldEN1cnNvclBvc2l0aW9uQnV0dG9uID0gZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b247XG4gICAgdGhpcy50ZXh0RGlzcGxheUN1cnNvclBvc2l0aW9uUGFuZWwgPSB0ZXh0RGlzcGxheUN1cnNvclBvc2l0aW9uUGFuZWw7XG5cbiAgICBpZiAodGhpcy5wb2ludGVyQnV0dG9uKSB7XG4gICAgICB0aGlzLnBvaW50ZXJCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjYWxsYmFja3Mub25MZWZ0Q2xpY2spO1xuICAgICAgdGhpcy5wb2ludGVyQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgY2FsbGJhY2tzLm9uUmlnaHRDbGljayk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b24pIHtcbiAgICAgIHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjYWxsYmFja3Mub25NaWRkbGVDbGljayk7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRQb2ludGVyVHJpY2soc2RrOiBhbnksIGNvbnRhaW5lcjogYW55LCBnZXRQb3NlOiAoKSA9PiBhbnksIGdldFBvc2VDYW1lcmE6ICgpID0+IGFueSwgZ2V0SW50ZXJhY3Rpb25Nb2RlOiAoKSA9PiBudW1iZXIsIGdldE1hdHRlcnRhZ1RvRm9sbG93OiAoKSA9PiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy50aW1lclBvaW50ZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVBvaW50ZXJUcmljayhzZGssIGNvbnRhaW5lciwgZ2V0UG9zZSgpLCBnZXRQb3NlQ2FtZXJhKCksIGdldEludGVyYWN0aW9uTW9kZSgpLCBnZXRNYXR0ZXJ0YWdUb0ZvbGxvdygpKTtcbiAgICB9LCA1MCk7XG4gIH1cblxuICBzdG9wUG9pbnRlclRyaWNrKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lclBvaW50ZXIpO1xuICB9XG5cbiAgc3RhcnRBZG1pbkN1cnNvclRyYWNrZXIoc2RrOiBhbnksIGNvbnRhaW5lcjogYW55LCBnZXRQb3NlOiAoKSA9PiBhbnksIGdldFBvc2VDYW1lcmE6ICgpID0+IGFueSkge1xuICAgIGlmICghIXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b24gJiZcbiAgICAgIChkb2N1bWVudC5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2RldicpICE9PSAtMSB8fCBkb2N1bWVudC5sb2NhdGlvbi5ocmVmLmluZGV4T2YoJ2xvY2FsaG9zdCcpICE9PSAtMSkpIHtcbiAgICAgIHRoaXMuaW50ZXJ2YWxDdXJzb3JQb2ludGVyUG9zaXRpb24gPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBvc2VNYXR0ZXJwb3J0ID0gZ2V0UG9zZSgpO1xuICAgICAgICBpZiAoIXBvc2VNYXR0ZXJwb3J0KSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgbmV4dFNob3cgPSBwb3NlTWF0dGVycG9ydC50aW1lICsgMTAwMDtcbiAgICAgICAgaWYgKG5ldyBEYXRlKCkuZ2V0VGltZSgpID4gbmV4dFNob3cpIHtcbiAgICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbkJ1dHRvbkRpc3BsYXllZCkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3Qgc2l6ZSA9IHtcbiAgICAgICAgICAgIHc6IGNvbnRhaW5lci5jbGllbnRXaWR0aCxcbiAgICAgICAgICAgIGg6IGNvbnRhaW5lci5jbGllbnRIZWlnaHQsXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBjb29yZCA9IHNkay5Db252ZXJzaW9uLndvcmxkVG9TY3JlZW4ocG9zZU1hdHRlcnBvcnQucG9zaXRpb24sIGdldFBvc2VDYW1lcmEoKSwgc2l6ZSk7XG4gICAgICAgICAgdGhpcy5nZXRDdXJzb3JQb3NpdGlvbkJ1dHRvbiEuc3R5bGUubGVmdCA9IGAke2Nvb3JkLnggLSAyNX1weGA7XG4gICAgICAgICAgdGhpcy5nZXRDdXJzb3JQb3NpdGlvbkJ1dHRvbiEuc3R5bGUudG9wID0gYCR7Y29vcmQueSAtIDIyfXB4YDtcbiAgICAgICAgICB0aGlzLmdldEN1cnNvclBvc2l0aW9uQnV0dG9uIS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uQnV0dG9uRGlzcGxheWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSwgNTAwKTtcbiAgICB9XG4gIH1cblxuICBzdG9wQWRtaW5DdXJzb3JUcmFja2VyKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbEN1cnNvclBvaW50ZXJQb3NpdGlvbik7XG4gIH1cblxuICB1cGRhdGVQb2ludGVyVHJpY2soc2RrOiBhbnksIGNvbnRhaW5lcjogYW55LCBwb3NlTWF0dGVycG9ydDogYW55LCBwb3NlQ2FtZXJhOiBhbnksIGludGVyYWN0aW9uTW9kZTogbnVtYmVyLCBtYXR0ZXJ0YWdUb0ZvbGxvdzogc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICghdGhpcy5wb2ludGVyQnV0dG9uKSByZXR1cm47XG5cbiAgICBpZiAoXG4gICAgICBpbnRlcmFjdGlvbk1vZGUgIT09IDAgJiYgLy8gVmlld2VySW50ZXJhY3Rpb25zLkRFRkFVTFRcbiAgICAgIG1hdHRlcnRhZ1RvRm9sbG93ICYmXG4gICAgICBwb3NlTWF0dGVycG9ydCAmJlxuICAgICAgdGhpcy5nZXREaXN0UG9zaXRpb24oc2RrLCBjb250YWluZXIsIHBvc2VDYW1lcmEsIHBvc2VNYXR0ZXJwb3J0LnBvc2l0aW9uLCB0aGlzLm9sZFBvc2VNYXR0ZXJwb3J0UG9zaXRpb24pID4gMjVcbiAgICApIHtcbiAgICAgIHRoaXMucG9pbnRlckJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXG4gICAgICBjb25zdCBzaXplID0ge1xuICAgICAgICB3OiBjb250YWluZXIuY2xpZW50V2lkdGgsXG4gICAgICAgIGg6IGNvbnRhaW5lci5jbGllbnRIZWlnaHQsXG4gICAgICB9O1xuICAgICAgY29uc3QgY29vcmRzID0gc2RrLkNvbnZlcnNpb24ud29ybGRUb1NjcmVlbihcbiAgICAgICAgcG9zZU1hdHRlcnBvcnQucG9zaXRpb24sXG4gICAgICAgIHBvc2VDYW1lcmEsXG4gICAgICAgIHNpemVcbiAgICAgICk7XG4gICAgICB0aGlzLnBvaW50ZXJCdXR0b24uc3R5bGUubGVmdCA9IGAke2Nvb3Jkcy54ICogTWF0aC5zaWduKGNvb3Jkcy54KSAtIDI1fXB4YDtcbiAgICAgIHRoaXMucG9pbnRlckJ1dHRvbi5zdHlsZS50b3AgPSBgJHtjb29yZHMueSAqIE1hdGguc2lnbihjb29yZHMueCkgLSAyNX1weGA7XG4gICAgICB0aGlzLm9sZFBvc2VNYXR0ZXJwb3J0UG9zaXRpb24gPSB7XG4gICAgICAgIC4uLnBvc2VNYXR0ZXJwb3J0LnBvc2l0aW9uLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wb2ludGVyQnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgIH1cbiAgfVxuXG4gIGdldERpc3RQb3NpdGlvbihzZGs6IGFueSwgY29udGFpbmVyOiBhbnksIHBvc2VDYW1lcmE6IGFueSwgcG9zMTogYW55LCBwb3MyOiBhbnkpIHtcbiAgICBpZiAoIXBvczEgfHwgIXBvczIpIHJldHVybiAxMDA7IC8vIEZvcmNlIHVwZGF0ZSBpZiBvbmUgaXMgbWlzc2luZ1xuICAgIGNvbnN0IHNpemUgPSB7XG4gICAgICB3OiBjb250YWluZXIuY2xpZW50V2lkdGgsXG4gICAgICBoOiBjb250YWluZXIuY2xpZW50SGVpZ2h0LFxuICAgIH07XG4gICAgY29uc3QgY29vcmRzMSA9IHNkay5Db252ZXJzaW9uLndvcmxkVG9TY3JlZW4ocG9zMSwgcG9zZUNhbWVyYSwgc2l6ZSk7XG4gICAgY29uc3QgY29vcmRzMiA9IHNkay5Db252ZXJzaW9uLndvcmxkVG9TY3JlZW4ocG9zMiwgcG9zZUNhbWVyYSwgc2l6ZSk7XG4gICAgcmV0dXJuIE1hdGguc3FydChcbiAgICAgIChjb29yZHMxLnggLSBjb29yZHMyLngpICoqIDIgKyAoY29vcmRzMS55IC0gY29vcmRzMi55KSAqKiAyXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUN1cnNvckRpc3BsYXkocG9zZU1hdHRlcnBvcnQ6IGFueSkge1xuICAgIGlmICh0aGlzLnRleHREaXNwbGF5Q3Vyc29yUG9zaXRpb25QYW5lbCAmJiBwb3NlTWF0dGVycG9ydCkge1xuICAgICAgdGhpcy50ZXh0RGlzcGxheUN1cnNvclBvc2l0aW9uUGFuZWwuaW5uZXJIVE1MID0gYHBvc2l0aW9uOlxuICAgICAgICAgICAke3BvaW50VG9TdHJpbmcocG9zZU1hdHRlcnBvcnQucG9zaXRpb24pfVxcblxuICAgICAgICAgICBub3JtYWw6XG4gICAgICAgICAgICR7cG9pbnRUb1N0cmluZyhwb3NlTWF0dGVycG9ydC5ub3JtYWwpfVxcblxuICAgICAgICAgICBmbG9vcklkOlxuICAgICAgICAgICAke3Bvc2VNYXR0ZXJwb3J0LmZsb29ySWR9YDtcbiAgICAgIGlmICh0aGlzLmdldEN1cnNvclBvc2l0aW9uQnV0dG9uKSB7XG4gICAgICAgIHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b24uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjbGVhcihjYWxsYmFja3M6IHtcbiAgICBvbkxlZnRDbGljazogKGV2dDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICBvblJpZ2h0Q2xpY2s6IChldnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgb25NaWRkbGVDbGljazogKGV2dDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgfSkge1xuICAgIGlmICh0aGlzLnBvaW50ZXJCdXR0b24pIHtcbiAgICAgIHRoaXMucG9pbnRlckJ1dHRvbi5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGNhbGxiYWNrcy5vbkxlZnRDbGljayk7XG4gICAgICB0aGlzLnBvaW50ZXJCdXR0b24ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCBjYWxsYmFja3Mub25SaWdodENsaWNrKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b24pIHtcbiAgICAgIHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b24ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjYWxsYmFja3Mub25NaWRkbGVDbGljayk7XG4gICAgfVxuICAgIHRoaXMuc3RvcFBvaW50ZXJUcmljaygpO1xuICAgIHRoaXMuc3RvcEFkbWluQ3Vyc29yVHJhY2tlcigpO1xuICB9XG5cbiAgc2V0Q3Vyc29yUG9zaXRpb25CdXR0b25EaXNwbGF5ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmN1cnNvclBvc2l0aW9uQnV0dG9uRGlzcGxheWVkID0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0dGVycG9ydC1wb2ludGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc21hcnRlcnBsYW4tY29yZS9zcmMvbGliL3NlcnZpY2VzL21hdHRlcnBvcnQtcG9pbnRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUtuRCxNQUFNLE9BQU8sd0JBQXdCO0lBQzNCLGFBQWEsR0FBdUIsSUFBSSxDQUFDO0lBQ3pDLHVCQUF1QixHQUF1QixJQUFJLENBQUM7SUFDbkQsOEJBQThCLEdBQXVCLElBQUksQ0FBQztJQUUxRCw2QkFBNkIsR0FBRyxLQUFLLENBQUM7SUFDdEMsNkJBQTZCLENBQU07SUFDbkMsWUFBWSxDQUFNO0lBQ2xCLHlCQUF5QixDQUFNO0lBRXZDLGdCQUFnQixDQUFDO0lBRWpCLElBQUksQ0FDRixTQUFzQixFQUN0QixhQUEwQixFQUMxQix1QkFBb0MsRUFDcEMsOEJBQTJDLEVBQzNDLFNBSUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkQsSUFBSSxDQUFDLDhCQUE4QixHQUFHLDhCQUE4QixDQUFDO1FBRXJFLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENB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Q0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hGLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZ0NBQWdDLENBQUMsS0FBYztRQUM3QyxJQUFJLENBQUMsNkJBQTZCLEdBQUcsS0FBSyxDQUFDO0lBQzdDLENBQUM7d0dBdkpVLHdCQUF3Qjs0R0FBeEIsd0JBQXdCLGNBRnZCLE1BQU07OzRGQUVQLHdCQUF3QjtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHBvaW50VG9TdHJpbmcgfSBmcm9tICcuLi9oZWxwZXJzLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdHRlcnBvcnRQb2ludGVyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBwb2ludGVyQnV0dG9uOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b246IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSB0ZXh0RGlzcGxheUN1cnNvclBvc2l0aW9uUGFuZWw6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgY3Vyc29yUG9zaXRpb25CdXR0b25EaXNwbGF5ZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIGludGVydmFsQ3Vyc29yUG9pbnRlclBvc2l0aW9uOiBhbnk7XHJcbiAgcHJpdmF0ZSB0aW1lclBvaW50ZXI6IGFueTtcclxuICBwcml2YXRlIG9sZFBvc2VNYXR0ZXJwb3J0UG9zaXRpb246IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgaW5pdChcclxuICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXHJcbiAgICBwb2ludGVyQnV0dG9uOiBIVE1MRWxlbWVudCxcclxuICAgIGdldEN1cnNvclBvc2l0aW9uQnV0dG9uOiBIVE1MRWxlbWVudCxcclxuICAgIHRleHREaXNwbGF5Q3Vyc29yUG9zaXRpb25QYW5lbDogSFRNTEVsZW1lbnQsXHJcbiAgICBjYWxsYmFja3M6IHtcclxuICAgICAgb25MZWZ0Q2xpY2s6IChldnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbiAgICAgIG9uUmlnaHRDbGljazogKGV2dDogTW91c2VFdmVudCkgPT4gdm9pZDtcclxuICAgICAgb25NaWRkbGVDbGljazogKGV2dDogTW91c2VFdmVudCkgPT4gdm9pZDtcclxuICAgIH1cclxuICApIHtcclxuICAgIHRoaXMucG9pbnRlckJ1dHRvbiA9IHBvaW50ZXJCdXR0b247XHJcbiAgICB0aGlzLmdldEN1cnNvclBvc2l0aW9uQnV0dG9uID0gZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b247XHJcbiAgICB0aGlzLnRleHREaXNwbGF5Q3Vyc29yUG9zaXRpb25QYW5lbCA9IHRleHREaXNwbGF5Q3Vyc29yUG9zaXRpb25QYW5lbDtcclxuXHJcbiAgICBpZiAodGhpcy5wb2ludGVyQnV0dG9uKSB7XHJcbiAgICAgIHRoaXMucG9pbnRlckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNhbGxiYWNrcy5vbkxlZnRDbGljayk7XHJcbiAgICAgIHRoaXMucG9pbnRlckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGNhbGxiYWNrcy5vblJpZ2h0Q2xpY2spO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmdldEN1cnNvclBvc2l0aW9uQnV0dG9uKSB7XHJcbiAgICAgIHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjYWxsYmFja3Mub25NaWRkbGVDbGljayk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGFydFBvaW50ZXJUcmljayhzZGs6IGFueSwgY29udGFpbmVyOiBhbnksIGdldFBvc2U6ICgpID0+IGFueSwgZ2V0UG9zZUNhbWVyYTogKCkgPT4gYW55LCBnZXRJbnRlcmFjdGlvbk1vZGU6ICgpID0+IG51bWJlciwgZ2V0TWF0dGVydGFnVG9Gb2xsb3c6ICgpID0+IHN0cmluZyB8IG51bGwpIHtcclxuICAgIHRoaXMudGltZXJQb2ludGVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICB0aGlzLnVwZGF0ZVBvaW50ZXJUcmljayhzZGssIGNvbnRhaW5lciwgZ2V0UG9zZSgpLCBnZXRQb3NlQ2FtZXJhKCksIGdldEludGVyYWN0aW9uTW9kZSgpLCBnZXRNYXR0ZXJ0YWdUb0ZvbGxvdygpKTtcclxuICAgIH0sIDUwKTtcclxuICB9XHJcblxyXG4gIHN0b3BQb2ludGVyVHJpY2soKSB7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMudGltZXJQb2ludGVyKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0QWRtaW5DdXJzb3JUcmFja2VyKHNkazogYW55LCBjb250YWluZXI6IGFueSwgZ2V0UG9zZTogKCkgPT4gYW55LCBnZXRQb3NlQ2FtZXJhOiAoKSA9PiBhbnkpIHtcclxuICAgIGlmICghIXRoaXMuZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b24gJiZcclxuICAgICAgKGRvY3VtZW50LmxvY2F0aW9uLmhyZWYuaW5kZXhPZignZGV2JykgIT09IC0xIHx8IGRvY3VtZW50LmxvY2F0aW9uLmhyZWYuaW5kZXhPZignbG9jYWxob3N0JykgIT09IC0xKSkge1xyXG4gICAgICB0aGlzLmludGVydmFsQ3Vyc29yUG9pbnRlclBvc2l0aW9uID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBvc2VNYXR0ZXJwb3J0ID0gZ2V0UG9zZSgpO1xyXG4gICAgICAgIGlmICghcG9zZU1hdHRlcnBvcnQpIHJldHVybjtcclxuXHJcbiAgICAgICAgY29uc3QgbmV4dFNob3cgPSBwb3NlTWF0dGVycG9ydC50aW1lICsgMTAwMDtcclxuICAgICAgICBpZiAobmV3IERhdGUoKS5nZXRUaW1lKCkgPiBuZXh0U2hvdykge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb25CdXR0b25EaXNwbGF5ZWQpIHJldHVybjtcclxuXHJcbiAgICAgICAgICBjb25zdCBzaXplID0ge1xyXG4gICAgICAgICAgICB3OiBjb250YWluZXIuY2xpZW50V2lkdGgsXHJcbiAgICAgICAgICAgIGg6IGNvbnRhaW5lci5jbGllbnRIZWlnaHQsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgY29uc3QgY29vcmQgPSBzZGsuQ29udmVyc2lvbi53b3JsZFRvU2NyZWVuKHBvc2VNYXR0ZXJwb3J0LnBvc2l0aW9uLCBnZXRQb3NlQ2FtZXJhKCksIHNpemUpO1xyXG4gICAgICAgICAgdGhpcy5nZXRDdXJzb3JQb3NpdGlvbkJ1dHRvbiEuc3R5bGUubGVmdCA9IGAke2Nvb3JkLnggLSAyNX1weGA7XHJcbiAgICAgICAgICB0aGlzLmdldEN1cnNvclBvc2l0aW9uQnV0dG9uIS5zdHlsZS50b3AgPSBgJHtjb29yZC55IC0gMjJ9cHhgO1xyXG4gICAgICAgICAgdGhpcy5nZXRDdXJzb3JQb3NpdGlvbkJ1dHRvbiEuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XHJcbiAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uQnV0dG9uRGlzcGxheWVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIDUwMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdG9wQWRtaW5DdXJzb3JUcmFja2VyKCkge1xyXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsQ3Vyc29yUG9pbnRlclBvc2l0aW9uKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVBvaW50ZXJUcmljayhzZGs6IGFueSwgY29udGFpbmVyOiBhbnksIHBvc2VNYXR0ZXJwb3J0OiBhbnksIHBvc2VDYW1lcmE6IGFueSwgaW50ZXJhY3Rpb25Nb2RlOiBudW1iZXIsIG1hdHRlcnRhZ1RvRm9sbG93OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBpZiAoIXRoaXMucG9pbnRlckJ1dHRvbikgcmV0dXJuO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgaW50ZXJhY3Rpb25Nb2RlICE9PSAwICYmIC8vIFZpZXdlckludGVyYWN0aW9ucy5ERUZBVUxUXHJcbiAgICAgIG1hdHRlcnRhZ1RvRm9sbG93ICYmXHJcbiAgICAgIHBvc2VNYXR0ZXJwb3J0ICYmXHJcbiAgICAgIHRoaXMuZ2V0RGlzdFBvc2l0aW9uKHNkaywgY29udGFpbmVyLCBwb3NlQ2FtZXJhLCBwb3NlTWF0dGVycG9ydC5wb3NpdGlvbiwgdGhpcy5vbGRQb3NlTWF0dGVycG9ydFBvc2l0aW9uKSA+IDI1XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5wb2ludGVyQnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcblxyXG4gICAgICBjb25zdCBzaXplID0ge1xyXG4gICAgICAgIHc6IGNvbnRhaW5lci5jbGllbnRXaWR0aCxcclxuICAgICAgICBoOiBjb250YWluZXIuY2xpZW50SGVpZ2h0LFxyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBjb29yZHMgPSBzZGsuQ29udmVyc2lvbi53b3JsZFRvU2NyZWVuKFxyXG4gICAgICAgIHBvc2VNYXR0ZXJwb3J0LnBvc2l0aW9uLFxyXG4gICAgICAgIHBvc2VDYW1lcmEsXHJcbiAgICAgICAgc2l6ZVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnBvaW50ZXJCdXR0b24uc3R5bGUubGVmdCA9IGAke2Nvb3Jkcy54ICogTWF0aC5zaWduKGNvb3Jkcy54KSAtIDI1fXB4YDtcclxuICAgICAgdGhpcy5wb2ludGVyQnV0dG9uLnN0eWxlLnRvcCA9IGAke2Nvb3Jkcy55ICogTWF0aC5zaWduKGNvb3Jkcy54KSAtIDI1fXB4YDtcclxuICAgICAgdGhpcy5vbGRQb3NlTWF0dGVycG9ydFBvc2l0aW9uID0ge1xyXG4gICAgICAgIC4uLnBvc2VNYXR0ZXJwb3J0LnBvc2l0aW9uLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb2ludGVyQnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGlzdFBvc2l0aW9uKHNkazogYW55LCBjb250YWluZXI6IGFueSwgcG9zZUNhbWVyYTogYW55LCBwb3MxOiBhbnksIHBvczI6IGFueSkge1xyXG4gICAgaWYgKCFwb3MxIHx8ICFwb3MyKSByZXR1cm4gMTAwOyAvLyBGb3JjZSB1cGRhdGUgaWYgb25lIGlzIG1pc3NpbmdcclxuICAgIGNvbnN0IHNpemUgPSB7XHJcbiAgICAgIHc6IGNvbnRhaW5lci5jbGllbnRXaWR0aCxcclxuICAgICAgaDogY29udGFpbmVyLmNsaWVudEhlaWdodCxcclxuICAgIH07XHJcbiAgICBjb25zdCBjb29yZHMxID0gc2RrLkNvbnZlcnNpb24ud29ybGRUb1NjcmVlbihwb3MxLCBwb3NlQ2FtZXJhLCBzaXplKTtcclxuICAgIGNvbnN0IGNvb3JkczIgPSBzZGsuQ29udmVyc2lvbi53b3JsZFRvU2NyZWVuKHBvczIsIHBvc2VDYW1lcmEsIHNpemUpO1xyXG4gICAgcmV0dXJuIE1hdGguc3FydChcclxuICAgICAgKGNvb3JkczEueCAtIGNvb3JkczIueCkgKiogMiArIChjb29yZHMxLnkgLSBjb29yZHMyLnkpICoqIDJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVDdXJzb3JEaXNwbGF5KHBvc2VNYXR0ZXJwb3J0OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnRleHREaXNwbGF5Q3Vyc29yUG9zaXRpb25QYW5lbCAmJiBwb3NlTWF0dGVycG9ydCkge1xyXG4gICAgICB0aGlzLnRleHREaXNwbGF5Q3Vyc29yUG9zaXRpb25QYW5lbC5pbm5lckhUTUwgPSBgcG9zaXRpb246XHJcbiAgICAgICAgICAgJHtwb2ludFRvU3RyaW5nKHBvc2VNYXR0ZXJwb3J0LnBvc2l0aW9uKX1cXG5cclxuICAgICAgICAgICBub3JtYWw6XHJcbiAgICAgICAgICAgJHtwb2ludFRvU3RyaW5nKHBvc2VNYXR0ZXJwb3J0Lm5vcm1hbCl9XFxuXHJcbiAgICAgICAgICAgZmxvb3JJZDpcclxuICAgICAgICAgICAke3Bvc2VNYXR0ZXJwb3J0LmZsb29ySWR9YDtcclxuICAgICAgaWYgKHRoaXMuZ2V0Q3Vyc29yUG9zaXRpb25CdXR0b24pIHtcclxuICAgICAgICB0aGlzLmdldEN1cnNvclBvc2l0aW9uQnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyKGNhbGxiYWNrczoge1xyXG4gICAgb25MZWZ0Q2xpY2s6IChldnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbiAgICBvblJpZ2h0Q2xpY2s6IChldnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XHJcbiAgICBvbk1pZGRsZUNsaWNrOiAoZXZ0OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xyXG4gIH0pIHtcclxuICAgIGlmICh0aGlzLnBvaW50ZXJCdXR0b24pIHtcclxuICAgICAgdGhpcy5wb2ludGVyQnV0dG9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2FsbGJhY2tzLm9uTGVmdENsaWNrKTtcclxuICAgICAgdGhpcy5wb2ludGVyQnV0dG9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgY2FsbGJhY2tzLm9uUmlnaHRDbGljayk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5nZXRDdXJzb3JQb3NpdGlvbkJ1dHRvbikge1xyXG4gICAgICB0aGlzLmdldEN1cnNvclBvc2l0aW9uQnV0dG9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2FsbGJhY2tzLm9uTWlkZGxlQ2xpY2spO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdG9wUG9pbnRlclRyaWNrKCk7XHJcbiAgICB0aGlzLnN0b3BBZG1pbkN1cnNvclRyYWNrZXIoKTtcclxuICB9XHJcblxyXG4gIHNldEN1cnNvclBvc2l0aW9uQnV0dG9uRGlzcGxheWVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmN1cnNvclBvc2l0aW9uQnV0dG9uRGlzcGxheWVkID0gdmFsdWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==