@jax-data-science/sci-image-visualizer 0.8.3 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (579) hide show
  1. package/README.md +201 -460
  2. package/esm2022/index.mjs +34 -15
  3. package/esm2022/lib/channel-histogram/channel-histogram.component.mjs +163 -91
  4. package/esm2022/lib/contracts/capabilities.contract.mjs +4 -3
  5. package/esm2022/lib/contracts/cell-segmenter.contract.mjs +1 -1
  6. package/esm2022/lib/contracts/channel-histogram-api.contract.mjs +5 -1
  7. package/esm2022/lib/contracts/color.mjs +60 -0
  8. package/esm2022/lib/contracts/colormap-lut.mjs +213 -57
  9. package/esm2022/lib/contracts/coordinate-transform.contract.mjs +1 -1
  10. package/esm2022/lib/contracts/display-types.mjs +11 -1
  11. package/esm2022/lib/contracts/image.contract.mjs +1 -1
  12. package/esm2022/lib/contracts/instance-segmenter.contract.mjs +1 -1
  13. package/esm2022/lib/contracts/intensity.mjs +48 -5
  14. package/esm2022/lib/contracts/plot-type-contribution.contract.mjs +1 -1
  15. package/esm2022/lib/contracts/plot-type.mjs +134 -17
  16. package/esm2022/lib/contracts/ports/image-state.port.mjs +4 -1
  17. package/esm2022/lib/contracts/ports/preferences.port.mjs +5 -1
  18. package/esm2022/lib/contracts/ports/region-io.port.mjs +2 -1
  19. package/esm2022/lib/contracts/ports/spatial-data.port.mjs +5 -1
  20. package/esm2022/lib/contracts/ports/tile-access.port.mjs +2 -1
  21. package/esm2022/lib/contracts/region-editor-api.contract.mjs +1 -1
  22. package/esm2022/lib/contracts/region-overlay.contract.mjs +1 -1
  23. package/esm2022/lib/contracts/region-store.contract.mjs +1 -1
  24. package/esm2022/lib/contracts/sam.contract.mjs +1 -1
  25. package/esm2022/lib/contracts/section-view.contract.mjs +2 -0
  26. package/esm2022/lib/contracts/semantic-segmenter.contract.mjs +1 -1
  27. package/esm2022/lib/contracts/spatial-dataset.contract.mjs +3 -1
  28. package/esm2022/lib/contracts/toolbar-tool.contract.mjs +6 -4
  29. package/esm2022/lib/contracts/visualizer.contract.mjs +1 -1
  30. package/esm2022/lib/contracts/viz-config.mjs +2 -1
  31. package/esm2022/lib/geometry/contour.mjs +63 -0
  32. package/esm2022/lib/geometry/loft.mjs +128 -0
  33. package/esm2022/lib/geometry/polylabel.mjs +156 -0
  34. package/esm2022/lib/geometry/raster.mjs +98 -0
  35. package/esm2022/lib/geometry/reconstruct.mjs +315 -0
  36. package/esm2022/lib/geometry/reslice-image.mjs +57 -0
  37. package/esm2022/lib/geometry/ring.mjs +201 -0
  38. package/esm2022/lib/geometry/section.mjs +215 -0
  39. package/esm2022/lib/hex-color-picker/hex-color-picker.component.mjs +202 -102
  40. package/esm2022/lib/implementations/base-store-visualizer.mjs +201 -48
  41. package/esm2022/lib/implementations/napari-js/napari-axes-gizmo.mjs +65 -0
  42. package/esm2022/lib/implementations/napari-js/napari-display-state.mjs +136 -0
  43. package/esm2022/lib/implementations/napari-js/napari-helpers.mjs +199 -0
  44. package/esm2022/lib/implementations/napari-js/napari-image-2d-scene.mjs +602 -0
  45. package/esm2022/lib/implementations/napari-js/napari-loading-badge.mjs +12 -9
  46. package/esm2022/lib/implementations/napari-js/napari-loading-state.mjs +83 -0
  47. package/esm2022/lib/implementations/napari-js/napari-region-mesh-pointer.mjs +100 -0
  48. package/esm2022/lib/implementations/napari-js/napari-region-overlay.mjs +180 -591
  49. package/esm2022/lib/implementations/napari-js/napari-scene.mjs +2 -0
  50. package/esm2022/lib/implementations/napari-js/napari-spatial-2d-scene.mjs +614 -0
  51. package/esm2022/lib/implementations/napari-js/napari-spatial-3d-scene.mjs +769 -0
  52. package/esm2022/lib/implementations/napari-js/napari-spatial-encoding.mjs +199 -0
  53. package/esm2022/lib/implementations/napari-js/napari-spatial-hover.mjs +270 -0
  54. package/esm2022/lib/implementations/napari-js/napari-spatial-scene.mjs +159 -0
  55. package/esm2022/lib/implementations/napari-js/napari-spatial-tiles.mjs +106 -1408
  56. package/esm2022/lib/implementations/napari-js/napari-spatial-tooltip.mjs +2 -2
  57. package/esm2022/lib/implementations/napari-js/napari-surface-scene.mjs +271 -0
  58. package/esm2022/lib/implementations/napari-js/napari-tile-client.mjs +562 -0
  59. package/esm2022/lib/implementations/napari-js/napari-tool-bridge.mjs +347 -0
  60. package/esm2022/lib/implementations/napari-js/napari-visualizer.service.mjs +427 -4207
  61. package/esm2022/lib/implementations/napari-js/napari-volume-region-meshes.mjs +129 -0
  62. package/esm2022/lib/implementations/napari-js/napari-volume-scene.mjs +550 -0
  63. package/esm2022/lib/implementations/napari-js/napari-volume-slice-planes.mjs +103 -0
  64. package/esm2022/lib/implementations/napari-js/napari-volume-z-handle.mjs +6 -6
  65. package/esm2022/lib/implementations/napari-js/region-overlay/overlay-projection.mjs +96 -0
  66. package/esm2022/lib/implementations/napari-js/region-overlay/region-edit.mjs +35 -0
  67. package/esm2022/lib/implementations/napari-js/region-overlay/region-svg-renderer.mjs +194 -0
  68. package/esm2022/lib/implementations/napari-js/spatial-tiles/categorical-lookup.mjs +30 -0
  69. package/esm2022/lib/implementations/napari-js/spatial-tiles/cell-layers.mjs +274 -0
  70. package/esm2022/lib/implementations/napari-js/spatial-tiles/density-layer.mjs +144 -0
  71. package/esm2022/lib/implementations/napari-js/spatial-tiles/layer-groups.mjs +165 -0
  72. package/esm2022/lib/implementations/napari-js/spatial-tiles/plan-context.mjs +78 -0
  73. package/esm2022/lib/implementations/napari-js/spatial-tiles/transcript-hover.mjs +182 -0
  74. package/esm2022/lib/implementations/napari-js/spatial-tiles/transcript-jobs.mjs +369 -0
  75. package/esm2022/lib/implementations/napari-js/spatial-tiles/transcript-layers.mjs +306 -0
  76. package/esm2022/lib/implementations/osd/display-pipeline.mjs +102 -40
  77. package/esm2022/lib/implementations/osd/histogram-sampler.mjs +56 -31
  78. package/esm2022/lib/implementations/osd/openseadragon-viewer-options.mjs +128 -0
  79. package/esm2022/lib/implementations/osd/openseadragon-visualizer.service.mjs +333 -1685
  80. package/esm2022/lib/implementations/osd/osd-coordinate-transform.mjs +1 -1
  81. package/esm2022/lib/implementations/osd/osd-coords.mjs +5 -6
  82. package/esm2022/lib/implementations/osd/osd-export.mjs +122 -0
  83. package/esm2022/lib/implementations/osd/osd-lib.mjs +15 -1
  84. package/esm2022/lib/implementations/osd/osd-navigator-chrome.mjs +205 -0
  85. package/esm2022/lib/implementations/osd/osd-pixel-readback.mjs +68 -0
  86. package/esm2022/lib/implementations/osd/osd-region-overlay-draw.mjs +164 -0
  87. package/esm2022/lib/implementations/osd/osd-region-overlay.mjs +213 -716
  88. package/esm2022/lib/implementations/osd/osd-scale-bar.mjs +52 -60
  89. package/esm2022/lib/implementations/osd/osd-tile-source.mjs +105 -0
  90. package/esm2022/lib/implementations/osd/osd-viewer-like.mjs +2 -0
  91. package/esm2022/lib/implementations/osd/osd-viewer-mount.mjs +44 -0
  92. package/esm2022/lib/implementations/osd/osd-viewport.mjs +184 -0
  93. package/esm2022/lib/implementations/osd/osd-zoom.mjs +7 -1
  94. package/esm2022/lib/implementations/osd/simple-source.mjs +395 -0
  95. package/esm2022/lib/implementations/osd/slice-cache.mjs +53 -48
  96. package/esm2022/lib/implementations/osd/tile-client.mjs +32 -11
  97. package/esm2022/lib/implementations/osd/tile-recolor.mjs +330 -0
  98. package/esm2022/lib/implementations/plotly/omics-trace-builders.mjs +161 -73
  99. package/esm2022/lib/implementations/plotly/plotly-coordinate-transform.mjs +1 -1
  100. package/esm2022/lib/implementations/plotly/plotly-image-loader.mjs +112 -0
  101. package/esm2022/lib/implementations/plotly/plotly-image-recolor.mjs +178 -0
  102. package/esm2022/lib/implementations/plotly/plotly-intensity-inset.mjs +33 -0
  103. package/esm2022/lib/implementations/plotly/plotly-isosurface-controls.mjs +83 -0
  104. package/esm2022/lib/implementations/plotly/plotly-layouts.mjs +121 -0
  105. package/esm2022/lib/implementations/plotly/plotly-readback.mjs +117 -0
  106. package/esm2022/lib/implementations/plotly/plotly-region-overlay.mjs +19 -10
  107. package/esm2022/lib/implementations/plotly/plotly-shape-projection.mjs +223 -0
  108. package/esm2022/lib/implementations/plotly/plotly-trace-builders.mjs +79 -19
  109. package/esm2022/lib/implementations/plotly/plotly-zoom-controller.mjs +223 -0
  110. package/esm2022/lib/implementations/plotly/plotly.service.mjs +439 -1655
  111. package/esm2022/lib/implementations/region-centroids.mjs +47 -0
  112. package/esm2022/lib/implementations/simple-slice-access.service.mjs +22 -12
  113. package/esm2022/lib/implementations/spatial-data-http/spatial-data-http.service.mjs +172 -92
  114. package/esm2022/lib/implementations/spatial-data-http/spatial-wire.mjs +103 -22
  115. package/esm2022/lib/implementations/tile-server/index.mjs +6 -0
  116. package/esm2022/lib/implementations/tile-server/native-histogram.mjs +30 -0
  117. package/esm2022/lib/implementations/tile-server/poll-descriptor.mjs +65 -0
  118. package/esm2022/lib/implementations/tile-server/tile-protocol.mjs +42 -0
  119. package/esm2022/lib/implementations/tile-server/transport.mjs +135 -0
  120. package/esm2022/lib/intensity/intensity-profile.mjs +107 -0
  121. package/esm2022/lib/intensity/intensity-profile.service.mjs +223 -0
  122. package/esm2022/lib/intensity-inset/intensity-inset.component.mjs +133 -0
  123. package/esm2022/lib/models/bezier.mjs +1 -11
  124. package/esm2022/lib/models/class-preset.mjs +41 -3
  125. package/esm2022/lib/models/geometry.mjs +27 -164
  126. package/esm2022/lib/models/polygon-edit.mjs +254 -0
  127. package/esm2022/lib/models/polygon-factory.mjs +134 -0
  128. package/esm2022/lib/models/region-clone.mjs +68 -0
  129. package/esm2022/lib/models/region-geojson.mjs +411 -0
  130. package/esm2022/lib/models/region.mjs +34 -33
  131. package/esm2022/lib/models/shape.mjs +18 -16
  132. package/esm2022/lib/plot-mode/contribution-host.mjs +297 -0
  133. package/esm2022/lib/plot-mode/plot-mode-controller.mjs +9 -6
  134. package/esm2022/lib/plot-mode/plot-type-menu.mjs +85 -0
  135. package/esm2022/lib/plot-mode/tool-params-model.mjs +87 -0
  136. package/esm2022/lib/plot.utilities.mjs +296 -473
  137. package/esm2022/lib/processing/image-crop.mjs +1 -1
  138. package/esm2022/lib/processing/processing-image.mjs +28 -15
  139. package/esm2022/lib/provide-visualization.mjs +40 -14
  140. package/esm2022/lib/region-editor/class-tree/class-tree.component.mjs +156 -0
  141. package/esm2022/lib/region-editor/class-tree/class-tree.mjs +108 -0
  142. package/esm2022/lib/region-editor/classes-panel/classes-panel.component.mjs +163 -0
  143. package/esm2022/lib/region-editor/file-stem.mjs +13 -0
  144. package/esm2022/lib/region-editor/manage-classes-dialog/manage-classes-dialog.component.mjs +118 -0
  145. package/esm2022/lib/region-editor/mask-export.service.mjs +98 -0
  146. package/esm2022/lib/region-editor/mask-raster.mjs +11 -5
  147. package/esm2022/lib/region-editor/region-color-dialog/region-color-dialog.component.mjs +56 -0
  148. package/esm2022/lib/region-editor/region-editor-help/region-editor-help.component.mjs +28 -0
  149. package/esm2022/lib/region-editor/region-editor.component.mjs +896 -660
  150. package/esm2022/lib/region-editor/region-metrics.mjs +86 -0
  151. package/esm2022/lib/region-editor/region-persistence.service.mjs +160 -0
  152. package/esm2022/lib/region-editor/region-table/region-table.component.mjs +169 -0
  153. package/esm2022/lib/region-editor/save-mask-dialog/save-mask-dialog.component.mjs +91 -0
  154. package/esm2022/lib/region-editor/save-regions-dialog/save-regions-dialog.component.mjs +92 -0
  155. package/esm2022/lib/region-ops.service.mjs +28 -70
  156. package/esm2022/lib/region-overlay/region-geometry.mjs +360 -0
  157. package/esm2022/lib/region-overlay/region-hit-test.mjs +103 -0
  158. package/esm2022/lib/region-overlay/region-source-layer.mjs +378 -0
  159. package/esm2022/lib/region-overlay/region-style.mjs +97 -0
  160. package/esm2022/lib/region-overlay/svg-region-renderer.mjs +228 -0
  161. package/esm2022/lib/region-source/http-region-source.mjs +104 -0
  162. package/esm2022/lib/region-source/region-source-ops.mjs +53 -0
  163. package/esm2022/lib/region-source/region-source-worker.mjs +10 -0
  164. package/esm2022/lib/region-source/region-source.mjs +67 -0
  165. package/esm2022/lib/region-source/region-tiles.mjs +708 -0
  166. package/esm2022/lib/region-source/worker-region-source.mjs +229 -0
  167. package/esm2022/lib/render-orchestrator.mjs +14 -11
  168. package/esm2022/lib/render-session.mjs +207 -0
  169. package/esm2022/lib/routing-visualizer.service.mjs +858 -414
  170. package/esm2022/lib/section-pane/section-pane.component.mjs +299 -0
  171. package/esm2022/lib/spatial/density-raster.mjs +14 -0
  172. package/esm2022/lib/spatial/embedding-compute-coordinator.mjs +239 -0
  173. package/esm2022/lib/spatial/embedding-compute.mjs +43 -10
  174. package/esm2022/lib/spatial/gene-search.mjs +1 -1
  175. package/esm2022/lib/spatial/glyphs.mjs +97 -0
  176. package/esm2022/lib/spatial/lod.mjs +187 -0
  177. package/esm2022/lib/spatial/spatial-controls.facade.mjs +200 -0
  178. package/esm2022/lib/spatial/spatial-density.mjs +25 -16
  179. package/esm2022/lib/spatial/spatial-encoding.mjs +26 -82
  180. package/esm2022/lib/spatial/spatial-expression.mjs +43 -42
  181. package/esm2022/lib/spatial/spatial-framing.mjs +1 -1
  182. package/esm2022/lib/spatial/spatial-heatmap.mjs +6 -3
  183. package/esm2022/lib/spatial/spatial-hover.mjs +5 -33
  184. package/esm2022/lib/spatial/spatial-panel-model.mjs +282 -0
  185. package/esm2022/lib/spatial/spatial-sections.mjs +1 -1
  186. package/esm2022/lib/spatial/spatial-selection.mjs +33 -46
  187. package/esm2022/lib/spatial/spatial-tile-merge.mjs +219 -0
  188. package/esm2022/lib/spatial/spatial-tiles.mjs +12 -648
  189. package/esm2022/lib/spatial/spatial-volume-image.mjs +2 -4
  190. package/esm2022/lib/spatial/stats.mjs +71 -0
  191. package/esm2022/lib/spatial/transcript-grouping.mjs +307 -0
  192. package/esm2022/lib/spatial-controls/spatial-cells-panel/spatial-cells-panel.component.mjs +150 -0
  193. package/esm2022/lib/spatial-controls/spatial-charts/chart-data-model.mjs +309 -0
  194. package/esm2022/lib/spatial-controls/spatial-charts/chart-help.mjs +145 -0
  195. package/esm2022/lib/spatial-controls/spatial-charts/plotly-chart-host.mjs +158 -0
  196. package/esm2022/lib/spatial-controls/spatial-charts/spatial-chart-window/spatial-chart-window.component.mjs +47 -0
  197. package/esm2022/lib/spatial-controls/spatial-charts/spatial-charts.component.mjs +297 -802
  198. package/esm2022/lib/spatial-controls/spatial-charts/spatial-embedding-controls/spatial-embedding-controls.component.mjs +89 -0
  199. package/esm2022/lib/spatial-controls/spatial-charts/spatial-heatmap-controls/spatial-heatmap-controls.component.mjs +52 -0
  200. package/esm2022/lib/spatial-controls/spatial-controls.component.mjs +143 -1238
  201. package/esm2022/lib/spatial-controls/spatial-gene-picker.mjs +153 -0
  202. package/esm2022/lib/spatial-controls/spatial-gene-tree/spatial-gene-tree.component.mjs +241 -0
  203. package/esm2022/lib/spatial-controls/spatial-groups-panel/spatial-groups-panel.component.mjs +193 -0
  204. package/esm2022/lib/spatial-controls/spatial-key/spatial-key.component.mjs +132 -0
  205. package/esm2022/lib/spatial-controls/spatial-key/spatial-key.model.mjs +67 -0
  206. package/esm2022/lib/spatial-controls/spatial-marker-genes-form/spatial-marker-genes-form.component.mjs +147 -0
  207. package/esm2022/lib/spatial-controls/spatial-observations-panel/spatial-observations-panel.component.mjs +300 -0
  208. package/esm2022/lib/spatial-controls/spatial-transcripts-panel/spatial-transcripts-panel.component.mjs +370 -0
  209. package/esm2022/lib/store/class-color.util.mjs +53 -5
  210. package/esm2022/lib/store/class-signatures.mjs +63 -0
  211. package/esm2022/lib/store/region-history.mjs +146 -0
  212. package/esm2022/lib/store/region-scope-cache.mjs +144 -0
  213. package/esm2022/lib/store/region-selection.mjs +82 -0
  214. package/esm2022/lib/store/region-source-scope.mjs +171 -0
  215. package/esm2022/lib/store/region-store.service.mjs +986 -670
  216. package/esm2022/lib/store/spatial-selection.service.mjs +2 -2
  217. package/esm2022/lib/store/visualizer-store.service.mjs +81 -76
  218. package/esm2022/lib/toast-outlets.mjs +5 -4
  219. package/esm2022/lib/toolbar/brush/brush-tool.service.mjs +92 -434
  220. package/esm2022/lib/toolbar/canvas-tools.mjs +20 -0
  221. package/esm2022/lib/toolbar/crop/slide-crop.mjs +26 -42
  222. package/esm2022/lib/toolbar/plot-type-selector/plot-type-selector.component.mjs +85 -0
  223. package/esm2022/lib/toolbar/region-tools/region-tool-buttons.mjs +74 -0
  224. package/esm2022/lib/toolbar/region-tools/region-tools.component.mjs +120 -0
  225. package/esm2022/lib/toolbar/segmentation/cell-segment-tool.service.mjs +74 -78
  226. package/esm2022/lib/toolbar/segmentation/cellpose-segmenter.service.mjs +50 -8
  227. package/esm2022/lib/toolbar/segmentation/onnx-sam-session.mjs +61 -42
  228. package/esm2022/lib/toolbar/segmentation/pending-calls.mjs +47 -0
  229. package/esm2022/lib/toolbar/segmentation/sam-model-registry.mjs +12 -4
  230. package/esm2022/lib/toolbar/segmentation/sam-onnx-core.mjs +70 -14
  231. package/esm2022/lib/toolbar/segmentation/sam-point-tool.service.mjs +135 -172
  232. package/esm2022/lib/toolbar/segmentation/sam-prompt.mjs +9 -90
  233. package/esm2022/lib/toolbar/segmentation/sam-session.service.mjs +183 -0
  234. package/esm2022/lib/toolbar/segmentation/sam-tool.service.mjs +95 -150
  235. package/esm2022/lib/toolbar/segmentation/segmentation-commit.mjs +12 -0
  236. package/esm2022/lib/toolbar/segmentation/segmentation-runner.mjs +108 -0
  237. package/esm2022/lib/toolbar/segmentation-tools/segmentation-tools.component.mjs +155 -0
  238. package/esm2022/lib/toolbar/stack-controls/stack-controls.component.mjs +121 -0
  239. package/esm2022/lib/toolbar/tool-kit/async-tool-status.mjs +37 -0
  240. package/esm2022/lib/toolbar/tool-kit/canvas-tool-manager.mjs +63 -0
  241. package/esm2022/lib/toolbar/tool-kit/canvas-tool.mjs +2 -0
  242. package/esm2022/lib/toolbar/tool-kit/frame-pixels.mjs +108 -0
  243. package/esm2022/lib/toolbar/tool-kit/mask-stroke-editor.mjs +306 -0
  244. package/esm2022/lib/toolbar/tool-kit/matrix-frame.mjs +61 -0
  245. package/esm2022/lib/toolbar/tool-kit/tool-overlay.mjs +140 -0
  246. package/esm2022/lib/toolbar/tool-kit/undo-gesture.mjs +24 -0
  247. package/esm2022/lib/toolbar/tool-slider/tool-slider.component.mjs +63 -0
  248. package/esm2022/lib/toolbar/toolbar-help-dialog/toolbar-help-dialog.component.mjs +50 -0
  249. package/esm2022/lib/toolbar/toolbar.component.mjs +84 -119
  250. package/esm2022/lib/toolbar/vertex-eraser/vertex-eraser-tool.service.mjs +93 -115
  251. package/esm2022/lib/toolbar/view-controls/view-controls.component.mjs +107 -0
  252. package/esm2022/lib/toolbar/wand/wand-region-grow.mjs +321 -0
  253. package/esm2022/lib/toolbar/wand/wand-tool.service.mjs +121 -416
  254. package/esm2022/lib/toolbar/wand/wand.service.mjs +30 -894
  255. package/esm2022/lib/toolbar/zoom-to-box/zoom-to-box-tool.service.mjs +48 -90
  256. package/esm2022/lib/util/mark-for-check.mjs +17 -0
  257. package/esm2022/lib/util/supersede.mjs +56 -0
  258. package/esm2022/lib/visualization.module.mjs +39 -141
  259. package/esm2022/lib/visualizer/floating-drag.directive.mjs +58 -0
  260. package/esm2022/lib/visualizer/region-actions.mjs +149 -0
  261. package/esm2022/lib/visualizer/region-load.mjs +123 -0
  262. package/esm2022/lib/visualizer/spatial-dataset-binder.mjs +163 -0
  263. package/esm2022/lib/visualizer/tool-modes.mjs +113 -0
  264. package/esm2022/lib/visualizer/viewer-shortcuts.mjs +167 -0
  265. package/esm2022/lib/visualizer/visualizer-context-menu.mjs +119 -0
  266. package/esm2022/lib/visualizer/volume-sections.mjs +175 -0
  267. package/esm2022/lib/visualizer.component.mjs +602 -1902
  268. package/esm2022/lib/workers/spatial-math-ops.mjs +43 -0
  269. package/esm2022/lib/workers/spatial-math-worker.mjs +10 -0
  270. package/esm2022/lib/workers/spatial-math.mjs +190 -0
  271. package/fesm2022/jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-BKQhpbHv.mjs +47169 -0
  272. package/fesm2022/jax-data-science-sci-image-visualizer-jax-data-science-sci-image-visualizer-BKQhpbHv.mjs.map +1 -0
  273. package/fesm2022/jax-data-science-sci-image-visualizer-onnx-sam-session-z1IN-F7w.mjs +238 -0
  274. package/fesm2022/jax-data-science-sci-image-visualizer-onnx-sam-session-z1IN-F7w.mjs.map +1 -0
  275. package/fesm2022/jax-data-science-sci-image-visualizer-region-source-worker-CAqBjM5L.mjs +12 -0
  276. package/fesm2022/jax-data-science-sci-image-visualizer-region-source-worker-CAqBjM5L.mjs.map +1 -0
  277. package/fesm2022/jax-data-science-sci-image-visualizer-spatial-math-worker-BzVFFqGS.mjs +12 -0
  278. package/fesm2022/jax-data-science-sci-image-visualizer-spatial-math-worker-BzVFFqGS.mjs.map +1 -0
  279. package/fesm2022/jax-data-science-sci-image-visualizer.mjs +41 -34467
  280. package/fesm2022/jax-data-science-sci-image-visualizer.mjs.map +1 -1
  281. package/fesm2022/mask.worker.js +36 -917
  282. package/fesm2022/onnx-sam.worker.js +52 -16
  283. package/fesm2022/region-source.worker.js +1067 -0
  284. package/fesm2022/spatial-math.worker.js +471 -0
  285. package/fesm2022/tsne.worker.js +32 -15
  286. package/index.d.ts +19 -10
  287. package/lib/channel-histogram/channel-histogram.component.d.ts +53 -43
  288. package/lib/contracts/capabilities.contract.d.ts +4 -2
  289. package/lib/contracts/cell-segmenter.contract.d.ts +1 -0
  290. package/lib/contracts/channel-histogram-api.contract.d.ts +4 -0
  291. package/lib/contracts/color.d.ts +27 -0
  292. package/lib/contracts/colormap-lut.d.ts +19 -4
  293. package/lib/contracts/coordinate-transform.contract.d.ts +3 -3
  294. package/lib/contracts/display-types.d.ts +21 -0
  295. package/lib/contracts/image.contract.d.ts +4 -0
  296. package/lib/contracts/instance-segmenter.contract.d.ts +5 -0
  297. package/lib/contracts/intensity.d.ts +13 -2
  298. package/lib/contracts/plot-type.d.ts +3 -1
  299. package/lib/contracts/ports/image-state.port.d.ts +6 -2
  300. package/lib/contracts/ports/preferences.port.d.ts +4 -0
  301. package/lib/contracts/ports/region-io.port.d.ts +1 -0
  302. package/lib/contracts/ports/spatial-data.port.d.ts +4 -10
  303. package/lib/contracts/ports/tile-access.port.d.ts +1 -0
  304. package/lib/contracts/region-editor-api.contract.d.ts +85 -1
  305. package/lib/contracts/region-overlay.contract.d.ts +5 -0
  306. package/lib/contracts/region-store.contract.d.ts +22 -0
  307. package/lib/contracts/sam.contract.d.ts +7 -0
  308. package/lib/contracts/section-view.contract.d.ts +44 -0
  309. package/lib/contracts/semantic-segmenter.contract.d.ts +6 -0
  310. package/lib/contracts/spatial-dataset.contract.d.ts +19 -6
  311. package/lib/contracts/toolbar-tool.contract.d.ts +1 -0
  312. package/lib/contracts/visualizer.contract.d.ts +231 -54
  313. package/lib/contracts/viz-config.d.ts +9 -0
  314. package/lib/geometry/contour.d.ts +24 -0
  315. package/lib/geometry/loft.d.ts +22 -0
  316. package/lib/geometry/polylabel.d.ts +23 -0
  317. package/lib/geometry/raster.d.ts +42 -0
  318. package/lib/geometry/reconstruct.d.ts +54 -0
  319. package/lib/geometry/reslice-image.d.ts +33 -0
  320. package/lib/geometry/ring.d.ts +67 -0
  321. package/lib/geometry/section.d.ts +52 -0
  322. package/lib/hex-color-picker/hex-color-picker.component.d.ts +61 -27
  323. package/lib/implementations/base-store-visualizer.d.ts +61 -15
  324. package/lib/implementations/napari-js/napari-axes-gizmo.d.ts +36 -0
  325. package/lib/implementations/napari-js/napari-display-state.d.ts +76 -0
  326. package/lib/implementations/napari-js/napari-helpers.d.ts +129 -0
  327. package/lib/implementations/napari-js/napari-image-2d-scene.d.ts +162 -0
  328. package/lib/implementations/napari-js/napari-loading-badge.d.ts +4 -3
  329. package/lib/implementations/napari-js/napari-loading-state.d.ts +37 -0
  330. package/lib/implementations/napari-js/napari-region-mesh-pointer.d.ts +32 -0
  331. package/lib/implementations/napari-js/napari-region-overlay.d.ts +68 -71
  332. package/lib/implementations/napari-js/napari-scene.d.ts +126 -0
  333. package/lib/implementations/napari-js/napari-spatial-2d-scene.d.ts +163 -0
  334. package/lib/implementations/napari-js/napari-spatial-3d-scene.d.ts +212 -0
  335. package/lib/implementations/napari-js/napari-spatial-encoding.d.ts +114 -0
  336. package/lib/implementations/napari-js/napari-spatial-hover.d.ts +91 -0
  337. package/lib/implementations/napari-js/napari-spatial-scene.d.ts +118 -0
  338. package/lib/implementations/napari-js/napari-spatial-tiles.d.ts +56 -263
  339. package/lib/implementations/napari-js/napari-spatial-tooltip.d.ts +1 -1
  340. package/lib/implementations/napari-js/napari-surface-scene.d.ts +76 -0
  341. package/lib/implementations/napari-js/napari-tile-client.d.ts +214 -0
  342. package/lib/implementations/napari-js/napari-tool-bridge.d.ts +179 -0
  343. package/lib/implementations/napari-js/napari-visualizer.service.d.ts +169 -883
  344. package/lib/implementations/napari-js/napari-volume-region-meshes.d.ts +66 -0
  345. package/lib/implementations/napari-js/napari-volume-scene.d.ts +148 -0
  346. package/lib/implementations/napari-js/napari-volume-slice-planes.d.ts +43 -0
  347. package/lib/implementations/napari-js/napari-volume-z-handle.d.ts +8 -12
  348. package/lib/implementations/napari-js/region-overlay/overlay-projection.d.ts +59 -0
  349. package/lib/implementations/napari-js/region-overlay/region-edit.d.ts +15 -0
  350. package/lib/implementations/napari-js/region-overlay/region-svg-renderer.d.ts +54 -0
  351. package/lib/implementations/napari-js/spatial-tiles/categorical-lookup.d.ts +26 -0
  352. package/lib/implementations/napari-js/spatial-tiles/cell-layers.d.ts +70 -0
  353. package/lib/implementations/napari-js/spatial-tiles/density-layer.d.ts +61 -0
  354. package/lib/implementations/napari-js/spatial-tiles/layer-groups.d.ts +67 -0
  355. package/lib/implementations/napari-js/spatial-tiles/plan-context.d.ts +38 -0
  356. package/lib/implementations/napari-js/spatial-tiles/transcript-hover.d.ts +71 -0
  357. package/lib/implementations/napari-js/spatial-tiles/transcript-jobs.d.ts +105 -0
  358. package/lib/implementations/napari-js/spatial-tiles/transcript-layers.d.ts +56 -0
  359. package/lib/implementations/osd/display-pipeline.d.ts +38 -9
  360. package/lib/implementations/osd/histogram-sampler.d.ts +22 -12
  361. package/lib/implementations/osd/openseadragon-viewer-options.d.ts +35 -0
  362. package/lib/implementations/osd/openseadragon-visualizer.service.d.ts +78 -354
  363. package/lib/implementations/osd/osd-coordinate-transform.d.ts +2 -1
  364. package/lib/implementations/osd/osd-coords.d.ts +6 -4
  365. package/lib/implementations/osd/osd-export.d.ts +36 -0
  366. package/lib/implementations/osd/osd-lib.d.ts +7 -0
  367. package/lib/implementations/osd/osd-navigator-chrome.d.ts +69 -0
  368. package/lib/implementations/osd/osd-pixel-readback.d.ts +22 -0
  369. package/lib/implementations/osd/osd-region-overlay-draw.d.ts +38 -0
  370. package/lib/implementations/osd/osd-region-overlay.d.ts +46 -51
  371. package/lib/implementations/osd/osd-scale-bar.d.ts +8 -6
  372. package/lib/implementations/osd/osd-tile-source.d.ts +49 -0
  373. package/lib/implementations/osd/osd-viewer-like.d.ts +100 -0
  374. package/lib/implementations/osd/osd-viewer-mount.d.ts +14 -0
  375. package/lib/implementations/osd/osd-viewport.d.ts +77 -0
  376. package/lib/implementations/osd/osd-zoom.d.ts +6 -0
  377. package/lib/implementations/osd/simple-source.d.ts +161 -0
  378. package/lib/implementations/osd/slice-cache.d.ts +12 -3
  379. package/lib/implementations/osd/tile-client.d.ts +11 -14
  380. package/lib/implementations/osd/tile-recolor.d.ts +141 -0
  381. package/lib/implementations/plotly/omics-trace-builders.d.ts +32 -20
  382. package/lib/implementations/plotly/plotly-image-loader.d.ts +49 -0
  383. package/lib/implementations/plotly/plotly-image-recolor.d.ts +75 -0
  384. package/lib/implementations/plotly/plotly-intensity-inset.d.ts +8 -0
  385. package/lib/implementations/plotly/plotly-isosurface-controls.d.ts +38 -0
  386. package/lib/implementations/plotly/plotly-layouts.d.ts +188 -0
  387. package/lib/implementations/plotly/plotly-readback.d.ts +41 -0
  388. package/lib/implementations/plotly/plotly-region-overlay.d.ts +2 -2
  389. package/lib/implementations/plotly/plotly-shape-projection.d.ts +92 -0
  390. package/lib/implementations/plotly/plotly-trace-builders.d.ts +23 -12
  391. package/lib/implementations/plotly/plotly-zoom-controller.d.ts +86 -0
  392. package/lib/implementations/plotly/plotly.service.d.ts +136 -401
  393. package/lib/implementations/region-centroids.d.ts +14 -0
  394. package/lib/implementations/simple-slice-access.service.d.ts +7 -4
  395. package/lib/implementations/spatial-data-http/spatial-data-http.service.d.ts +42 -18
  396. package/lib/implementations/spatial-data-http/spatial-wire.d.ts +34 -9
  397. package/lib/implementations/tile-server/index.d.ts +5 -0
  398. package/lib/implementations/tile-server/native-histogram.d.ts +25 -0
  399. package/lib/implementations/tile-server/poll-descriptor.d.ts +39 -0
  400. package/lib/implementations/tile-server/tile-protocol.d.ts +83 -0
  401. package/lib/implementations/tile-server/transport.d.ts +62 -0
  402. package/lib/intensity/intensity-profile.d.ts +66 -0
  403. package/lib/intensity/intensity-profile.service.d.ts +108 -0
  404. package/lib/intensity-inset/intensity-inset.component.d.ts +58 -0
  405. package/lib/models/bezier.d.ts +0 -5
  406. package/lib/models/class-preset.d.ts +25 -0
  407. package/lib/models/geometry.d.ts +14 -48
  408. package/lib/models/polygon-edit.d.ts +72 -0
  409. package/lib/models/polygon-factory.d.ts +45 -0
  410. package/lib/models/region-clone.d.ts +20 -0
  411. package/lib/models/region-geojson.d.ts +57 -0
  412. package/lib/models/region.d.ts +59 -4
  413. package/lib/models/shape.d.ts +8 -0
  414. package/lib/plot-mode/contribution-host.d.ts +125 -0
  415. package/lib/plot-mode/plot-type-menu.d.ts +60 -0
  416. package/lib/plot-mode/tool-params-model.d.ts +49 -0
  417. package/lib/plot.utilities.d.ts +19 -30
  418. package/lib/processing/processing-image.d.ts +5 -2
  419. package/lib/provide-visualization.d.ts +19 -2
  420. package/lib/region-editor/class-tree/class-tree.component.d.ts +78 -0
  421. package/lib/region-editor/class-tree/class-tree.d.ts +31 -0
  422. package/lib/region-editor/classes-panel/classes-panel.component.d.ts +86 -0
  423. package/lib/region-editor/file-stem.d.ts +7 -0
  424. package/lib/region-editor/manage-classes-dialog/manage-classes-dialog.component.d.ts +45 -0
  425. package/lib/region-editor/mask-export.service.d.ts +54 -0
  426. package/lib/region-editor/mask-raster.d.ts +2 -8
  427. package/lib/region-editor/region-color-dialog/region-color-dialog.component.d.ts +29 -0
  428. package/lib/region-editor/region-editor-help/region-editor-help.component.d.ts +11 -0
  429. package/lib/region-editor/region-editor.component.d.ts +283 -200
  430. package/lib/region-editor/region-metrics.d.ts +34 -0
  431. package/lib/region-editor/region-persistence.service.d.ts +77 -0
  432. package/lib/region-editor/region-table/region-table.component.d.ts +89 -0
  433. package/lib/region-editor/save-mask-dialog/save-mask-dialog.component.d.ts +36 -0
  434. package/lib/region-editor/save-regions-dialog/save-regions-dialog.component.d.ts +37 -0
  435. package/lib/region-ops.service.d.ts +1 -7
  436. package/lib/region-overlay/region-geometry.d.ts +158 -0
  437. package/lib/region-overlay/region-hit-test.d.ts +38 -0
  438. package/lib/region-overlay/region-source-layer.d.ts +96 -0
  439. package/lib/region-overlay/region-style.d.ts +52 -0
  440. package/lib/region-overlay/svg-region-renderer.d.ts +110 -0
  441. package/lib/region-source/http-region-source.d.ts +45 -0
  442. package/lib/region-source/region-source-ops.d.ts +89 -0
  443. package/lib/region-source/region-source-worker.d.ts +7 -0
  444. package/lib/region-source/region-source.d.ts +82 -0
  445. package/lib/region-source/region-tiles.d.ts +289 -0
  446. package/lib/region-source/worker-region-source.d.ts +65 -0
  447. package/lib/render-orchestrator.d.ts +6 -2
  448. package/lib/render-session.d.ts +75 -0
  449. package/lib/routing-visualizer.service.d.ts +248 -59
  450. package/lib/section-pane/section-pane.component.d.ts +47 -0
  451. package/lib/spatial/density-raster.d.ts +6 -0
  452. package/lib/spatial/embedding-compute-coordinator.d.ts +123 -0
  453. package/lib/spatial/embedding-compute.d.ts +21 -2
  454. package/lib/spatial/glyphs.d.ts +16 -0
  455. package/lib/spatial/lod.d.ts +94 -0
  456. package/lib/spatial/spatial-controls.facade.d.ts +64 -0
  457. package/lib/spatial/spatial-density.d.ts +15 -5
  458. package/lib/spatial/spatial-encoding.d.ts +11 -44
  459. package/lib/spatial/spatial-expression.d.ts +40 -22
  460. package/lib/spatial/spatial-framing.d.ts +1 -0
  461. package/lib/spatial/spatial-heatmap.d.ts +2 -0
  462. package/lib/spatial/spatial-hover.d.ts +4 -16
  463. package/lib/spatial/spatial-panel-model.d.ts +135 -0
  464. package/lib/spatial/spatial-selection.d.ts +21 -26
  465. package/lib/spatial/spatial-tile-merge.d.ts +41 -0
  466. package/lib/spatial/spatial-tiles.d.ts +9 -256
  467. package/lib/spatial/stats.d.ts +38 -0
  468. package/lib/spatial/transcript-grouping.d.ts +119 -0
  469. package/lib/spatial-controls/spatial-cells-panel/spatial-cells-panel.component.d.ts +64 -0
  470. package/lib/spatial-controls/spatial-charts/chart-data-model.d.ts +153 -0
  471. package/lib/spatial-controls/spatial-charts/chart-help.d.ts +69 -0
  472. package/lib/spatial-controls/spatial-charts/plotly-chart-host.d.ts +98 -0
  473. package/lib/spatial-controls/spatial-charts/spatial-chart-window/spatial-chart-window.component.d.ts +26 -0
  474. package/lib/spatial-controls/spatial-charts/spatial-charts.component.d.ts +101 -260
  475. package/lib/spatial-controls/spatial-charts/spatial-embedding-controls/spatial-embedding-controls.component.d.ts +43 -0
  476. package/lib/spatial-controls/spatial-charts/spatial-heatmap-controls/spatial-heatmap-controls.component.d.ts +27 -0
  477. package/lib/spatial-controls/spatial-controls.component.d.ts +68 -448
  478. package/lib/spatial-controls/spatial-gene-picker.d.ts +86 -0
  479. package/lib/spatial-controls/spatial-gene-tree/spatial-gene-tree.component.d.ts +102 -0
  480. package/lib/spatial-controls/spatial-groups-panel/spatial-groups-panel.component.d.ts +72 -0
  481. package/lib/spatial-controls/spatial-key/spatial-key.component.d.ts +66 -0
  482. package/lib/spatial-controls/spatial-key/spatial-key.model.d.ts +33 -0
  483. package/lib/spatial-controls/spatial-marker-genes-form/spatial-marker-genes-form.component.d.ts +64 -0
  484. package/lib/spatial-controls/spatial-observations-panel/spatial-observations-panel.component.d.ts +117 -0
  485. package/lib/spatial-controls/spatial-transcripts-panel/spatial-transcripts-panel.component.d.ts +142 -0
  486. package/lib/store/class-color.util.d.ts +39 -2
  487. package/lib/store/class-signatures.d.ts +11 -0
  488. package/lib/store/region-history.d.ts +66 -0
  489. package/lib/store/region-scope-cache.d.ts +65 -0
  490. package/lib/store/region-selection.d.ts +36 -0
  491. package/lib/store/region-source-scope.d.ts +68 -0
  492. package/lib/store/region-store.service.d.ts +312 -116
  493. package/lib/store/visualizer-store.service.d.ts +32 -33
  494. package/lib/toast-outlets.d.ts +4 -3
  495. package/lib/toolbar/brush/brush-tool.service.d.ts +31 -98
  496. package/lib/toolbar/canvas-tools.d.ts +20 -0
  497. package/lib/toolbar/crop/slide-crop.d.ts +10 -4
  498. package/lib/toolbar/plot-type-selector/plot-type-selector.component.d.ts +38 -0
  499. package/lib/toolbar/region-tools/region-tool-buttons.d.ts +21 -0
  500. package/lib/toolbar/region-tools/region-tools.component.d.ts +62 -0
  501. package/lib/toolbar/segmentation/cell-segment-tool.service.d.ts +10 -14
  502. package/lib/toolbar/segmentation/cellpose-segmenter.service.d.ts +12 -2
  503. package/lib/toolbar/segmentation/onnx-sam-session.d.ts +22 -3
  504. package/lib/toolbar/segmentation/pending-calls.d.ts +31 -0
  505. package/lib/toolbar/segmentation/sam-model-registry.d.ts +9 -3
  506. package/lib/toolbar/segmentation/sam-onnx-core.d.ts +18 -5
  507. package/lib/toolbar/segmentation/sam-point-tool.service.d.ts +46 -32
  508. package/lib/toolbar/segmentation/sam-prompt.d.ts +7 -31
  509. package/lib/toolbar/segmentation/sam-session.service.d.ts +74 -0
  510. package/lib/toolbar/segmentation/sam-tool.service.d.ts +23 -30
  511. package/lib/toolbar/segmentation/segmentation-commit.d.ts +8 -0
  512. package/lib/toolbar/segmentation/segmentation-runner.d.ts +52 -0
  513. package/lib/toolbar/segmentation-tools/segmentation-tools.component.d.ts +87 -0
  514. package/lib/toolbar/stack-controls/stack-controls.component.d.ts +51 -0
  515. package/lib/toolbar/tool-kit/async-tool-status.d.ts +21 -0
  516. package/lib/toolbar/tool-kit/canvas-tool-manager.d.ts +36 -0
  517. package/lib/toolbar/tool-kit/canvas-tool.d.ts +86 -0
  518. package/lib/toolbar/tool-kit/frame-pixels.d.ts +45 -0
  519. package/lib/toolbar/tool-kit/mask-stroke-editor.d.ts +125 -0
  520. package/lib/toolbar/tool-kit/matrix-frame.d.ts +40 -0
  521. package/lib/toolbar/tool-kit/tool-overlay.d.ts +60 -0
  522. package/lib/toolbar/tool-kit/undo-gesture.d.ts +17 -0
  523. package/lib/toolbar/tool-slider/tool-slider.component.d.ts +33 -0
  524. package/lib/toolbar/toolbar-help-dialog/toolbar-help-dialog.component.d.ts +24 -0
  525. package/lib/toolbar/toolbar.component.d.ts +55 -84
  526. package/lib/toolbar/vertex-eraser/vertex-eraser-tool.service.d.ts +33 -40
  527. package/lib/toolbar/view-controls/view-controls.component.d.ts +54 -0
  528. package/lib/toolbar/wand/wand-region-grow.d.ts +49 -0
  529. package/lib/toolbar/wand/wand-tool.service.d.ts +39 -124
  530. package/lib/toolbar/wand/wand.service.d.ts +22 -116
  531. package/lib/toolbar/zoom-to-box/zoom-to-box-tool.service.d.ts +17 -37
  532. package/lib/util/mark-for-check.d.ts +11 -0
  533. package/lib/util/supersede.d.ts +53 -0
  534. package/lib/visualization.module.d.ts +18 -39
  535. package/lib/visualizer/floating-drag.directive.d.ts +30 -0
  536. package/lib/visualizer/region-actions.d.ts +54 -0
  537. package/lib/visualizer/region-load.d.ts +46 -0
  538. package/lib/visualizer/spatial-dataset-binder.d.ts +74 -0
  539. package/lib/visualizer/tool-modes.d.ts +49 -0
  540. package/lib/visualizer/viewer-shortcuts.d.ts +71 -0
  541. package/lib/visualizer/visualizer-context-menu.d.ts +55 -0
  542. package/lib/visualizer/volume-sections.d.ts +64 -0
  543. package/lib/visualizer.component.d.ts +232 -447
  544. package/lib/workers/spatial-math-ops.d.ts +65 -0
  545. package/lib/workers/spatial-math-worker.d.ts +7 -0
  546. package/lib/workers/spatial-math.d.ts +74 -0
  547. package/package.json +12 -3
  548. package/src/lib/assets/slice.svg +23 -0
  549. package/src/lib/styles/_viz-icons-rules.scss +73 -0
  550. package/src/lib/styles/viz-icons.scss +14 -0
  551. package/esm2022/lib/implementations/napari-js/napari-axes-labels.mjs +0 -97
  552. package/esm2022/lib/implementations/napari-js/napari-navigator.mjs +0 -195
  553. package/esm2022/lib/implementations/napari-js/napari-scale-bar.mjs +0 -92
  554. package/fesm2022/jax-data-science-sci-image-visualizer-onnx-sam-session-BwP-A11m.mjs +0 -329
  555. package/fesm2022/jax-data-science-sci-image-visualizer-onnx-sam-session-BwP-A11m.mjs.map +0 -1
  556. package/lib/implementations/napari-js/napari-axes-labels.d.ts +0 -49
  557. package/lib/implementations/napari-js/napari-navigator.d.ts +0 -72
  558. package/lib/implementations/napari-js/napari-scale-bar.d.ts +0 -35
  559. package/src/lib/assets/cell-detection.svg +0 -37
  560. package/src/lib/assets/click.svg +0 -1
  561. package/src/lib/assets/colormap-luts.json +0 -1
  562. package/src/lib/assets/edit-selection-white.svg +0 -47
  563. package/src/lib/assets/icons/colormap-earth.png +0 -0
  564. package/src/lib/assets/icons/colormap-placeholder.png +0 -0
  565. package/src/lib/assets/icons/colormap-pubu.png +0 -0
  566. package/src/lib/assets/interactive-segmentation-cursor.svg +0 -1
  567. package/src/lib/assets/picture-segmentation.svg +0 -43
  568. package/src/lib/assets/test/download-379.svg +0 -1
  569. package/src/lib/assets/test/download-98.svg +0 -1
  570. package/src/lib/assets/test/json-1.svg +0 -1
  571. package/src/lib/assets/test/load-53.svg +0 -1
  572. package/src/lib/assets/test/mask-44.svg +0 -1
  573. package/src/lib/assets/test/mask-download-44.svg +0 -15
  574. package/src/lib/assets/test/mask-save-44.svg +0 -11
  575. package/src/lib/assets/test/overlay-1.svg +0 -1
  576. package/src/lib/assets/test/overlay-4.svg +0 -1
  577. package/src/lib/assets/test/region-26.svg +0 -1
  578. package/src/lib/assets/test/save-56.svg +0 -1
  579. package/src/lib/assets/test/upload-43.svg +0 -1
@@ -4,6 +4,16 @@
4
4
  * so existing hosts (which pass PrimeNG `TreeNode`s and plain option objects)
5
5
  * keep compiling unchanged while consumers finally get named shapes.
6
6
  */
7
+ /** Every {@link CanvasToolId}. */
8
+ export const CANVAS_TOOL_IDS = ['wand', 'brush', 'eraseVertex', 'zoomToBox', 'samPoint'];
9
+ /** Whether `id` names an on-canvas tool. */
10
+ export function isCanvasToolId(id) {
11
+ return CANVAS_TOOL_IDS.includes(id);
12
+ }
13
+ /**
14
+ * The spatial view a dataset opens with: no colour source, points and volume shown, the
15
+ * optional layers off. A complete state to spread partial view-state patches over.
16
+ */
7
17
  export const DEFAULT_SPATIAL_VIEW = {
8
18
  colorBy: null,
9
19
  pointScale: 1,
@@ -50,4 +60,4 @@ export const DEFAULT_SPATIAL_VIEW = {
50
60
  showImage: true,
51
61
  showAnnotations: true,
52
62
  };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL2Rpc3BsYXktdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFvUkgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXFCO0lBQ3BELE9BQU8sRUFBRSxJQUFJO0lBQ2IsVUFBVSxFQUFFLENBQUM7SUFDYixPQUFPLEVBQUUsQ0FBQztJQUNWLFFBQVEsRUFBRSxLQUFLO0lBQ2YsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztJQUM1QixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGFBQWEsRUFBRSxHQUFHO0lBQ2xCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLGdCQUFnQixFQUFFLENBQUM7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxjQUFjLEVBQUUsSUFBSTtJQUNwQixhQUFhLEVBQUUsS0FBSztJQUNwQixnQkFBZ0IsRUFBRSxDQUFDO0lBQ25CLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsT0FBTyxFQUFFLElBQUk7SUFDYixRQUFRLEVBQUUsTUFBTTtJQUNoQixXQUFXLEVBQUUsSUFBSTtJQUNqQixjQUFjLEVBQUUsSUFBSTtJQUNwQixlQUFlLEVBQUUsRUFBRTtJQUNuQixxQkFBcUIsRUFBRSxFQUFFO0lBQ3pCLG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsb0JBQW9CLEVBQUUsRUFBRTtJQUN4QixrQkFBa0IsRUFBRSxLQUFLO0lBQ3pCLGdCQUFnQixFQUFFLE9BQU87SUFDekIsY0FBYyxFQUFFLEtBQUs7SUFDckIsaUJBQWlCLEVBQUUsVUFBVTtJQUM3QixnQkFBZ0IsRUFBRSxFQUFFO0lBQ3BCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLGlCQUFpQixFQUFFLEdBQUc7SUFDdEIsaUJBQWlCLEVBQUUsTUFBTTtJQUN6QixjQUFjLEVBQUUsR0FBRztJQUNuQixVQUFVLEVBQUUsRUFBRTtJQUNkLFlBQVksRUFBRSxJQUFJO0lBQ2xCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGFBQWEsRUFBRSxPQUFPO0lBQ3RCLGFBQWEsRUFBRSxJQUFJO0lBQ25CLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFlBQVksRUFBRSxFQUFFO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsZUFBZSxFQUFFLElBQUk7Q0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHVibGljYXRpb24tY3JpdGljYWwgdHlwZXMgdGhhdCB3ZXJlIGBhbnlgIG9uIHRoZSBwdWJsaWMgY29udHJhY3RzXG4gKiAocmVmYWN0b3JpbmcgcGxhbiwgU3RlcCA2KS4gRGVsaWJlcmF0ZWx5IHBlcm1pc3NpdmUg4oCUIGV2ZXJ5IGZpZWxkIG9wdGlvbmFsIOKAlFxuICogc28gZXhpc3RpbmcgaG9zdHMgKHdoaWNoIHBhc3MgUHJpbWVORyBgVHJlZU5vZGVgcyBhbmQgcGxhaW4gb3B0aW9uIG9iamVjdHMpXG4gKiBrZWVwIGNvbXBpbGluZyB1bmNoYW5nZWQgd2hpbGUgY29uc3VtZXJzIGZpbmFsbHkgZ2V0IG5hbWVkIHNoYXBlcy5cbiAqL1xuXG4vKiogQSBjb2xvcm1hcCB2YWx1ZSBhcyBQbG90bHkgdW5kZXJzdGFuZHMgaXQ6IGEgYnVpbHQtaW4gc2NhbGUgbmFtZSAoZS5nLlxuICogICdWaXJpZGlzJykgb3IgYW4gaW5saW5lIGFycmF5IG9mIGBbc3RvcCwgY29sb3JdYCBwYWlycy4gKi9cbmV4cG9ydCB0eXBlIENvbG9ybWFwVmFsdWUgPSBzdHJpbmcgfCBBcnJheTxbbnVtYmVyLCBzdHJpbmddPjtcblxuLyoqIE9uZSBub2RlIG9mIHRoZSBjb2xvcm1hcCBzZWxlY3RvciB0cmVlIChzdHJ1Y3R1cmFsbHkgY29tcGF0aWJsZSB3aXRoIHRoZVxuICogIFByaW1lTkcgYFRyZWVOb2RlYHMgdGhlIGhvc3QgcGFzc2VzKTogZ3JvdXAgbm9kZXMgY2FycnkgYGNoaWxkcmVuYCwgbGVhZlxuICogIG5vZGVzIGNhcnJ5IHRoZSBzY2FsZSBpbiBgZGF0YS52YWx1ZWAgKCsgYSBwcmV2aWV3IGltYWdlIGluIGBkYXRhLnNyY2ApLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2xvcm1hcE5vZGUge1xuICBsYWJlbD86IHN0cmluZztcbiAgZGF0YT86IHsgdmFsdWU/OiBDb2xvcm1hcFZhbHVlOyBzcmM/OiBzdHJpbmcgfTtcbiAgY2hpbGRyZW4/OiBDb2xvcm1hcE5vZGVbXTtcbn1cblxuLyoqIE1hZ2ljLXdhbmQgcGl4ZWwtY29tcGFyaXNvbiBzcGFjZS4gKi9cbmV4cG9ydCB0eXBlIFdhbmRUeXBlID0gJ0dSQVknIHwgJ1JHQicgfCAnTEFCX0RJU1RBTkNFJztcblxuLyoqIE9wdGlvbnMgZm9yIHRoZSBtYWdpYy13YW5kIHRvb2wgKFF1UGF0aC1zdHlsZSkuICovXG5leHBvcnQgaW50ZXJmYWNlIElXYW5kT3B0aW9ucyB7XG4gIHR5cGU/OiBXYW5kVHlwZTtcbiAgLyoqIEdhdXNzaWFuIHNpZ21hIGFwcGxpZWQgdG8gdGhlIHBhdGNoIGJlZm9yZSB0aHJlc2hvbGRpbmcuICovXG4gIHNpZ21hPzogbnVtYmVyO1xuICAvKiogSGlnaGVyID0gc3RyaWN0ZXIgKHNtYWxsZXIgc2VsZWN0aW9uKSBmb3IgR1JBWS9SR0I7IGhpZ2hlciA9IGxvb3NlciBmb3JcbiAgICogIExBQl9ESVNUQU5DRSDigJQgbWF0Y2hlcyBRdVBhdGguICovXG4gIHNlbnNpdGl2aXR5PzogbnVtYmVyO1xuICAvKiogU3F1YXJlIHBhdGNoIHNpemUgaW4gcGl4ZWxzIChtdXN0IGJlIG9kZCkuICovXG4gIHBhdGNoU2l6ZT86IG51bWJlcjtcbiAgLyoqIFdoZW4gdHJ1ZSwgc2tpcCBibHVyL3RocmVzaG9sZCBhbmQgZmxvb2QtZmlsbCBhdCBleGFjdC1tYXRjaFxuICAgKiAgKENtZC9DdHJsLWNsaWNrIGluIFF1UGF0aCkuICovXG4gIHNpbXBsZU1vZGU/OiBib29sZWFuO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIGJydXNoIHJlZ2lvbiB0b29sIChRdVBhdGgtc3R5bGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQnJ1c2hPcHRpb25zIHtcbiAgLyoqIEJydXNoIGRpYW1ldGVyIGluIG1hdHJpeCAoaW1hZ2UpIHBpeGVscy4gKi9cbiAgc2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFBhaW50IGFzIG9uZSBjbGFzczogbmV3IHJlZ2lvbnMgdGFrZSB0aGlzIGxhYmVsLCBhbmQgYSBzdHJva2Ugb25seSBleHRlbmRzXG4gICAqIG9yIG1lcmdlcyByZWdpb25zIHdpdGggdGhlIHNhbWUgbGFiZWwuIFVuc2V0ID0gdGhlIHBsYWluIGJydXNoIChsYWJlbFxuICAgKiBgJ1JlZ2lvbidgLCBleHRlbmRzIGFueSByZWdpb24pLiBgc2V0QnJ1c2hNb2RlKHRydWUsIOKApilgIHNldHMgdGhlIGNsYXNzIGluXG4gICAqIGZ1bGw7IGBzZXRCcnVzaE9wdGlvbnNgIGNoYW5nZXMgaXQgb25seSB3aGVuIGBsYWJlbGAgb3IgYGNvbG9yYCBpcyBwYXNzZWQsXG4gICAqIHNvIGEgc2l6ZS1vbmx5IHVwZGF0ZSBrZWVwcyBpdC5cbiAgICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogQ29sb3VyIGZvciB0aGUgcGFpbnRlZCByZWdpb25zIGluc3RlYWQgb2YgdGhlIHNoYXBlIGNvbG91ci4gS2VwdCBhZ2FpbnN0IHByZXNldCByZS1hcHBseS4gKi9cbiAgY29sb3I/OiBzdHJpbmc7XG59XG5cbi8qKiBXaGF0IGRyaXZlcyBwb2ludCBjb2xvdXIgaW4gdGhlIHNwYXRpYWwtb21pY3MgbW9kZTogYW4gYW5ub3RhdGlvbiBjb2x1bW5cbiAqICBmcm9tIHRoZSBkYXRhc2V0LCBvciBvbmUgZmVhdHVyZSAoZ2VuZSkgdmVjdG9yIGZldGNoZWQgb24gZGVtYW5kLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGF0aWFsQ29sb3JCeSB7XG4gIGtpbmQ6ICdjb2x1bW4nIHwgJ2ZlYXR1cmUnO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKiBEaXNwbGF5IHN0YXRlIGZvciB0aGUgc3BhdGlhbC1vbWljcyBwbG90IG1vZGUuIExpdmVzIGluIGBWaXN1YWxpemVyU3RvcmVgXG4gKiAgYWxvbmdzaWRlIHRoZSBjb2xvcm1hcC9jaGFubmVsIHN0YXRlIHNvIHRoZSByZW5kZXJlciByZWFjdHMgdG8gZWRpdHMgdGhlXG4gKiAgc2FtZSB3YXkgaXQgZG9lcyBmb3IgYW4gaW1hZ2UuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxWaWV3U3RhdGUge1xuICAvKiogQ29sb3VyIHNvdXJjZTsgYG51bGxgIHJlbmRlcnMgZXZlcnkgb2JzZXJ2YXRpb24gaW4gb25lIG5ldXRyYWwgY29sb3VyXG4gICAqICAodXNlZnVsIG9uIGl0cyBvd24g4oCUIGl0IHNob3dzIHdoZXJlIHRoZSB0aXNzdWUgYWN0dWFsbHkgaXMpLiAqL1xuICBjb2xvckJ5OiBTcGF0aWFsQ29sb3JCeSB8IG51bGw7XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBkYXRhc2V0J3MgcGh5c2ljYWwgbWFya2VyIHNpemUuIDEgPSB0cnVlIHNpemUsIHdoaWNoIGZvclxuICAgKiAgYSA1NSDCtW0gVmlzaXVtIHNwb3QgaXMgY29ycmVjdCBidXQgY2FuIGJlIGludmlzaWJsZSB3aGVuIHpvb21lZCBvdXQuICovXG4gIHBvaW50U2NhbGU6IG51bWJlcjtcbiAgLyoqIEFscGhhIGZvciBwb2ludHMgdGhhdCBhcmUgbm90IG11dGVkLiAqL1xuICBvcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBMb2ctc2NhbGUgY29udGludW91cyB2YWx1ZXMgYmVmb3JlIG1hcHBpbmcgdGhlbSBvbnRvIHRoZSBjb2xvcm1hcC4gU2VlZGVkXG4gICAqICBmcm9tIHRoZSBjb2x1bW4ncyBgbG9nU2NhbGVIaW50YCDigJQgY291bnQgZGF0YSBuZWVkcyBpdC4gKi9cbiAgbG9nU2NhbGU6IGJvb2xlYW47XG4gIC8qKiBQZXJjZW50aWxlIGNsaXAgZm9yIHRoZSBjb250cmFzdCB3aW5kb3cgYXMgYFtsbywgaGldYCBmcmFjdGlvbnMsIHNvIGFcbiAgICogIGhhbmRmdWwgb2Ygc2F0dXJhdGVkIG9ic2VydmF0aW9ucyBkb24ndCBmbGF0dGVuIHRoZSByZXN0LiAqL1xuICAgcGVyY2VudGlsZUNsaXA6IFtudW1iZXIsIG51bWJlcl07XG4gIC8qKlxuICAgKiBDb2xvcm1hcCBmb3IgQ09OVElOVU9VUyBzcGF0aWFsIGNvbG91cmluZyDigJQgYSBnZW5lLCBhIG51bWVyaWMgY29sdW1uIOKAlCBhcyBhXG4gICAqIHtAbGluayBDb2xvcm1hcFZhbHVlfSwgdGhlIHNhbWUgc2hhcGUgdGhlIGRpc3BsYXkgY29sb3JtYXAgY2FycmllczogYSBzY2FsZVxuICAgKiBOQU1FIGZvciB0aGUgYnVpbHQtaW5zLCBvciBhbiBpbmxpbmUgYFtzdG9wLCBjb2xvdXJdYCBhcnJheSBmb3IgdGhlIHJlc3QuXG4gICAqIE51bGwgZm9sbG93cyB0aGUgZGlzcGxheSBjb2xvcm1hcC5cbiAgICpcbiAgICogSXRzIG93biBzZXR0aW5nIGJlY2F1c2UgdGhlIGRpc3BsYXkgY29sb3JtYXAgYmVsb25ncyB0byB0aGUgdGlzc3VlIGltYWdlIGFuZFxuICAgKiBpcyB1c3VhbGx5IGEgZ3JleSByYW1wLCB3aGljaCBpcyB0aGUgd3JvbmcgdGhpbmcgdG8gcmVhZCBhIG1lYXN1cmVtZW50XG4gICAqIHRocm91Z2g6IGdyZXkgb3ZlciBncmV5IGNhbm5vdCBiZSB0b2xkIGFwYXJ0IGZyb20gdGhlIGFuYXRvbXkuIEZvbGxvd2luZyBpdFxuICAgKiAod2l0aCBhIFZpcmlkaXMgZmFsbGJhY2sgZm9yIGV4YWN0bHkgdGhhdCBjYXNlKSBpcyBhIHJlYXNvbmFibGUgZGVmYXVsdCBhbmQgYVxuICAgKiBwb29yIGNlaWxpbmcsIHNpbmNlIHdoaWNoIGdyYWRpZW50IHJlYWRzIGJlc3QgaXMgYSBqdWRnZW1lbnQgYWJvdXQgdGhlIGRhdGEuXG4gICAqXG4gICAqIE9uZSBzZXR0aW5nIGZvciB0aGUgbWFya2VycywgdGhlIDJEIGdlbmUgbWFwIGFuZCB0aGUgM0QgZ2VuZSBtYXAgdG9nZXRoZXIsIHNvXG4gICAqIHRoZSBmaWVsZCB1bmRlciB0aGUgY2VsbHMgYW5kIHRoZSBjZWxscyBvdmVyIGl0IGNhbm5vdCBkaXNhZ3JlZSBhYm91dCB3aGF0IGFcbiAgICogY29sb3VyIG1lYW5zIOKAlCBhbmQgdGhlIHBhbmVsJ3Mgb3duIGNvbG91ciBiYXIgaXMgYnVpbHQgZnJvbSBpdCB0b28uXG4gICAqL1xuICBjb250aW51b3VzQ29sb3JtYXA6IENvbG9ybWFwVmFsdWUgfCBudWxsO1xuICAvKipcbiAgICogV2hhdCB0aGUgM0Qgc2NlbmUgZHJhd3MuIFRoZSB0aHJlZSB0aGluZ3MgaW4gaXQg4oCUIHRoZSByZWZlcmVuY2Ugdm9sdW1lLCB0aGVcbiAgICogb2JzZXJ2YXRpb24gY2xvdWQgYW5kIHRoZSBjbHVzdGVyIGRlbnNpdHkgdm9sdW1lcyDigJQgb2NjdXB5IHRoZSBzYW1lIHNwYWNlLCBzb1xuICAgKiBhbnkgdHdvIG9mIHRoZW0gaGlkZSBlYWNoIG90aGVyIHRvIHNvbWUgZGVncmVlLiBUaGVzZSBhcmUgaW5kZXBlbmRlbnQgYmVjYXVzZVxuICAgKiB0aGUgdXNlZnVsIHZpZXdzIGFyZSB0aGUgY29tYmluYXRpb25zOiB0aGUgdm9sdW1lcyBhbG9uZSB0byByZWFkIGFuIGVzdGltYXRlZFxuICAgKiBkaXN0cmlidXRpb24sIG9uZSBzZWN0aW9uJ3MgY2VsbHMgb3ZlciB0aGVtIHRvIGNoZWNrIHRoYXQgZXN0aW1hdGUgYWdhaW5zdCB0aGVcbiAgICogbWVhc3VyZW1lbnQsIHRoZSBhbmF0b215IGFsb25lIHRvIGZpbmQgYSBsYW5kbWFyay5cbiAgICpcbiAgICogVmlzaWJpbGl0eSBvbmx5IOKAlCB0aGUgbGF5ZXJzIHN0YXkgYnVpbHQsIHNvIHRvZ2dsaW5nIG9uZSBiYWNrIG9uIGlzIGltbWVkaWF0ZVxuICAgKiBhbmQgZG9lcyBub3QgcmUtcnVuIGEgcmFzdGVyaXNhdGlvbi4ge0BsaW5rIGRlbnNpdHlWb2x1bWV9IGlzIHRoZSBleGNlcHRpb24gYW5kXG4gICAqIGdlbnVpbmVseSBnYXRlcyBjb25zdHJ1Y3Rpb24sIGJlY2F1c2UgYnVpbGRpbmcgc2l4IHZvbHVtZXMgaXMgbm90IGZyZWUuXG4gICAqL1xuICBzaG93Vm9sdW1lOiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIHJlZmVyZW5jZSB2b2x1bWUncyBvcGFjaXR5LlxuICAgKlxuICAgKiBJdHMgb3duLCBub3Qge0BsaW5rIG9wYWNpdHl9ICh3aGljaCBiZWxvbmdzIHRvIHRoZSBtYXJrZXJzKTogdGhlIHZvbHVtZSBpcyBhXG4gICAqIEJBQ0tEUk9QLCBhbmQgcmVhZGluZyB0aGUgY2xvdWQgb3IgYSBkZW5zaXR5IGZpZWxkIHRocm91Z2ggaXQgbWVhbnMgdHVybmluZ1xuICAgKiB0aGUgYW5hdG9teSBkb3duIHdpdGhvdXQgdG91Y2hpbmcgdGhlIGRhdGEgZHJhd24gb3ZlciBpdC4gUmFuZ2VzIGxvd2VyIHRoYW5cbiAgICogdGhlIG1hcmtlcnMnIHNsaWRlciBmb3IgdGhlIHNhbWUgcmVhc29uIOKAlCBhIGZhaW50IGFuYXRvbWljYWwgaGludCBpcyBhIHVzZWZ1bFxuICAgKiBzZXR0aW5nIGZvciBhIGJhY2tkcm9wIGFuZCBhIHVzZWxlc3Mgb25lIGZvciB0aGUgbWVhc3VyZW1lbnQuXG4gICAqL1xuICB2b2x1bWVPcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBEcmF3IHRoZSBvYnNlcnZhdGlvbiBtYXJrZXJzIOKAlCB0aGUgM0QgY2xvdWQsIG9yIHRoZSAyRCBjaXJjbGVzLiBJbiAyRCB0aGV5IGFsc29cbiAgICogIHN0YW5kIGluIGZvciBjZWxscyB0b28gc21hbGwgb24gc2NyZWVuIHRvIG91dGxpbmUuICovXG4gIHNob3dQb2ludHM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXN0cmljdCB0aGUgY2xvdWQgdG8gT05FIGltYWdlZCBzZWN0aW9uLCBieSBpbmRleCBpbnRvIHRoZSBkYXRhc2V0J3Mgc2FtcGxlZFxuICAgKiBzZWN0aW9uczsgbnVsbCBkcmF3cyBldmVyeSBzZWN0aW9uLlxuICAgKlxuICAgKiBUaGUgd2hvbGUgY2xvdWQgaXMgYSBzdGFjayBvZiBkaXNjcyB0aGF0IGhpZGVzIHdoYXRldmVyIGlzIGRyYXduIGJldHdlZW4gdGhlbS5cbiAgICogT25lIHNlY3Rpb24gYXQgYSB0aW1lIGlzIHRoZSB2aWV3IHRoYXQgYW5zd2VycyBcImRvZXMgdGhlIGVzdGltYXRlZCBmaWVsZFxuICAgKiBhY3R1YWxseSBmb2xsb3cgdGhlIGNlbGxzIEkgbWVhc3VyZWRcIiDigJQgYW5kIGl0IGlzIG9ubHkgb2ZmZXJlZCBmb3IgZGF0YSB0aGF0XG4gICAqIHJlYWxseSBpcyBzZWN0aW9uZWQgKHNlZSBgc2FtcGxlZFNlY3Rpb25zYCkuXG4gICAqL1xuICBwb2ludFNlY3Rpb246IG51bWJlciB8IG51bGw7XG4gIC8qKlxuICAgKiBEcmF3IGVhY2ggY2x1c3RlciBhcyBhIHRyYW5zbHVjZW50IERFTlNJVFkgdm9sdW1lIGFsb25nc2lkZSB0aGUgM0QgY2xvdWQuXG4gICAqXG4gICAqIFNlcmlhbCBzZWN0aW9ucyBodW5kcmVkcyBvZiBtaWNyb25zIGFwYXJ0IG1ha2UgYSBjbG91ZCBoYXJkIHRvIHJlYWQgYXMgYW5cbiAgICogYW5hdG9taWNhbCBkaXN0cmlidXRpb24g4oCUIHRoZSBleWUgY2Fubm90IGludGVncmF0ZSBkaXNjcyBpbnRvIGEgc2hhcGUuIEFcbiAgICogZGVuc2l0eSBmaWVsZCBjYW4gYmUgZXN0aW1hdGVkIGJldHdlZW4gdGhlIGltYWdlZCBwbGFuZXMgKGEgY29udGludW91c1xuICAgKiBlc3RpbWF0ZSwgdW5saWtlIGluZGl2aWR1YWwgY2VsbHMsIHdoaWNoIGhhdmUgbm8gY29ycmVzcG9uZGVuY2UgdG9cbiAgICogaW50ZXJwb2xhdGUgYWxvbmcpIGFuZCByZW5kZXJzIGFzIGEgY2xvdWQgdGhhdCByZWFkcyBhcyBhbiBlc3RpbWF0ZS5cbiAgICovXG4gIGRlbnNpdHlWb2x1bWU6IGJvb2xlYW47XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBkZWZhdWx0IGtlcm5lbCBiYW5kd2lkdGguIEFib3ZlIDEgaXMgc21vb3RoZXIgYW5kIGxlc3NcbiAgICogIGNvbW1pdHRhbDsgYmVsb3cgMSBleHBvc2VzIHRoZSBpbmRpdmlkdWFsIHNlY3Rpb25zLiAqL1xuICBkZW5zaXR5U21vb3RoaW5nOiBudW1iZXI7XG4gIC8qKlxuICAgKiBEcmF3IHRoZSBhY3RpdmUgR0VORSBhcyBhIGNvbnRpbnVvdXMgZmllbGQgdW5kZXIgdGhlIG9ic2VydmF0aW9ucyAoMkQpLlxuICAgKlxuICAgKiBDb2xvdXJpbmcgdGhlIG1hcmtlcnMgYnkgYSBnZW5lIHNheXMgd2hpY2ggY2VsbHMgZXhwcmVzcyBpdDsgaXQgY2Fubm90IHNheVxuICAgKiB3aGVyZSwgYmVjYXVzZSB0aGUgZXllIHdpbGwgbm90IGludGVncmF0ZSB0aG91c2FuZHMgb2YgZG90cyBpbnRvIGEgdGVycml0b3J5LlxuICAgKiBUaGUgZmllbGQgaXMgYW4gZXN0aW1hdGUg4oCUIGEga2VybmVsLXdlaWdodGVkIG1lYW4gcGVyIGNlbGwsIHRyYW5zcGFyZW50IHdoZXJlXG4gICAqIG5vIGNlbGwgd2FzIG1lYXN1cmVkIOKAlCBhbmQgaXQgaXMgZHJhd24gYmVuZWF0aCB0aGUgY2VsbHMsIG5vdCBpbnN0ZWFkIG9mIHRoZW0sXG4gICAqIHNvIHRoZSBtZWFzdXJlbWVudCBzdGF5cyBvbiBzY3JlZW4gbmV4dCB0byB0aGUgaW50ZXJwb2xhdGlvbi5cbiAgICpcbiAgICogSWdub3JlZCB1bmxlc3MgdGhlIGNvbG91ciBzb3VyY2UgaXMgYSBnZW5lOiB0aGVyZSBpcyBub3RoaW5nIGVsc2UgdG8gbWFwLlxuICAgKi9cbiAgZ2VuZU1hcDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFJlc3RyaWN0IHRoZSAzRCBnZW5lIG1hcCB0byBPTkUgaW1hZ2VkIHNlY3Rpb24sIGJ5IGluZGV4IGludG8gdGhlIGRhdGFzZXQnc1xuICAgKiBzYW1wbGVkIHNlY3Rpb25zOyBudWxsIGRyYXdzIGV2ZXJ5IHNlY3Rpb24ncyBzaGVldC5cbiAgICpcbiAgICogU2VwYXJhdGUgZnJvbSB7QGxpbmsgcG9pbnRTZWN0aW9ufSBzbyB0aGUgY29tYmluYXRpb25zIHN0YXkgb3BlbjogYWxsIHRoZVxuICAgKiBzaGVldHMgd2l0aCBvbmUgc2VjdGlvbidzIGNlbGxzIG92ZXIgdGhlbSBpcyBhIHVzZWZ1bCB2aWV3LCBhbmQgc28gaXMgb25lXG4gICAqIHNoZWV0IGluc2lkZSB0aGUgd2hvbGUgY2xvdWQuIElnbm9yZWQgd2hpbGUge0BsaW5rIGdlbmVNYXBWb2x1bWV9IGlzIHNldCDigJRcbiAgICogaW50ZXJwb2xhdGluZyBhIHNpbmdsZSBzZWN0aW9uIGFsb25nIHogd291bGQgc21lYXIgb25lIHNsaWRlIHRocm91Z2ggdGhlXG4gICAqIHNwZWNpbWVuJ3Mgd2hvbGUgZGVwdGggYW5kIGNhbGwgaXQgYW4gZXN0aW1hdGUuXG4gICAqL1xuICBnZW5lTWFwU2VjdGlvbjogbnVtYmVyIHwgbnVsbDtcbiAgLyoqXG4gICAqIFNtb290aCB0aGUgcGVyLXNlY3Rpb24gZ2VuZSBtYXBzIGFsb25nIHogaW50byBhIGNvbnRpbnVvdXMgVk9MVU1FICgzRCkuXG4gICAqXG4gICAqIFRoZSBzaGVldHMgYXJlIHdoYXQgd2FzIG1lYXN1cmVkIOKAlCBvbmUgZmllbGQgcGVyIGltYWdlZCBzbGlkZSwgd2l0aCB0aGUgZ2Fwc1xuICAgKiBiZXR3ZWVuIHRoZW0gZW1wdHkuIFRoaXMgdHVybnMgdGhlbSBpbnRvIGFuIGVzdGltYXRlIGRlZmluZWQgYmV0d2VlbiB0aGVcbiAgICogc2xpZGVzLCB0aGUgc2FtZSBtb3ZlIHRoZSBjbHVzdGVyIGRlbnNpdHkgdm9sdW1lcyBtYWtlIGFuZCB3aXRoIHRoZSBzYW1lXG4gICAqIGNhdmVhdDogYSBmaWVsZCBtYXkgYmUgaW50ZXJwb2xhdGVkIGJldHdlZW4gc2VjdGlvbnMsIGluZGl2aWR1YWwgY2VsbHMgbWF5XG4gICAqIG5vdCwgYW5kIHRoZSByZXN1bHQgaXMgZHJhd24gYXMgYSB0cmFuc2x1Y2VudCBjbG91ZCBzbyBpdCBjYW5ub3QgYmUgbWlzdGFrZW5cbiAgICogZm9yIG1lYXN1cmVtZW50LlxuICAgKi9cbiAgZ2VuZU1hcFZvbHVtZTogYm9vbGVhbjtcbiAgLyoqIE11bHRpcGxpZXIgb24gdGhlIGdlbmUgbWFwJ3Mga2VybmVsIGJhbmR3aWR0aC4gKi9cbiAgZ2VuZU1hcFNtb290aGluZzogbnVtYmVyO1xuICAvKiogVGhlIGdlbmUgbWFwJ3Mgb3duIG9wYWNpdHkuIFNlcGFyYXRlIGZyb20ge0BsaW5rIG9wYWNpdHl9LCB3aGljaCBiZWxvbmdzIHRvXG4gICAqICB0aGUgbWFya2VyczogdHVybmluZyB0aGUgY2VsbHMgZG93biB0byByZWFkIHRoZSBmaWVsZCB1bmRlcm5lYXRoIG11c3Qgbm90XG4gICAqICB0dXJuIHRoZSBmaWVsZCBkb3duIHdpdGggdGhlbS4gKi9cbiAgZ2VuZU1hcE9wYWNpdHk6IG51bWJlcjtcbiAgLyoqXG4gICAqIERyYXcgY2VsbCBib3VuZGFyaWVzIChmb3IgYSBkYXRhc2V0IHdpdGggYHBvbHlnb25UaWxlc2Agb3IgYHBvbHlnb25zYCkuXG4gICAqXG4gICAqIE91dGxpbmVzIGFyZSBsZXZlbC1vZi1kZXRhaWw6IGNvYXJzZSByaW5ncyB3aGVuIHpvb21lZCBvdXQsIGV2ZXJ5IHZlcnRleCBhdCB0aGVcbiAgICogZmluZXN0IHpvb20sIGFuZCBub25lIGF0IGFsbCBvbmNlIGEgY2VsbCBpcyBhIGZldyBwaXhlbHMgd2lkZSDigJQgdGhlcmUgdGhlXG4gICAqIG9ic2VydmF0aW9uIG1hcmtlcnMgYWxyZWFkeSBkcmF3IGl0IGFzIGEgZG90LlxuICAgKlxuICAgKiBgbnVsbGAgKHRoZSBkZWZhdWx0KSBtZWFucyBhdXRvbWF0aWM6IG9uIGZvciBhbnkgZGF0YXNldCB0aGF0IGhhcyBvdXRsaW5lcywgc2luY2UgYVxuICAgKiBzZWdtZW50ZWQgY2VsbCBpcyBiZXR0ZXIgc2hvd24gYXMgaXRzIHNoYXBlIHRoYW4gYXMgYSBjaXJjbGUuIEEgYm9vbGVhbiBpcyB0aGVcbiAgICogdXNlcidzIGV4cGxpY2l0IGNob2ljZS5cbiAgICovXG4gIHNob3dDZWxsczogYm9vbGVhbiB8IG51bGw7XG4gIC8qKiBXaGljaCBib3VuZGFyeSBzZXQgKGBjZWxsYCwgYG51Y2xldXNgLCBvciBgYm90aGAg4oCUIGNlbGxzIGFzIHNldCBieVxuICAgKiAge0BsaW5rIGNlbGxEcmF3fSwgbnVjbGVpIG91dGxpbmVkIG92ZXIgdGhlbSk7IG51bGwgdGFrZXMgdGhlIGRhdGFzZXQncyBkZWZhdWx0LiAqL1xuICBjZWxsU2V0OiBzdHJpbmcgfCBudWxsO1xuICAvKipcbiAgICogV2hhdCBjb2xvdXJzIHRoZSBjZWxscyDigJQgWGVuaXVtIEV4cGxvcmVyJ3MgXCJDZWxsIENvbG9yXCI6IHRoZSBhY3RpdmUgZ3JvdXBcbiAgICogKHtAbGluayBjZWxsVHlwZUNvbHVtbn0pLCBvbmUgZ2VuZSdzIGV4cHJlc3Npb24gKHtAbGluayBjZWxsQ29sb3JHZW5lfSksIHRoZSBjZWxsJ3NcbiAgICogdHJhbnNjcmlwdCBkZW5zaXR5LCBvbmUgZmxhdCBjb2xvdXIsIG9yIGhvdyB0aGUgY2VsbCB3YXMgc2VnbWVudGVkLlxuICAgKi9cbiAgY2VsbENvbG9yTW9kZTogJ2dyb3VwJyB8ICdnZW5lJyB8ICd0cmFuc2NyaXB0RGVuc2l0eScgfCAnc2luZ2xlJyB8ICdzZWdtZW50YXRpb24nO1xuICBjZWxsQ29sb3JHZW5lOiBzdHJpbmcgfCBudWxsO1xuICAvKiogYCNycmdnYmJgIGZvciB7QGxpbmsgY2VsbENvbG9yTW9kZX0gYHNpbmdsZWAuICovXG4gIGNlbGxTaW5nbGVDb2xvcjogc3RyaW5nO1xuICAvKipcbiAgICogQ2F0ZWdvcmllcyBvZiB7QGxpbmsgY2VsbFR5cGVDb2x1bW59IHN3aXRjaGVkIG9mZiBpbiB0aGUgZ3JvdXBzIGxpc3Q6IHRoZWlyIGNlbGxzIGFyZVxuICAgKiBub3QgZHJhd24sIG5vciB0aGUgdHJhbnNjcmlwdHMgaW5zaWRlIHRoZW0uIENsZWFyZWQgd2hlbiB0aGUgZ3JvdXAgY29sdW1uIGNoYW5nZXMuXG4gICAqL1xuICBoaWRkZW5Hcm91cHM6IHN0cmluZ1tdO1xuICAvKiogRHJhdyB0aGUgdGlzc3VlIGltYWdlICh0aGUgSW1hZ2VzIHNlY3Rpb24ncyBzd2l0Y2gpLiAqL1xuICBzaG93SW1hZ2U6IGJvb2xlYW47XG4gIC8qKiBEcmF3IHRoZSBhbm5vdGF0aW9uIHJlZ2lvbnMgKHRoZSBBbm5vdGF0aW9ucyBzZWN0aW9uJ3Mgc3dpdGNoKS4gU2VsZWN0aW5nIGZyb20gdGhlbVxuICAgKiAgc3RpbGwgd29ya3Mgd2hpbGUgdGhleSBhcmUgaGlkZGVuLiAqL1xuICBzaG93QW5ub3RhdGlvbnM6IGJvb2xlYW47XG4gIC8qKiBGaWxsIHRoZSBjZWxscyB3aXRoIHRoZWlyIGNvbG91ciwgb3V0bGluZSB0aGVtLCBvciBib3RoLiAqL1xuICBjZWxsRHJhdzogJ2ZpbGwnIHwgJ291dGxpbmUnIHwgJ2JvdGgnO1xuICAvKiogT3BhY2l0eSBvZiB0aGUgY2VsbCBmaWxsIChvdXRsaW5lcyBkcmF3IG9wYXF1ZSkuICovXG4gIGNlbGxPcGFjaXR5OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgY2F0ZWdvcmljYWwgY29sdW1uIHRoYXQgc2F5cyB3aGF0IFRZUEUgZWFjaCBjZWxsIGlzOiBpdCBjb2xvdXJzIHRoZSBjZWxsc1xuICAgKiB3aGVuZXZlciBub3RoaW5nIGVsc2UgaXMgY2hvc2VuLCBhbmQgaXQgY29sb3VycyBldmVyeSB0cmFuc2NyaXB0IGJ5IHRoZSBjZWxsIGl0XG4gICAqIGZhbGxzIGluLiBOdWxsIHBpY2tzIHRoZSBkYXRhc2V0J3MgZmlyc3QgY2F0ZWdvcmljYWwgY29sdW1uLiBTd2FwcGluZyBiZXR3ZWVuIGFcbiAgICogcGlwZWxpbmUncyBjbHVzdGVyaW5nIGFuZCBhIGN1cmF0ZWQgYW5ub3RhdGlvbiBpcyBzd2FwcGluZyB0aGlzLlxuICAgKi9cbiAgY2VsbFR5cGVDb2x1bW46IHN0cmluZyB8IG51bGw7XG4gIC8qKiBHZW5lcyB3aG9zZSB0cmFuc2NyaXB0cyBhcmUgZHJhd24uICovXG4gIHRyYW5zY3JpcHRHZW5lczogc3RyaW5nW107XG4gIC8qKiBTZWxlY3RlZCBnZW5lcyBzd2l0Y2hlZCBvZmYgd2l0aCB0aGVpciBleWUgdG9nZ2xlIOKAlCBrZXB0IGluIHRoZSBsaXN0LCBub3QgZHJhd24uICovXG4gIHRyYW5zY3JpcHRIaWRkZW5HZW5lczogc3RyaW5nW107XG4gIC8qKiBQZXItZ2VuZSBtYXJrZXIgY29sb3VyIChgI3JyZ2diYmApOyBnZW5lcyBub3QgbGlzdGVkIHRha2UgdGhlIHBhbGV0dGUgYnkgcG9zaXRpb24uICovXG4gIHRyYW5zY3JpcHRHZW5lQ29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogTmFtZWQgZ2VuZSBncm91cHMgKGUuZy4gbWFya2VyIGdlbmVzIHBlciBjZWxsIHR5cGUpIGZvciB0aGUgc2VsZWN0ZWQtZ2VuZXMgdHJlZS4gKi9cbiAgdHJhbnNjcmlwdEdlbmVHcm91cHM6IHsgbmFtZTogc3RyaW5nOyBnZW5lczogc3RyaW5nW10gfVtdO1xuICAvKipcbiAgICogRHJhdyBFVkVSWSBnZW5lJ3MgdHJhbnNjcmlwdHMgaW5zdGVhZCBvZiB7QGxpbmsgdHJhbnNjcmlwdEdlbmVzfTogZ3JvdXBlZCBpbnRvIGJpbnNcbiAgICogc2l6ZWQgYnkgaG93IG1hbnkgdHJhbnNjcmlwdHMgdGhleSBob2xkLCBmaW5lciBhcyB0aGUgY2FtZXJhIHpvb21zIGluLCBkb3duIHRvIG9uZVxuICAgKiBtYXJrZXIgcGVyIHRyYW5zY3JpcHQgb25jZSB0aG9zZSBmaXQge0BsaW5rIHRyYW5zY3JpcHRCdWRnZXR9LlxuICAgKi9cbiAgdHJhbnNjcmlwdEFsbEdlbmVzOiBib29sZWFuO1xuICAvKipcbiAgICogTW9zdCB0cmFuc2NyaXB0IG1hcmtlcnMgZHJhd24gYXQgb25jZS4gVGhlIGxldmVsIG9mIGRldGFpbCBpcyBjaG9zZW4gdG8gc3RheSB1bmRlciBpdCxcbiAgICogd2hpY2ggaXMgd2hhdCBrZWVwcyBwYW4gYW5kIHpvb20gcmVzcG9uc2l2ZSBob3dldmVyIGRlbnNlIHRoZSBkYXRhIGlzLlxuICAgKi9cbiAgdHJhbnNjcmlwdEJ1ZGdldDogbnVtYmVyO1xuICAvKipcbiAgICogSG93IHRyYW5zY3JpcHRzIGFyZSBkcmF3bjogYGNpcmNsZXNgIHNpemVkIGJ5IGhvdyBtYW55IHRyYW5zY3JpcHRzIGVhY2ggc3RhbmRzIGZvcixcbiAgICogYGdseXBoc2AgKG9uZSBpY29uIHNoYXBlIHBlciBnZW5lKSwgb3IgYSBgZGVuc2l0eWAgcmFzdGVyLiBDaXJjbGVzIGFuZCBnbHlwaHMgYXJlXG4gICAqIGxldmVsLW9mLWRldGFpbCDigJQgYWdncmVnYXRlZCB3aGVuIHpvb21lZCBvdXQsIG9uZSBwZXIgdHJhbnNjcmlwdCBhdCB0aGUgZmluZXN0IHpvb20uXG4gICAqL1xuICB0cmFuc2NyaXB0TW9kZTogJ29mZicgfCAnY2lyY2xlcycgfCAnZ2x5cGhzJyB8ICdkZW5zaXR5JztcbiAgLyoqIENvbG91ciB0cmFuc2NyaXB0cyBieSB0aGUgdHlwZSBvZiB0aGUgY2VsbCB0aGV5IGZhbGwgaW4sIGJ5IGdlbmUsIG9yIGJ5IHRoZSBnZW5lLXRyZWVcbiAgICogIGNsdXN0ZXIgdGhlaXIgZ2VuZSBpcyBpbiAoaW4gdGhlIGNvbG91ciB0aGF0IGNsdXN0ZXIncyBjZWxscyBoYXZlLCB3aGVuIGEgY2VsbCBncm91cGluZ1xuICAgKiAgbmFtZXMgaXQpLiAqL1xuICB0cmFuc2NyaXB0Q29sb3JCeTogJ2NlbGxUeXBlJyB8ICdnZW5lJyB8ICdjbHVzdGVyJztcbiAgLyoqIEdseXBoIHBlciBnZW5lIGZvciBgZ2x5cGhzYCBtb2RlOyBnZW5lcyBub3QgbGlzdGVkIHRha2Ugb25lIGJ5IHBvc2l0aW9uLiAqL1xuICB0cmFuc2NyaXB0R2x5cGhzOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2NyaXB0R2x5cGhOYW1lPjtcbiAgLyoqIE11bHRpcGxpZXIgb24gdHJhbnNjcmlwdCBtYXJrZXIgc2l6ZS4gKi9cbiAgdHJhbnNjcmlwdFNjYWxlOiBudW1iZXI7XG4gIHRyYW5zY3JpcHRPcGFjaXR5OiBudW1iZXI7XG4gIC8qKiBgaGlnaGAga2VlcHMgb25seSBjb25maWRlbnRseSBkZWNvZGVkIHRyYW5zY3JpcHRzLiAqL1xuICB0cmFuc2NyaXB0UXVhbGl0eTogJ2hpZ2gnIHwgJ2FsbCc7XG4gIC8qKiBPcGFjaXR5IG9mIHRoZSB0cmFuc2NyaXB0IGRlbnNpdHkgcmFzdGVyLiAqL1xuICBkZW5zaXR5T3BhY2l0eTogbnVtYmVyO1xuICAvKiogRGVuc2l0eSBiaW4gZWRnZSBpbiBvYnNlcnZhdGlvbiB1bml0cyAowrVtKTogMTAsIDIwLCA0MCBvciA4MC4gKi9cbiAgZGVuc2l0eUJpbjogbnVtYmVyO1xuICAvKiogQ29sb3VyIHdpbmRvdyBpbiB0cmFuc2NyaXB0cyBwZXIgdW5pdMKyICjCtW3Csik7IG51bGwgZGVyaXZlcyBpdCBmcm9tIHRoZSBkYXRhLiAqL1xuICBkZW5zaXR5UmFuZ2U6IFtudW1iZXIsIG51bWJlcl0gfCBudWxsO1xuICAvKiogQ29sb3JtYXAgZm9yIHRoZSBkZW5zaXR5IGJpbnM7IG51bGwgdXNlcyBJbmZlcm5vLiAqL1xuICBkZW5zaXR5Q29sb3JtYXA6IENvbG9ybWFwVmFsdWUgfCBudWxsO1xufVxuXG4vKiogVHJhbnNjcmlwdCBnbHlwaCBuYW1lcyDigJQgc2VlIGBUUkFOU0NSSVBUX0dMWVBIU2AgaW4gYHNwYXRpYWwvc3BhdGlhbC10aWxlcy50c2AuICovXG5leHBvcnQgdHlwZSBUcmFuc2NyaXB0R2x5cGhOYW1lID1cbiAgfCAnY2lyY2xlJyB8ICdzdGFyJyB8ICd0cmlhbmdsZScgfCAnc3F1YXJlJyB8ICdkaWFtb25kJyB8ICdjcm9zcycgfCAnaGV4YWdvbidcbiAgfCAndHJpYW5nbGUtZG93bicgfCAncGVudGFnb24nIHwgJ3gnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9TUEFUSUFMX1ZJRVc6IFNwYXRpYWxWaWV3U3RhdGUgPSB7XG4gIGNvbG9yQnk6IG51bGwsXG4gIHBvaW50U2NhbGU6IDEsXG4gIG9wYWNpdHk6IDEsXG4gIGxvZ1NjYWxlOiBmYWxzZSxcbiAgcGVyY2VudGlsZUNsaXA6IFswLjAxLCAwLjk5XSxcbiAgY29udGludW91c0NvbG9ybWFwOiBudWxsLFxuICBzaG93Vm9sdW1lOiB0cnVlLFxuICB2b2x1bWVPcGFjaXR5OiAwLjUsXG4gIHNob3dQb2ludHM6IHRydWUsXG4gIHBvaW50U2VjdGlvbjogbnVsbCxcbiAgZGVuc2l0eVZvbHVtZTogZmFsc2UsXG4gIGRlbnNpdHlTbW9vdGhpbmc6IDEsXG4gIGdlbmVNYXA6IGZhbHNlLFxuICBnZW5lTWFwU2VjdGlvbjogbnVsbCxcbiAgZ2VuZU1hcFZvbHVtZTogZmFsc2UsXG4gIGdlbmVNYXBTbW9vdGhpbmc6IDEsXG4gIGdlbmVNYXBPcGFjaXR5OiAwLjg1LFxuICBzaG93Q2VsbHM6IG51bGwsXG4gIGNlbGxTZXQ6IG51bGwsXG4gIGNlbGxEcmF3OiAnZmlsbCcsXG4gIGNlbGxPcGFjaXR5OiAwLjU1LFxuICBjZWxsVHlwZUNvbHVtbjogbnVsbCxcbiAgdHJhbnNjcmlwdEdlbmVzOiBbXSxcbiAgdHJhbnNjcmlwdEhpZGRlbkdlbmVzOiBbXSxcbiAgdHJhbnNjcmlwdEdlbmVDb2xvcnM6IHt9LFxuICB0cmFuc2NyaXB0R2VuZUdyb3VwczogW10sXG4gIHRyYW5zY3JpcHRBbGxHZW5lczogZmFsc2UsXG4gIHRyYW5zY3JpcHRCdWRnZXQ6IDEwMF8wMDAsXG4gIHRyYW5zY3JpcHRNb2RlOiAnb2ZmJyxcbiAgdHJhbnNjcmlwdENvbG9yQnk6ICdjZWxsVHlwZScsXG4gIHRyYW5zY3JpcHRHbHlwaHM6IHt9LFxuICB0cmFuc2NyaXB0U2NhbGU6IDEsXG4gIHRyYW5zY3JpcHRPcGFjaXR5OiAwLjksXG4gIHRyYW5zY3JpcHRRdWFsaXR5OiAnaGlnaCcsXG4gIGRlbnNpdHlPcGFjaXR5OiAwLjgsXG4gIGRlbnNpdHlCaW46IDEwLFxuICBkZW5zaXR5UmFuZ2U6IG51bGwsXG4gIGRlbnNpdHlDb2xvcm1hcDogbnVsbCxcbiAgY2VsbENvbG9yTW9kZTogJ2dyb3VwJyxcbiAgY2VsbENvbG9yR2VuZTogbnVsbCxcbiAgY2VsbFNpbmdsZUNvbG9yOiAnIzRmYzNmNycsXG4gIGhpZGRlbkdyb3VwczogW10sXG4gIHNob3dJbWFnZTogdHJ1ZSxcbiAgc2hvd0Fubm90YXRpb25zOiB0cnVlLFxufTtcbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL2Rpc3BsYXktdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUE4REgsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBNEIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFFbEgsNENBQTRDO0FBQzVDLE1BQU0sVUFBVSxjQUFjLENBQUMsRUFBNkI7SUFDMUQsT0FBUSxlQUFxQyxDQUFDLFFBQVEsQ0FBQyxFQUFZLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBdU9EOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFxQjtJQUNwRCxPQUFPLEVBQUUsSUFBSTtJQUNiLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLENBQUM7SUFDVixRQUFRLEVBQUUsS0FBSztJQUNmLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7SUFDNUIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixVQUFVLEVBQUUsSUFBSTtJQUNoQixhQUFhLEVBQUUsR0FBRztJQUNsQixVQUFVLEVBQUUsSUFBSTtJQUNoQixZQUFZLEVBQUUsSUFBSTtJQUNsQixhQUFhLEVBQUUsS0FBSztJQUNwQixnQkFBZ0IsRUFBRSxDQUFDO0lBQ25CLE9BQU8sRUFBRSxLQUFLO0lBQ2QsY0FBYyxFQUFFLElBQUk7SUFDcEIsYUFBYSxFQUFFLEtBQUs7SUFDcEIsZ0JBQWdCLEVBQUUsQ0FBQztJQUNuQixjQUFjLEVBQUUsSUFBSTtJQUNwQixTQUFTLEVBQUUsSUFBSTtJQUNmLE9BQU8sRUFBRSxJQUFJO0lBQ2IsUUFBUSxFQUFFLE1BQU07SUFDaEIsV0FBVyxFQUFFLElBQUk7SUFDakIsY0FBYyxFQUFFLElBQUk7SUFDcEIsZUFBZSxFQUFFLEVBQUU7SUFDbkIscUJBQXFCLEVBQUUsRUFBRTtJQUN6QixvQkFBb0IsRUFBRSxFQUFFO0lBQ3hCLG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsa0JBQWtCLEVBQUUsS0FBSztJQUN6QixnQkFBZ0IsRUFBRSxPQUFPO0lBQ3pCLGNBQWMsRUFBRSxLQUFLO0lBQ3JCLGlCQUFpQixFQUFFLFVBQVU7SUFDN0IsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQixlQUFlLEVBQUUsQ0FBQztJQUNsQixpQkFBaUIsRUFBRSxHQUFHO0lBQ3RCLGlCQUFpQixFQUFFLE1BQU07SUFDekIsY0FBYyxFQUFFLEdBQUc7SUFDbkIsVUFBVSxFQUFFLEVBQUU7SUFDZCxZQUFZLEVBQUUsSUFBSTtJQUNsQixlQUFlLEVBQUUsSUFBSTtJQUNyQixhQUFhLEVBQUUsT0FBTztJQUN0QixhQUFhLEVBQUUsSUFBSTtJQUNuQixlQUFlLEVBQUUsU0FBUztJQUMxQixZQUFZLEVBQUUsRUFBRTtJQUNoQixTQUFTLEVBQUUsSUFBSTtJQUNmLGVBQWUsRUFBRSxJQUFJO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpY2F0aW9uLWNyaXRpY2FsIHR5cGVzIHRoYXQgd2VyZSBgYW55YCBvbiB0aGUgcHVibGljIGNvbnRyYWN0c1xuICogKHJlZmFjdG9yaW5nIHBsYW4sIFN0ZXAgNikuIERlbGliZXJhdGVseSBwZXJtaXNzaXZlIOKAlCBldmVyeSBmaWVsZCBvcHRpb25hbCDigJRcbiAqIHNvIGV4aXN0aW5nIGhvc3RzICh3aGljaCBwYXNzIFByaW1lTkcgYFRyZWVOb2RlYHMgYW5kIHBsYWluIG9wdGlvbiBvYmplY3RzKVxuICoga2VlcCBjb21waWxpbmcgdW5jaGFuZ2VkIHdoaWxlIGNvbnN1bWVycyBmaW5hbGx5IGdldCBuYW1lZCBzaGFwZXMuXG4gKi9cblxuLyoqIEEgY29sb3JtYXAgdmFsdWUgYXMgUGxvdGx5IHVuZGVyc3RhbmRzIGl0OiBhIGJ1aWx0LWluIHNjYWxlIG5hbWUgKGUuZy5cbiAqICAnVmlyaWRpcycpIG9yIGFuIGlubGluZSBhcnJheSBvZiBgW3N0b3AsIGNvbG9yXWAgcGFpcnMuICovXG5leHBvcnQgdHlwZSBDb2xvcm1hcFZhbHVlID0gc3RyaW5nIHwgQXJyYXk8W251bWJlciwgc3RyaW5nXT47XG5cbi8qKiBPbmUgbm9kZSBvZiB0aGUgY29sb3JtYXAgc2VsZWN0b3IgdHJlZSAoc3RydWN0dXJhbGx5IGNvbXBhdGlibGUgd2l0aCB0aGVcbiAqICBQcmltZU5HIGBUcmVlTm9kZWBzIHRoZSBob3N0IHBhc3Nlcyk6IGdyb3VwIG5vZGVzIGNhcnJ5IGBjaGlsZHJlbmAsIGxlYWZcbiAqICBub2RlcyBjYXJyeSB0aGUgc2NhbGUgaW4gYGRhdGEudmFsdWVgICgrIGEgcHJldmlldyBpbWFnZSBpbiBgZGF0YS5zcmNgKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sb3JtYXBOb2RlIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGRhdGE/OiB7IHZhbHVlPzogQ29sb3JtYXBWYWx1ZTsgc3JjPzogc3RyaW5nIH07XG4gIGNoaWxkcmVuPzogQ29sb3JtYXBOb2RlW107XG59XG5cbi8qKiBNYWdpYy13YW5kIHBpeGVsLWNvbXBhcmlzb24gc3BhY2UuICovXG5leHBvcnQgdHlwZSBXYW5kVHlwZSA9ICdHUkFZJyB8ICdSR0InIHwgJ0xBQl9ESVNUQU5DRSc7XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgbWFnaWMtd2FuZCB0b29sIChRdVBhdGgtc3R5bGUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJV2FuZE9wdGlvbnMge1xuICB0eXBlPzogV2FuZFR5cGU7XG4gIC8qKiBHYXVzc2lhbiBzaWdtYSBhcHBsaWVkIHRvIHRoZSBwYXRjaCBiZWZvcmUgdGhyZXNob2xkaW5nLiAqL1xuICBzaWdtYT86IG51bWJlcjtcbiAgLyoqIEhpZ2hlciA9IHN0cmljdGVyIChzbWFsbGVyIHNlbGVjdGlvbikgZm9yIEdSQVkvUkdCOyBoaWdoZXIgPSBsb29zZXIgZm9yXG4gICAqICBMQUJfRElTVEFOQ0Ug4oCUIG1hdGNoZXMgUXVQYXRoLiAqL1xuICBzZW5zaXRpdml0eT86IG51bWJlcjtcbiAgLyoqIFNxdWFyZSBwYXRjaCBzaXplIGluIHBpeGVscyAobXVzdCBiZSBvZGQpLiAqL1xuICBwYXRjaFNpemU/OiBudW1iZXI7XG4gIC8qKiBXaGVuIHRydWUsIHNraXAgYmx1ci90aHJlc2hvbGQgYW5kIGZsb29kLWZpbGwgYXQgZXhhY3QtbWF0Y2hcbiAgICogIChDbWQvQ3RybC1jbGljayBpbiBRdVBhdGgpLiAqL1xuICBzaW1wbGVNb2RlPzogYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSBicnVzaCByZWdpb24gdG9vbCAoUXVQYXRoLXN0eWxlKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUJydXNoT3B0aW9ucyB7XG4gIC8qKiBCcnVzaCBkaWFtZXRlciBpbiBtYXRyaXggKGltYWdlKSBwaXhlbHMuICovXG4gIHNpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBQYWludCBhcyBvbmUgY2xhc3M6IG5ldyByZWdpb25zIHRha2UgdGhpcyBsYWJlbCwgYW5kIGEgc3Ryb2tlIG9ubHkgZXh0ZW5kc1xuICAgKiBvciBtZXJnZXMgcmVnaW9ucyB3aXRoIHRoZSBzYW1lIGxhYmVsLiBVbnNldCA9IHRoZSBwbGFpbiBicnVzaCAobGFiZWxcbiAgICogYCdSZWdpb24nYCwgZXh0ZW5kcyBhbnkgcmVnaW9uKS4gYHNldEJydXNoTW9kZSh0cnVlLCDigKYpYCBzZXRzIHRoZSBjbGFzcyBpblxuICAgKiBmdWxsOyBgc2V0QnJ1c2hPcHRpb25zYCBjaGFuZ2VzIGl0IG9ubHkgd2hlbiBgbGFiZWxgIG9yIGBjb2xvcmAgaXMgcGFzc2VkLFxuICAgKiBzbyBhIHNpemUtb25seSB1cGRhdGUga2VlcHMgaXQuXG4gICAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqIENvbG91ciBmb3IgdGhlIHBhaW50ZWQgcmVnaW9ucyBpbnN0ZWFkIG9mIHRoZSBzaGFwZSBjb2xvdXIuIEtlcHQgYWdhaW5zdCBwcmVzZXQgcmUtYXBwbHkuICovXG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHZlcnRleCBlcmFzZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIElWZXJ0ZXhFcmFzZXJPcHRpb25zIHtcbiAgLyoqIEVyYXNlciByYWRpdXMgaW4gbWF0cml4IChpbWFnZSkgcGl4ZWxzLiAqL1xuICByYWRpdXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIG9uLWNhbnZhcyB0b29scyBgSVRvb2xDb250cm9sbGVyLnNldEFjdGl2ZVRvb2xgIGFybXM6IG1hZ2ljIHdhbmQsIGJydXNoLFxuICogdmVydGV4IGVyYXNlciwgYm94IHpvb20gYW5kIFNBTSBwb2ludCBwcm9tcHRzLiBBbnkgb3RoZXIgaWQgKGEgcmVnaW9uIGRyYXdcbiAqIG1vZGUgc3VjaCBhcyBgJ2RyYXdyZWN0J2AsIGAncGFuJ2ApIGFybXMgbm9uZSBvZiB0aGVtLlxuICovXG5leHBvcnQgdHlwZSBDYW52YXNUb29sSWQgPSAnd2FuZCcgfCAnYnJ1c2gnIHwgJ2VyYXNlVmVydGV4JyB8ICd6b29tVG9Cb3gnIHwgJ3NhbVBvaW50JztcblxuLyoqIEV2ZXJ5IHtAbGluayBDYW52YXNUb29sSWR9LiAqL1xuZXhwb3J0IGNvbnN0IENBTlZBU19UT09MX0lEUzogcmVhZG9ubHkgQ2FudmFzVG9vbElkW10gPSBbJ3dhbmQnLCAnYnJ1c2gnLCAnZXJhc2VWZXJ0ZXgnLCAnem9vbVRvQm94JywgJ3NhbVBvaW50J107XG5cbi8qKiBXaGV0aGVyIGBpZGAgbmFtZXMgYW4gb24tY2FudmFzIHRvb2wuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDYW52YXNUb29sSWQoaWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBpZCBpcyBDYW52YXNUb29sSWQge1xuICByZXR1cm4gKENBTlZBU19UT09MX0lEUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMoaWQgYXMgc3RyaW5nKTtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHtAbGluayBDYW52YXNUb29sSWR9IHRvb2xzOiB0aGUgd2FuZCdzLCB0aGUgYnJ1c2gncyBvciB0aGUgZXJhc2VyJ3MuICovXG5leHBvcnQgdHlwZSBDYW52YXNUb29sT3B0aW9ucyA9IElXYW5kT3B0aW9ucyB8IElCcnVzaE9wdGlvbnMgfCBJVmVydGV4RXJhc2VyT3B0aW9ucztcblxuLyoqIFdoYXQgZHJpdmVzIHBvaW50IGNvbG91ciBpbiB0aGUgc3BhdGlhbC1vbWljcyBtb2RlOiBhbiBhbm5vdGF0aW9uIGNvbHVtblxuICogIGZyb20gdGhlIGRhdGFzZXQsIG9yIG9uZSBmZWF0dXJlIChnZW5lKSB2ZWN0b3IgZmV0Y2hlZCBvbiBkZW1hbmQuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXRpYWxDb2xvckJ5IHtcbiAga2luZDogJ2NvbHVtbicgfCAnZmVhdHVyZSc7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuLyoqIERpc3BsYXkgc3RhdGUgZm9yIHRoZSBzcGF0aWFsLW9taWNzIHBsb3QgbW9kZS4gTGl2ZXMgaW4gYFZpc3VhbGl6ZXJTdG9yZWBcbiAqICBhbG9uZ3NpZGUgdGhlIGNvbG9ybWFwL2NoYW5uZWwgc3RhdGUgc28gdGhlIHJlbmRlcmVyIHJlYWN0cyB0byBlZGl0cyB0aGVcbiAqICBzYW1lIHdheSBpdCBkb2VzIGZvciBhbiBpbWFnZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhdGlhbFZpZXdTdGF0ZSB7XG4gIC8qKiBDb2xvdXIgc291cmNlOyBgbnVsbGAgcmVuZGVycyBldmVyeSBvYnNlcnZhdGlvbiBpbiBvbmUgbmV1dHJhbCBjb2xvdXJcbiAgICogICh1c2VmdWwgb24gaXRzIG93biDigJQgaXQgc2hvd3Mgd2hlcmUgdGhlIHRpc3N1ZSBhY3R1YWxseSBpcykuICovXG4gIGNvbG9yQnk6IFNwYXRpYWxDb2xvckJ5IHwgbnVsbDtcbiAgLyoqIE11bHRpcGxpZXIgb24gdGhlIGRhdGFzZXQncyBwaHlzaWNhbCBtYXJrZXIgc2l6ZS4gMSA9IHRydWUgc2l6ZSwgd2hpY2ggZm9yXG4gICAqICBhIDU1IMK1bSBWaXNpdW0gc3BvdCBpcyBjb3JyZWN0IGJ1dCBjYW4gYmUgaW52aXNpYmxlIHdoZW4gem9vbWVkIG91dC4gKi9cbiAgcG9pbnRTY2FsZTogbnVtYmVyO1xuICAvKiogQWxwaGEgZm9yIHBvaW50cyB0aGF0IGFyZSBub3QgbXV0ZWQuICovXG4gIG9wYWNpdHk6IG51bWJlcjtcbiAgLyoqIExvZy1zY2FsZSBjb250aW51b3VzIHZhbHVlcyBiZWZvcmUgbWFwcGluZyB0aGVtIG9udG8gdGhlIGNvbG9ybWFwLiBTZWVkZWRcbiAgICogIGZyb20gdGhlIGNvbHVtbidzIGBsb2dTY2FsZUhpbnRgIOKAlCBjb3VudCBkYXRhIG5lZWRzIGl0LiAqL1xuICBsb2dTY2FsZTogYm9vbGVhbjtcbiAgLyoqIFBlcmNlbnRpbGUgY2xpcCBmb3IgdGhlIGNvbnRyYXN0IHdpbmRvdyBhcyBgW2xvLCBoaV1gIGZyYWN0aW9ucywgc28gYVxuICAgKiAgaGFuZGZ1bCBvZiBzYXR1cmF0ZWQgb2JzZXJ2YXRpb25zIGRvbid0IGZsYXR0ZW4gdGhlIHJlc3QuICovXG4gIHBlcmNlbnRpbGVDbGlwOiBbbnVtYmVyLCBudW1iZXJdO1xuICAvKipcbiAgICogQ29sb3JtYXAgZm9yIENPTlRJTlVPVVMgc3BhdGlhbCBjb2xvdXJpbmcg4oCUIGEgZ2VuZSwgYSBudW1lcmljIGNvbHVtbiDigJQgYXMgYVxuICAgKiB7QGxpbmsgQ29sb3JtYXBWYWx1ZX0sIHRoZSBzYW1lIHNoYXBlIHRoZSBkaXNwbGF5IGNvbG9ybWFwIGNhcnJpZXM6IGEgc2NhbGVcbiAgICogTkFNRSBmb3IgdGhlIGJ1aWx0LWlucywgb3IgYW4gaW5saW5lIGBbc3RvcCwgY29sb3VyXWAgYXJyYXkgZm9yIHRoZSByZXN0LlxuICAgKiBOdWxsIGZvbGxvd3MgdGhlIGRpc3BsYXkgY29sb3JtYXAuXG4gICAqXG4gICAqIEl0cyBvd24gc2V0dGluZyBiZWNhdXNlIHRoZSBkaXNwbGF5IGNvbG9ybWFwIGJlbG9uZ3MgdG8gdGhlIHRpc3N1ZSBpbWFnZSBhbmRcbiAgICogaXMgdXN1YWxseSBhIGdyZXkgcmFtcCwgd2hpY2ggaXMgdGhlIHdyb25nIHRoaW5nIHRvIHJlYWQgYSBtZWFzdXJlbWVudFxuICAgKiB0aHJvdWdoOiBncmV5IG92ZXIgZ3JleSBjYW5ub3QgYmUgdG9sZCBhcGFydCBmcm9tIHRoZSBhbmF0b215LiBGb2xsb3dpbmcgaXRcbiAgICogKHdpdGggYSBWaXJpZGlzIGZhbGxiYWNrIGZvciBleGFjdGx5IHRoYXQgY2FzZSkgaXMgYSByZWFzb25hYmxlIGRlZmF1bHQgYW5kIGFcbiAgICogcG9vciBjZWlsaW5nLCBzaW5jZSB3aGljaCBncmFkaWVudCByZWFkcyBiZXN0IGlzIGEganVkZ2VtZW50IGFib3V0IHRoZSBkYXRhLlxuICAgKlxuICAgKiBPbmUgc2V0dGluZyBmb3IgdGhlIG1hcmtlcnMsIHRoZSAyRCBnZW5lIG1hcCBhbmQgdGhlIDNEIGdlbmUgbWFwIHRvZ2V0aGVyLCBzb1xuICAgKiB0aGUgZmllbGQgdW5kZXIgdGhlIGNlbGxzIGFuZCB0aGUgY2VsbHMgb3ZlciBpdCBjYW5ub3QgZGlzYWdyZWUgYWJvdXQgd2hhdCBhXG4gICAqIGNvbG91ciBtZWFucyDigJQgYW5kIHRoZSBwYW5lbCdzIG93biBjb2xvdXIgYmFyIGlzIGJ1aWx0IGZyb20gaXQgdG9vLlxuICAgKi9cbiAgY29udGludW91c0NvbG9ybWFwOiBDb2xvcm1hcFZhbHVlIHwgbnVsbDtcbiAgLyoqXG4gICAqIFdoYXQgdGhlIDNEIHNjZW5lIGRyYXdzLiBUaGUgdGhyZWUgdGhpbmdzIGluIGl0IOKAlCB0aGUgcmVmZXJlbmNlIHZvbHVtZSwgdGhlXG4gICAqIG9ic2VydmF0aW9uIGNsb3VkIGFuZCB0aGUgY2x1c3RlciBkZW5zaXR5IHZvbHVtZXMg4oCUIG9jY3VweSB0aGUgc2FtZSBzcGFjZSwgc29cbiAgICogYW55IHR3byBvZiB0aGVtIGhpZGUgZWFjaCBvdGhlciB0byBzb21lIGRlZ3JlZS4gVGhlc2UgYXJlIGluZGVwZW5kZW50IGJlY2F1c2VcbiAgICogdGhlIHVzZWZ1bCB2aWV3cyBhcmUgdGhlIGNvbWJpbmF0aW9uczogdGhlIHZvbHVtZXMgYWxvbmUgdG8gcmVhZCBhbiBlc3RpbWF0ZWRcbiAgICogZGlzdHJpYnV0aW9uLCBvbmUgc2VjdGlvbidzIGNlbGxzIG92ZXIgdGhlbSB0byBjaGVjayB0aGF0IGVzdGltYXRlIGFnYWluc3QgdGhlXG4gICAqIG1lYXN1cmVtZW50LCB0aGUgYW5hdG9teSBhbG9uZSB0byBmaW5kIGEgbGFuZG1hcmsuXG4gICAqXG4gICAqIFZpc2liaWxpdHkgb25seSDigJQgdGhlIGxheWVycyBzdGF5IGJ1aWx0LCBzbyB0b2dnbGluZyBvbmUgYmFjayBvbiBpcyBpbW1lZGlhdGVcbiAgICogYW5kIGRvZXMgbm90IHJlLXJ1biBhIHJhc3RlcmlzYXRpb24uIHtAbGluayBkZW5zaXR5Vm9sdW1lfSBpcyB0aGUgZXhjZXB0aW9uIGFuZFxuICAgKiBnZW51aW5lbHkgZ2F0ZXMgY29uc3RydWN0aW9uLCBiZWNhdXNlIGJ1aWxkaW5nIHNpeCB2b2x1bWVzIGlzIG5vdCBmcmVlLlxuICAgKi9cbiAgc2hvd1ZvbHVtZTogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSByZWZlcmVuY2Ugdm9sdW1lJ3Mgb3BhY2l0eS5cbiAgICpcbiAgICogSXRzIG93biwgbm90IHtAbGluayBvcGFjaXR5fSAod2hpY2ggYmVsb25ncyB0byB0aGUgbWFya2Vycyk6IHRoZSB2b2x1bWUgaXMgYVxuICAgKiBCQUNLRFJPUCwgYW5kIHJlYWRpbmcgdGhlIGNsb3VkIG9yIGEgZGVuc2l0eSBmaWVsZCB0aHJvdWdoIGl0IG1lYW5zIHR1cm5pbmdcbiAgICogdGhlIGFuYXRvbXkgZG93biB3aXRob3V0IHRvdWNoaW5nIHRoZSBkYXRhIGRyYXduIG92ZXIgaXQuIFJhbmdlcyBsb3dlciB0aGFuXG4gICAqIHRoZSBtYXJrZXJzJyBzbGlkZXIgZm9yIHRoZSBzYW1lIHJlYXNvbiDigJQgYSBmYWludCBhbmF0b21pY2FsIGhpbnQgaXMgYSB1c2VmdWxcbiAgICogc2V0dGluZyBmb3IgYSBiYWNrZHJvcCBhbmQgYSB1c2VsZXNzIG9uZSBmb3IgdGhlIG1lYXN1cmVtZW50LlxuICAgKi9cbiAgdm9sdW1lT3BhY2l0eTogbnVtYmVyO1xuICAvKiogRHJhdyB0aGUgb2JzZXJ2YXRpb24gbWFya2VycyDigJQgdGhlIDNEIGNsb3VkLCBvciB0aGUgMkQgY2lyY2xlcy4gSW4gMkQgdGhleSBhbHNvXG4gICAqICBzdGFuZCBpbiBmb3IgY2VsbHMgdG9vIHNtYWxsIG9uIHNjcmVlbiB0byBvdXRsaW5lLiAqL1xuICBzaG93UG9pbnRzOiBib29sZWFuO1xuICAvKipcbiAgICogUmVzdHJpY3QgdGhlIGNsb3VkIHRvIE9ORSBpbWFnZWQgc2VjdGlvbiwgYnkgaW5kZXggaW50byB0aGUgZGF0YXNldCdzIHNhbXBsZWRcbiAgICogc2VjdGlvbnM7IG51bGwgZHJhd3MgZXZlcnkgc2VjdGlvbi5cbiAgICpcbiAgICogVGhlIHdob2xlIGNsb3VkIGlzIGEgc3RhY2sgb2YgZGlzY3MgdGhhdCBoaWRlcyB3aGF0ZXZlciBpcyBkcmF3biBiZXR3ZWVuIHRoZW0uXG4gICAqIE9uZSBzZWN0aW9uIGF0IGEgdGltZSBpcyB0aGUgdmlldyB0aGF0IGFuc3dlcnMgXCJkb2VzIHRoZSBlc3RpbWF0ZWQgZmllbGRcbiAgICogYWN0dWFsbHkgZm9sbG93IHRoZSBjZWxscyBJIG1lYXN1cmVkXCIg4oCUIGFuZCBpdCBpcyBvbmx5IG9mZmVyZWQgZm9yIGRhdGEgdGhhdFxuICAgKiByZWFsbHkgaXMgc2VjdGlvbmVkIChzZWUgYHNhbXBsZWRTZWN0aW9uc2ApLlxuICAgKi9cbiAgcG9pbnRTZWN0aW9uOiBudW1iZXIgfCBudWxsO1xuICAvKipcbiAgICogRHJhdyBlYWNoIGNsdXN0ZXIgYXMgYSB0cmFuc2x1Y2VudCBERU5TSVRZIHZvbHVtZSBhbG9uZ3NpZGUgdGhlIDNEIGNsb3VkLlxuICAgKlxuICAgKiBTZXJpYWwgc2VjdGlvbnMgaHVuZHJlZHMgb2YgbWljcm9ucyBhcGFydCBtYWtlIGEgY2xvdWQgaGFyZCB0byByZWFkIGFzIGFuXG4gICAqIGFuYXRvbWljYWwgZGlzdHJpYnV0aW9uIOKAlCB0aGUgZXllIGNhbm5vdCBpbnRlZ3JhdGUgZGlzY3MgaW50byBhIHNoYXBlLiBBXG4gICAqIGRlbnNpdHkgZmllbGQgY2FuIGJlIGVzdGltYXRlZCBiZXR3ZWVuIHRoZSBpbWFnZWQgcGxhbmVzIChhIGNvbnRpbnVvdXNcbiAgICogZXN0aW1hdGUsIHVubGlrZSBpbmRpdmlkdWFsIGNlbGxzLCB3aGljaCBoYXZlIG5vIGNvcnJlc3BvbmRlbmNlIHRvXG4gICAqIGludGVycG9sYXRlIGFsb25nKSBhbmQgcmVuZGVycyBhcyBhIGNsb3VkIHRoYXQgcmVhZHMgYXMgYW4gZXN0aW1hdGUuXG4gICAqL1xuICBkZW5zaXR5Vm9sdW1lOiBib29sZWFuO1xuICAvKiogTXVsdGlwbGllciBvbiB0aGUgZGVmYXVsdCBrZXJuZWwgYmFuZHdpZHRoLiBBYm92ZSAxIGlzIHNtb290aGVyIGFuZCBsZXNzXG4gICAqICBjb21taXR0YWw7IGJlbG93IDEgZXhwb3NlcyB0aGUgaW5kaXZpZHVhbCBzZWN0aW9ucy4gKi9cbiAgZGVuc2l0eVNtb290aGluZzogbnVtYmVyO1xuICAvKipcbiAgICogRHJhdyB0aGUgYWN0aXZlIEdFTkUgYXMgYSBjb250aW51b3VzIGZpZWxkIHVuZGVyIHRoZSBvYnNlcnZhdGlvbnMgKDJEKS5cbiAgICpcbiAgICogQ29sb3VyaW5nIHRoZSBtYXJrZXJzIGJ5IGEgZ2VuZSBzYXlzIHdoaWNoIGNlbGxzIGV4cHJlc3MgaXQ7IGl0IGNhbm5vdCBzYXlcbiAgICogd2hlcmUsIGJlY2F1c2UgdGhlIGV5ZSB3aWxsIG5vdCBpbnRlZ3JhdGUgdGhvdXNhbmRzIG9mIGRvdHMgaW50byBhIHRlcnJpdG9yeS5cbiAgICogVGhlIGZpZWxkIGlzIGFuIGVzdGltYXRlIOKAlCBhIGtlcm5lbC13ZWlnaHRlZCBtZWFuIHBlciBjZWxsLCB0cmFuc3BhcmVudCB3aGVyZVxuICAgKiBubyBjZWxsIHdhcyBtZWFzdXJlZCDigJQgYW5kIGl0IGlzIGRyYXduIGJlbmVhdGggdGhlIGNlbGxzLCBub3QgaW5zdGVhZCBvZiB0aGVtLFxuICAgKiBzbyB0aGUgbWVhc3VyZW1lbnQgc3RheXMgb24gc2NyZWVuIG5leHQgdG8gdGhlIGludGVycG9sYXRpb24uXG4gICAqXG4gICAqIElnbm9yZWQgdW5sZXNzIHRoZSBjb2xvdXIgc291cmNlIGlzIGEgZ2VuZTogdGhlcmUgaXMgbm90aGluZyBlbHNlIHRvIG1hcC5cbiAgICovXG4gIGdlbmVNYXA6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZXN0cmljdCB0aGUgM0QgZ2VuZSBtYXAgdG8gT05FIGltYWdlZCBzZWN0aW9uLCBieSBpbmRleCBpbnRvIHRoZSBkYXRhc2V0J3NcbiAgICogc2FtcGxlZCBzZWN0aW9uczsgbnVsbCBkcmF3cyBldmVyeSBzZWN0aW9uJ3Mgc2hlZXQuXG4gICAqXG4gICAqIFNlcGFyYXRlIGZyb20ge0BsaW5rIHBvaW50U2VjdGlvbn0gc28gdGhlIGNvbWJpbmF0aW9ucyBzdGF5IG9wZW46IGFsbCB0aGVcbiAgICogc2hlZXRzIHdpdGggb25lIHNlY3Rpb24ncyBjZWxscyBvdmVyIHRoZW0gaXMgYSB1c2VmdWwgdmlldywgYW5kIHNvIGlzIG9uZVxuICAgKiBzaGVldCBpbnNpZGUgdGhlIHdob2xlIGNsb3VkLiBJZ25vcmVkIHdoaWxlIHtAbGluayBnZW5lTWFwVm9sdW1lfSBpcyBzZXQg4oCUXG4gICAqIGludGVycG9sYXRpbmcgYSBzaW5nbGUgc2VjdGlvbiBhbG9uZyB6IHdvdWxkIHNtZWFyIG9uZSBzbGlkZSB0aHJvdWdoIHRoZVxuICAgKiBzcGVjaW1lbidzIHdob2xlIGRlcHRoIGFuZCBjYWxsIGl0IGFuIGVzdGltYXRlLlxuICAgKi9cbiAgZ2VuZU1hcFNlY3Rpb246IG51bWJlciB8IG51bGw7XG4gIC8qKlxuICAgKiBTbW9vdGggdGhlIHBlci1zZWN0aW9uIGdlbmUgbWFwcyBhbG9uZyB6IGludG8gYSBjb250aW51b3VzIFZPTFVNRSAoM0QpLlxuICAgKlxuICAgKiBUaGUgc2hlZXRzIGFyZSB3aGF0IHdhcyBtZWFzdXJlZCDigJQgb25lIGZpZWxkIHBlciBpbWFnZWQgc2xpZGUsIHdpdGggdGhlIGdhcHNcbiAgICogYmV0d2VlbiB0aGVtIGVtcHR5LiBUaGlzIHR1cm5zIHRoZW0gaW50byBhbiBlc3RpbWF0ZSBkZWZpbmVkIGJldHdlZW4gdGhlXG4gICAqIHNsaWRlcywgdGhlIHNhbWUgbW92ZSB0aGUgY2x1c3RlciBkZW5zaXR5IHZvbHVtZXMgbWFrZSBhbmQgd2l0aCB0aGUgc2FtZVxuICAgKiBjYXZlYXQ6IGEgZmllbGQgbWF5IGJlIGludGVycG9sYXRlZCBiZXR3ZWVuIHNlY3Rpb25zLCBpbmRpdmlkdWFsIGNlbGxzIG1heVxuICAgKiBub3QsIGFuZCB0aGUgcmVzdWx0IGlzIGRyYXduIGFzIGEgdHJhbnNsdWNlbnQgY2xvdWQgc28gaXQgY2Fubm90IGJlIG1pc3Rha2VuXG4gICAqIGZvciBtZWFzdXJlbWVudC5cbiAgICovXG4gIGdlbmVNYXBWb2x1bWU6IGJvb2xlYW47XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRoZSBnZW5lIG1hcCdzIGtlcm5lbCBiYW5kd2lkdGguICovXG4gIGdlbmVNYXBTbW9vdGhpbmc6IG51bWJlcjtcbiAgLyoqIFRoZSBnZW5lIG1hcCdzIG93biBvcGFjaXR5LiBTZXBhcmF0ZSBmcm9tIHtAbGluayBvcGFjaXR5fSwgd2hpY2ggYmVsb25ncyB0b1xuICAgKiAgdGhlIG1hcmtlcnM6IHR1cm5pbmcgdGhlIGNlbGxzIGRvd24gdG8gcmVhZCB0aGUgZmllbGQgdW5kZXJuZWF0aCBtdXN0IG5vdFxuICAgKiAgdHVybiB0aGUgZmllbGQgZG93biB3aXRoIHRoZW0uICovXG4gIGdlbmVNYXBPcGFjaXR5OiBudW1iZXI7XG4gIC8qKlxuICAgKiBEcmF3IGNlbGwgYm91bmRhcmllcyAoZm9yIGEgZGF0YXNldCB3aXRoIGBwb2x5Z29uVGlsZXNgIG9yIGBwb2x5Z29uc2ApLlxuICAgKlxuICAgKiBPdXRsaW5lcyBhcmUgbGV2ZWwtb2YtZGV0YWlsOiBjb2Fyc2UgcmluZ3Mgd2hlbiB6b29tZWQgb3V0LCBldmVyeSB2ZXJ0ZXggYXQgdGhlXG4gICAqIGZpbmVzdCB6b29tLCBhbmQgbm9uZSBhdCBhbGwgb25jZSBhIGNlbGwgaXMgYSBmZXcgcGl4ZWxzIHdpZGUg4oCUIHRoZXJlIHRoZVxuICAgKiBvYnNlcnZhdGlvbiBtYXJrZXJzIGFscmVhZHkgZHJhdyBpdCBhcyBhIGRvdC5cbiAgICpcbiAgICogYG51bGxgICh0aGUgZGVmYXVsdCkgbWVhbnMgYXV0b21hdGljOiBvbiBmb3IgYW55IGRhdGFzZXQgdGhhdCBoYXMgb3V0bGluZXMsIHNpbmNlIGFcbiAgICogc2VnbWVudGVkIGNlbGwgaXMgYmV0dGVyIHNob3duIGFzIGl0cyBzaGFwZSB0aGFuIGFzIGEgY2lyY2xlLiBBIGJvb2xlYW4gaXMgdGhlXG4gICAqIHVzZXIncyBleHBsaWNpdCBjaG9pY2UuXG4gICAqL1xuICBzaG93Q2VsbHM6IGJvb2xlYW4gfCBudWxsO1xuICAvKiogV2hpY2ggYm91bmRhcnkgc2V0IChgY2VsbGAsIGBudWNsZXVzYCwgb3IgYGJvdGhgIOKAlCBjZWxscyBhcyBzZXQgYnlcbiAgICogIHtAbGluayBjZWxsRHJhd30sIG51Y2xlaSBvdXRsaW5lZCBvdmVyIHRoZW0pOyBudWxsIHRha2VzIHRoZSBkYXRhc2V0J3MgZGVmYXVsdC4gKi9cbiAgY2VsbFNldDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqXG4gICAqIFdoYXQgY29sb3VycyB0aGUgY2VsbHMg4oCUIFhlbml1bSBFeHBsb3JlcidzIFwiQ2VsbCBDb2xvclwiOiB0aGUgYWN0aXZlIGdyb3VwXG4gICAqICh7QGxpbmsgY2VsbFR5cGVDb2x1bW59KSwgb25lIGdlbmUncyBleHByZXNzaW9uICh7QGxpbmsgY2VsbENvbG9yR2VuZX0pLCB0aGUgY2VsbCdzXG4gICAqIHRyYW5zY3JpcHQgZGVuc2l0eSwgb25lIGZsYXQgY29sb3VyLCBvciBob3cgdGhlIGNlbGwgd2FzIHNlZ21lbnRlZC5cbiAgICovXG4gIGNlbGxDb2xvck1vZGU6ICdncm91cCcgfCAnZ2VuZScgfCAndHJhbnNjcmlwdERlbnNpdHknIHwgJ3NpbmdsZScgfCAnc2VnbWVudGF0aW9uJztcbiAgY2VsbENvbG9yR2VuZTogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIGAjcnJnZ2JiYCBmb3Ige0BsaW5rIGNlbGxDb2xvck1vZGV9IGBzaW5nbGVgLiAqL1xuICBjZWxsU2luZ2xlQ29sb3I6IHN0cmluZztcbiAgLyoqXG4gICAqIENhdGVnb3JpZXMgb2Yge0BsaW5rIGNlbGxUeXBlQ29sdW1ufSBzd2l0Y2hlZCBvZmYgaW4gdGhlIGdyb3VwcyBsaXN0OiB0aGVpciBjZWxscyBhcmVcbiAgICogbm90IGRyYXduLCBub3IgdGhlIHRyYW5zY3JpcHRzIGluc2lkZSB0aGVtLiBDbGVhcmVkIHdoZW4gdGhlIGdyb3VwIGNvbHVtbiBjaGFuZ2VzLlxuICAgKi9cbiAgaGlkZGVuR3JvdXBzOiBzdHJpbmdbXTtcbiAgLyoqIERyYXcgdGhlIHRpc3N1ZSBpbWFnZSAodGhlIEltYWdlcyBzZWN0aW9uJ3Mgc3dpdGNoKS4gKi9cbiAgc2hvd0ltYWdlOiBib29sZWFuO1xuICAvKiogRHJhdyB0aGUgYW5ub3RhdGlvbiByZWdpb25zICh0aGUgQW5ub3RhdGlvbnMgc2VjdGlvbidzIHN3aXRjaCkuIFNlbGVjdGluZyBmcm9tIHRoZW1cbiAgICogIHN0aWxsIHdvcmtzIHdoaWxlIHRoZXkgYXJlIGhpZGRlbi4gKi9cbiAgc2hvd0Fubm90YXRpb25zOiBib29sZWFuO1xuICAvKiogRmlsbCB0aGUgY2VsbHMgd2l0aCB0aGVpciBjb2xvdXIsIG91dGxpbmUgdGhlbSwgb3IgYm90aC4gKi9cbiAgY2VsbERyYXc6ICdmaWxsJyB8ICdvdXRsaW5lJyB8ICdib3RoJztcbiAgLyoqIE9wYWNpdHkgb2YgdGhlIGNlbGwgZmlsbCAob3V0bGluZXMgZHJhdyBvcGFxdWUpLiAqL1xuICBjZWxsT3BhY2l0eTogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGNhdGVnb3JpY2FsIGNvbHVtbiB0aGF0IHNheXMgd2hhdCBUWVBFIGVhY2ggY2VsbCBpczogaXQgY29sb3VycyB0aGUgY2VsbHNcbiAgICogd2hlbmV2ZXIgbm90aGluZyBlbHNlIGlzIGNob3NlbiwgYW5kIGl0IGNvbG91cnMgZXZlcnkgdHJhbnNjcmlwdCBieSB0aGUgY2VsbCBpdFxuICAgKiBmYWxscyBpbi4gTnVsbCBwaWNrcyB0aGUgZGF0YXNldCdzIGZpcnN0IGNhdGVnb3JpY2FsIGNvbHVtbi4gU3dhcHBpbmcgYmV0d2VlbiBhXG4gICAqIHBpcGVsaW5lJ3MgY2x1c3RlcmluZyBhbmQgYSBjdXJhdGVkIGFubm90YXRpb24gaXMgc3dhcHBpbmcgdGhpcy5cbiAgICovXG4gIGNlbGxUeXBlQ29sdW1uOiBzdHJpbmcgfCBudWxsO1xuICAvKiogR2VuZXMgd2hvc2UgdHJhbnNjcmlwdHMgYXJlIGRyYXduLiAqL1xuICB0cmFuc2NyaXB0R2VuZXM6IHN0cmluZ1tdO1xuICAvKiogU2VsZWN0ZWQgZ2VuZXMgc3dpdGNoZWQgb2ZmIHdpdGggdGhlaXIgZXllIHRvZ2dsZSDigJQga2VwdCBpbiB0aGUgbGlzdCwgbm90IGRyYXduLiAqL1xuICB0cmFuc2NyaXB0SGlkZGVuR2VuZXM6IHN0cmluZ1tdO1xuICAvKiogUGVyLWdlbmUgbWFya2VyIGNvbG91ciAoYCNycmdnYmJgKTsgZ2VuZXMgbm90IGxpc3RlZCB0YWtlIHRoZSBwYWxldHRlIGJ5IHBvc2l0aW9uLiAqL1xuICB0cmFuc2NyaXB0R2VuZUNvbG9yczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIE5hbWVkIGdlbmUgZ3JvdXBzIChlLmcuIG1hcmtlciBnZW5lcyBwZXIgY2VsbCB0eXBlKSBmb3IgdGhlIHNlbGVjdGVkLWdlbmVzIHRyZWUuICovXG4gIHRyYW5zY3JpcHRHZW5lR3JvdXBzOiB7IG5hbWU6IHN0cmluZzsgZ2VuZXM6IHN0cmluZ1tdIH1bXTtcbiAgLyoqXG4gICAqIERyYXcgRVZFUlkgZ2VuZSdzIHRyYW5zY3JpcHRzIGluc3RlYWQgb2Yge0BsaW5rIHRyYW5zY3JpcHRHZW5lc306IGdyb3VwZWQgaW50byBiaW5zXG4gICAqIHNpemVkIGJ5IGhvdyBtYW55IHRyYW5zY3JpcHRzIHRoZXkgaG9sZCwgZmluZXIgYXMgdGhlIGNhbWVyYSB6b29tcyBpbiwgZG93biB0byBvbmVcbiAgICogbWFya2VyIHBlciB0cmFuc2NyaXB0IG9uY2UgdGhvc2UgZml0IHtAbGluayB0cmFuc2NyaXB0QnVkZ2V0fS5cbiAgICovXG4gIHRyYW5zY3JpcHRBbGxHZW5lczogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE1vc3QgdHJhbnNjcmlwdCBtYXJrZXJzIGRyYXduIGF0IG9uY2UuIFRoZSBsZXZlbCBvZiBkZXRhaWwgaXMgY2hvc2VuIHRvIHN0YXkgdW5kZXIgaXQsXG4gICAqIHdoaWNoIGlzIHdoYXQga2VlcHMgcGFuIGFuZCB6b29tIHJlc3BvbnNpdmUgaG93ZXZlciBkZW5zZSB0aGUgZGF0YSBpcy5cbiAgICovXG4gIHRyYW5zY3JpcHRCdWRnZXQ6IG51bWJlcjtcbiAgLyoqXG4gICAqIEhvdyB0cmFuc2NyaXB0cyBhcmUgZHJhd246IGBjaXJjbGVzYCBzaXplZCBieSBob3cgbWFueSB0cmFuc2NyaXB0cyBlYWNoIHN0YW5kcyBmb3IsXG4gICAqIGBnbHlwaHNgIChvbmUgaWNvbiBzaGFwZSBwZXIgZ2VuZSksIG9yIGEgYGRlbnNpdHlgIHJhc3Rlci4gQ2lyY2xlcyBhbmQgZ2x5cGhzIGFyZVxuICAgKiBsZXZlbC1vZi1kZXRhaWwg4oCUIGFnZ3JlZ2F0ZWQgd2hlbiB6b29tZWQgb3V0LCBvbmUgcGVyIHRyYW5zY3JpcHQgYXQgdGhlIGZpbmVzdCB6b29tLlxuICAgKi9cbiAgdHJhbnNjcmlwdE1vZGU6ICdvZmYnIHwgJ2NpcmNsZXMnIHwgJ2dseXBocycgfCAnZGVuc2l0eSc7XG4gIC8qKiBDb2xvdXIgdHJhbnNjcmlwdHMgYnkgdGhlIHR5cGUgb2YgdGhlIGNlbGwgdGhleSBmYWxsIGluLCBieSBnZW5lLCBvciBieSB0aGUgZ2VuZS10cmVlXG4gICAqICBjbHVzdGVyIHRoZWlyIGdlbmUgaXMgaW4gKGluIHRoZSBjb2xvdXIgdGhhdCBjbHVzdGVyJ3MgY2VsbHMgaGF2ZSwgd2hlbiBhIGNlbGwgZ3JvdXBpbmdcbiAgICogIG5hbWVzIGl0KS4gKi9cbiAgdHJhbnNjcmlwdENvbG9yQnk6ICdjZWxsVHlwZScgfCAnZ2VuZScgfCAnY2x1c3Rlcic7XG4gIC8qKiBHbHlwaCBwZXIgZ2VuZSBmb3IgYGdseXBoc2AgbW9kZTsgZ2VuZXMgbm90IGxpc3RlZCB0YWtlIG9uZSBieSBwb3NpdGlvbi4gKi9cbiAgdHJhbnNjcmlwdEdseXBoczogUmVjb3JkPHN0cmluZywgVHJhbnNjcmlwdEdseXBoTmFtZT47XG4gIC8qKiBNdWx0aXBsaWVyIG9uIHRyYW5zY3JpcHQgbWFya2VyIHNpemUuICovXG4gIHRyYW5zY3JpcHRTY2FsZTogbnVtYmVyO1xuICB0cmFuc2NyaXB0T3BhY2l0eTogbnVtYmVyO1xuICAvKiogYGhpZ2hgIGtlZXBzIG9ubHkgY29uZmlkZW50bHkgZGVjb2RlZCB0cmFuc2NyaXB0cy4gKi9cbiAgdHJhbnNjcmlwdFF1YWxpdHk6ICdoaWdoJyB8ICdhbGwnO1xuICAvKiogT3BhY2l0eSBvZiB0aGUgdHJhbnNjcmlwdCBkZW5zaXR5IHJhc3Rlci4gKi9cbiAgZGVuc2l0eU9wYWNpdHk6IG51bWJlcjtcbiAgLyoqIERlbnNpdHkgYmluIGVkZ2UgaW4gb2JzZXJ2YXRpb24gdW5pdHMgKMK1bSk6IDEwLCAyMCwgNDAgb3IgODAuICovXG4gIGRlbnNpdHlCaW46IG51bWJlcjtcbiAgLyoqIENvbG91ciB3aW5kb3cgaW4gdHJhbnNjcmlwdHMgcGVyIHVuaXTCsiAowrVtwrIpOyBudWxsIGRlcml2ZXMgaXQgZnJvbSB0aGUgZGF0YS4gKi9cbiAgZGVuc2l0eVJhbmdlOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbDtcbiAgLyoqIENvbG9ybWFwIGZvciB0aGUgZGVuc2l0eSBiaW5zOyBudWxsIHVzZXMgSW5mZXJuby4gKi9cbiAgZGVuc2l0eUNvbG9ybWFwOiBDb2xvcm1hcFZhbHVlIHwgbnVsbDtcbn1cblxuLyoqIFRyYW5zY3JpcHQgZ2x5cGggbmFtZXMg4oCUIHNlZSBgVFJBTlNDUklQVF9HTFlQSFNgIGluIGBzcGF0aWFsL3NwYXRpYWwtdGlsZXMudHNgLiAqL1xuZXhwb3J0IHR5cGUgVHJhbnNjcmlwdEdseXBoTmFtZSA9XG4gICdjaXJjbGUnIHwgJ3N0YXInIHwgJ3RyaWFuZ2xlJyB8ICdzcXVhcmUnIHwgJ2RpYW1vbmQnIHwgJ2Nyb3NzJyB8ICdoZXhhZ29uJyB8ICd0cmlhbmdsZS1kb3duJyB8ICdwZW50YWdvbicgfCAneCc7XG5cbi8qKlxuICogVGhlIHNwYXRpYWwgdmlldyBhIGRhdGFzZXQgb3BlbnMgd2l0aDogbm8gY29sb3VyIHNvdXJjZSwgcG9pbnRzIGFuZCB2b2x1bWUgc2hvd24sIHRoZVxuICogb3B0aW9uYWwgbGF5ZXJzIG9mZi4gQSBjb21wbGV0ZSBzdGF0ZSB0byBzcHJlYWQgcGFydGlhbCB2aWV3LXN0YXRlIHBhdGNoZXMgb3Zlci5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU1BBVElBTF9WSUVXOiBTcGF0aWFsVmlld1N0YXRlID0ge1xuICBjb2xvckJ5OiBudWxsLFxuICBwb2ludFNjYWxlOiAxLFxuICBvcGFjaXR5OiAxLFxuICBsb2dTY2FsZTogZmFsc2UsXG4gIHBlcmNlbnRpbGVDbGlwOiBbMC4wMSwgMC45OV0sXG4gIGNvbnRpbnVvdXNDb2xvcm1hcDogbnVsbCxcbiAgc2hvd1ZvbHVtZTogdHJ1ZSxcbiAgdm9sdW1lT3BhY2l0eTogMC41LFxuICBzaG93UG9pbnRzOiB0cnVlLFxuICBwb2ludFNlY3Rpb246IG51bGwsXG4gIGRlbnNpdHlWb2x1bWU6IGZhbHNlLFxuICBkZW5zaXR5U21vb3RoaW5nOiAxLFxuICBnZW5lTWFwOiBmYWxzZSxcbiAgZ2VuZU1hcFNlY3Rpb246IG51bGwsXG4gIGdlbmVNYXBWb2x1bWU6IGZhbHNlLFxuICBnZW5lTWFwU21vb3RoaW5nOiAxLFxuICBnZW5lTWFwT3BhY2l0eTogMC44NSxcbiAgc2hvd0NlbGxzOiBudWxsLFxuICBjZWxsU2V0OiBudWxsLFxuICBjZWxsRHJhdzogJ2ZpbGwnLFxuICBjZWxsT3BhY2l0eTogMC41NSxcbiAgY2VsbFR5cGVDb2x1bW46IG51bGwsXG4gIHRyYW5zY3JpcHRHZW5lczogW10sXG4gIHRyYW5zY3JpcHRIaWRkZW5HZW5lczogW10sXG4gIHRyYW5zY3JpcHRHZW5lQ29sb3JzOiB7fSxcbiAgdHJhbnNjcmlwdEdlbmVHcm91cHM6IFtdLFxuICB0cmFuc2NyaXB0QWxsR2VuZXM6IGZhbHNlLFxuICB0cmFuc2NyaXB0QnVkZ2V0OiAxMDBfMDAwLFxuICB0cmFuc2NyaXB0TW9kZTogJ29mZicsXG4gIHRyYW5zY3JpcHRDb2xvckJ5OiAnY2VsbFR5cGUnLFxuICB0cmFuc2NyaXB0R2x5cGhzOiB7fSxcbiAgdHJhbnNjcmlwdFNjYWxlOiAxLFxuICB0cmFuc2NyaXB0T3BhY2l0eTogMC45LFxuICB0cmFuc2NyaXB0UXVhbGl0eTogJ2hpZ2gnLFxuICBkZW5zaXR5T3BhY2l0eTogMC44LFxuICBkZW5zaXR5QmluOiAxMCxcbiAgZGVuc2l0eVJhbmdlOiBudWxsLFxuICBkZW5zaXR5Q29sb3JtYXA6IG51bGwsXG4gIGNlbGxDb2xvck1vZGU6ICdncm91cCcsXG4gIGNlbGxDb2xvckdlbmU6IG51bGwsXG4gIGNlbGxTaW5nbGVDb2xvcjogJyM0ZmMzZjcnLFxuICBoaWRkZW5Hcm91cHM6IFtdLFxuICBzaG93SW1hZ2U6IHRydWUsXG4gIHNob3dBbm5vdGF0aW9uczogdHJ1ZSxcbn07XG4iXX0=
@@ -8,4 +8,4 @@
8
8
  * structurally, so the host keeps passing its own instances unchanged.
9
9
  */
10
10
  export {};
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9pbWFnZS5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGlicmFyeS1vd25lZCBkYXRhIGludGVyZmFjZXMgZm9yIHRoZSBpbWFnZSB0aGUgdmlzdWFsaXphdGlvbiByZW5kZXJzLlxuICpcbiAqIFRoZSB2aXN1YWxpemF0aW9uIHBhY2thZ2UgbXVzdCBub3QgaW1wb3J0IHRoZSBob3N0IGFwcCdzIGNvbmNyZXRlIG1vZGVsc1xuICogKGBtYWluL21vZGVscy9maWxlLWluZm9gKSwgb3IgaXQgY2FuJ3QgYmVjb21lIGEgc3RhbmRhbG9uZSBsaWJyYXJ5LiBUaGVzZVxuICogc2xpbSBpbnRlcmZhY2VzIGRlY2xhcmUgb25seSB0aGUgZmllbGRzIHRoZSBsaWJyYXJ5IHJlYWRzL3dyaXRlczsgdGhlIGhvc3Qnc1xuICogYEltYWdlSW5mb2AvYEltYWdlTWV0YWRhdGFgIGNsYXNzZXMgYXJlIHB1cmUgZGF0YSBob2xkZXJzIHRoYXQgc2F0aXNmeSB0aGVtXG4gKiBzdHJ1Y3R1cmFsbHksIHNvIHRoZSBob3N0IGtlZXBzIHBhc3NpbmcgaXRzIG93biBpbnN0YW5jZXMgdW5jaGFuZ2VkLlxuICovXG5cbi8qKiBQZXItY2hhbm5lbCBtZXRhZGF0YSBmcm9tIHRoZSBzZXJ2ZXIgZGVzY3JpcHRvciAoaXNzdWUgIzc2KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYW5uZWxJbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICAvKiogU3VnZ2VzdGVkIGRpc3BsYXkgdGludCBhcyBcIiNSUkdHQkJcIi4gKi9cbiAgY29sb3I6IHN0cmluZztcbiAgLyoqIEVtYmVkZGVkIDI1Ni1lbnRyeSBkaXNwbGF5IExVVCBhcyBcIiNSUkdHQkJcIiAoaW50ZW5zaXR54oaSY29sb3IpLCBvclxuICAgKiAgbnVsbC91bmRlZmluZWQgd2hlbiB0aGUgZmlsZSBoYXMgbm8gcGFsZXR0ZSBmb3IgdGhpcyBjaGFubmVsLiAqL1xuICBsdXQ/OiBzdHJpbmdbXSB8IG51bGw7XG4gIGJpdERlcHRoPzogbnVtYmVyO1xuICAvKiogUGl4ZWwtdHlwZSBtaW5pbXVtIChlLmcuIDAgZm9yIHVuc2lnbmVkKS4gTmF0aXZlLXVuaXQgZmxvb3Igb2YgdGhlIHdpbmRvdy4gKi9cbiAgbWluQWxsb3dlZD86IG51bWJlcjtcbiAgLyoqIFBpeGVsLXR5cGUgbWF4aW11bSAoZS5nLiA2NTUzNSBmb3IgdW5zaWduZWQgMTYtYml0KS4gTmF0aXZlLXVuaXQgY2VpbGluZy4gKi9cbiAgbWF4QWxsb3dlZD86IG51bWJlcjtcbn1cblxuLyoqIFBlci1zZXJpZXMgaW1hZ2UgbWV0YWRhdGEgKHBoeXNpY2FsIHNpemUgKyBkaW1lbnNpb25zKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUltYWdlTWV0YWRhdGEge1xuICBjaGFubmVsQ291bnQ6IG51bWJlcjtcbiAgcmdiQ2hhbm5lbHM6IG51bWJlcjtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHo6IG51bWJlcjtcbiAgLyoqIFBoeXNpY2FsIHBpeGVsIHNpemUgaW4gwrVtOyBudWxsL3VuZGVmaW5lZCB3aGVuIHRoZSBmb3JtYXQgcmVwb3J0cyBub25lLiAqL1xuICBtcHBYPzogbnVtYmVyIHwgbnVsbDtcbiAgbXBwWT86IG51bWJlciB8IG51bGw7XG4gIC8qKiBQaHlzaWNhbCBzcGFjaW5nIEJFVFdFRU4gc2xpY2VzIGluIMK1bSDigJQgdGhlIHogY291bnRlcnBhcnQgb2YgYG1wcFhgL2BtcHBZYCxcbiAgICogIGZvciBhIHN0YWNrIHRoYXQga25vd3MgaXQgKGEgcmVzYW1wbGVkIHZvbHVtZSwgYSBjb25mb2NhbCBzdGFjaykuIEl0IGlzIHdoYXRcbiAgICogIGxldHMgdGhlIDNEIHZvbHVtZSB2aWV3IHJlbmRlciB0cnVlIGFuaXNvdHJvcHk6IHdpdGggYWxsIHRocmVlIHByZXNlbnQgdGhlXG4gICAqICB3b3JsZCBib3ggaXMgdGhlIGltYWdlJ3MgcmVhbCBwaHlzaWNhbCBleHRlbnQsIHNvIDQwIHggNDAgeCAyMDAgwrVtIHZveGVsc1xuICAgKiAgcmVhZCBhcyBhIGJyYWluIGFuZCBub3QgYXMgYSBjdWJlLWFzcGVjdCBicmljay4gQWJzZW50LCB0aGUgdmlldyBmYWxscyBiYWNrXG4gICAqICB0byBpdHMgcmVzb2x1dGlvbi1pbnZhcmlhbnQgcmVmZXJlbmNlIGJveCwgd2hpY2ggaXMgc2hhcGUtb25seS4gKi9cbiAgbXBwWj86IG51bWJlciB8IG51bGw7XG4gIC8qKiBQZXItY2hhbm5lbCBuYW1lL2NvbG9yL0xVVCBmb3IgbXVsdGljaGFubmVsIChub24tUkdCKSBpbWFnZXMsIHdoZW4ga25vd24uICovXG4gIGNoYW5uZWxJbmZvPzogSUNoYW5uZWxJbmZvW10gfCBudWxsO1xufVxuXG4vKiogVGhlIGltYWdlIGN1cnJlbnRseSBiZWluZyB2aXN1YWxpemVkLiBGaWVsZCBvcHRpb25hbGl0eSBtaXJyb3JzIHRoZSBob3N0J3NcbiAqICBgSW1hZ2VJbmZvYCBzbyBpdHMgaW5zdGFuY2VzIGFyZSBhc3NpZ25hYmxlIHRvIHRoaXMgaW50ZXJmYWNlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSW1hZ2VJbmZvIHtcbiAgaXNHcmF5c2NhbGU6IGJvb2xlYW47XG4gIHRydWVJbWFnZVNpemU6IG51bWJlcltdO1xuICB1cmxzOiBzdHJpbmdbXTtcbiAgLyoqIE9wdGlvbmFsIHNtYWxsLXRpZXIgVVJMcyAoZmFzdCBibHVycnkgcGxhY2Vob2xkZXIpLCAxOjEgd2l0aCBgdXJsc2AuICovXG4gIHNtYWxsVXJscz86IHN0cmluZ1tdO1xuICBpc1N0YWNrOiBib29sZWFuO1xuICBzaG93U3RhY2s6IGJvb2xlYW47XG4gIHNjYWxlUmF0aW86IGJvb2xlYW47XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIHJvaUpzb25TdHI/OiBzdHJpbmc7XG4gIC8qKiBQZXItc2xpY2UgUk9JIEdlb0pTT04sIGFsaWduZWQgMToxIHdpdGggYHVybHNgLCBmb3IgYSBmb2xkZXIgc3RhY2sgd2hlcmVcbiAgICogIGVhY2ggc2xpY2UgaXMgYSBzZXBhcmF0ZSBmaWxlIHdpdGggaXRzIG93biBzaWJsaW5nIGA8c3RlbT4uZ2VvanNvbmBcbiAgICogIChgbnVsbGAgZm9yIHNsaWNlcyB3aXRob3V0IG9uZSkuIFdoZW4gcHJlc2VudCwgdGhlIGNvbXBvbmVudCBhcHBsaWVzXG4gICAqICBgcm9pSnNvblN0cnNbel1gIGZvciB0aGUgZGlzcGxheWVkIHNsaWNlIGFuZCBzd2FwcyBpdCBvbiBzY3J1YiDigJQgYXNcbiAgICogIG9wcG9zZWQgdG8gdGhlIHNjYWxhciBgcm9pSnNvblN0cmAsIHdoaWNoIGlzIG9uZSBST0kgc2V0IGZvciB0aGUgd2hvbGVcbiAgICogIGltYWdlIChhIHNpbmdsZSBmaWxlIG9yIGEgc2VydmVyIHotc3RhY2spLiAoaml0LXVpIzkzKSAqL1xuICByb2lKc29uU3Rycz86IChzdHJpbmcgfCBudWxsKVtdO1xuICAvKiogUGVyLXNsaWNlLCBwZXItY2hhbm5lbCBwbGFuZSBVUkxzIGZvciBhIFNFUlZFUkxFU1MgbXVsdGljaGFubmVsIGltYWdlXG4gICAqICAoYHRpbGVkOiBmYWxzZWAgKyBgaW1hZ2VNZXRhWzBdLmNoYW5uZWxDb3VudCA+IDFgKS4gYGNoYW5uZWxVcmxzW3pdW2NdYFxuICAgKiAgaXMgYSBjb21wbGV0ZSBzaW5nbGUtYmFuZCBpbWFnZSBvZiBjaGFubmVsIGMgYXQgc2xpY2Ugei4gVGhlIE9TRCBzaW1wbGVcbiAgICogIHBhdGggY29tcG9zaXRlcyB0aGVtIGNsaWVudC1zaWRlIOKAlCBwZXItY2hhbm5lbCBjb2xvdXIvd2luZG93L2dhbW1hIGZyb21cbiAgICogIHRoZSBjaGFubmVsIHBhbmUg4oCUIGluc3RlYWQgb2Ygb3BlbmluZyB0aGUgZmxhdCBgdXJsc1t6XWAuIChqaXQtdWkjNzYpICovXG4gIGNoYW5uZWxVcmxzPzogc3RyaW5nW11bXTtcbiAgaW1hZ2VNZXRhOiBJSW1hZ2VNZXRhZGF0YVtdO1xuICAvKiogSG93IHRoZSBPcGVuU2VhZHJhZ29uIGJhY2tlbmQgc2hvdWxkIHNvdXJjZSB0aGlzIGltYWdlLlxuICAgKiAgLSBgdHJ1ZWAvYWJzZW50IChkZWZhdWx0KTogc2VydmVyLXRpbGVkIOKAlCBPU0QgcG9sbHMgYC90aWxlcy9pbmZvYCBmb3IgYVxuICAgKiAgICBweXJhbWlkIGFuZCBmZXRjaGVzIHRpbGVzIGZyb20gdGhlIHNsaWRlLWNyb3Agc2VydmVyICh3aG9sZS1zbGlkZSBwYXRoKS5cbiAgICogIC0gYGZhbHNlYDogYSBzZWxmLWNvbnRhaW5lZCwgZGlyZWN0bHktbG9hZGFibGUgaW1hZ2Ug4oCUIGB1cmxzW3pJbmRleF1gIGlzIGFcbiAgICogICAgY29tcGxldGUgaW1hZ2UgKGUuZy4gYSBgYmxvYjpgIFVSTCBidWlsdCBmcm9tIGEgY2xpZW50LXNpZGUgcGl4ZWwgYnVmZmVyKSxcbiAgICogICAgb3BlbmVkIHZpYSBPU0QncyBzaW5nbGUtaW1hZ2Ugc291cmNlIHdpdGggbm8gdGlsZSBzZXJ2ZXIuIExldHMgaW4tbWVtb3J5XG4gICAqICAgIGltYWdlcyAodGhlIHByb2Nlc3NpbmcgcGlwZWxpbmUpIHVzZSB0aGUgT1NEIHZpZXdlciB3aXRob3V0IGEgcm91bmQtdHJpcC4gKi9cbiAgdGlsZWQ/OiBib29sZWFuO1xuICAvKiogT25lLXNob3QgaGludDogb3BlbiB0aGUgc3RhY2sgb24gdGhpcyBzbGljZSBpbnN0ZWFkIG9mIHNsaWNlIDAgKGUuZy4gdGhlXG4gICAqICBob3N0IGNsaWNrZWQgYSBzcGVjaWZpYyBmaWxlIHdpdGhpbiBhIG51bWJlcmVkIGltYWdlIHNlcmllcykuIFRoZVxuICAgKiAgY29tcG9uZW50IGNvbnN1bWVzIGFuZCBjbGVhcnMgdGhpcyB0aGUgZmlyc3QgdGltZSBpdCBzZWVzIHRoZSBvYmplY3QsIHNvXG4gICAqICByZS1kZWxpdmVyaW5nIHRoZSBzYW1lIEltYWdlSW5mbyAoZS5nLiBhIHBsb3QtdHlwZSBzd2l0Y2gpIGRvZXNuJ3QgcmVzZXRcbiAgICogIHRoZSB1c2VyJ3MgY3VycmVudCBzY3J1YiBwb3NpdGlvbi4gKi9cbiAgaW5pdGlhbFpJbmRleD86IG51bWJlcjtcbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnRyYWN0cy9pbWFnZS5jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTGlicmFyeS1vd25lZCBkYXRhIGludGVyZmFjZXMgZm9yIHRoZSBpbWFnZSB0aGUgdmlzdWFsaXphdGlvbiByZW5kZXJzLlxuICpcbiAqIFRoZSB2aXN1YWxpemF0aW9uIHBhY2thZ2UgbXVzdCBub3QgaW1wb3J0IHRoZSBob3N0IGFwcCdzIGNvbmNyZXRlIG1vZGVsc1xuICogKGBtYWluL21vZGVscy9maWxlLWluZm9gKSwgb3IgaXQgY2FuJ3QgYmVjb21lIGEgc3RhbmRhbG9uZSBsaWJyYXJ5LiBUaGVzZVxuICogc2xpbSBpbnRlcmZhY2VzIGRlY2xhcmUgb25seSB0aGUgZmllbGRzIHRoZSBsaWJyYXJ5IHJlYWRzL3dyaXRlczsgdGhlIGhvc3Qnc1xuICogYEltYWdlSW5mb2AvYEltYWdlTWV0YWRhdGFgIGNsYXNzZXMgYXJlIHB1cmUgZGF0YSBob2xkZXJzIHRoYXQgc2F0aXNmeSB0aGVtXG4gKiBzdHJ1Y3R1cmFsbHksIHNvIHRoZSBob3N0IGtlZXBzIHBhc3NpbmcgaXRzIG93biBpbnN0YW5jZXMgdW5jaGFuZ2VkLlxuICovXG5cbi8qKiBQZXItY2hhbm5lbCBtZXRhZGF0YSBmcm9tIHRoZSBzZXJ2ZXIgZGVzY3JpcHRvciAoaXNzdWUgIzc2KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNoYW5uZWxJbmZvIHtcbiAgbmFtZTogc3RyaW5nO1xuICAvKiogU3VnZ2VzdGVkIGRpc3BsYXkgdGludCBhcyBcIiNSUkdHQkJcIi4gKi9cbiAgY29sb3I6IHN0cmluZztcbiAgLyoqIEVtYmVkZGVkIDI1Ni1lbnRyeSBkaXNwbGF5IExVVCBhcyBcIiNSUkdHQkJcIiAoaW50ZW5zaXR54oaSY29sb3IpLCBvclxuICAgKiAgbnVsbC91bmRlZmluZWQgd2hlbiB0aGUgZmlsZSBoYXMgbm8gcGFsZXR0ZSBmb3IgdGhpcyBjaGFubmVsLiAqL1xuICBsdXQ/OiBzdHJpbmdbXSB8IG51bGw7XG4gIGJpdERlcHRoPzogbnVtYmVyO1xuICAvKiogUGl4ZWwtdHlwZSBtaW5pbXVtIChlLmcuIDAgZm9yIHVuc2lnbmVkKS4gTmF0aXZlLXVuaXQgZmxvb3Igb2YgdGhlIHdpbmRvdy4gKi9cbiAgbWluQWxsb3dlZD86IG51bWJlcjtcbiAgLyoqIFBpeGVsLXR5cGUgbWF4aW11bSAoZS5nLiA2NTUzNSBmb3IgdW5zaWduZWQgMTYtYml0KS4gTmF0aXZlLXVuaXQgY2VpbGluZy4gKi9cbiAgbWF4QWxsb3dlZD86IG51bWJlcjtcbn1cblxuLyoqIFBlci1zZXJpZXMgaW1hZ2UgbWV0YWRhdGEgKHBoeXNpY2FsIHNpemUgKyBkaW1lbnNpb25zKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUltYWdlTWV0YWRhdGEge1xuICBjaGFubmVsQ291bnQ6IG51bWJlcjtcbiAgcmdiQ2hhbm5lbHM6IG51bWJlcjtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHo6IG51bWJlcjtcbiAgLyoqIFBoeXNpY2FsIHBpeGVsIHNpemUgaW4gwrVtOyBudWxsL3VuZGVmaW5lZCB3aGVuIHRoZSBmb3JtYXQgcmVwb3J0cyBub25lLiAqL1xuICBtcHBYPzogbnVtYmVyIHwgbnVsbDtcbiAgbXBwWT86IG51bWJlciB8IG51bGw7XG4gIC8qKiBQaHlzaWNhbCBzcGFjaW5nIEJFVFdFRU4gc2xpY2VzIGluIMK1bSDigJQgdGhlIHogY291bnRlcnBhcnQgb2YgYG1wcFhgL2BtcHBZYCxcbiAgICogIGZvciBhIHN0YWNrIHRoYXQga25vd3MgaXQgKGEgcmVzYW1wbGVkIHZvbHVtZSwgYSBjb25mb2NhbCBzdGFjaykuIEl0IGlzIHdoYXRcbiAgICogIGxldHMgdGhlIDNEIHZvbHVtZSB2aWV3IHJlbmRlciB0cnVlIGFuaXNvdHJvcHk6IHdpdGggYWxsIHRocmVlIHByZXNlbnQgdGhlXG4gICAqICB3b3JsZCBib3ggaXMgdGhlIGltYWdlJ3MgcmVhbCBwaHlzaWNhbCBleHRlbnQsIHNvIDQwIHggNDAgeCAyMDAgwrVtIHZveGVsc1xuICAgKiAgcmVhZCBhcyBhIGJyYWluIGFuZCBub3QgYXMgYSBjdWJlLWFzcGVjdCBicmljay4gQWJzZW50LCB0aGUgdmlldyBmYWxscyBiYWNrXG4gICAqICB0byBpdHMgcmVzb2x1dGlvbi1pbnZhcmlhbnQgcmVmZXJlbmNlIGJveCwgd2hpY2ggaXMgc2hhcGUtb25seS4gKi9cbiAgbXBwWj86IG51bWJlciB8IG51bGw7XG4gIC8qKiBQZXItY2hhbm5lbCBuYW1lL2NvbG9yL0xVVCBmb3IgbXVsdGljaGFubmVsIChub24tUkdCKSBpbWFnZXMsIHdoZW4ga25vd24uICovXG4gIGNoYW5uZWxJbmZvPzogSUNoYW5uZWxJbmZvW10gfCBudWxsO1xufVxuXG4vKiogVGhlIGltYWdlIGN1cnJlbnRseSBiZWluZyB2aXN1YWxpemVkLiBGaWVsZCBvcHRpb25hbGl0eSBtaXJyb3JzIHRoZSBob3N0J3NcbiAqICBgSW1hZ2VJbmZvYCBzbyBpdHMgaW5zdGFuY2VzIGFyZSBhc3NpZ25hYmxlIHRvIHRoaXMgaW50ZXJmYWNlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJSW1hZ2VJbmZvIHtcbiAgaXNHcmF5c2NhbGU6IGJvb2xlYW47XG4gIHRydWVJbWFnZVNpemU6IG51bWJlcltdO1xuICB1cmxzOiBzdHJpbmdbXTtcbiAgLyoqIE9wdGlvbmFsIHNtYWxsLXRpZXIgVVJMcyAoZmFzdCBibHVycnkgcGxhY2Vob2xkZXIpLCAxOjEgd2l0aCBgdXJsc2AuICovXG4gIHNtYWxsVXJscz86IHN0cmluZ1tdO1xuICBpc1N0YWNrOiBib29sZWFuO1xuICBzaG93U3RhY2s6IGJvb2xlYW47XG4gIHNjYWxlUmF0aW86IGJvb2xlYW47XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIHJvaUpzb25TdHI/OiBzdHJpbmc7XG4gIC8qKiBQZXItc2xpY2UgUk9JIEdlb0pTT04sIGFsaWduZWQgMToxIHdpdGggYHVybHNgLCBmb3IgYSBmb2xkZXIgc3RhY2sgd2hlcmVcbiAgICogIGVhY2ggc2xpY2UgaXMgYSBzZXBhcmF0ZSBmaWxlIHdpdGggaXRzIG93biBzaWJsaW5nIGA8c3RlbT4uZ2VvanNvbmBcbiAgICogIChgbnVsbGAgZm9yIHNsaWNlcyB3aXRob3V0IG9uZSkuIFdoZW4gcHJlc2VudCwgdGhlIGNvbXBvbmVudCBhcHBsaWVzXG4gICAqICBgcm9pSnNvblN0cnNbel1gIGZvciB0aGUgZGlzcGxheWVkIHNsaWNlIGFuZCBzd2FwcyBpdCBvbiBzY3J1YiDigJQgYXNcbiAgICogIG9wcG9zZWQgdG8gdGhlIHNjYWxhciBgcm9pSnNvblN0cmAsIHdoaWNoIGlzIG9uZSBST0kgc2V0IGZvciB0aGUgd2hvbGVcbiAgICogIGltYWdlIChhIHNpbmdsZSBmaWxlIG9yIGEgc2VydmVyIHotc3RhY2spLiAoaml0LXVpIzkzKSAqL1xuICByb2lKc29uU3Rycz86IChzdHJpbmcgfCBudWxsKVtdO1xuICAvKiogQmFzZSBVUkwgb2YgYSBzZXJ2ZXItc2lkZSByZWdpb24gc291cmNlIGZvciB0aGlzIGltYWdlIChzZWUgYG9wZW5IdHRwUmVnaW9uU291cmNlYCk6XG4gICAqICBpdHMgcmVnaW9ucyBhcmUgZHJhd24gZnJvbSB0aGUgc2VydmVyJ3MgbGV2ZWwtb2YtZGV0YWlsIHRpbGVzIGluc3RlYWQgb2YgYmVpbmcgbG9hZGVkXG4gICAqICBmcm9tIGByb2lKc29uU3RyYC4gT24gYSBzdGFjaywgc2xpY2UgeiBzaG93cyB0aGUgc291cmNlJ3MgcGxhbmUgei4gKi9cbiAgcmVnaW9uU291cmNlVXJsPzogc3RyaW5nO1xuICAvKiogUGVyLXNsaWNlLCBwZXItY2hhbm5lbCBwbGFuZSBVUkxzIGZvciBhIFNFUlZFUkxFU1MgbXVsdGljaGFubmVsIGltYWdlXG4gICAqICAoYHRpbGVkOiBmYWxzZWAgKyBgaW1hZ2VNZXRhWzBdLmNoYW5uZWxDb3VudCA+IDFgKS4gYGNoYW5uZWxVcmxzW3pdW2NdYFxuICAgKiAgaXMgYSBjb21wbGV0ZSBzaW5nbGUtYmFuZCBpbWFnZSBvZiBjaGFubmVsIGMgYXQgc2xpY2Ugei4gVGhlIE9TRCBzaW1wbGVcbiAgICogIHBhdGggY29tcG9zaXRlcyB0aGVtIGNsaWVudC1zaWRlIOKAlCBwZXItY2hhbm5lbCBjb2xvdXIvd2luZG93L2dhbW1hIGZyb21cbiAgICogIHRoZSBjaGFubmVsIHBhbmUg4oCUIGluc3RlYWQgb2Ygb3BlbmluZyB0aGUgZmxhdCBgdXJsc1t6XWAuIChqaXQtdWkjNzYpICovXG4gIGNoYW5uZWxVcmxzPzogc3RyaW5nW11bXTtcbiAgaW1hZ2VNZXRhOiBJSW1hZ2VNZXRhZGF0YVtdO1xuICAvKiogSG93IHRoZSBPcGVuU2VhZHJhZ29uIGJhY2tlbmQgc2hvdWxkIHNvdXJjZSB0aGlzIGltYWdlLlxuICAgKiAgLSBgdHJ1ZWAvYWJzZW50IChkZWZhdWx0KTogc2VydmVyLXRpbGVkIOKAlCBPU0QgcG9sbHMgYC90aWxlcy9pbmZvYCBmb3IgYVxuICAgKiAgICBweXJhbWlkIGFuZCBmZXRjaGVzIHRpbGVzIGZyb20gdGhlIHNsaWRlLWNyb3Agc2VydmVyICh3aG9sZS1zbGlkZSBwYXRoKS5cbiAgICogIC0gYGZhbHNlYDogYSBzZWxmLWNvbnRhaW5lZCwgZGlyZWN0bHktbG9hZGFibGUgaW1hZ2Ug4oCUIGB1cmxzW3pJbmRleF1gIGlzIGFcbiAgICogICAgY29tcGxldGUgaW1hZ2UgKGUuZy4gYSBgYmxvYjpgIFVSTCBidWlsdCBmcm9tIGEgY2xpZW50LXNpZGUgcGl4ZWwgYnVmZmVyKSxcbiAgICogICAgb3BlbmVkIHZpYSBPU0QncyBzaW5nbGUtaW1hZ2Ugc291cmNlIHdpdGggbm8gdGlsZSBzZXJ2ZXIuIExldHMgaW4tbWVtb3J5XG4gICAqICAgIGltYWdlcyAodGhlIHByb2Nlc3NpbmcgcGlwZWxpbmUpIHVzZSB0aGUgT1NEIHZpZXdlciB3aXRob3V0IGEgcm91bmQtdHJpcC4gKi9cbiAgdGlsZWQ/OiBib29sZWFuO1xuICAvKiogT25lLXNob3QgaGludDogb3BlbiB0aGUgc3RhY2sgb24gdGhpcyBzbGljZSBpbnN0ZWFkIG9mIHNsaWNlIDAgKGUuZy4gdGhlXG4gICAqICBob3N0IGNsaWNrZWQgYSBzcGVjaWZpYyBmaWxlIHdpdGhpbiBhIG51bWJlcmVkIGltYWdlIHNlcmllcykuIFRoZVxuICAgKiAgY29tcG9uZW50IGNvbnN1bWVzIGFuZCBjbGVhcnMgdGhpcyB0aGUgZmlyc3QgdGltZSBpdCBzZWVzIHRoZSBvYmplY3QsIHNvXG4gICAqICByZS1kZWxpdmVyaW5nIHRoZSBzYW1lIEltYWdlSW5mbyAoZS5nLiBhIHBsb3QtdHlwZSBzd2l0Y2gpIGRvZXNuJ3QgcmVzZXRcbiAgICogIHRoZSB1c2VyJ3MgY3VycmVudCBzY3J1YiBwb3NpdGlvbi4gKi9cbiAgaW5pdGlhbFpJbmRleD86IG51bWJlcjtcbn1cbiJdfQ==
@@ -9,4 +9,4 @@ import { InjectionToken } from '@angular/core';
9
9
  * nothing does and no tool needing it is registered.
10
10
  */
11
11
  export const INSTANCE_SEGMENTER = new InjectionToken('INSTANCE_SEGMENTER');
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2Utc2VnbWVudGVyLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvaW5zdGFuY2Utc2VnbWVudGVyLmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUEySS9DOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQXFCLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbi8qKlxuICogUG9ydCBmb3IgYW4gYXV0b21hdGljICoqaW5zdGFuY2UqKiBzZWdtZW50ZXIg4oCUIG9uZSB0aGF0IHJldHVybnMgZGlzY3JldGUsXG4gKiBjbGFzc2lmaWVkIG9iamVjdHMgcmF0aGVyIHRoYW4gYSBwZXItcGl4ZWwgbGFiZWwgbWFwLlxuICpcbiAqIFRoaXMgaXMgYSBzaWJsaW5nIG9mIHtAbGluayBJQ2VsbFNlZ21lbnRlcn0sIG5vdCBhIHJlcGxhY2VtZW50LiBDZWxscG9zZS1zdHlsZVxuICogc2VnbWVudGVycyBwcm9kdWNlIG9uZSBleGNsdXNpdmUgbGFiZWwgcGVyIHBpeGVsLCB3aGljaCBpcyBleGFjdGx5IHJpZ2h0IGZvclxuICogZGVuc2VseSBwYWNrZWQgY2VsbHM7IGEgZGV0ZWN0b3IgbGlrZSBZT0xPIHByb2R1Y2VzIG92ZXJsYXBwaW5nIGluc3RhbmNlcyxcbiAqIGVhY2ggd2l0aCBpdHMgb3duIGNsYXNzIGFuZCBjb25maWRlbmNlLCBhbmQgZmxhdHRlbmluZyB0aG9zZSBpbnRvIGEgbGFiZWwgbWFwXG4gKiB3b3VsZCBzaWxlbnRseSBkaXNjYXJkIGJvdGggdGhlIG92ZXJsYXAgYW5kIHRoZSBjbGFzc2lmaWNhdGlvbi4gVGhlIHR3b1xuICogb3V0cHV0cyBhcmUgZ2VudWluZWx5IGRpZmZlcmVudCBzaGFwZXMsIHNvIHRoZXkgZ2V0IGRpZmZlcmVudCBwb3J0cy5cbiAqXG4gKiBHZW9tZXRyeSBpcyByZXR1cm5lZCBhcyBwb2x5Z29uIHJpbmdzIGluICoqaW1hZ2UgcGl4ZWxzKiosIHJlYWR5IHRvIGJlY29tZVxuICoge0BsaW5rIFJlZ2lvbn1zIHdpdGhvdXQgYSBzZWNvbmQgY29udmVyc2lvbiBzdGVwLlxuICovXG5cbi8qKiBBIGNsb3NlZCByaW5nOyB0aGUgbGFzdCBwb2ludCBpcyBOT1QgYSByZXBlYXQgb2YgdGhlIGZpcnN0LiAqL1xuZXhwb3J0IHR5cGUgSW5zdGFuY2VSaW5nID0gQXJyYXk8W251bWJlciwgbnVtYmVyXT47XG5cbi8qKiBPbmUgcG9seWdvbiB3aXRoIG9wdGlvbmFsIGludGVyaW9yIHJpbmdzIChkb251dCBob2xlcykuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlUG9seWdvbiB7XG4gIGV4dGVyaW9yOiBJbnN0YW5jZVJpbmc7XG4gIGhvbGVzOiBJbnN0YW5jZVJpbmdbXTtcbn1cblxuLyoqIE9uZSBkZXRlY3RlZCBvYmplY3QuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlRGV0ZWN0aW9uIHtcbiAgLyoqXG4gICAqIE91dGxpbmUocykgb2YgdGhpcyBpbnN0YW5jZS4gVXN1YWxseSBvbmUsIGJ1dCBhIG1hc2sgdGhhdCBzcGxpdHMgdW5kZXJcbiAgICogdGhyZXNob2xkaW5nIHlpZWxkcyBzZXZlcmFsIOKAlCB0aGV5IGFsbCBiZWxvbmcgdG8gdGhlIHNhbWUgZGV0ZWN0aW9uLlxuICAgKi9cbiAgcG9seWdvbnM6IEluc3RhbmNlUG9seWdvbltdO1xuICAvKiogYFt4MSwgeTEsIHgyLCB5Ml1gIGluIGltYWdlIHBpeGVscy4gKi9cbiAgYm94OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgLyoqIE1vZGVsIGNvbmZpZGVuY2UsIDAuLjEuICovXG4gIHNjb3JlOiBudW1iZXI7XG4gIGNsYXNzSWQ6IG51bWJlcjtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VTZWdtZW50YXRpb24ge1xuICBkZXRlY3Rpb25zOiBJbnN0YW5jZURldGVjdGlvbltdO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgLyoqIENsYXNzIG5hbWVzIGluZGV4ZWQgYnkgY2xhc3MgaWQsIGZyb20gdGhlIG1vZGVsJ3Mgb3duIG1ldGFkYXRhLiAqL1xuICBjbGFzc05hbWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUdW5hYmxlcyBmb3Igb25lIHJ1bi5cbiAqXG4gKiBUaHJlZSBzZXBhcmF0ZSB0aHJlc2hvbGRzIGFyZSBpbiBwbGF5IGFuZCB0aGV5IGFyZSBlYXN5IHRvIGNvbmZsYXRlOlxuICogYGNvbmZpZGVuY2VgIGFuZCBgaW91VGhyZXNob2xkYCBhY3QgcGVyIHRpbGUsIHdoaWxlIGBtZXJnZVRocmVzaG9sZGAgZ292ZXJuc1xuICogdGhlIGNyb3NzLXRpbGUgcmVjb25jaWxpYXRpb24uIFRoZXkgY29tZSBmcm9tIGRpZmZlcmVudCBzdGFnZXMgb2YgdGhlXG4gKiBwaXBlbGluZSBhbmQgYXJlIG5vdCBpbnRlcmNoYW5nZWFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VTZWdtZW50T3B0aW9ucyB7XG4gIC8qKiBXaGljaCByZWdpc3RlcmVkIG1vZGVsIHRvIHJ1bi4gRGVmYXVsdHMgdG8gdGhlIHJlZ2lzdHJ5J3MgZGVmYXVsdC4gKi9cbiAgbW9kZWxJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNjYWxlIHRvIHJ1biBhdCwgYXMgYSBkaXZpc29yIG9mIGZ1bGwgcmVzb2x1dGlvbiDigJQgdGhlIHNhbWUgbWVhbmluZyB0aGVcbiAgICogc2VydmVyIGdpdmVzIGl0LlxuICAgKlxuICAgKiBUaGlzIGlzIHdoYXQgcHV0cyBvYmplY3RzIGF0IHRoZSBzaXplIHRoZSBjaGVja3BvaW50IHdhcyB0cmFpbmVkIG9uLCBhbmQgaXRcbiAgICogbWF0dGVycyBtb3JlIHRoYW4gYW55IHRocmVzaG9sZDogcnVuIGEgZGV0ZWN0b3IgYXQgdGhlIHdyb25nIG9iamVjdCBzY2FsZVxuICAgKiBhbmQgaXQgZmluZHMgbm90aGluZy4gQSBjYWxsZXIgdGhhdCBjYW4gcmUtY3JvcCB0aGUgc291cmNlIChhIHRpbGUtYmFja2VkXG4gICAqIHZpZXdlcikgc2hvdWxkIGhvbm91ciBpdCByYXRoZXIgdGhhbiBhY2NlcHRpbmcgd2hhdGV2ZXIgdGhlIGRpc3BsYXkgaGFwcGVuc1xuICAgKiB0byBzaG93LlxuICAgKi9cbiAgZG93bnNhbXBsaW5nRmFjdG9yPzogbnVtYmVyO1xuICAvKiogTWluaW11bSBkZXRlY3Rpb24gY29uZmlkZW5jZSwgcGVyIHRpbGUuICovXG4gIGNvbmZpZGVuY2U/OiBudW1iZXI7XG4gIC8qKiBOTVMgSW9VIHdpdGhpbiBhIHNpbmdsZSB0aWxlLiAqL1xuICBpb3VUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBJbnRlcnNlY3Rpb24tb3Zlci1zbWFsbGVyIHRocmVzaG9sZCBmb3IgbWVyZ2luZyBhY3Jvc3MgdGlsZSBzZWFtcy4gKi9cbiAgbWVyZ2VUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBUaWxlIG92ZXJsYXAsIHBlcmNlbnQuICovXG4gIG92ZXJsYXBYPzogbnVtYmVyO1xuICBvdmVybGFwWT86IG51bWJlcjtcbiAgLyoqIFByb2JhYmlsaXR5IGF0IHdoaWNoIGEgbWFzayBwaXhlbCBjb3VudHMgYXMgaW5zaWRlLiAqL1xuICBtYXNrVGhyZXNob2xkPzogbnVtYmVyO1xuICAvKiogQ2FwIG9uIGRldGVjdGlvbnMgcGVyIHRpbGUuICovXG4gIG1heERldGVjdGlvbnM/OiBudW1iZXI7XG4gIC8qKiBLZWVwIG9ubHkgdGhlc2UgY2xhc3MgaWRzOyBvbWl0IGZvciBhbGwgY2xhc3NlcyB0aGUgbW9kZWwgZGVjbGFyZXMuICovXG4gIGNsYXNzRmlsdGVyPzogbnVtYmVyW107XG4gIC8qKiBEb3VnbGFzLVBldWNrZXIgdG9sZXJhbmNlIGluIHBpeGVscyBmb3Igb3V0bGluZSBzaW1wbGlmaWNhdGlvbjsgMCBkaXNhYmxlcy4gKi9cbiAgc2ltcGxpZnlUb2xlcmFuY2U/OiBudW1iZXI7XG4gIC8qKiBEcm9wIGluc3RhbmNlcyB3aG9zZSBvdXRsaW5lIGFyZWEgaXMgYmVsb3cgdGhpcywgaW4gc3F1YXJlIHBpeGVscy4gKi9cbiAgbWluQXJlYT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFNldCBmYWxzZSB0byBkZXRlY3QgYm94ZXMgd2l0aG91dCBhc3NlbWJsaW5nIG1hc2tzIOKAlCBzdWJzdGFudGlhbGx5IGZhc3RlcixcbiAgICogc2luY2UgbWFzayBhc3NlbWJseSBkb21pbmF0ZXMgdGhlIGNvc3Qgb2YgYSBydW4uIERldGVjdGlvbnMgdGhlbiBjYXJyeSBhXG4gICAqIGJveCBhbmQgY2xhc3MgYnV0IG5vIG91dGxpbmUsIHNvIG5vdGhpbmcgY2FuIGJlIGNvbW1pdHRlZCBhcyBhIHJlZ2lvbi5cbiAgICovXG4gIHdpdGhNYXNrcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBYm9ydCBhbiBpbi1wcm9ncmVzcyBydW4uXG4gICAqXG4gICAqIENhbmNlbGxhdGlvbiBpcyBjb29wZXJhdGl2ZSBhbmQgY2hlY2tlZCBhdCB0aWxlIGJvdW5kYXJpZXMsIHNvIGl0IHRha2VzXG4gICAqIGVmZmVjdCB3aXRoaW4gcm91Z2hseSBvbmUgdGlsZSByYXRoZXIgdGhhbiBpbnN0YW50bHkg4oCUIGEgYHNlc3Npb24ucnVuKClgXG4gICAqIGFscmVhZHkgaW4gZmxpZ2h0IGNhbm5vdCBiZSBpbnRlcnJ1cHRlZC5cbiAgICovXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xufVxuXG4vKipcbiAqIFByb2dyZXNzL3N0YXR1cyBjYWxsYmFja3MgKGFsbCBvcHRpb25hbCkuXG4gKlxuICogRGVsaWJlcmF0ZWx5IG1pcnJvcnMge0BsaW5rIENlbGxTZWdtZW50UHJvZ3Jlc3N9IGluIHNoYXBlIHJhdGhlciB0aGFuIGltcG9ydGluZ1xuICogaXQg4oCUIHRoZSB0d28gY29udHJhY3RzIHN0YXkgaW5kZXBlbmRlbnRseSB2ZXJzaW9uYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZVNlZ21lbnRQcm9ncmVzcyB7XG4gIC8qKiBNb2RlbC1kb3dubG9hZCBwcm9ncmVzcywgMC4uMSAoZmlyc3QgcnVuIG9ubHkpLiAqL1xuICBvblByb2dyZXNzPzogKGZyYWN0aW9uOiBudW1iZXIpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBSYXcgZG93bmxvYWQgYnl0ZSBjb3VudHMsIGZvciBob3N0cyB0aGF0IHJlbmRlciBhIHNpemUgKFwiMTQyIC8gMjg3IE1CXCIpXG4gICAqIHJhdGhlciB0aGFuIGEgYmFyZSBwZXJjZW50YWdlLiBgdG90YWxgIGlzIG51bGwgd2hlbiB0aGUgcmVzcG9uc2UgY2FycmllZCBub1xuICAgKiBDb250ZW50LUxlbmd0aC5cbiAgICpcbiAgICogQSBmcmFjdGlvbiBhbG9uZSBjYW5ub3QgYmUgdHVybmVkIGJhY2sgaW50byBieXRlcywgc28gYSBob3N0IGdpdmVuIG9ubHlcbiAgICoge0BsaW5rIG9uUHJvZ3Jlc3N9IGhhcyB0byBpbnZlbnQgdGhlIG51bWJlcnMg4oCUIHdoaWNoIHJlYWRzIGFzIFwiMCBNQiAvIDAgTUJcIlxuICAgKiB0aGUgbW9tZW50IGl0IGRvZXMuXG4gICAqL1xuICBvbkJ5dGVzPzogKGxvYWRlZDogbnVtYmVyLCB0b3RhbDogbnVtYmVyIHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHBoYXNlLCBlLmcuICdSdW5uaW5nIGluZmVyZW5jZSAodGlsZSAzLzgp4oCmJy4gKi9cbiAgb25TdGF0dXM/OiAoc3RhdHVzOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUluc3RhbmNlU2VnbWVudGVyIHtcbiAgLyoqIERldGVjdCBhbmQgb3V0bGluZSBhbGwgaW5zdGFuY2VzIGluIGFuIFJHQkEgaW1hZ2UuICovXG4gIHNlZ21lbnRJbnN0YW5jZXMoXG4gICAgaW1hZ2U6IHsgZGF0YTogVWludDhDbGFtcGVkQXJyYXk7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0sXG4gICAgb3B0cz86IEluc3RhbmNlU2VnbWVudE9wdGlvbnMsXG4gICAgcHJvZ3Jlc3M/OiBJbnN0YW5jZVNlZ21lbnRQcm9ncmVzcyxcbiAgKTogUHJvbWlzZTxJbnN0YW5jZVNlZ21lbnRhdGlvbj47XG59XG5cbi8qKlxuICogREkgdG9rZW4gZm9yIHRoZSBhdXRvbWF0aWMgaW5zdGFuY2Ugc2VnbWVudGVyLlxuICpcbiAqICoqTm8gZGVmYXVsdC4qKiBJdCB1c2VkIHRvIGZhbGwgYmFjayB0byBhbiBpbi1saWJyYXJ5IFlPTE8gc2VydmljZSwgYW5kIHRoYXRcbiAqIGZhY3Rvcnkgd2FzIHdoYXQgcHVsbGVkIGB5b2xvLXNlZ2RldGVjdC1qc2AgaW50byBldmVyeSBidW5kbGUgb2YgdGhpcyBwYWNrYWdlXG4gKiDigJQgd2hpY2ggaXMgbm90IHNoaXBwYWJsZSB3aGlsZSB0aGUgY2hlY2twb2ludHMgYXJlIGNsb3NlZC4gQSBob3N0IHByb3ZpZGVzIGFuXG4gKiBpbXBsZW1lbnRhdGlvbiAoc2VlIGBAamF4LWRhdGEtc2NpZW5jZS9zY2ktaW1hZ2UtdmlzdWFsaXplci1qYXgtdG9vbHNgKSwgb3JcbiAqIG5vdGhpbmcgZG9lcyBhbmQgbm8gdG9vbCBuZWVkaW5nIGl0IGlzIHJlZ2lzdGVyZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBJTlNUQU5DRV9TRUdNRU5URVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUluc3RhbmNlU2VnbWVudGVyPignSU5TVEFOQ0VfU0VHTUVOVEVSJyk7XG4iXX0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2Utc2VnbWVudGVyLmNvbnRyYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvaW5zdGFuY2Utc2VnbWVudGVyLmNvbnRyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUErSS9DOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQXFCLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFBvcnQgZm9yIGFuIGF1dG9tYXRpYyAqKmluc3RhbmNlKiogc2VnbWVudGVyIOKAlCBvbmUgdGhhdCByZXR1cm5zIGRpc2NyZXRlLFxuICogY2xhc3NpZmllZCBvYmplY3RzIHJhdGhlciB0aGFuIGEgcGVyLXBpeGVsIGxhYmVsIG1hcC5cbiAqXG4gKiBUaGlzIGlzIGEgc2libGluZyBvZiB7QGxpbmsgSUNlbGxTZWdtZW50ZXJ9LCBub3QgYSByZXBsYWNlbWVudC4gQ2VsbHBvc2Utc3R5bGVcbiAqIHNlZ21lbnRlcnMgcHJvZHVjZSBvbmUgZXhjbHVzaXZlIGxhYmVsIHBlciBwaXhlbCwgd2hpY2ggaXMgZXhhY3RseSByaWdodCBmb3JcbiAqIGRlbnNlbHkgcGFja2VkIGNlbGxzOyBhIGRldGVjdG9yIGxpa2UgWU9MTyBwcm9kdWNlcyBvdmVybGFwcGluZyBpbnN0YW5jZXMsXG4gKiBlYWNoIHdpdGggaXRzIG93biBjbGFzcyBhbmQgY29uZmlkZW5jZSwgYW5kIGZsYXR0ZW5pbmcgdGhvc2UgaW50byBhIGxhYmVsIG1hcFxuICogd291bGQgc2lsZW50bHkgZGlzY2FyZCBib3RoIHRoZSBvdmVybGFwIGFuZCB0aGUgY2xhc3NpZmljYXRpb24uIFRoZSB0d29cbiAqIG91dHB1dHMgYXJlIGdlbnVpbmVseSBkaWZmZXJlbnQgc2hhcGVzLCBzbyB0aGV5IGdldCBkaWZmZXJlbnQgcG9ydHMuXG4gKlxuICogR2VvbWV0cnkgaXMgcmV0dXJuZWQgYXMgcG9seWdvbiByaW5ncyBpbiAqKmltYWdlIHBpeGVscyoqLCByZWFkeSB0byBiZWNvbWVcbiAqIHtAbGluayBSZWdpb259cyB3aXRob3V0IGEgc2Vjb25kIGNvbnZlcnNpb24gc3RlcC5cbiAqL1xuXG4vKiogQSBjbG9zZWQgcmluZzsgdGhlIGxhc3QgcG9pbnQgaXMgTk9UIGEgcmVwZWF0IG9mIHRoZSBmaXJzdC4gKi9cbmV4cG9ydCB0eXBlIEluc3RhbmNlUmluZyA9IEFycmF5PFtudW1iZXIsIG51bWJlcl0+O1xuXG4vKiogT25lIHBvbHlnb24gd2l0aCBvcHRpb25hbCBpbnRlcmlvciByaW5ncyAoZG9udXQgaG9sZXMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZVBvbHlnb24ge1xuICBleHRlcmlvcjogSW5zdGFuY2VSaW5nO1xuICBob2xlczogSW5zdGFuY2VSaW5nW107XG59XG5cbi8qKiBPbmUgZGV0ZWN0ZWQgb2JqZWN0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZURldGVjdGlvbiB7XG4gIC8qKlxuICAgKiBPdXRsaW5lKHMpIG9mIHRoaXMgaW5zdGFuY2UuIFVzdWFsbHkgb25lLCBidXQgYSBtYXNrIHRoYXQgc3BsaXRzIHVuZGVyXG4gICAqIHRocmVzaG9sZGluZyB5aWVsZHMgc2V2ZXJhbCDigJQgdGhleSBhbGwgYmVsb25nIHRvIHRoZSBzYW1lIGRldGVjdGlvbi5cbiAgICovXG4gIHBvbHlnb25zOiBJbnN0YW5jZVBvbHlnb25bXTtcbiAgLyoqIGBbeDEsIHkxLCB4MiwgeTJdYCBpbiBpbWFnZSBwaXhlbHMuICovXG4gIGJveDogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIC8qKiBNb2RlbCBjb25maWRlbmNlLCAwLi4xLiAqL1xuICBzY29yZTogbnVtYmVyO1xuICBjbGFzc0lkOiBudW1iZXI7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSByZXN1bHQgb2Ygb25lIHtAbGluayBJSW5zdGFuY2VTZWdtZW50ZXJ9IHJ1bjogZXZlcnkgZGV0ZWN0aW9uLCBpbiB0aGUgcGl4ZWwgZnJhbWUgb2ZcbiAqIHRoZSBgd2lkdGggw5cgaGVpZ2h0YCBpbWFnZSB0aGF0IHdhcyBzZWdtZW50ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VTZWdtZW50YXRpb24ge1xuICBkZXRlY3Rpb25zOiBJbnN0YW5jZURldGVjdGlvbltdO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgLyoqIENsYXNzIG5hbWVzIGluZGV4ZWQgYnkgY2xhc3MgaWQsIGZyb20gdGhlIG1vZGVsJ3Mgb3duIG1ldGFkYXRhLiAqL1xuICBjbGFzc05hbWVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBUdW5hYmxlcyBmb3Igb25lIHJ1bi5cbiAqXG4gKiBUaHJlZSBzZXBhcmF0ZSB0aHJlc2hvbGRzIGFyZSBpbiBwbGF5IGFuZCB0aGV5IGFyZSBlYXN5IHRvIGNvbmZsYXRlOlxuICogYGNvbmZpZGVuY2VgIGFuZCBgaW91VGhyZXNob2xkYCBhY3QgcGVyIHRpbGUsIHdoaWxlIGBtZXJnZVRocmVzaG9sZGAgZ292ZXJuc1xuICogdGhlIGNyb3NzLXRpbGUgcmVjb25jaWxpYXRpb24uIFRoZXkgY29tZSBmcm9tIGRpZmZlcmVudCBzdGFnZXMgb2YgdGhlXG4gKiBwaXBlbGluZSBhbmQgYXJlIG5vdCBpbnRlcmNoYW5nZWFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VTZWdtZW50T3B0aW9ucyB7XG4gIC8qKiBXaGljaCByZWdpc3RlcmVkIG1vZGVsIHRvIHJ1bi4gRGVmYXVsdHMgdG8gdGhlIHJlZ2lzdHJ5J3MgZGVmYXVsdC4gKi9cbiAgbW9kZWxJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFNjYWxlIHRvIHJ1biBhdCwgYXMgYSBkaXZpc29yIG9mIGZ1bGwgcmVzb2x1dGlvbiDigJQgdGhlIHNhbWUgbWVhbmluZyB0aGVcbiAgICogc2VydmVyIGdpdmVzIGl0LlxuICAgKlxuICAgKiBUaGlzIGlzIHdoYXQgcHV0cyBvYmplY3RzIGF0IHRoZSBzaXplIHRoZSBjaGVja3BvaW50IHdhcyB0cmFpbmVkIG9uLCBhbmQgaXRcbiAgICogbWF0dGVycyBtb3JlIHRoYW4gYW55IHRocmVzaG9sZDogcnVuIGEgZGV0ZWN0b3IgYXQgdGhlIHdyb25nIG9iamVjdCBzY2FsZVxuICAgKiBhbmQgaXQgZmluZHMgbm90aGluZy4gQSBjYWxsZXIgdGhhdCBjYW4gcmUtY3JvcCB0aGUgc291cmNlIChhIHRpbGUtYmFja2VkXG4gICAqIHZpZXdlcikgc2hvdWxkIGhvbm91ciBpdCByYXRoZXIgdGhhbiBhY2NlcHRpbmcgd2hhdGV2ZXIgdGhlIGRpc3BsYXkgaGFwcGVuc1xuICAgKiB0byBzaG93LlxuICAgKi9cbiAgZG93bnNhbXBsaW5nRmFjdG9yPzogbnVtYmVyO1xuICAvKiogTWluaW11bSBkZXRlY3Rpb24gY29uZmlkZW5jZSwgcGVyIHRpbGUuICovXG4gIGNvbmZpZGVuY2U/OiBudW1iZXI7XG4gIC8qKiBOTVMgSW9VIHdpdGhpbiBhIHNpbmdsZSB0aWxlLiAqL1xuICBpb3VUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBJbnRlcnNlY3Rpb24tb3Zlci1zbWFsbGVyIHRocmVzaG9sZCBmb3IgbWVyZ2luZyBhY3Jvc3MgdGlsZSBzZWFtcy4gKi9cbiAgbWVyZ2VUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBUaWxlIG92ZXJsYXAsIHBlcmNlbnQuICovXG4gIG92ZXJsYXBYPzogbnVtYmVyO1xuICBvdmVybGFwWT86IG51bWJlcjtcbiAgLyoqIFByb2JhYmlsaXR5IGF0IHdoaWNoIGEgbWFzayBwaXhlbCBjb3VudHMgYXMgaW5zaWRlLiAqL1xuICBtYXNrVGhyZXNob2xkPzogbnVtYmVyO1xuICAvKiogQ2FwIG9uIGRldGVjdGlvbnMgcGVyIHRpbGUuICovXG4gIG1heERldGVjdGlvbnM/OiBudW1iZXI7XG4gIC8qKiBLZWVwIG9ubHkgdGhlc2UgY2xhc3MgaWRzOyBvbWl0IGZvciBhbGwgY2xhc3NlcyB0aGUgbW9kZWwgZGVjbGFyZXMuICovXG4gIGNsYXNzRmlsdGVyPzogbnVtYmVyW107XG4gIC8qKiBEb3VnbGFzLVBldWNrZXIgdG9sZXJhbmNlIGluIHBpeGVscyBmb3Igb3V0bGluZSBzaW1wbGlmaWNhdGlvbjsgMCBkaXNhYmxlcy4gKi9cbiAgc2ltcGxpZnlUb2xlcmFuY2U/OiBudW1iZXI7XG4gIC8qKiBEcm9wIGluc3RhbmNlcyB3aG9zZSBvdXRsaW5lIGFyZWEgaXMgYmVsb3cgdGhpcywgaW4gc3F1YXJlIHBpeGVscy4gKi9cbiAgbWluQXJlYT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFNldCBmYWxzZSB0byBkZXRlY3QgYm94ZXMgd2l0aG91dCBhc3NlbWJsaW5nIG1hc2tzIOKAlCBzdWJzdGFudGlhbGx5IGZhc3RlcixcbiAgICogc2luY2UgbWFzayBhc3NlbWJseSBkb21pbmF0ZXMgdGhlIGNvc3Qgb2YgYSBydW4uIERldGVjdGlvbnMgdGhlbiBjYXJyeSBhXG4gICAqIGJveCBhbmQgY2xhc3MgYnV0IG5vIG91dGxpbmUsIHNvIG5vdGhpbmcgY2FuIGJlIGNvbW1pdHRlZCBhcyBhIHJlZ2lvbi5cbiAgICovXG4gIHdpdGhNYXNrcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBBYm9ydCBhbiBpbi1wcm9ncmVzcyBydW4uXG4gICAqXG4gICAqIENhbmNlbGxhdGlvbiBpcyBjb29wZXJhdGl2ZSBhbmQgY2hlY2tlZCBhdCB0aWxlIGJvdW5kYXJpZXMsIHNvIGl0IHRha2VzXG4gICAqIGVmZmVjdCB3aXRoaW4gcm91Z2hseSBvbmUgdGlsZSByYXRoZXIgdGhhbiBpbnN0YW50bHkg4oCUIGEgYHNlc3Npb24ucnVuKClgXG4gICAqIGFscmVhZHkgaW4gZmxpZ2h0IGNhbm5vdCBiZSBpbnRlcnJ1cHRlZC5cbiAgICovXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xufVxuXG4vKipcbiAqIFByb2dyZXNzL3N0YXR1cyBjYWxsYmFja3MgKGFsbCBvcHRpb25hbCkuXG4gKlxuICogRGVsaWJlcmF0ZWx5IG1pcnJvcnMge0BsaW5rIENlbGxTZWdtZW50UHJvZ3Jlc3N9IGluIHNoYXBlIHJhdGhlciB0aGFuIGltcG9ydGluZ1xuICogaXQg4oCUIHRoZSB0d28gY29udHJhY3RzIHN0YXkgaW5kZXBlbmRlbnRseSB2ZXJzaW9uYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZVNlZ21lbnRQcm9ncmVzcyB7XG4gIC8qKiBNb2RlbC1kb3dubG9hZCBwcm9ncmVzcywgMC4uMSAoZmlyc3QgcnVuIG9ubHkpLiAqL1xuICBvblByb2dyZXNzPzogKGZyYWN0aW9uOiBudW1iZXIpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBSYXcgZG93bmxvYWQgYnl0ZSBjb3VudHMsIGZvciBob3N0cyB0aGF0IHJlbmRlciBhIHNpemUgKFwiMTQyIC8gMjg3IE1CXCIpXG4gICAqIHJhdGhlciB0aGFuIGEgYmFyZSBwZXJjZW50YWdlLiBgdG90YWxgIGlzIG51bGwgd2hlbiB0aGUgcmVzcG9uc2UgY2FycmllZCBub1xuICAgKiBDb250ZW50LUxlbmd0aC5cbiAgICpcbiAgICogQSBmcmFjdGlvbiBhbG9uZSBjYW5ub3QgYmUgdHVybmVkIGJhY2sgaW50byBieXRlcywgc28gYSBob3N0IGdpdmVuIG9ubHlcbiAgICoge0BsaW5rIG9uUHJvZ3Jlc3N9IGhhcyB0byBpbnZlbnQgdGhlIG51bWJlcnMg4oCUIHdoaWNoIHJlYWRzIGFzIFwiMCBNQiAvIDAgTUJcIlxuICAgKiB0aGUgbW9tZW50IGl0IGRvZXMuXG4gICAqL1xuICBvbkJ5dGVzPzogKGxvYWRlZDogbnVtYmVyLCB0b3RhbDogbnVtYmVyIHwgbnVsbCkgPT4gdm9pZDtcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIHBoYXNlLCBlLmcuICdSdW5uaW5nIGluZmVyZW5jZSAodGlsZSAzLzgp4oCmJy4gKi9cbiAgb25TdGF0dXM/OiAoc3RhdHVzOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbi8qKiBBIHNlZ21lbnRlciB0aGF0IHJldHVybnMgZGlzY3JldGUsIGNsYXNzaWZpZWQsIHBvc3NpYmx5IG92ZXJsYXBwaW5nIGluc3RhbmNlcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUluc3RhbmNlU2VnbWVudGVyIHtcbiAgLyoqIERldGVjdCBhbmQgb3V0bGluZSBhbGwgaW5zdGFuY2VzIGluIGFuIFJHQkEgaW1hZ2UuICovXG4gIHNlZ21lbnRJbnN0YW5jZXMoXG4gICAgaW1hZ2U6IHsgZGF0YTogVWludDhDbGFtcGVkQXJyYXk7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0sXG4gICAgb3B0cz86IEluc3RhbmNlU2VnbWVudE9wdGlvbnMsXG4gICAgcHJvZ3Jlc3M/OiBJbnN0YW5jZVNlZ21lbnRQcm9ncmVzcyxcbiAgKTogUHJvbWlzZTxJbnN0YW5jZVNlZ21lbnRhdGlvbj47XG59XG5cbi8qKlxuICogREkgdG9rZW4gZm9yIHRoZSBhdXRvbWF0aWMgaW5zdGFuY2Ugc2VnbWVudGVyLlxuICpcbiAqICoqTm8gZGVmYXVsdC4qKiBJdCB1c2VkIHRvIGZhbGwgYmFjayB0byBhbiBpbi1saWJyYXJ5IFlPTE8gc2VydmljZSwgYW5kIHRoYXRcbiAqIGZhY3Rvcnkgd2FzIHdoYXQgcHVsbGVkIGB5b2xvLXNlZ2RldGVjdC1qc2AgaW50byBldmVyeSBidW5kbGUgb2YgdGhpcyBwYWNrYWdlXG4gKiDigJQgd2hpY2ggaXMgbm90IHNoaXBwYWJsZSB3aGlsZSB0aGUgY2hlY2twb2ludHMgYXJlIGNsb3NlZC4gQSBob3N0IHByb3ZpZGVzIGFuXG4gKiBpbXBsZW1lbnRhdGlvbiAoc2VlIGBAamF4LWRhdGEtc2NpZW5jZS9zY2ktaW1hZ2UtdmlzdWFsaXplci1qYXgtdG9vbHNgKSwgb3JcbiAqIG5vdGhpbmcgZG9lcyBhbmQgbm8gdG9vbCBuZWVkaW5nIGl0IGlzIHJlZ2lzdGVyZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBJTlNUQU5DRV9TRUdNRU5URVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUluc3RhbmNlU2VnbWVudGVyPignSU5TVEFOQ0VfU0VHTUVOVEVSJyk7XG4iXX0=
@@ -7,10 +7,9 @@
7
7
  * tiles encode gray as r=g=b, so max is exact; it also tolerates tinted
8
8
  * pixels).
9
9
  */
10
- /** ITU-R BT.601 luminance for an RGB pixel (Plotly's scalar projection). */
11
- export function bt601Luminance(r, g, b) {
12
- return 0.299 * r + 0.587 * g + 0.114 * b;
13
- }
10
+ /** ITU-R BT.601 luminance for an RGB pixel (Plotly's scalar projection): napari-js's
11
+ * `luminance8`, under the name SIV's callers use, so there is one copy of the weights. */
12
+ export { luminance8 as bt601Luminance } from 'napari-js';
14
13
  /** Max of the three channels (the OSD tile path's scalar projection).
15
14
  * NOTE: the per-pixel recolor loop in `osd/display-pipeline.ts` keeps this
16
15
  * inlined on purpose — it runs ~262k times per tile. */
@@ -25,4 +24,48 @@ export function histogram256(counts) {
25
24
  max: counts.reduce((m, c) => (c > m ? c : m), 0),
26
25
  };
27
26
  }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZW5zaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvaW50ZW5zaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7OztHQVFHO0FBRUgsNEVBQTRFO0FBQzVFLE1BQU0sVUFBVSxjQUFjLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO0lBQzVELE9BQU8sS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVEOzt5REFFeUQ7QUFDekQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDcEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRCwwRUFBMEU7QUFDMUUsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFnQjtJQUMzQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsTUFBTTtRQUNOLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNqRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIaXN0b2dyYW0gfSBmcm9tICcuL2NoYW5uZWwtaGlzdG9ncmFtLWFwaS5jb250cmFjdCc7XG5cbi8qKlxuICogU2hhcmVkIGludGVuc2l0eSBoZWxwZXJzIChyZWZhY3RvcmluZyBwbGFuLCBTdGVwIDUpLiBUaGUgdHdvIGJhY2tlbmRzIHVzZVxuICogdHdvIERJRkZFUkVOVCBzY2FsYXIgcHJvamVjdGlvbnMgYnkgZGVzaWduIOKAlCBkbyBub3QgdW5pZnkgdGhlbTpcbiAqICAtIFBsb3RseSBwcm9qZWN0cyBgW3IsZyxiXWAgZnJhbWUgY2VsbHMgd2l0aCBJVFUtUiBCVC42MDEgbHVtaW5hbmNlIChtYXRjaGVzXG4gKiAgICB3aGF0IGl0cyBoZWF0bWFwIGhhcyBhbHdheXMgcmVuZGVyZWQpO1xuICogIC0gdGhlIE9TRCB0aWxlIHBhdGggdGFrZXMgdGhlIG1heCBvZiB0aGUgZGVjb2RlZCBSR0JBIGNoYW5uZWxzIChzaW5nbGUtYmFuZFxuICogICAgdGlsZXMgZW5jb2RlIGdyYXkgYXMgcj1nPWIsIHNvIG1heCBpcyBleGFjdDsgaXQgYWxzbyB0b2xlcmF0ZXMgdGludGVkXG4gKiAgICBwaXhlbHMpLlxuICovXG5cbi8qKiBJVFUtUiBCVC42MDEgbHVtaW5hbmNlIGZvciBhbiBSR0IgcGl4ZWwgKFBsb3RseSdzIHNjYWxhciBwcm9qZWN0aW9uKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidDYwMUx1bWluYW5jZShyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIDAuMjk5ICogciArIDAuNTg3ICogZyArIDAuMTE0ICogYjtcbn1cblxuLyoqIE1heCBvZiB0aGUgdGhyZWUgY2hhbm5lbHMgKHRoZSBPU0QgdGlsZSBwYXRoJ3Mgc2NhbGFyIHByb2plY3Rpb24pLlxuICogIE5PVEU6IHRoZSBwZXItcGl4ZWwgcmVjb2xvciBsb29wIGluIGBvc2QvZGlzcGxheS1waXBlbGluZS50c2Aga2VlcHMgdGhpc1xuICogIGlubGluZWQgb24gcHVycG9zZSDigJQgaXQgcnVucyB+MjYyayB0aW1lcyBwZXIgdGlsZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXhSZ2IocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiByID49IGcgPyAociA+PSBiID8gciA6IGIpIDogZyA+PSBiID8gZyA6IGI7XG59XG5cbi8qKiBXcmFwIDI1NiByYXcgYmluIGNvdW50cyBhcyBhbiBJSGlzdG9ncmFtICgwLi4yNTUgbGVmdCBlZGdlcyArIG1heCkuICovXG5leHBvcnQgZnVuY3Rpb24gaGlzdG9ncmFtMjU2KGNvdW50czogbnVtYmVyW10pOiBJSGlzdG9ncmFtIHtcbiAgcmV0dXJuIHtcbiAgICBiaW5zOiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNTYgfSwgKF8sIGkpID0+IGkpLFxuICAgIGNvdW50cyxcbiAgICBtYXg6IGNvdW50cy5yZWR1Y2UoKG0sIGMpID0+IChjID4gbSA/IGMgOiBtKSwgMCksXG4gIH07XG59XG4iXX0=
27
+ /**
28
+ * Saturation-based auto-window: pick `[min, max]` so about `saturation` (0..0.5) of the
29
+ * pixels clip at each end of the histogram. A dominant first or last bin (unscanned
30
+ * padding, clipped background) is dropped first so it does not skew the range.
31
+ *
32
+ * Returns values from `h.bins` (native units for a native histogram), or `fallback` when
33
+ * the histogram is empty or holds no counts — each caller keeps its own: the 8-bit store
34
+ * falls back to the full byte range, the channel histogram to its slider bounds.
35
+ */
36
+ export function autoWindowFromHistogram(h, saturation, fallback) {
37
+ const counts = h.counts.slice();
38
+ const n = counts.length;
39
+ if (n === 0)
40
+ return [fallback[0], fallback[1]];
41
+ if (n > 2 && counts[0] > counts[1])
42
+ counts[0] = 0;
43
+ if (n > 2 && counts[n - 1] > counts[n - 2])
44
+ counts[n - 1] = 0;
45
+ let total = 0;
46
+ for (const c of counts)
47
+ total += c;
48
+ if (total <= 0)
49
+ return [fallback[0], fallback[1]];
50
+ const target = total * Math.max(0, Math.min(0.5, saturation));
51
+ let acc = 0;
52
+ let min = h.bins[0];
53
+ for (let i = 0; i < n; i++) {
54
+ acc += counts[i];
55
+ if (acc > target) {
56
+ min = h.bins[i];
57
+ break;
58
+ }
59
+ }
60
+ acc = 0;
61
+ let max = h.bins[n - 1];
62
+ for (let i = n - 1; i >= 0; i--) {
63
+ acc += counts[i];
64
+ if (acc > target) {
65
+ max = h.bins[i];
66
+ break;
67
+ }
68
+ }
69
+ return [min, max];
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZW5zaXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb250cmFjdHMvaW50ZW5zaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7OztHQVFHO0FBRUg7MkZBQzJGO0FBQzNGLE9BQU8sRUFBRSxVQUFVLElBQUksY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpEOzt5REFFeUQ7QUFDekQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7SUFDcEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRCwwRUFBMEU7QUFDMUUsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFnQjtJQUMzQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsTUFBTTtRQUNOLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNqRCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxDQUFhLEVBQ2IsVUFBa0IsRUFDbEIsUUFBbUM7SUFFbkMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNoQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFBRSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU07UUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ25DLElBQUksS0FBSyxJQUFJLENBQUM7UUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sTUFBTSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzlELElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNaLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzNCLEdBQUcsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsSUFBSSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDakIsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEIsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBQ0QsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNSLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixJQUFJLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUNqQixHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQixNQUFNO1FBQ1IsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGlzdG9ncmFtIH0gZnJvbSAnLi9jaGFubmVsLWhpc3RvZ3JhbS1hcGkuY29udHJhY3QnO1xuXG4vKipcbiAqIFNoYXJlZCBpbnRlbnNpdHkgaGVscGVycyAocmVmYWN0b3JpbmcgcGxhbiwgU3RlcCA1KS4gVGhlIHR3byBiYWNrZW5kcyB1c2VcbiAqIHR3byBESUZGRVJFTlQgc2NhbGFyIHByb2plY3Rpb25zIGJ5IGRlc2lnbiDigJQgZG8gbm90IHVuaWZ5IHRoZW06XG4gKiAgLSBQbG90bHkgcHJvamVjdHMgYFtyLGcsYl1gIGZyYW1lIGNlbGxzIHdpdGggSVRVLVIgQlQuNjAxIGx1bWluYW5jZSAobWF0Y2hlc1xuICogICAgd2hhdCBpdHMgaGVhdG1hcCBoYXMgYWx3YXlzIHJlbmRlcmVkKTtcbiAqICAtIHRoZSBPU0QgdGlsZSBwYXRoIHRha2VzIHRoZSBtYXggb2YgdGhlIGRlY29kZWQgUkdCQSBjaGFubmVscyAoc2luZ2xlLWJhbmRcbiAqICAgIHRpbGVzIGVuY29kZSBncmF5IGFzIHI9Zz1iLCBzbyBtYXggaXMgZXhhY3Q7IGl0IGFsc28gdG9sZXJhdGVzIHRpbnRlZFxuICogICAgcGl4ZWxzKS5cbiAqL1xuXG4vKiogSVRVLVIgQlQuNjAxIGx1bWluYW5jZSBmb3IgYW4gUkdCIHBpeGVsIChQbG90bHkncyBzY2FsYXIgcHJvamVjdGlvbik6IG5hcGFyaS1qcydzXG4gKiAgYGx1bWluYW5jZThgLCB1bmRlciB0aGUgbmFtZSBTSVYncyBjYWxsZXJzIHVzZSwgc28gdGhlcmUgaXMgb25lIGNvcHkgb2YgdGhlIHdlaWdodHMuICovXG5leHBvcnQgeyBsdW1pbmFuY2U4IGFzIGJ0NjAxTHVtaW5hbmNlIH0gZnJvbSAnbmFwYXJpLWpzJztcblxuLyoqIE1heCBvZiB0aGUgdGhyZWUgY2hhbm5lbHMgKHRoZSBPU0QgdGlsZSBwYXRoJ3Mgc2NhbGFyIHByb2plY3Rpb24pLlxuICogIE5PVEU6IHRoZSBwZXItcGl4ZWwgcmVjb2xvciBsb29wIGluIGBvc2QvZGlzcGxheS1waXBlbGluZS50c2Aga2VlcHMgdGhpc1xuICogIGlubGluZWQgb24gcHVycG9zZSDigJQgaXQgcnVucyB+MjYyayB0aW1lcyBwZXIgdGlsZS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXhSZ2IocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiByID49IGcgPyAociA+PSBiID8gciA6IGIpIDogZyA+PSBiID8gZyA6IGI7XG59XG5cbi8qKiBXcmFwIDI1NiByYXcgYmluIGNvdW50cyBhcyBhbiBJSGlzdG9ncmFtICgwLi4yNTUgbGVmdCBlZGdlcyArIG1heCkuICovXG5leHBvcnQgZnVuY3Rpb24gaGlzdG9ncmFtMjU2KGNvdW50czogbnVtYmVyW10pOiBJSGlzdG9ncmFtIHtcbiAgcmV0dXJuIHtcbiAgICBiaW5zOiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAyNTYgfSwgKF8sIGkpID0+IGkpLFxuICAgIGNvdW50cyxcbiAgICBtYXg6IGNvdW50cy5yZWR1Y2UoKG0sIGMpID0+IChjID4gbSA/IGMgOiBtKSwgMCksXG4gIH07XG59XG5cbi8qKlxuICogU2F0dXJhdGlvbi1iYXNlZCBhdXRvLXdpbmRvdzogcGljayBgW21pbiwgbWF4XWAgc28gYWJvdXQgYHNhdHVyYXRpb25gICgwLi4wLjUpIG9mIHRoZVxuICogcGl4ZWxzIGNsaXAgYXQgZWFjaCBlbmQgb2YgdGhlIGhpc3RvZ3JhbS4gQSBkb21pbmFudCBmaXJzdCBvciBsYXN0IGJpbiAodW5zY2FubmVkXG4gKiBwYWRkaW5nLCBjbGlwcGVkIGJhY2tncm91bmQpIGlzIGRyb3BwZWQgZmlyc3Qgc28gaXQgZG9lcyBub3Qgc2tldyB0aGUgcmFuZ2UuXG4gKlxuICogUmV0dXJucyB2YWx1ZXMgZnJvbSBgaC5iaW5zYCAobmF0aXZlIHVuaXRzIGZvciBhIG5hdGl2ZSBoaXN0b2dyYW0pLCBvciBgZmFsbGJhY2tgIHdoZW5cbiAqIHRoZSBoaXN0b2dyYW0gaXMgZW1wdHkgb3IgaG9sZHMgbm8gY291bnRzIOKAlCBlYWNoIGNhbGxlciBrZWVwcyBpdHMgb3duOiB0aGUgOC1iaXQgc3RvcmVcbiAqIGZhbGxzIGJhY2sgdG8gdGhlIGZ1bGwgYnl0ZSByYW5nZSwgdGhlIGNoYW5uZWwgaGlzdG9ncmFtIHRvIGl0cyBzbGlkZXIgYm91bmRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXV0b1dpbmRvd0Zyb21IaXN0b2dyYW0oXG4gIGg6IElIaXN0b2dyYW0sXG4gIHNhdHVyYXRpb246IG51bWJlcixcbiAgZmFsbGJhY2s6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0sXG4pOiBbbnVtYmVyLCBudW1iZXJdIHtcbiAgY29uc3QgY291bnRzID0gaC5jb3VudHMuc2xpY2UoKTtcbiAgY29uc3QgbiA9IGNvdW50cy5sZW5ndGg7XG4gIGlmIChuID09PSAwKSByZXR1cm4gW2ZhbGxiYWNrWzBdLCBmYWxsYmFja1sxXV07XG4gIGlmIChuID4gMiAmJiBjb3VudHNbMF0gPiBjb3VudHNbMV0pIGNvdW50c1swXSA9IDA7XG4gIGlmIChuID4gMiAmJiBjb3VudHNbbiAtIDFdID4gY291bnRzW24gLSAyXSkgY291bnRzW24gLSAxXSA9IDA7XG4gIGxldCB0b3RhbCA9IDA7XG4gIGZvciAoY29uc3QgYyBvZiBjb3VudHMpIHRvdGFsICs9IGM7XG4gIGlmICh0b3RhbCA8PSAwKSByZXR1cm4gW2ZhbGxiYWNrWzBdLCBmYWxsYmFja1sxXV07XG4gIGNvbnN0IHRhcmdldCA9IHRvdGFsICogTWF0aC5tYXgoMCwgTWF0aC5taW4oMC41LCBzYXR1cmF0aW9uKSk7XG4gIGxldCBhY2MgPSAwO1xuICBsZXQgbWluID0gaC5iaW5zWzBdO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IG47IGkrKykge1xuICAgIGFjYyArPSBjb3VudHNbaV07XG4gICAgaWYgKGFjYyA+IHRhcmdldCkge1xuICAgICAgbWluID0gaC5iaW5zW2ldO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIGFjYyA9IDA7XG4gIGxldCBtYXggPSBoLmJpbnNbbiAtIDFdO1xuICBmb3IgKGxldCBpID0gbiAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgYWNjICs9IGNvdW50c1tpXTtcbiAgICBpZiAoYWNjID4gdGFyZ2V0KSB7XG4gICAgICBtYXggPSBoLmJpbnNbaV07XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFttaW4sIG1heF07XG59XG4iXX0=
@@ -63,4 +63,4 @@ export const PLOT_MODE_SESSION = new InjectionToken('PLOT_MODE_SESSION');
63
63
  export function contributedPlotTypeOption(d, base) {
64
64
  return { ...d, source: base.source };
65
65
  }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC10eXBlLWNvbnRyaWJ1dGlvbi5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Bsb3QtdHlwZS1jb250cmlidXRpb24uY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQTBJckQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQ2xDLElBQUksY0FBYyxDQUFrQyx5QkFBeUIsQ0FBQyxDQUFDO0FBQ2pGLGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLENBQUMsQ0FBQztBQUMxRixrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFhMUYsbUZBQW1GO0FBQ25GLE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsQ0FBZ0MsRUFDaEMsSUFBd0I7SUFFeEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSG93IGEgcGxvdCBtb2RlIGdldHMgaW50byB0aGUgcGxvdC10eXBlIHNlbGVjdG9yIHdpdGhvdXQgdGhpcyBsaWJyYXJ5IGtub3dpbmdcbiAqIHdoYXQgaXQgaXMuXG4gKlxuICogQSBwYWNrYWdlIGNvbnRyaWJ1dGVzIGEgbW9kZSBieSBwcm92aWRpbmcgYSB7QGxpbmsgUGxvdFR5cGVDb250cmlidXRpb259IG9uIHRoZVxuICoge0BsaW5rIFBMT1RfVFlQRV9DT05UUklCVVRJT05TfSBtdWx0aS1wcm92aWRlciB0b2tlbiwgdGhlIHNhbWUgd2F5XG4gKiBgVE9PTEJBUl9UT09MU2AgY29udHJpYnV0ZXMgdG9vbGJhciB0b29scy4gTm90aGluZyByZWdpc3RlcnMgYXQgaW1wb3J0IHRpbWU6XG4gKiBpbnN0YWxsaW5nIGEgcGFja2FnZSBtYWtlcyBhIG1vZGUgYXZhaWxhYmxlLCBhbmQgYWRkaW5nIGl0cyBwcm92aWRlciB0dXJucyBpdFxuICogb24uIEEgcGxhaW4gb2JqZWN0IHdvcmtzLCBzbyB0aGUgY29udHJpYnV0aW5nIHBhY2thZ2UgbmVlZHMgbm8gQW5ndWxhclxuICogY29tcGlsZXIgYW5kIG5vIGRlY29yYXRvcnM6XG4gKlxuICogICAgIHsgcHJvdmlkZTogUExPVF9UWVBFX0NPTlRSSUJVVElPTlMsIHVzZVZhbHVlOiBteUNvbnRyaWJ1dGlvbiwgbXVsdGk6IHRydWUgfVxuICogICAgIHsgcHJvdmlkZTogUExPVF9UWVBFX0NPTlRSSUJVVElPTlMsIHVzZUZhY3Rvcnk6ICgpID0+IG1ha2VDb250cmlidXRpb24oKSwgbXVsdGk6IHRydWUgfVxuICpcbiAqIFByb3ZpZGUgbm90aGluZyBhbmQgdGhlIHNlbGVjdG9yLCB0aGUgcmVuZGVyIHBhdGggYW5kIHRoZSBwYW5lbCBhcmVhIGJlaGF2ZVxuICogZXhhY3RseSBhcyB0aGV5IGRpZCBiZWZvcmUgdGhpcyBleHRlbnNpb24gcG9pbnQgZXhpc3RlZC5cbiAqXG4gKiBXSFkgQSBDT05UUklCVVRFRCBNT0RFIFJJREVTIE9OIEEgQlVJTFQtSU4gT05FXG4gKiBBIGNvbnRyaWJ1dGVkIG1vZGUgZG9lcyBub3QgYnJpbmcgYSByZW5kZXJlci4gSXQgbmFtZXMgYSBidWlsdC1pblxuICoge0BsaW5rIENvbnRyaWJ1dGVkUGxvdFR5cGVEZXNjcmlwdG9yLmJhc2VUeXBlfSDigJQgaW4gdjEgb25seSBgUGxvdFR5cGUuSU1BR0VgLFxuICogdGhlIE9wZW5TZWFkcmFnb24gdmlldyDigJQgYW5kIHRoZSB2aXN1YWxpemVyIHBsb3RzIGV4YWN0bHkgYXMgaWYgdGhhdCB0eXBlIGhhZFxuICogYmVlbiBzZWxlY3RlZDogc2FtZSBiYWNrZW5kLCBzYW1lIHRvb2xiYXIsIHNhbWUgcmVnaW9uIHRvb2xzLCBzYW1lIHdoZWVsXG4gKiBoYW5kbGluZy4gVGhlIGNvbnRyaWJ1dGlvbiB0aGVuIGRyYXdzIG92ZXIgaXQgdGhyb3VnaCB0aGVcbiAqIHtAbGluayBQbG90TW9kZVZpZXdwb3J0fSBhbmQgdGFsa3MgdG8gdGhlIHZpZXdlciB0aHJvdWdoIHRoZSBwdWJsaWNcbiAqIHtAbGluayBJVmlzdWFsaXplcn0uIFRoYXQga2VlcHMgZXZlcnkgcmVuZGVyaW5nIGRlY2lzaW9uIGluIG9uZSBwbGFjZSBhbmQgbWVhbnNcbiAqIGEgY29udHJpYnV0aW9uIGNhbiBuZXZlciBiZSBoYWxmLXN1cHBvcnRlZCBieSBzb21lIGNvZGUgcGF0aCB0aGF0IHN3aXRjaGVzIG9uXG4gKiB0aGUgcGxvdCB0eXBlLlxuICpcbiAqIFdIQVQgVEhFIFZJU1VBTElaRVIgR1VBUkFOVEVFU1xuICogIDEuIENvbnRyaWJ1dGVkIGRlc2NyaXB0b3JzIGFyZSBhcHBlbmRlZCBhZnRlciB0aGUgYnVpbHQtaW4gb25lcyBhbmQgY3VyYXRlZCBieVxuICogICAgIHRoZSBzYW1lIGBwcm9kdWN0aW9uTGFiZWxgIC8gdGVzdC1tb2RlIC8gYHJlcXVpcmVzKmAgcnVsZXMuXG4gKiAgMi4gU2VsZWN0aW5nIG9uZSBwbG90cyB3aXRoIGBiYXNlVHlwZWAncyBiYWNrZW5kLCB0aGVuIGNhbGxzIGBhY3RpdmF0ZShjdHgpYFxuICogICAgIG9uY2UgdGhlIHZpZXdwb3J0IGlzIHJlYWR5LlxuICogIDMuIExlYXZpbmcgdGhlIG1vZGUg4oCUIGFub3RoZXIgdHlwZSwgYW4gaW1hZ2Ugc3dpdGNoIChvciBhbnkgcmUtcmVuZGVyIG9mIHRoZVxuICogICAgIGJhc2UgdmlldyksIG9yIHRoZSB2aXN1YWxpemVyIGJlaW5nIGRlc3Ryb3llZCDigJQgY2FsbHMgYHNlc3Npb24uZGVhY3RpdmF0ZSgpYFxuICogICAgIGV4YWN0bHkgb25jZSwgYmVmb3JlIHRoZSBuZXh0IG1vZGUgZHJhd3MuIElmIHRoZSBtb2RlIGlzIHN0aWxsIHNlbGVjdGVkXG4gKiAgICAgd2hlbiB0aGUgbmV3IGltYWdlIGhhcyBwbG90dGVkLCBhIGZyZXNoIHNlc3Npb24gaXMgYWN0aXZhdGVkIGZvciBpdC5cbiAqICA0LiBgcGFuZWxgIGlzIHNob3duIG9ubHkgd2hpbGUgYSBzZXNzaW9uIGlzIGxpdmUuXG4gKiAgNS4gQSB0aHJvd24gZXJyb3Igb3IgcmVqZWN0ZWQgcHJvbWlzZSBmcm9tIGBhY3RpdmF0ZWAsIGBkZWFjdGl2YXRlYCwgYG1vdW50YFxuICogICAgIG9yIGEgbW91bnQncyB0ZWFyZG93biBpcyBjYXVnaHQgYW5kIGxvZ2dlZDsgbm9uZSBlc2NhcGVzLCBzbyBhIGNvbnRyaWJ1dGlvblxuICogICAgIGNhbm5vdCBicmVhayB0aGUgdmlld2VyLiBGYWlsaW5nIHRvIHN0YXJ0IChgYWN0aXZhdGVgLCBgbW91bnRgLCBvciBhIHBhbmVsXG4gKiAgICAgY29tcG9uZW50IHRocm93aW5nIHdoaWxlIGl0IGlzIGNyZWF0ZWQgLyBmaXJzdCByZW5kZXJlZCkgZmFsbHMgYmFja1xuICogICAgIHRvIGBiYXNlVHlwZWAuIEZhaWxpbmcgdG8gY2xlYW4gdXAgZmFsbHMgYmFjayB3aGVuIHRoYXQgc2FtZSBtb2RlIGlzIGJlaW5nXG4gKiAgICAgcmUtYWN0aXZhdGVkIChiYXNlIHJlLXJlbmRlciwgaW1hZ2Ugc3dpdGNoKSDigJQgaW1tZWRpYXRlbHkgaWYgaXQgYWxyZWFkeSBpc1xuICogICAgIGxpdmUgYWdhaW4g4oCUIGFuZCBpcyBvbmx5IGxvZ2dlZCB3aGVuIHRoZSB1c2VyIGhhcyBtb3ZlZCB0byBhbm90aGVyIG1vZGU7IHRoZVxuICogICAgIHVzZXIgZXhwbGljaXRseSBzZWxlY3RpbmcgaXQgYWdhaW4gZ2V0cyBhIGZyZXNoIGF0dGVtcHQuXG4gKiAgNi4ge0BsaW5rIFBMT1RfVFlQRV9DT05UUklCVVRJT05TfSBoYXMgbm8gZmFjdG9yeTogbm8gcHJvdmlkZXJzLCBubyBtb2Rlcy5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IElJbWFnZUluZm8gfSBmcm9tICcuL2ltYWdlLmNvbnRyYWN0JztcbmltcG9ydCB0eXBlIHsgUGxvdFR5cGUsIFBsb3RUeXBlRGVzY3JpcHRvciwgUGxvdFR5cGVJZCB9IGZyb20gJy4vcGxvdC10eXBlJztcbmltcG9ydCB0eXBlIHsgSVZpc3VhbGl6ZXIgfSBmcm9tICcuL3Zpc3VhbGl6ZXIuY29udHJhY3QnO1xuXG4vKiogQSByZWN0YW5nbGUgaW4gbGV2ZWwtMCBpbWFnZSBwaXhlbHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlUmVjdCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuLyoqIFNlbGVjdG9yIG1ldGFkYXRhIGZvciBhIGNvbnRyaWJ1dGVkIHBsb3QgbW9kZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3Ige1xuICAvKiogVW5pcXVlIGlkLCBuYW1lc3BhY2VkLCBlLmcuICdkaWFubmUnLiBNdXN0IG5vdCBjbGFzaCB3aXRoIFBsb3RUeXBlIHZhbHVlcy4gKi9cbiAgdHlwZTogc3RyaW5nO1xuICAvKiogVGVzdC1tb2RlIGxhYmVsLCBlLmcuICdEaWdpdGFsIFBhdGhvbG9neSAtIERJQU5ORScuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0LXNlbGVjdG9yIGxhYmVsOyBvbWl0IHRvIG1ha2UgdGhlIG1vZGUgdGVzdC1vbmx5IChzYW1lIHJ1bGUgYXMgYnVpbHQtaW5zKS4gKi9cbiAgcHJvZHVjdGlvbkxhYmVsPzogc3RyaW5nO1xuICAvKiogJ3BpIHBpLeKApicgY2xhc3Mgb3IgYXNzZXQgcGF0aCwgc2FtZSBhcyBQbG90VHlwZURlc2NyaXB0b3IuaWNvbi4gKi9cbiAgaWNvbj86IHN0cmluZztcbiAgLyoqIEFsd2F5cyAnMmQnIGluIHYxLiAqL1xuICBkaW1lbnNpb25zOiAnMmQnO1xuICAvKiogQnVpbHQtaW4gdHlwZSB3aG9zZSBiYWNrZW5kIHJlbmRlcnMgdGhlIGJhc2UgaW1hZ2UuIHYxIHN1cHBvcnRzIFBsb3RUeXBlLklNQUdFIChPU0QpLiAqL1xuICBiYXNlVHlwZTogUGxvdFR5cGU7XG4gIC8qKiBTYW1lIGdhdGVzIGFzIFBsb3RUeXBlRGVzY3JpcHRvciwgZXZhbHVhdGVkIGluIGFkZGl0aW9uIHRvIHRoZSBiYXNlIHR5cGUncyBvd24uICovXG4gIHJlcXVpcmVzR3JheXNjYWxlPzogYm9vbGVhbjtcbiAgcmVxdWlyZXNTdGFjaz86IGJvb2xlYW47XG4gIC8qKiBIaWRkZW4gdW50aWwgYSBgU3BhdGlhbERhdGFzZXRgIGlzIHB1Ymxpc2hlZCBvbiBTUEFUSUFMX0RBVEFfUE9SVCAoYW4gb3ZlcmxheSBvZiBzcGF0aWFsIG9ic2VydmF0aW9ucykuICovXG4gIHJlcXVpcmVzU3BhdGlhbERhdGE/OiBib29sZWFuO1xuICAvKiogSGlkZGVuIHVubGVzcyB0aGUgcHVibGlzaGVkIGRhdGFzZXQgY2FycmllcyBgb2JzZXJ2YXRpb25zLnpgLiAqL1xuICByZXF1aXJlc1NwYXRpYWwzZD86IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgYmFzZSB2aWV3J3Mgdmlld3BvcnQsIGFzIGEgY29udHJpYnV0ZWQgbW9kZSBzZWVzIGl0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZVZpZXdwb3J0IHtcbiAgLyoqIEVsZW1lbnQgdGhlIG1vZGUncyBvdmVybGF5IGNhbnZhcy9TVkcgYXR0YWNoZXMgdG87IGZpbGxzIHRoZSBwbG90IGFyZWEuICovXG4gIGdldE92ZXJsYXlDb250YWluZXIoKTogSFRNTEVsZW1lbnQgfCBudWxsO1xuICAvKiogTGV2ZWwtMCBpbWFnZSBweCAtPiBjbGllbnQgcHgsIGFuZCB0aGUgcmV2ZXJzZS4gKi9cbiAgZGF0YVRvQ2xpZW50KHg6IG51bWJlciwgeTogbnVtYmVyKTogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xuICBjbGllbnRUb0RhdGEoY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gIC8qKiBTY3JlZW4gcHggcGVyIGltYWdlIHB4IGF0IHRoZSBjdXJyZW50IHpvb20uICovXG4gIGRhdGFMZW5ndGhUb1NjcmVlbihsZW46IG51bWJlcik6IG51bWJlcjtcbiAgaXNSZWFkeSgpOiBib29sZWFuO1xuICAvKiogVmlzaWJsZSBpbWFnZSByZWN0IGluIGxldmVsLTAgcHgsIGVtaXR0ZWQgb24gZXZlcnkgcmVkcmF3IGZyYW1lIChwYW4vem9vbSBhbmltYXRpb24pLlxuICAgKiAgQSBuZXcgc3Vic2NyaWJlciBmaXJzdCByZWNlaXZlcyB0aGUgY3VycmVudCByZWN0IHdoZW4gdGhlIHZpZXdwb3J0IGlzIHJlYWR5LiAqL1xuICBmcmFtZSQ6IE9ic2VydmFibGU8UGxvdE1vZGVSZWN0PjtcbiAgLyoqIFNhbWUgcmVjdCwgZW1pdHRlZCBvbmNlIHRoZSB2aWV3cG9ydCBzZXR0bGVzIChleGlzdGluZyBnZXRWaWV3cG9ydENoYW5nZSQgc2VtYW50aWNzKS5cbiAgICogIEEgbmV3IHN1YnNjcmliZXIgZmlyc3QgcmVjZWl2ZXMgdGhlIGN1cnJlbnQgcmVjdCB3aGVuIHRoZSB2aWV3cG9ydCBpcyByZWFkeS4gKi9cbiAgc2V0dGxlZCQ6IE9ic2VydmFibGU8UGxvdE1vZGVSZWN0PjtcbiAgLyoqXG4gICAqIFBhbiBhbmQgem9vbSBzbyBhIGxldmVsLTAgaW1hZ2UgcmVjdCBmaWxscyB0aGUgdmlldyAod2l0aGluIHRoZSB2aWV3ZXIncyB6b29tXG4gICAqIGNvbnN0cmFpbnRzKSwgZS5nLiB0byB0YWtlIHRoZSB1c2VyIHRvIGEgcmVnaW9uIGEgbW9kZSBwcm9wb3Nlcy4gQW5pbWF0ZWQgdW5sZXNzXG4gICAqIGBpbW1lZGlhdGVseWAuIEEgbm8tb3Agd2hpbGUgdGhlIHZpZXdwb3J0IGlzIG5vdCByZWFkeS4gT3B0aW9uYWw6IGJhY2tlbmRzIHdpdGhvdXRcbiAgICogYSAyRCBpbWFnZSB2aWV3cG9ydCBsZWF2ZSBpdCBvdXQsIHNvIGNhbGxlcnMgZmVhdHVyZS1kZXRlY3QgaXQuXG4gICAqL1xuICBmaXRCb3VuZHM/KHJlY3Q6IFBsb3RNb2RlUmVjdCwgb3B0aW9ucz86IHsgaW1tZWRpYXRlbHk/OiBib29sZWFuIH0pOiB2b2lkO1xufVxuXG4vKiogVGhlIGNsYXNzIGEge0BsaW5rIFBsb3RNb2RlVG9vbHMuYXJtQnJ1c2h9IHN0cm9rZSBwYWludHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlQnJ1c2hDbGFzcyB7XG4gIC8qKiBMYWJlbCBmb3IgdGhlIHBhaW50ZWQgcmVnaW9uczsgdGhlIHN0cm9rZSBvbmx5IGV4dGVuZHMgb3IgbWVyZ2VzIHJlZ2lvbnMgd2l0aCBpdC4gKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBDb2xvdXIgZm9yIHRoZSBwYWludGVkIHJlZ2lvbnMgKGluc3RlYWQgb2YgdGhlIHRvb2xiYXIncyBzaGFwZSBjb2xvdXIpLiAqL1xuICBjb2xvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgdmlzdWFsaXplcidzIG93biB0b29sYmFyIHRvb2xzLCBhcm1lZCBvbiBhIG1vZGUncyBiZWhhbGYuIEdvaW5nIHRocm91Z2hcbiAqIHRoaXMgcmF0aGVyIHRoYW4ge0BsaW5rIElWaXN1YWxpemVyfSBrZWVwcyB0aGUgdG9vbGJhciBpbiBzdGVwOiB0aGUgYXJtZWRcbiAqIHRvb2wncyBidXR0b24gaXMgaGlnaGxpZ2h0ZWQgYW5kIGl0cyBjb250cm9scyAoZS5nLiB0aGUgYnJ1c2ggc2l6ZSkgc2hvdy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZVRvb2xzIHtcbiAgLyoqXG4gICAqIEFybSB0aGUgdG9vbGJhciBicnVzaCwgcGFpbnRpbmcgYGJydXNoQ2xhc3NgLiBDYWxsaW5nIGl0IGFnYWluIHdoaWxlIHRoZVxuICAgKiBicnVzaCBpcyBhcm1lZCBzd2l0Y2hlcyBjbGFzczsgdGhlIG5leHQgc3Ryb2tlIHN0YXJ0cyBhIHJlZ2lvbiBvZiBpdC5cbiAgICogVGhlIHVzZXIgcGlja2luZyBhbnkgdG9vbCBmcm9tIHRoZSB0b29sYmFyIChpbmNsdWRpbmcgdGhlIGJydXNoKSByZXBsYWNlc1xuICAgKiB0aGlzIHdpdGggdGhlIHBsYWluIHRvb2wuXG4gICAqL1xuICBhcm1CcnVzaChicnVzaENsYXNzPzogUGxvdE1vZGVCcnVzaENsYXNzKTogdm9pZDtcbiAgLyoqIERpc2FybSB3aGF0ZXZlciB0b29sIGlzIGFybWVkLCBhcyBpZiB0aGUgdXNlciB0b2dnbGVkIGl0IG9mZi4gKi9cbiAgZGlzYXJtKCk6IHZvaWQ7XG4gIC8qKiBUaGUgYXJtZWQgdG9vbGJhciB0b29sIGlkICgnYnJ1c2gnLCAncGFuJywg4oCmIG9yIG51bGwpLiBSZXBsYXlzIHRoZSBjdXJyZW50IHZhbHVlLiAqL1xuICBhY3RpdmVUb29sJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPjtcbn1cblxuLyoqIEV2ZXJ5dGhpbmcgYSBjb250cmlidXRlZCBtb2RlIGdldHMgdG8gd29yayB3aXRoIHdoaWxlIGl0IGlzIGFjdGl2ZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdE1vZGVDb250ZXh0IHtcbiAgLyoqIEZ1bGwgcHVibGljIHZpc3VhbGl6ZXIgQVBJOiByZWdpb25zLCByZWdpb24gb3ZlcmxheSAodG9vbCBtb2RlcyksIHVuZG8sIGV0Yy4gKi9cbiAgdmlzdWFsaXplcjogSVZpc3VhbGl6ZXI7XG4gIHZpZXdwb3J0OiBQbG90TW9kZVZpZXdwb3J0O1xuICAvKiogQ3VycmVudCBpbWFnZSBpbmZvIGZyb20gSU1BR0VfU1RBVEVfUE9SVCAobnVsbCB1bnRpbCBhbiBpbWFnZSBpcyBsb2FkZWQpLiAqL1xuICBpbWFnZUluZm8kOiBPYnNlcnZhYmxlPElJbWFnZUluZm8gfCBudWxsPjtcbiAgLyoqIFRvb2xiYXIgdG9vbHMgKHNpbmNlIDAuNi4wKS4gT3B0aW9uYWwgc28gYSBjb250ZXh0IGJ1aWx0IGZvciAwLjUuMCBzdGlsbCB0eXBlLWNoZWNrcy4gKi9cbiAgdG9vbHM/OiBQbG90TW9kZVRvb2xzO1xufVxuXG4vKiogQSBsaXZlIGFjdGl2YXRpb24gb2YgYSBjb250cmlidXRlZCBtb2RlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZVNlc3Npb24ge1xuICAvKiogQ2FsbGVkIHdoZW4gdGhlIHVzZXIgbGVhdmVzIHRoZSBtb2RlLCB0aGUgaW1hZ2UgY2hhbmdlcywgb3IgdGhlIHZpc3VhbGl6ZXIgaXMgZGVzdHJveWVkLiAqL1xuICBkZWFjdGl2YXRlKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIG1vZGUncyBzaWRlIHBhbmVsLCBzaG93biBpbiB0aGUgdmlzdWFsaXplcidzIHJpZ2h0LWhhbmQgcGFuZWwgYXJlYSB3aGlsZVxuICogYSBzZXNzaW9uIGlzIGxpdmUuIFR3byBmb3JtczpcbiAqXG4gKiAgLSBgY29tcG9uZW50YDogYW4gQW5ndWxhciBjb21wb25lbnQsIHJlbmRlcmVkIHRocm91Z2ggYE5nQ29tcG9uZW50T3V0bGV0YFxuICogICAgd2l0aCB7QGxpbmsgUExPVF9NT0RFX0NPTlRFWFR9IGFuZCB7QGxpbmsgUExPVF9NT0RFX1NFU1NJT059IGluIGl0c1xuICogICAgaW5qZWN0b3IuIE5lZWRzIGFuIEFPVC1jb21waWxlZCAocGFydGlhbC1JdnkpIGNvbXBvbmVudC5cbiAqICAtIGBtb3VudGA6IGZyYW1ld29yay1hZ25vc3RpYy4gVGhlIHZpc3VhbGl6ZXIgaGFuZHMgb3ZlciBhbiBlbXB0eSBob3N0XG4gKiAgICBlbGVtZW50IGFmdGVyIGBhY3RpdmF0ZWAgcmVzb2x2ZXM7IHRoZSBmdW5jdGlvbiByZW5kZXJzIGludG8gaXQgYW5kIHJldHVybnNcbiAqICAgIGEgdGVhcmRvd24uIFRoZSB0ZWFyZG93biBpcyBjYWxsZWQgZXhhY3RseSBvbmNlIHdoZW4gdGhlIG1vZGUgZGVhY3RpdmF0ZXMsXG4gKiAgICBiZWZvcmUgYHNlc3Npb24uZGVhY3RpdmF0ZSgpYCwgYW5kIHRoZSBob3N0IGVsZW1lbnQgaXMgdGhlbiByZW1vdmVkLlxuICovXG5leHBvcnQgdHlwZSBQbG90TW9kZVBhbmVsID1cbiAgfCB7IHRpdGxlOiBzdHJpbmc7IGNvbXBvbmVudDogVHlwZTx1bmtub3duPiB9XG4gIHwge1xuICAgICAgdGl0bGU6IHN0cmluZztcbiAgICAgIG1vdW50KGhvc3Q6IEhUTUxFbGVtZW50LCBjdHg6IFBsb3RNb2RlQ29udGV4dCwgc2Vzc2lvbjogUGxvdE1vZGVTZXNzaW9uKTogKCkgPT4gdm9pZDtcbiAgICB9O1xuXG4vKiogQSBwbG90IG1vZGUgY29udHJpYnV0ZWQgdG8gdGhlIHNlbGVjdG9yLiBBIHBsYWluIG9iamVjdCBpcyBlbm91Z2guICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RUeXBlQ29udHJpYnV0aW9uIHtcbiAgZGVzY3JpcHRvcjogQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3I7XG4gIC8qKiBDYWxsZWQgYWZ0ZXIgdGhlIGJhc2UgYmFja2VuZCBoYXMgcGxvdHRlZCB0aGUgaW1hZ2UgaW4gdGhpcyBtb2RlLiAqL1xuICBhY3RpdmF0ZShjdHg6IFBsb3RNb2RlQ29udGV4dCk6IFBsb3RNb2RlU2Vzc2lvbiB8IFByb21pc2U8UGxvdE1vZGVTZXNzaW9uPjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHNpZGUgcGFuZWwsIHJlbmRlcmVkIGluIHRoZSB2aXN1YWxpemVyJ3MgcmlnaHQtaGFuZCBwYW5lbCBhcmVhIHdoaWxlIHRoZVxuICAgKiBtb2RlIGlzIGFjdGl2ZS4gQSBjb21wb25lbnQgcGFuZWwgY2FuIGluamVjdCBQTE9UX01PREVfQ09OVEVYVCBhbmQgUExPVF9NT0RFX1NFU1NJT04uXG4gICAqL1xuICBwYW5lbD86IFBsb3RNb2RlUGFuZWw7XG59XG5cbi8qKlxuICogTXVsdGktcHJvdmlkZXIgdG9rZW4gZm9yIGNvbnRyaWJ1dGVkIHBsb3QgbW9kZXMuXG4gKlxuICogRGVsaWJlcmF0ZWx5IGhhcyBubyBgZmFjdG9yeWA6IHVucmVnaXN0ZXJlZCBtZWFucyBubyBjb250cmlidXRlZCBtb2RlcywgYW5kIHRoZVxuICogbGlicmFyeSBiZWhhdmVzIGV4YWN0bHkgYXMgYmVmb3JlLiBUaGUgdmlzdWFsaXplciBpbmplY3RzIGl0IGB7IG9wdGlvbmFsOiB0cnVlIH1gXG4gKiBhbmQgdHJlYXRzIG51bGwgYXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBQTE9UX1RZUEVfQ09OVFJJQlVUSU9OUyA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxyZWFkb25seSBQbG90VHlwZUNvbnRyaWJ1dGlvbltdPignUExPVF9UWVBFX0NPTlRSSUJVVElPTlMnKTtcbi8qKiBUaGUgYWN0aXZlIG1vZGUncyBjb250ZXh0LCBpbiBhIGNvbXBvbmVudCBwYW5lbCdzIGluamVjdG9yLiAqL1xuZXhwb3J0IGNvbnN0IFBMT1RfTU9ERV9DT05URVhUID0gbmV3IEluamVjdGlvblRva2VuPFBsb3RNb2RlQ29udGV4dD4oJ1BMT1RfTU9ERV9DT05URVhUJyk7XG4vKiogVGhlIGFjdGl2ZSBtb2RlJ3Mgc2Vzc2lvbiwgaW4gYSBjb21wb25lbnQgcGFuZWwncyBpbmplY3Rvci4gKi9cbmV4cG9ydCBjb25zdCBQTE9UX01PREVfU0VTU0lPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQbG90TW9kZVNlc3Npb24+KCdQTE9UX01PREVfU0VTU0lPTicpO1xuXG4vKipcbiAqIE9uZSBlbnRyeSBpbiB0aGUgcGxvdC10eXBlIHNlbGVjdG9yOiBhIGJ1aWx0LWluIHtAbGluayBQbG90VHlwZURlc2NyaXB0b3J9XG4gKiBhcy1pcywgb3IgYSBjb250cmlidXRlZCBkZXNjcmlwdG9yIGNvbXBsZXRlZCB3aXRoIGl0cyBiYXNlIHR5cGUncyBgc291cmNlYC5cbiAqIEV2ZXJ5IGVudHJ5IHRoZXJlZm9yZSBjYXJyaWVzIHRoZSBzYW1lIGZpZWxkcyB0aGUgc2VsZWN0b3IgY3VyYXRlcyBieS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90VHlwZU9wdGlvbiBleHRlbmRzIE9taXQ8UGxvdFR5cGVEZXNjcmlwdG9yLCAndHlwZSc+IHtcbiAgdHlwZTogUGxvdFR5cGVJZDtcbiAgLyoqIFNldCBvbmx5IGZvciBhIGNvbnRyaWJ1dGVkIG1vZGU6IHRoZSBidWlsdC1pbiB0eXBlIHRoYXQgcmVuZGVycyBpdC4gKi9cbiAgYmFzZVR5cGU/OiBQbG90VHlwZTtcbn1cblxuLyoqIFRoZSBzZWxlY3RvciBlbnRyeSBmb3IgYSBjb250cmlidXRlZCBtb2RlLCBnaXZlbiBpdHMgYmFzZSB0eXBlJ3MgZGVzY3JpcHRvci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb250cmlidXRlZFBsb3RUeXBlT3B0aW9uKFxuICBkOiBDb250cmlidXRlZFBsb3RUeXBlRGVzY3JpcHRvcixcbiAgYmFzZTogUGxvdFR5cGVEZXNjcmlwdG9yLFxuKTogUGxvdFR5cGVPcHRpb24ge1xuICByZXR1cm4geyAuLi5kLCBzb3VyY2U6IGJhc2Uuc291cmNlIH07XG59XG4iXX0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvdC10eXBlLWNvbnRyaWJ1dGlvbi5jb250cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29udHJhY3RzL3Bsb3QtdHlwZS1jb250cmlidXRpb24uY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQTBJckQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQ3ZELHlCQUF5QixDQUMxQixDQUFDO0FBQ0Ysa0VBQWtFO0FBQ2xFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFrQixtQkFBbUIsQ0FBQyxDQUFDO0FBQzFGLGtFQUFrRTtBQUNsRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLENBQUMsQ0FBQztBQWExRixtRkFBbUY7QUFDbkYsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxDQUFnQyxFQUNoQyxJQUF3QjtJQUV4QixPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIb3cgYSBwbG90IG1vZGUgZ2V0cyBpbnRvIHRoZSBwbG90LXR5cGUgc2VsZWN0b3Igd2l0aG91dCB0aGlzIGxpYnJhcnkga25vd2luZ1xuICogd2hhdCBpdCBpcy5cbiAqXG4gKiBBIHBhY2thZ2UgY29udHJpYnV0ZXMgYSBtb2RlIGJ5IHByb3ZpZGluZyBhIHtAbGluayBQbG90VHlwZUNvbnRyaWJ1dGlvbn0gb24gdGhlXG4gKiB7QGxpbmsgUExPVF9UWVBFX0NPTlRSSUJVVElPTlN9IG11bHRpLXByb3ZpZGVyIHRva2VuLCB0aGUgc2FtZSB3YXlcbiAqIGBUT09MQkFSX1RPT0xTYCBjb250cmlidXRlcyB0b29sYmFyIHRvb2xzLiBOb3RoaW5nIHJlZ2lzdGVycyBhdCBpbXBvcnQgdGltZTpcbiAqIGluc3RhbGxpbmcgYSBwYWNrYWdlIG1ha2VzIGEgbW9kZSBhdmFpbGFibGUsIGFuZCBhZGRpbmcgaXRzIHByb3ZpZGVyIHR1cm5zIGl0XG4gKiBvbi4gQSBwbGFpbiBvYmplY3Qgd29ya3MsIHNvIHRoZSBjb250cmlidXRpbmcgcGFja2FnZSBuZWVkcyBubyBBbmd1bGFyXG4gKiBjb21waWxlciBhbmQgbm8gZGVjb3JhdG9yczpcbiAqXG4gKiAgICAgeyBwcm92aWRlOiBQTE9UX1RZUEVfQ09OVFJJQlVUSU9OUywgdXNlVmFsdWU6IG15Q29udHJpYnV0aW9uLCBtdWx0aTogdHJ1ZSB9XG4gKiAgICAgeyBwcm92aWRlOiBQTE9UX1RZUEVfQ09OVFJJQlVUSU9OUywgdXNlRmFjdG9yeTogKCkgPT4gbWFrZUNvbnRyaWJ1dGlvbigpLCBtdWx0aTogdHJ1ZSB9XG4gKlxuICogUHJvdmlkZSBub3RoaW5nIGFuZCB0aGUgc2VsZWN0b3IsIHRoZSByZW5kZXIgcGF0aCBhbmQgdGhlIHBhbmVsIGFyZWEgYmVoYXZlXG4gKiBleGFjdGx5IGFzIHRoZXkgZGlkIGJlZm9yZSB0aGlzIGV4dGVuc2lvbiBwb2ludCBleGlzdGVkLlxuICpcbiAqIFdIWSBBIENPTlRSSUJVVEVEIE1PREUgUklERVMgT04gQSBCVUlMVC1JTiBPTkVcbiAqIEEgY29udHJpYnV0ZWQgbW9kZSBkb2VzIG5vdCBicmluZyBhIHJlbmRlcmVyLiBJdCBuYW1lcyBhIGJ1aWx0LWluXG4gKiB7QGxpbmsgQ29udHJpYnV0ZWRQbG90VHlwZURlc2NyaXB0b3IuYmFzZVR5cGV9IOKAlCBpbiB2MSBvbmx5IGBQbG90VHlwZS5JTUFHRWAsXG4gKiB0aGUgT3BlblNlYWRyYWdvbiB2aWV3IOKAlCBhbmQgdGhlIHZpc3VhbGl6ZXIgcGxvdHMgZXhhY3RseSBhcyBpZiB0aGF0IHR5cGUgaGFkXG4gKiBiZWVuIHNlbGVjdGVkOiBzYW1lIGJhY2tlbmQsIHNhbWUgdG9vbGJhciwgc2FtZSByZWdpb24gdG9vbHMsIHNhbWUgd2hlZWxcbiAqIGhhbmRsaW5nLiBUaGUgY29udHJpYnV0aW9uIHRoZW4gZHJhd3Mgb3ZlciBpdCB0aHJvdWdoIHRoZVxuICoge0BsaW5rIFBsb3RNb2RlVmlld3BvcnR9IGFuZCB0YWxrcyB0byB0aGUgdmlld2VyIHRocm91Z2ggdGhlIHB1YmxpY1xuICoge0BsaW5rIElWaXN1YWxpemVyfS4gVGhhdCBrZWVwcyBldmVyeSByZW5kZXJpbmcgZGVjaXNpb24gaW4gb25lIHBsYWNlIGFuZCBtZWFuc1xuICogYSBjb250cmlidXRpb24gY2FuIG5ldmVyIGJlIGhhbGYtc3VwcG9ydGVkIGJ5IHNvbWUgY29kZSBwYXRoIHRoYXQgc3dpdGNoZXMgb25cbiAqIHRoZSBwbG90IHR5cGUuXG4gKlxuICogV0hBVCBUSEUgVklTVUFMSVpFUiBHVUFSQU5URUVTXG4gKiAgMS4gQ29udHJpYnV0ZWQgZGVzY3JpcHRvcnMgYXJlIGFwcGVuZGVkIGFmdGVyIHRoZSBidWlsdC1pbiBvbmVzIGFuZCBjdXJhdGVkIGJ5XG4gKiAgICAgdGhlIHNhbWUgYHByb2R1Y3Rpb25MYWJlbGAgLyB0ZXN0LW1vZGUgLyBgcmVxdWlyZXMqYCBydWxlcy5cbiAqICAyLiBTZWxlY3Rpbmcgb25lIHBsb3RzIHdpdGggYGJhc2VUeXBlYCdzIGJhY2tlbmQsIHRoZW4gY2FsbHMgYGFjdGl2YXRlKGN0eClgXG4gKiAgICAgb25jZSB0aGUgdmlld3BvcnQgaXMgcmVhZHkuXG4gKiAgMy4gTGVhdmluZyB0aGUgbW9kZSDigJQgYW5vdGhlciB0eXBlLCBhbiBpbWFnZSBzd2l0Y2ggKG9yIGFueSByZS1yZW5kZXIgb2YgdGhlXG4gKiAgICAgYmFzZSB2aWV3KSwgb3IgdGhlIHZpc3VhbGl6ZXIgYmVpbmcgZGVzdHJveWVkIOKAlCBjYWxscyBgc2Vzc2lvbi5kZWFjdGl2YXRlKClgXG4gKiAgICAgZXhhY3RseSBvbmNlLCBiZWZvcmUgdGhlIG5leHQgbW9kZSBkcmF3cy4gSWYgdGhlIG1vZGUgaXMgc3RpbGwgc2VsZWN0ZWRcbiAqICAgICB3aGVuIHRoZSBuZXcgaW1hZ2UgaGFzIHBsb3R0ZWQsIGEgZnJlc2ggc2Vzc2lvbiBpcyBhY3RpdmF0ZWQgZm9yIGl0LlxuICogIDQuIGBwYW5lbGAgaXMgc2hvd24gb25seSB3aGlsZSBhIHNlc3Npb24gaXMgbGl2ZS5cbiAqICA1LiBBIHRocm93biBlcnJvciBvciByZWplY3RlZCBwcm9taXNlIGZyb20gYGFjdGl2YXRlYCwgYGRlYWN0aXZhdGVgLCBgbW91bnRgXG4gKiAgICAgb3IgYSBtb3VudCdzIHRlYXJkb3duIGlzIGNhdWdodCBhbmQgbG9nZ2VkOyBub25lIGVzY2FwZXMsIHNvIGEgY29udHJpYnV0aW9uXG4gKiAgICAgY2Fubm90IGJyZWFrIHRoZSB2aWV3ZXIuIEZhaWxpbmcgdG8gc3RhcnQgKGBhY3RpdmF0ZWAsIGBtb3VudGAsIG9yIGEgcGFuZWxcbiAqICAgICBjb21wb25lbnQgdGhyb3dpbmcgd2hpbGUgaXQgaXMgY3JlYXRlZCAvIGZpcnN0IHJlbmRlcmVkKSBmYWxscyBiYWNrXG4gKiAgICAgdG8gYGJhc2VUeXBlYC4gRmFpbGluZyB0byBjbGVhbiB1cCBmYWxscyBiYWNrIHdoZW4gdGhhdCBzYW1lIG1vZGUgaXMgYmVpbmdcbiAqICAgICByZS1hY3RpdmF0ZWQgKGJhc2UgcmUtcmVuZGVyLCBpbWFnZSBzd2l0Y2gpIOKAlCBpbW1lZGlhdGVseSBpZiBpdCBhbHJlYWR5IGlzXG4gKiAgICAgbGl2ZSBhZ2FpbiDigJQgYW5kIGlzIG9ubHkgbG9nZ2VkIHdoZW4gdGhlIHVzZXIgaGFzIG1vdmVkIHRvIGFub3RoZXIgbW9kZTsgdGhlXG4gKiAgICAgdXNlciBleHBsaWNpdGx5IHNlbGVjdGluZyBpdCBhZ2FpbiBnZXRzIGEgZnJlc2ggYXR0ZW1wdC5cbiAqICA2LiB7QGxpbmsgUExPVF9UWVBFX0NPTlRSSUJVVElPTlN9IGhhcyBubyBmYWN0b3J5OiBubyBwcm92aWRlcnMsIG5vIG1vZGVzLlxuICovXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB0eXBlIHsgSUltYWdlSW5mbyB9IGZyb20gJy4vaW1hZ2UuY29udHJhY3QnO1xuaW1wb3J0IHR5cGUgeyBQbG90VHlwZSwgUGxvdFR5cGVEZXNjcmlwdG9yLCBQbG90VHlwZUlkIH0gZnJvbSAnLi9wbG90LXR5cGUnO1xuaW1wb3J0IHR5cGUgeyBJVmlzdWFsaXplciB9IGZyb20gJy4vdmlzdWFsaXplci5jb250cmFjdCc7XG5cbi8qKiBBIHJlY3RhbmdsZSBpbiBsZXZlbC0wIGltYWdlIHBpeGVscy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdE1vZGVSZWN0IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xufVxuXG4vKiogU2VsZWN0b3IgbWV0YWRhdGEgZm9yIGEgY29udHJpYnV0ZWQgcGxvdCBtb2RlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmlidXRlZFBsb3RUeXBlRGVzY3JpcHRvciB7XG4gIC8qKiBVbmlxdWUgaWQsIG5hbWVzcGFjZWQsIGUuZy4gJ2RpYW5uZScuIE11c3Qgbm90IGNsYXNoIHdpdGggUGxvdFR5cGUgdmFsdWVzLiAqL1xuICB0eXBlOiBzdHJpbmc7XG4gIC8qKiBUZXN0LW1vZGUgbGFiZWwsIGUuZy4gJ0RpZ2l0YWwgUGF0aG9sb2d5IC0gRElBTk5FJy4gKi9cbiAgbGFiZWw6IHN0cmluZztcbiAgLyoqIERlZmF1bHQtc2VsZWN0b3IgbGFiZWw7IG9taXQgdG8gbWFrZSB0aGUgbW9kZSB0ZXN0LW9ubHkgKHNhbWUgcnVsZSBhcyBidWlsdC1pbnMpLiAqL1xuICBwcm9kdWN0aW9uTGFiZWw/OiBzdHJpbmc7XG4gIC8qKiAncGkgcGkt4oCmJyBjbGFzcyBvciBhc3NldCBwYXRoLCBzYW1lIGFzIFBsb3RUeXBlRGVzY3JpcHRvci5pY29uLiAqL1xuICBpY29uPzogc3RyaW5nO1xuICAvKiogQWx3YXlzICcyZCcgaW4gdjEuICovXG4gIGRpbWVuc2lvbnM6ICcyZCc7XG4gIC8qKiBCdWlsdC1pbiB0eXBlIHdob3NlIGJhY2tlbmQgcmVuZGVycyB0aGUgYmFzZSBpbWFnZS4gdjEgc3VwcG9ydHMgUGxvdFR5cGUuSU1BR0UgKE9TRCkuICovXG4gIGJhc2VUeXBlOiBQbG90VHlwZTtcbiAgLyoqIFNhbWUgZ2F0ZXMgYXMgUGxvdFR5cGVEZXNjcmlwdG9yLCBldmFsdWF0ZWQgaW4gYWRkaXRpb24gdG8gdGhlIGJhc2UgdHlwZSdzIG93bi4gKi9cbiAgcmVxdWlyZXNHcmF5c2NhbGU/OiBib29sZWFuO1xuICByZXF1aXJlc1N0YWNrPzogYm9vbGVhbjtcbiAgLyoqIEhpZGRlbiB1bnRpbCBhIGBTcGF0aWFsRGF0YXNldGAgaXMgcHVibGlzaGVkIG9uIFNQQVRJQUxfREFUQV9QT1JUIChhbiBvdmVybGF5IG9mIHNwYXRpYWwgb2JzZXJ2YXRpb25zKS4gKi9cbiAgcmVxdWlyZXNTcGF0aWFsRGF0YT86IGJvb2xlYW47XG4gIC8qKiBIaWRkZW4gdW5sZXNzIHRoZSBwdWJsaXNoZWQgZGF0YXNldCBjYXJyaWVzIGBvYnNlcnZhdGlvbnMuemAuICovXG4gIHJlcXVpcmVzU3BhdGlhbDNkPzogYm9vbGVhbjtcbn1cblxuLyoqIFRoZSBiYXNlIHZpZXcncyB2aWV3cG9ydCwgYXMgYSBjb250cmlidXRlZCBtb2RlIHNlZXMgaXQuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlVmlld3BvcnQge1xuICAvKiogRWxlbWVudCB0aGUgbW9kZSdzIG92ZXJsYXkgY2FudmFzL1NWRyBhdHRhY2hlcyB0bzsgZmlsbHMgdGhlIHBsb3QgYXJlYS4gKi9cbiAgZ2V0T3ZlcmxheUNvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB8IG51bGw7XG4gIC8qKiBMZXZlbC0wIGltYWdlIHB4IC0+IGNsaWVudCBweCwgYW5kIHRoZSByZXZlcnNlLiAqL1xuICBkYXRhVG9DbGllbnQoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG4gIGNsaWVudFRvRGF0YShjbGllbnRYOiBudW1iZXIsIGNsaWVudFk6IG51bWJlcik6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcbiAgLyoqIFNjcmVlbiBweCBwZXIgaW1hZ2UgcHggYXQgdGhlIGN1cnJlbnQgem9vbS4gKi9cbiAgZGF0YUxlbmd0aFRvU2NyZWVuKGxlbjogbnVtYmVyKTogbnVtYmVyO1xuICBpc1JlYWR5KCk6IGJvb2xlYW47XG4gIC8qKiBWaXNpYmxlIGltYWdlIHJlY3QgaW4gbGV2ZWwtMCBweCwgZW1pdHRlZCBvbiBldmVyeSByZWRyYXcgZnJhbWUgKHBhbi96b29tIGFuaW1hdGlvbikuXG4gICAqICBBIG5ldyBzdWJzY3JpYmVyIGZpcnN0IHJlY2VpdmVzIHRoZSBjdXJyZW50IHJlY3Qgd2hlbiB0aGUgdmlld3BvcnQgaXMgcmVhZHkuICovXG4gIGZyYW1lJDogT2JzZXJ2YWJsZTxQbG90TW9kZVJlY3Q+O1xuICAvKiogU2FtZSByZWN0LCBlbWl0dGVkIG9uY2UgdGhlIHZpZXdwb3J0IHNldHRsZXMgKGV4aXN0aW5nIGdldFZpZXdwb3J0Q2hhbmdlJCBzZW1hbnRpY3MpLlxuICAgKiAgQSBuZXcgc3Vic2NyaWJlciBmaXJzdCByZWNlaXZlcyB0aGUgY3VycmVudCByZWN0IHdoZW4gdGhlIHZpZXdwb3J0IGlzIHJlYWR5LiAqL1xuICBzZXR0bGVkJDogT2JzZXJ2YWJsZTxQbG90TW9kZVJlY3Q+O1xuICAvKipcbiAgICogUGFuIGFuZCB6b29tIHNvIGEgbGV2ZWwtMCBpbWFnZSByZWN0IGZpbGxzIHRoZSB2aWV3ICh3aXRoaW4gdGhlIHZpZXdlcidzIHpvb21cbiAgICogY29uc3RyYWludHMpLCBlLmcuIHRvIHRha2UgdGhlIHVzZXIgdG8gYSByZWdpb24gYSBtb2RlIHByb3Bvc2VzLiBBbmltYXRlZCB1bmxlc3NcbiAgICogYGltbWVkaWF0ZWx5YC4gQSBuby1vcCB3aGlsZSB0aGUgdmlld3BvcnQgaXMgbm90IHJlYWR5LiBPcHRpb25hbDogYmFja2VuZHMgd2l0aG91dFxuICAgKiBhIDJEIGltYWdlIHZpZXdwb3J0IGxlYXZlIGl0IG91dCwgc28gY2FsbGVycyBmZWF0dXJlLWRldGVjdCBpdC5cbiAgICovXG4gIGZpdEJvdW5kcz8ocmVjdDogUGxvdE1vZGVSZWN0LCBvcHRpb25zPzogeyBpbW1lZGlhdGVseT86IGJvb2xlYW4gfSk6IHZvaWQ7XG59XG5cbi8qKiBUaGUgY2xhc3MgYSB7QGxpbmsgUGxvdE1vZGVUb29scy5hcm1CcnVzaH0gc3Ryb2tlIHBhaW50cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdE1vZGVCcnVzaENsYXNzIHtcbiAgLyoqIExhYmVsIGZvciB0aGUgcGFpbnRlZCByZWdpb25zOyB0aGUgc3Ryb2tlIG9ubHkgZXh0ZW5kcyBvciBtZXJnZXMgcmVnaW9ucyB3aXRoIGl0LiAqL1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqIENvbG91ciBmb3IgdGhlIHBhaW50ZWQgcmVnaW9ucyAoaW5zdGVhZCBvZiB0aGUgdG9vbGJhcidzIHNoYXBlIGNvbG91cikuICovXG4gIGNvbG9yPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSB2aXN1YWxpemVyJ3Mgb3duIHRvb2xiYXIgdG9vbHMsIGFybWVkIG9uIGEgbW9kZSdzIGJlaGFsZi4gR29pbmcgdGhyb3VnaFxuICogdGhpcyByYXRoZXIgdGhhbiB7QGxpbmsgSVZpc3VhbGl6ZXJ9IGtlZXBzIHRoZSB0b29sYmFyIGluIHN0ZXA6IHRoZSBhcm1lZFxuICogdG9vbCdzIGJ1dHRvbiBpcyBoaWdobGlnaHRlZCBhbmQgaXRzIGNvbnRyb2xzIChlLmcuIHRoZSBicnVzaCBzaXplKSBzaG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlVG9vbHMge1xuICAvKipcbiAgICogQXJtIHRoZSB0b29sYmFyIGJydXNoLCBwYWludGluZyBgYnJ1c2hDbGFzc2AuIENhbGxpbmcgaXQgYWdhaW4gd2hpbGUgdGhlXG4gICAqIGJydXNoIGlzIGFybWVkIHN3aXRjaGVzIGNsYXNzOyB0aGUgbmV4dCBzdHJva2Ugc3RhcnRzIGEgcmVnaW9uIG9mIGl0LlxuICAgKiBUaGUgdXNlciBwaWNraW5nIGFueSB0b29sIGZyb20gdGhlIHRvb2xiYXIgKGluY2x1ZGluZyB0aGUgYnJ1c2gpIHJlcGxhY2VzXG4gICAqIHRoaXMgd2l0aCB0aGUgcGxhaW4gdG9vbC5cbiAgICovXG4gIGFybUJydXNoKGJydXNoQ2xhc3M/OiBQbG90TW9kZUJydXNoQ2xhc3MpOiB2b2lkO1xuICAvKiogRGlzYXJtIHdoYXRldmVyIHRvb2wgaXMgYXJtZWQsIGFzIGlmIHRoZSB1c2VyIHRvZ2dsZWQgaXQgb2ZmLiAqL1xuICBkaXNhcm0oKTogdm9pZDtcbiAgLyoqIFRoZSBhcm1lZCB0b29sYmFyIHRvb2wgaWQgKCdicnVzaCcsICdwYW4nLCDigKYgb3IgbnVsbCkuIFJlcGxheXMgdGhlIGN1cnJlbnQgdmFsdWUuICovXG4gIGFjdGl2ZVRvb2wkOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+O1xufVxuXG4vKiogRXZlcnl0aGluZyBhIGNvbnRyaWJ1dGVkIG1vZGUgZ2V0cyB0byB3b3JrIHdpdGggd2hpbGUgaXQgaXMgYWN0aXZlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90TW9kZUNvbnRleHQge1xuICAvKiogRnVsbCBwdWJsaWMgdmlzdWFsaXplciBBUEk6IHJlZ2lvbnMsIHJlZ2lvbiBvdmVybGF5ICh0b29sIG1vZGVzKSwgdW5kbywgZXRjLiAqL1xuICB2aXN1YWxpemVyOiBJVmlzdWFsaXplcjtcbiAgdmlld3BvcnQ6IFBsb3RNb2RlVmlld3BvcnQ7XG4gIC8qKiBDdXJyZW50IGltYWdlIGluZm8gZnJvbSBJTUFHRV9TVEFURV9QT1JUIChudWxsIHVudGlsIGFuIGltYWdlIGlzIGxvYWRlZCkuICovXG4gIGltYWdlSW5mbyQ6IE9ic2VydmFibGU8SUltYWdlSW5mbyB8IG51bGw+O1xuICAvKiogVG9vbGJhciB0b29scyAoc2luY2UgMC42LjApLiBPcHRpb25hbCBzbyBhIGNvbnRleHQgYnVpbHQgZm9yIDAuNS4wIHN0aWxsIHR5cGUtY2hlY2tzLiAqL1xuICB0b29scz86IFBsb3RNb2RlVG9vbHM7XG59XG5cbi8qKiBBIGxpdmUgYWN0aXZhdGlvbiBvZiBhIGNvbnRyaWJ1dGVkIG1vZGUuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb3RNb2RlU2Vzc2lvbiB7XG4gIC8qKiBDYWxsZWQgd2hlbiB0aGUgdXNlciBsZWF2ZXMgdGhlIG1vZGUsIHRoZSBpbWFnZSBjaGFuZ2VzLCBvciB0aGUgdmlzdWFsaXplciBpcyBkZXN0cm95ZWQuICovXG4gIGRlYWN0aXZhdGUoKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgbW9kZSdzIHNpZGUgcGFuZWwsIHNob3duIGluIHRoZSB2aXN1YWxpemVyJ3MgcmlnaHQtaGFuZCBwYW5lbCBhcmVhIHdoaWxlXG4gKiBhIHNlc3Npb24gaXMgbGl2ZS4gVHdvIGZvcm1zOlxuICpcbiAqICAtIGBjb21wb25lbnRgOiBhbiBBbmd1bGFyIGNvbXBvbmVudCwgcmVuZGVyZWQgdGhyb3VnaCBgTmdDb21wb25lbnRPdXRsZXRgXG4gKiAgICB3aXRoIHtAbGluayBQTE9UX01PREVfQ09OVEVYVH0gYW5kIHtAbGluayBQTE9UX01PREVfU0VTU0lPTn0gaW4gaXRzXG4gKiAgICBpbmplY3Rvci4gTmVlZHMgYW4gQU9ULWNvbXBpbGVkIChwYXJ0aWFsLUl2eSkgY29tcG9uZW50LlxuICogIC0gYG1vdW50YDogZnJhbWV3b3JrLWFnbm9zdGljLiBUaGUgdmlzdWFsaXplciBoYW5kcyBvdmVyIGFuIGVtcHR5IGhvc3RcbiAqICAgIGVsZW1lbnQgYWZ0ZXIgYGFjdGl2YXRlYCByZXNvbHZlczsgdGhlIGZ1bmN0aW9uIHJlbmRlcnMgaW50byBpdCBhbmQgcmV0dXJuc1xuICogICAgYSB0ZWFyZG93bi4gVGhlIHRlYXJkb3duIGlzIGNhbGxlZCBleGFjdGx5IG9uY2Ugd2hlbiB0aGUgbW9kZSBkZWFjdGl2YXRlcyxcbiAqICAgIGJlZm9yZSBgc2Vzc2lvbi5kZWFjdGl2YXRlKClgLCBhbmQgdGhlIGhvc3QgZWxlbWVudCBpcyB0aGVuIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCB0eXBlIFBsb3RNb2RlUGFuZWwgPVxuICB8IHsgdGl0bGU6IHN0cmluZzsgY29tcG9uZW50OiBUeXBlPHVua25vd24+IH1cbiAgfCB7XG4gICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgbW91bnQoaG9zdDogSFRNTEVsZW1lbnQsIGN0eDogUGxvdE1vZGVDb250ZXh0LCBzZXNzaW9uOiBQbG90TW9kZVNlc3Npb24pOiAoKSA9PiB2b2lkO1xuICAgIH07XG5cbi8qKiBBIHBsb3QgbW9kZSBjb250cmlidXRlZCB0byB0aGUgc2VsZWN0b3IuIEEgcGxhaW4gb2JqZWN0IGlzIGVub3VnaC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvdFR5cGVDb250cmlidXRpb24ge1xuICBkZXNjcmlwdG9yOiBDb250cmlidXRlZFBsb3RUeXBlRGVzY3JpcHRvcjtcbiAgLyoqIENhbGxlZCBhZnRlciB0aGUgYmFzZSBiYWNrZW5kIGhhcyBwbG90dGVkIHRoZSBpbWFnZSBpbiB0aGlzIG1vZGUuICovXG4gIGFjdGl2YXRlKGN0eDogUGxvdE1vZGVDb250ZXh0KTogUGxvdE1vZGVTZXNzaW9uIHwgUHJvbWlzZTxQbG90TW9kZVNlc3Npb24+O1xuICAvKipcbiAgICogT3B0aW9uYWwgc2lkZSBwYW5lbCwgcmVuZGVyZWQgaW4gdGhlIHZpc3VhbGl6ZXIncyByaWdodC1oYW5kIHBhbmVsIGFyZWEgd2hpbGUgdGhlXG4gICAqIG1vZGUgaXMgYWN0aXZlLiBBIGNvbXBvbmVudCBwYW5lbCBjYW4gaW5qZWN0IFBMT1RfTU9ERV9DT05URVhUIGFuZCBQTE9UX01PREVfU0VTU0lPTi5cbiAgICovXG4gIHBhbmVsPzogUGxvdE1vZGVQYW5lbDtcbn1cblxuLyoqXG4gKiBNdWx0aS1wcm92aWRlciB0b2tlbiBmb3IgY29udHJpYnV0ZWQgcGxvdCBtb2Rlcy5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgaGFzIG5vIGBmYWN0b3J5YDogdW5yZWdpc3RlcmVkIG1lYW5zIG5vIGNvbnRyaWJ1dGVkIG1vZGVzLCBhbmQgdGhlXG4gKiBsaWJyYXJ5IGJlaGF2ZXMgZXhhY3RseSBhcyBiZWZvcmUuIFRoZSB2aXN1YWxpemVyIGluamVjdHMgaXQgYHsgb3B0aW9uYWw6IHRydWUgfWBcbiAqIGFuZCB0cmVhdHMgbnVsbCBhcyBlbXB0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IFBMT1RfVFlQRV9DT05UUklCVVRJT05TID0gbmV3IEluamVjdGlvblRva2VuPHJlYWRvbmx5IFBsb3RUeXBlQ29udHJpYnV0aW9uW10+KFxuICAnUExPVF9UWVBFX0NPTlRSSUJVVElPTlMnLFxuKTtcbi8qKiBUaGUgYWN0aXZlIG1vZGUncyBjb250ZXh0LCBpbiBhIGNvbXBvbmVudCBwYW5lbCdzIGluamVjdG9yLiAqL1xuZXhwb3J0IGNvbnN0IFBMT1RfTU9ERV9DT05URVhUID0gbmV3IEluamVjdGlvblRva2VuPFBsb3RNb2RlQ29udGV4dD4oJ1BMT1RfTU9ERV9DT05URVhUJyk7XG4vKiogVGhlIGFjdGl2ZSBtb2RlJ3Mgc2Vzc2lvbiwgaW4gYSBjb21wb25lbnQgcGFuZWwncyBpbmplY3Rvci4gKi9cbmV4cG9ydCBjb25zdCBQTE9UX01PREVfU0VTU0lPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQbG90TW9kZVNlc3Npb24+KCdQTE9UX01PREVfU0VTU0lPTicpO1xuXG4vKipcbiAqIE9uZSBlbnRyeSBpbiB0aGUgcGxvdC10eXBlIHNlbGVjdG9yOiBhIGJ1aWx0LWluIHtAbGluayBQbG90VHlwZURlc2NyaXB0b3J9XG4gKiBhcy1pcywgb3IgYSBjb250cmlidXRlZCBkZXNjcmlwdG9yIGNvbXBsZXRlZCB3aXRoIGl0cyBiYXNlIHR5cGUncyBgc291cmNlYC5cbiAqIEV2ZXJ5IGVudHJ5IHRoZXJlZm9yZSBjYXJyaWVzIHRoZSBzYW1lIGZpZWxkcyB0aGUgc2VsZWN0b3IgY3VyYXRlcyBieS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG90VHlwZU9wdGlvbiBleHRlbmRzIE9taXQ8UGxvdFR5cGVEZXNjcmlwdG9yLCAndHlwZSc+IHtcbiAgdHlwZTogUGxvdFR5cGVJZDtcbiAgLyoqIFNldCBvbmx5IGZvciBhIGNvbnRyaWJ1dGVkIG1vZGU6IHRoZSBidWlsdC1pbiB0eXBlIHRoYXQgcmVuZGVycyBpdC4gKi9cbiAgYmFzZVR5cGU/OiBQbG90VHlwZTtcbn1cblxuLyoqIFRoZSBzZWxlY3RvciBlbnRyeSBmb3IgYSBjb250cmlidXRlZCBtb2RlLCBnaXZlbiBpdHMgYmFzZSB0eXBlJ3MgZGVzY3JpcHRvci4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb250cmlidXRlZFBsb3RUeXBlT3B0aW9uKFxuICBkOiBDb250cmlidXRlZFBsb3RUeXBlRGVzY3JpcHRvcixcbiAgYmFzZTogUGxvdFR5cGVEZXNjcmlwdG9yLFxuKTogUGxvdFR5cGVPcHRpb24ge1xuICByZXR1cm4geyAuLi5kLCBzb3VyY2U6IGJhc2Uuc291cmNlIH07XG59XG4iXX0=