@kepler.gl/components 3.2.6 → 3.3.0-alpha.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 (217) hide show
  1. package/dist/bottom-widget.d.ts +4 -4
  2. package/dist/common/action-panel.d.ts +3 -3
  3. package/dist/common/animation-control/animation-control.d.ts +1 -1
  4. package/dist/common/animation-control/playback-controls.d.ts +1 -1
  5. package/dist/common/color-legend.d.ts +4 -4
  6. package/dist/common/column-stats-chart.d.ts +3 -3
  7. package/dist/common/data-table/button.d.ts +1 -1
  8. package/dist/common/data-table/canvas.d.ts +0 -1
  9. package/dist/common/data-table/cell-size.d.ts +2 -2
  10. package/dist/common/data-table/display-format.d.ts +1 -1
  11. package/dist/common/data-table/header-cell.d.ts +2 -2
  12. package/dist/common/data-table/index.d.ts +7 -9
  13. package/dist/common/data-table/index.js +1 -1
  14. package/dist/common/data-table/option-dropdown.d.ts +1 -1
  15. package/dist/common/field-selector.d.ts +5 -5
  16. package/dist/common/field-token.d.ts +1 -1
  17. package/dist/common/file-uploader/file-drop.d.ts +1 -1
  18. package/dist/common/file-uploader/file-upload-progress.d.ts +1 -1
  19. package/dist/common/file-uploader/file-upload.d.ts +1 -1
  20. package/dist/common/flex-container.d.ts +2 -3
  21. package/dist/common/histogram-plot.d.ts +1 -1
  22. package/dist/common/icon-button.d.ts +16 -16
  23. package/dist/common/icons/base.d.ts +1 -1
  24. package/dist/common/icons/close.js +1 -1
  25. package/dist/common/icons/effects/distance-fog.d.ts +14 -0
  26. package/dist/common/icons/effects/distance-fog.js +79 -0
  27. package/dist/common/icons/effects/surface-fog.d.ts +14 -0
  28. package/dist/common/icons/effects/surface-fog.js +86 -0
  29. package/dist/common/icons/index.d.ts +2 -0
  30. package/dist/common/icons/index.js +15 -1
  31. package/dist/common/item-selector/chickleted-input.d.ts +4 -4
  32. package/dist/common/item-selector/dropdown-list.d.ts +3 -3
  33. package/dist/common/item-selector/dropdown-select.d.ts +7 -7
  34. package/dist/common/item-selector/item-selector.d.ts +2 -2
  35. package/dist/common/item-selector/typeahead.d.ts +3 -3
  36. package/dist/common/loading-spinner.d.ts +2 -2
  37. package/dist/common/modal.d.ts +5 -5
  38. package/dist/common/portaled.d.ts +8 -25
  39. package/dist/common/progress-bar.d.ts +1 -1
  40. package/dist/common/radius-legend.d.ts +1 -1
  41. package/dist/common/range-brush.d.ts +1 -1
  42. package/dist/common/range-plot.d.ts +1 -1
  43. package/dist/common/slider/mouse-event.d.ts +1 -1
  44. package/dist/common/slider/slider-bar-handle.d.ts +2 -2
  45. package/dist/common/slider/slider-handle.d.ts +3 -3
  46. package/dist/common/slider/slider.d.ts +2 -2
  47. package/dist/common/styled-components.d.ts +157 -158
  48. package/dist/common/sync-timeline-control.d.ts +3 -3
  49. package/dist/common/time-range-slider-time-title.d.ts +1 -1
  50. package/dist/common/time-range-slider.d.ts +2 -2
  51. package/dist/common/timeline-slider.d.ts +1 -1
  52. package/dist/common/tippy-tooltip.d.ts +1 -1
  53. package/dist/common/toolbar-item.d.ts +1 -1
  54. package/dist/common/toolbar.d.ts +1 -1
  55. package/dist/common/vertical-toolbar.d.ts +2 -3
  56. package/dist/container.d.ts +6 -6
  57. package/dist/context.d.ts +3 -3
  58. package/dist/dnd-context.d.ts +2 -2
  59. package/dist/editor/editor.d.ts +1 -1
  60. package/dist/editor/editor.js +1 -1
  61. package/dist/editor/feature-action-panel.d.ts +1 -1
  62. package/dist/editor/feature-action-panel.js +1 -1
  63. package/dist/effects/compact-color-picker.d.ts +1 -1
  64. package/dist/effects/effect-configurator.d.ts +2 -2
  65. package/dist/effects/effect-configurator.js +52 -14
  66. package/dist/effects/effect-list.d.ts +1 -1
  67. package/dist/effects/effect-manager.d.ts +3 -3
  68. package/dist/effects/effect-manager.js +9 -2
  69. package/dist/effects/effect-panel-header.d.ts +2 -2
  70. package/dist/effects/effect-panel-header.js +2 -2
  71. package/dist/effects/effect-panel.d.ts +2 -2
  72. package/dist/effects/effect-time-configurator.d.ts +1 -1
  73. package/dist/effects/effect-time-selector.d.ts +1 -1
  74. package/dist/effects/effect-time-slider.d.ts +3 -3
  75. package/dist/effects/effect-type-dropdown-list.d.ts +2 -2
  76. package/dist/effects/effect-type-list-item.d.ts +1 -1
  77. package/dist/effects/effect-type-selector.d.ts +2 -2
  78. package/dist/effects/side-panel-title.d.ts +1 -1
  79. package/dist/effects/timezone-selector.d.ts +1 -1
  80. package/dist/filters/components.d.ts +2 -3
  81. package/dist/filters/filter-panels/types.d.ts +4 -4
  82. package/dist/filters/types.d.ts +8 -8
  83. package/dist/geocoder/geocoder.d.ts +3 -3
  84. package/dist/geocoder/geocoder.js +5 -1
  85. package/dist/geocoder-panel.d.ts +10 -2
  86. package/dist/geocoder-panel.js +3 -3
  87. package/dist/hooks/use-cloud-list-provider.d.ts +1 -1
  88. package/dist/hooks/use-dnd-effects.d.ts +1 -1
  89. package/dist/hooks/use-dnd-layers.d.ts +1 -1
  90. package/dist/hooks/use-feature-flags.d.ts +1 -1
  91. package/dist/hooks/use-fetch-raster-tile-metadata.d.ts +3 -3
  92. package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +2 -2
  93. package/dist/hooks/use-legend-position.d.ts +4 -5
  94. package/dist/injector.d.ts +5 -5
  95. package/dist/kepler-gl.d.ts +53 -62
  96. package/dist/loading-indicator.d.ts +4 -4
  97. package/dist/map/effects/effect-control.d.ts +1 -1
  98. package/dist/map/layer-hover-info.d.ts +3 -3
  99. package/dist/map/layer-hover-info.js +2 -2
  100. package/dist/map/layer-selector-panel.d.ts +1 -1
  101. package/dist/map/lazy-tippy.js +3 -3
  102. package/dist/map/locale-panel.d.ts +1 -1
  103. package/dist/map/map-control-panel.d.ts +1 -1
  104. package/dist/map/map-control-toolbar.d.ts +6 -7
  105. package/dist/map/map-control-tooltip.d.ts +1 -1
  106. package/dist/map/map-control.d.ts +3 -2
  107. package/dist/map/map-control.js +1 -1
  108. package/dist/map/map-draw-panel.d.ts +1 -1
  109. package/dist/map/map-legend-panel.d.ts +4 -3
  110. package/dist/map/map-legend-panel.js +4 -2
  111. package/dist/map/map-legend.d.ts +10 -8
  112. package/dist/map/map-legend.js +37 -7
  113. package/dist/map/map-popover-content.d.ts +2 -2
  114. package/dist/map/map-popover.d.ts +2 -2
  115. package/dist/map/split-map-button.d.ts +1 -1
  116. package/dist/map/toggle-3d-button.d.ts +1 -1
  117. package/dist/map-container.d.ts +2 -2
  118. package/dist/map-container.js +45 -25
  119. package/dist/map-view-state-context.d.ts +9 -2
  120. package/dist/map-view-state-context.js +1 -1
  121. package/dist/modal-container.d.ts +3 -6
  122. package/dist/modals/cloud-components/cloud-header.d.ts +1 -1
  123. package/dist/modals/cloud-components/provider-select.d.ts +1 -1
  124. package/dist/modals/cloud-tile.d.ts +1 -1
  125. package/dist/modals/data-table-modal.d.ts +1 -1
  126. package/dist/modals/export-data-modal.js +2 -2
  127. package/dist/modals/export-image-modal.js +1 -1
  128. package/dist/modals/export-map-modal/components.d.ts +1 -1
  129. package/dist/modals/export-map-modal/export-html-map.d.ts +1 -1
  130. package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
  131. package/dist/modals/image-modal-container.d.ts +1 -1
  132. package/dist/modals/load-data-modal.d.ts +2 -2
  133. package/dist/modals/modal-dialog.d.ts +0 -2
  134. package/dist/modals/overwrite-map-modal.d.ts +1 -1
  135. package/dist/modals/save-map-modal.d.ts +3 -3
  136. package/dist/modals/share-map-modal.d.ts +1 -1
  137. package/dist/modals/tilesets-modals/common.d.ts +3 -3
  138. package/dist/modals/tilesets-modals/common.js +1 -1
  139. package/dist/modals/tilesets-modals/load-data-footer.d.ts +1 -1
  140. package/dist/modals/tilesets-modals/load-tileset.d.ts +1 -1
  141. package/dist/modals/tilesets-modals/load-tileset.js +8 -2
  142. package/dist/modals/tilesets-modals/tileset-icon.d.ts +1 -1
  143. package/dist/modals/tilesets-modals/tileset-raster-form.d.ts +2 -2
  144. package/dist/modals/tilesets-modals/tileset-tile3d-form.d.ts +12 -0
  145. package/dist/modals/tilesets-modals/tileset-tile3d-form.js +388 -0
  146. package/dist/modals/tilesets-modals/tileset-vector-form.d.ts +3 -3
  147. package/dist/modals/tilesets-modals/tileset-wms-form.d.ts +1 -1
  148. package/dist/modals/tilesets-modals/tileset-wms-form.js +53 -10
  149. package/dist/plot-container.js +49 -9
  150. package/dist/side-panel/add-by-dataset-button.d.ts +1 -1
  151. package/dist/side-panel/common/dataset-info.d.ts +2 -2
  152. package/dist/side-panel/common/dataset-info.js +2 -2
  153. package/dist/side-panel/common/dataset-tag.d.ts +2 -2
  154. package/dist/side-panel/common/dataset-title.d.ts +2 -2
  155. package/dist/side-panel/common/source-data-catalog.d.ts +3 -3
  156. package/dist/side-panel/common/types.d.ts +8 -8
  157. package/dist/side-panel/custom-panel.d.ts +2 -2
  158. package/dist/side-panel/filter-manager.d.ts +3 -3
  159. package/dist/side-panel/filter-panel/add-filter-button.d.ts +1 -1
  160. package/dist/side-panel/filter-panel/filter-panel-header.d.ts +2 -2
  161. package/dist/side-panel/interaction-manager.d.ts +1 -1
  162. package/dist/side-panel/interaction-panel/brush-config.d.ts +1 -1
  163. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -3
  164. package/dist/side-panel/interaction-panel/tooltip-config.d.ts +1 -1
  165. package/dist/side-panel/layer-manager.d.ts +2 -2
  166. package/dist/side-panel/layer-panel/add-layer-button.d.ts +1 -1
  167. package/dist/side-panel/layer-panel/channel-by-value-selector.d.ts +1 -1
  168. package/dist/side-panel/layer-panel/color-breaks-panel.d.ts +4 -4
  169. package/dist/side-panel/layer-panel/color-palette-preset.d.ts +1 -1
  170. package/dist/side-panel/layer-panel/color-palette.d.ts +2 -2
  171. package/dist/side-panel/layer-panel/color-range-selector.d.ts +3 -3
  172. package/dist/side-panel/layer-panel/color-scale-selector.d.ts +4 -4
  173. package/dist/side-panel/layer-panel/color-selector.d.ts +3 -3
  174. package/dist/side-panel/layer-panel/column-selector.d.ts +1 -1
  175. package/dist/side-panel/layer-panel/custom-palette.d.ts +10 -10
  176. package/dist/side-panel/layer-panel/custom-picker.d.ts +1 -1
  177. package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
  178. package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +1 -1
  179. package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -2
  180. package/dist/side-panel/layer-panel/dimension-scale-selector.d.ts +1 -1
  181. package/dist/side-panel/layer-panel/how-to-button.d.ts +1 -1
  182. package/dist/side-panel/layer-panel/layer-color-selector.d.ts +3 -3
  183. package/dist/side-panel/layer-panel/layer-column-config.d.ts +1 -1
  184. package/dist/side-panel/layer-panel/layer-column-mode-config.d.ts +3 -3
  185. package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -5
  186. package/dist/side-panel/layer-panel/layer-configurator.d.ts +2 -2
  187. package/dist/side-panel/layer-panel/layer-configurator.js +27 -17
  188. package/dist/side-panel/layer-panel/layer-error-message.d.ts +1 -1
  189. package/dist/side-panel/layer-panel/layer-list.d.ts +2 -2
  190. package/dist/side-panel/layer-panel/layer-panel-header.d.ts +5 -5
  191. package/dist/side-panel/layer-panel/layer-panel.d.ts +1 -1
  192. package/dist/side-panel/layer-panel/layer-type-dropdown-list.d.ts +2 -2
  193. package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +2 -2
  194. package/dist/side-panel/layer-panel/layer-type-selector.d.ts +1 -1
  195. package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +1 -1
  196. package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
  197. package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
  198. package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
  199. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +2 -2
  200. package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -1
  201. package/dist/side-panel/layer-panel/vis-config-slider.d.ts +1 -1
  202. package/dist/side-panel/layer-panel/vis-config-switch.d.ts +1 -1
  203. package/dist/side-panel/map-manager.d.ts +1 -1
  204. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +1 -1
  205. package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +2 -2
  206. package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +1 -1
  207. package/dist/side-panel/map-style-panel/map-style-selector.d.ts +1 -1
  208. package/dist/side-panel/panel-header-action.d.ts +1 -1
  209. package/dist/side-panel/panel-header.d.ts +12 -12
  210. package/dist/side-panel/panel-tab.d.ts +4 -4
  211. package/dist/side-panel/panel-title.d.ts +1 -1
  212. package/dist/side-panel/panel-toggle.d.ts +1 -1
  213. package/dist/side-panel/panel-view-list-toggle.d.ts +3 -3
  214. package/dist/side-panel/side-bar.d.ts +2 -2
  215. package/dist/side-panel.d.ts +1 -1
  216. package/dist/types.d.ts +3 -3
  217. package/package.json +23 -22
@@ -31,7 +31,7 @@ var defaultActionIcons = {
31
31
  enableConfig: _icons.ArrowDown,
32
32
  disableConfig: _icons.ArrowUp
33
33
  };
34
- var defaultEffectIcons = (_defaultEffectIcons = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_defaultEffectIcons, _constants.LIGHT_AND_SHADOW_EFFECT.type, _icons.LightAndShadowEffectIcon), _constants.POSTPROCESSING_EFFECTS.ink.type, _icons.InkEffectIcon), _constants.POSTPROCESSING_EFFECTS.brightnessContrast.type, _icons.BrightnessContrastEffectIcon), _constants.POSTPROCESSING_EFFECTS.hueSaturation.type, _icons.HueSaturationEffectIcon), _constants.POSTPROCESSING_EFFECTS.vibrance.type, _icons.VibranceEffectIcon), _constants.POSTPROCESSING_EFFECTS.sepia.type, _icons.SepiaEffectIcon), _constants.POSTPROCESSING_EFFECTS.dotScreen.type, _icons.DotScreenEffectIcon), _constants.POSTPROCESSING_EFFECTS.colorHalftone.type, _icons.ColorHalftoneEffectIcon), _constants.POSTPROCESSING_EFFECTS.noise.type, _icons.NoiseEffectIcon), _constants.POSTPROCESSING_EFFECTS.triangleBlur.type, _icons.TriangleBlurEffectIcon), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_defaultEffectIcons, _constants.POSTPROCESSING_EFFECTS.zoomBlur.type, _icons.ZoomBlurEffectIcon), _constants.POSTPROCESSING_EFFECTS.tiltShift.type, _icons.TiltShiftEffectIcon), _constants.POSTPROCESSING_EFFECTS.edgeWork.type, _icons.EdgeWorkEffectIcon), _constants.POSTPROCESSING_EFFECTS.vignette.type, _icons.VignetteEffectIcon), _constants.POSTPROCESSING_EFFECTS.magnify.type, _icons.MagnifyEffectIcon), _constants.POSTPROCESSING_EFFECTS.hexagonalPixelate.type, _icons.HexagonalPixelateEffectIcon));
34
+ var defaultEffectIcons = (_defaultEffectIcons = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_defaultEffectIcons, _constants.LIGHT_AND_SHADOW_EFFECT.type, _icons.LightAndShadowEffectIcon), _constants.POSTPROCESSING_EFFECTS.ink.type, _icons.InkEffectIcon), _constants.POSTPROCESSING_EFFECTS.brightnessContrast.type, _icons.BrightnessContrastEffectIcon), _constants.POSTPROCESSING_EFFECTS.hueSaturation.type, _icons.HueSaturationEffectIcon), _constants.POSTPROCESSING_EFFECTS.vibrance.type, _icons.VibranceEffectIcon), _constants.POSTPROCESSING_EFFECTS.sepia.type, _icons.SepiaEffectIcon), _constants.POSTPROCESSING_EFFECTS.dotScreen.type, _icons.DotScreenEffectIcon), _constants.POSTPROCESSING_EFFECTS.colorHalftone.type, _icons.ColorHalftoneEffectIcon), _constants.POSTPROCESSING_EFFECTS.noise.type, _icons.NoiseEffectIcon), _constants.POSTPROCESSING_EFFECTS.triangleBlur.type, _icons.TriangleBlurEffectIcon), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_defaultEffectIcons, _constants.POSTPROCESSING_EFFECTS.zoomBlur.type, _icons.ZoomBlurEffectIcon), _constants.POSTPROCESSING_EFFECTS.tiltShift.type, _icons.TiltShiftEffectIcon), _constants.POSTPROCESSING_EFFECTS.edgeWork.type, _icons.EdgeWorkEffectIcon), _constants.POSTPROCESSING_EFFECTS.vignette.type, _icons.VignetteEffectIcon), _constants.POSTPROCESSING_EFFECTS.magnify.type, _icons.MagnifyEffectIcon), _constants.POSTPROCESSING_EFFECTS.hexagonalPixelate.type, _icons.HexagonalPixelateEffectIcon), _constants.DISTANCE_FOG_TYPE, _icons.DistanceFogEffectIcon), _constants.SURFACE_FOG_TYPE, _icons.SurfaceFogEffectIcon));
35
35
  var StyledEffectPanelHeader = (0, _styledComponents["default"])(_styledComponents2.StyledPanelHeader)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n height: ", "px;\n position: relative;\n align-items: stretch;\n\n .effect__drag-handle {\n margin-left: -5px;\n color: ", ";\n }\n\n .effect__drag-handle__placeholder {\n height: 20px;\n padding: 0px;\n margin: 10px 10px 10px 5px;\n }\n\n &:hover {\n cursor: pointer;\n background-color: ", ";\n .effect__drag-handle {\n opacity: 1;\n }\n }\n\n border-left: 3px solid ", ";\n"])), function (props) {
36
36
  return props.theme.effectPanelHeaderHeight;
37
37
  }, function (props) {
@@ -177,4 +177,4 @@ function EffectPanelHeaderFactory(EffectPanelHeaderActionSection) {
177
177
  return EffectPanelHeader;
178
178
  }
179
179
  var _default = exports["default"] = EffectPanelHeaderFactory;
180
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfZGVmYXVsdEVmZmVjdEljb25zIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiZGVmYXVsdFByb3BzIiwiZXhwb3J0cyIsImlzRHJhZ05Ecm9wRW5hYmxlZCIsImRlZmF1bHRBY3Rpb25JY29ucyIsInJlbW92ZSIsIlRyYXNoIiwidmlzaWJsZSIsIkV5ZVNlZW4iLCJoaWRkZW4iLCJFeWVVbnNlZW4iLCJlbmFibGVDb25maWciLCJBcnJvd0Rvd24iLCJkaXNhYmxlQ29uZmlnIiwiQXJyb3dVcCIsImRlZmF1bHRFZmZlY3RJY29ucyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVCIsInR5cGUiLCJMaWdodEFuZFNoYWRvd0VmZmVjdEljb24iLCJQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTIiwiaW5rIiwiSW5rRWZmZWN0SWNvbiIsImJyaWdodG5lc3NDb250cmFzdCIsIkJyaWdodG5lc3NDb250cmFzdEVmZmVjdEljb24iLCJodWVTYXR1cmF0aW9uIiwiSHVlU2F0dXJhdGlvbkVmZmVjdEljb24iLCJ2aWJyYW5jZSIsIlZpYnJhbmNlRWZmZWN0SWNvbiIsInNlcGlhIiwiU2VwaWFFZmZlY3RJY29uIiwiZG90U2NyZWVuIiwiRG90U2NyZWVuRWZmZWN0SWNvbiIsImNvbG9ySGFsZnRvbmUiLCJDb2xvckhhbGZ0b25lRWZmZWN0SWNvbiIsIm5vaXNlIiwiTm9pc2VFZmZlY3RJY29uIiwidHJpYW5nbGVCbHVyIiwiVHJpYW5nbGVCbHVyRWZmZWN0SWNvbiIsInpvb21CbHVyIiwiWm9vbUJsdXJFZmZlY3RJY29uIiwidGlsdFNoaWZ0IiwiVGlsdFNoaWZ0RWZmZWN0SWNvbiIsImVkZ2VXb3JrIiwiRWRnZVdvcmtFZmZlY3RJY29uIiwidmlnbmV0dGUiLCJWaWduZXR0ZUVmZmVjdEljb24iLCJtYWduaWZ5IiwiTWFnbmlmeUVmZmVjdEljb24iLCJoZXhhZ29uYWxQaXhlbGF0ZSIsIkhleGFnb25hbFBpeGVsYXRlRWZmZWN0SWNvbiIsIlN0eWxlZEVmZmVjdFBhbmVsSGVhZGVyIiwic3R5bGVkIiwiU3R5bGVkUGFuZWxIZWFkZXIiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJlZmZlY3RQYW5lbEhlYWRlckhlaWdodCIsInRleHRDb2xvciIsInBhbmVsQmFja2dyb3VuZEhvdmVyIiwiSGVhZGVyQWN0aW9uU2VjdGlvbiIsImRpdiIsIlN0eWxlZFBhbmVsSGVhZGVySGlkZGVuQWN0aW9ucyIsImF0dHJzIiwiY2xhc3NOYW1lIiwiaXNDb25maWdBY3RpdmUiLCJwYW5lbEJhY2tncm91bmQiLCJTdHlsZWREcmFnSGFuZGxlIiwidGV4dENvbG9ySGwiLCJEcmFnSGFuZGxlIiwiX3JlZiIsImxpc3RlbmVycyIsImNoaWxkcmVuIiwiY3JlYXRlRWxlbWVudCIsIl9leHRlbmRzMiIsIkVmZmVjdFBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbkZhY3RvcnkiLCJkZXBzIiwiUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJFZmZlY3RQYW5lbEhlYWRlckFjdGlvblNlY3Rpb24iLCJlZmZlY3RJZCIsImlzRW5hYmxlZCIsIm9uVG9nZ2xlRW5hYmxlZCIsIm9uUmVtb3ZlRWZmZWN0Iiwib25Ub2dnbGVFbmFibGVDb25maWciLCJhY3Rpb25JdGVtcyIsIl9wcm9wcyRhY3Rpb25JY29ucyIsImFjdGlvbkljb25zIiwiZWZmZWN0QWN0aW9uSXRlbXMiLCJ1c2VNZW1vIiwia2V5IiwiaXNIaWRkZW4iLCJ0b29sdGlwIiwidG9vbHRpcFR5cGUiLCJvbkNsaWNrIiwiaWNvbiIsImNsYXNzTmFtZXMiLCJmaWx0ZXIiLCJpdGVtIiwiQm9vbGVhbiIsIm1hcCIsImNvbmNhdCIsInRlc3RJZCIsImlkIiwiSWNvbkNvbXBvbmVudCIsImNsYXNzbmFtZXMiLCJTdHlsZWRFZmZlY3RUaXRsZVNlY3Rpb24iLCJJY29uUGxhY2Vob2xkZXIiLCJFZmZlY3RJY29uV3JhcHBlciIsIkVmZmVjdFBhbmVsSGVhZGVyRmFjdG9yeSIsIkVmZmVjdFBhbmVsSGVhZGVyIiwiX3Byb3BzJGlzRHJhZ05Ecm9wRW5hIiwiX3Byb3BzJHNob3dTb3J0SGFuZGxlIiwic2hvd1NvcnRIYW5kbGUiLCJsYWJlbCIsImRlc2NyaXB0aW9uIiwiRUZGRUNUX0RFU0NSSVBUSU9OUyIsImZpbmQiLCJfZGVzY3JpcHRpb24iLCJuYW1lIiwiRWZmZWN0SWNvbiIsImFjdGl2ZSIsIlZlcnREb3RzIiwiaGVpZ2h0IiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZWZmZWN0cy9lZmZlY3QtcGFuZWwtaGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge1xuICBFRkZFQ1RfREVTQ1JJUFRJT05TLFxuICBMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVCxcbiAgUE9TVFBST0NFU1NJTkdfRUZGRUNUU1xufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnksIHtQYW5lbEhlYWRlckFjdGlvbkljb259IGZyb20gJy4uL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5pbXBvcnQge1xuICBBcnJvd0Rvd24sXG4gIEFycm93VXAsXG4gIEV5ZVNlZW4sXG4gIEV5ZVVuc2VlbixcbiAgVHJhc2gsXG4gIFZlcnREb3RzLFxuICBMaWdodEFuZFNoYWRvd0VmZmVjdEljb24sXG4gIElua0VmZmVjdEljb24sXG4gIEJyaWdodG5lc3NDb250cmFzdEVmZmVjdEljb24sXG4gIEh1ZVNhdHVyYXRpb25FZmZlY3RJY29uLFxuICBWaWJyYW5jZUVmZmVjdEljb24sXG4gIFNlcGlhRWZmZWN0SWNvbixcbiAgRG90U2NyZWVuRWZmZWN0SWNvbixcbiAgQ29sb3JIYWxmdG9uZUVmZmVjdEljb24sXG4gIE5vaXNlRWZmZWN0SWNvbixcbiAgVHJpYW5nbGVCbHVyRWZmZWN0SWNvbixcbiAgWm9vbUJsdXJFZmZlY3RJY29uLFxuICBUaWx0U2hpZnRFZmZlY3RJY29uLFxuICBFZGdlV29ya0VmZmVjdEljb24sXG4gIFZpZ25ldHRlRWZmZWN0SWNvbixcbiAgTWFnbmlmeUVmZmVjdEljb24sXG4gIEhleGFnb25hbFBpeGVsYXRlRWZmZWN0SWNvbixcbiAgQmFzZVByb3BzXG59IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1N0eWxlZFBhbmVsSGVhZGVyfSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25JdGVtID0ge1xuICBrZXk6IHN0cmluZztcbiAgaXNIaWRkZW4/OiBib29sZWFuO1xuICB0b29sdGlwOiBzdHJpbmc7XG4gIGNsYXNzTmFtZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgaWNvbjogUGFuZWxIZWFkZXJBY3Rpb25JY29uO1xuICB0b29sdGlwVHlwZT86ICdlcnJvcic7XG4gIG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBFZmZlY3RQYW5lbEhlYWRlclByb3BzID0ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGxpc3RlbmVyczogYW55O1xuICBlZmZlY3RJZDogc3RyaW5nO1xuICBpc0VuYWJsZWQ6IGJvb2xlYW47XG4gIGlzQ29uZmlnQWN0aXZlOiBib29sZWFuO1xuICBpc0pzb25FZGl0b3JBY3RpdmU6IGJvb2xlYW47XG4gIHNob3dTb3J0SGFuZGxlPzogYm9vbGVhbjtcbiAgaXNEcmFnTkRyb3BFbmFibGVkOiBib29sZWFuO1xuICBvblRvZ2dsZUVuYWJsZWQ6ICgpID0+IHZvaWQ7XG4gIG9uUmVtb3ZlRWZmZWN0OiAoKSA9PiB2b2lkO1xuICBvblRvZ2dsZUVuYWJsZUNvbmZpZzogKCkgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM/OiB7XG4gICAgcmVtb3ZlOiBSZWFjdC5Db21wb25lbnRUeXBlPFBhcnRpYWw8QmFzZVByb3BzPj47XG4gICAgdmlzaWJsZTogUmVhY3QuQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGhpZGRlbjogUmVhY3QuQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGVuYWJsZUNvbmZpZzogUmVhY3QuQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGRpc2FibGVDb25maWc6IFJlYWN0LkNvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+PjtcbiAgfTtcbiAgYWN0aW9uSXRlbXM/OiBBY3Rpb25JdGVtW107XG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBpc0RyYWdORHJvcEVuYWJsZWQ6IHRydWVcbn07XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgcmVtb3ZlOiBUcmFzaCxcbiAgdmlzaWJsZTogRXllU2VlbixcbiAgaGlkZGVuOiBFeWVVbnNlZW4sXG4gIGVuYWJsZUNvbmZpZzogQXJyb3dEb3duLFxuICBkaXNhYmxlQ29uZmlnOiBBcnJvd1VwXG59O1xuXG5jb25zdCBkZWZhdWx0RWZmZWN0SWNvbnMgPSB7XG4gIFtMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVC50eXBlXTogTGlnaHRBbmRTaGFkb3dFZmZlY3RJY29uLFxuICBbUE9TVFBST0NFU1NJTkdfRUZGRUNUUy5pbmsudHlwZV06IElua0VmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLmJyaWdodG5lc3NDb250cmFzdC50eXBlXTogQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0SWNvbixcbiAgW1BPU1RQUk9DRVNTSU5HX0VGRkVDVFMuaHVlU2F0dXJhdGlvbi50eXBlXTogSHVlU2F0dXJhdGlvbkVmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLnZpYnJhbmNlLnR5cGVdOiBWaWJyYW5jZUVmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLnNlcGlhLnR5cGVdOiBTZXBpYUVmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLmRvdFNjcmVlbi50eXBlXTogRG90U2NyZWVuRWZmZWN0SWNvbixcbiAgW1BPU1RQUk9DRVNTSU5HX0VGRkVDVFMuY29sb3JIYWxmdG9uZS50eXBlXTogQ29sb3JIYWxmdG9uZUVmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLm5vaXNlLnR5cGVdOiBOb2lzZUVmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLnRyaWFuZ2xlQmx1ci50eXBlXTogVHJpYW5nbGVCbHVyRWZmZWN0SWNvbixcbiAgW1BPU1RQUk9DRVNTSU5HX0VGRkVDVFMuem9vbUJsdXIudHlwZV06IFpvb21CbHVyRWZmZWN0SWNvbixcbiAgW1BPU1RQUk9DRVNTSU5HX0VGRkVDVFMudGlsdFNoaWZ0LnR5cGVdOiBUaWx0U2hpZnRFZmZlY3RJY29uLFxuICBbUE9TVFBST0NFU1NJTkdfRUZGRUNUUy5lZGdlV29yay50eXBlXTogRWRnZVdvcmtFZmZlY3RJY29uLFxuICBbUE9TVFBST0NFU1NJTkdfRUZGRUNUUy52aWduZXR0ZS50eXBlXTogVmlnbmV0dGVFZmZlY3RJY29uLFxuICBbUE9TVFBST0NFU1NJTkdfRUZGRUNUUy5tYWduaWZ5LnR5cGVdOiBNYWduaWZ5RWZmZWN0SWNvbixcbiAgW1BPU1RQUk9DRVNTSU5HX0VGRkVDVFMuaGV4YWdvbmFsUGl4ZWxhdGUudHlwZV06IEhleGFnb25hbFBpeGVsYXRlRWZmZWN0SWNvblxufTtcblxuY29uc3QgU3R5bGVkRWZmZWN0UGFuZWxIZWFkZXIgPSBzdHlsZWQoU3R5bGVkUGFuZWxIZWFkZXIpYFxuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZWZmZWN0UGFuZWxIZWFkZXJIZWlnaHR9cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgLmVmZmVjdF9fZHJhZy1oYW5kbGUge1xuICAgIG1hcmdpbi1sZWZ0OiAtNXB4O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIH1cblxuICAuZWZmZWN0X19kcmFnLWhhbmRsZV9fcGxhY2Vob2xkZXIge1xuICAgIGhlaWdodDogMjBweDtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgbWFyZ2luOiAxMHB4IDEwcHggMTBweCA1cHg7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gICAgLmVmZmVjdF9fZHJhZy1oYW5kbGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cblxuICBib3JkZXItbGVmdDogM3B4IHNvbGlkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJ9O1xuYDtcblxuY29uc3QgSGVhZGVyQWN0aW9uU2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcmlnaHQ6IDEwcHg7XG4gICY6aG92ZXIge1xuICAgIC5lZmZlY3QtcGFuZWxfX2hlYWRlcl9fYWN0aW9uc19faGlkZGVuIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cbmA7XG5cbi8vIEhpZGVuIGFjdGlvbnMgb25seSBzaG93IHVwIG9uIGhvdmVyXG50eXBlIFN0eWxlZFBhbmVsSGVhZGVySGlkZGVuQWN0aW9uc1Byb3BzID0ge2lzQ29uZmlnQWN0aXZlOiBib29sZWFufTtcbmNvbnN0IFN0eWxlZFBhbmVsSGVhZGVySGlkZGVuQWN0aW9ucyA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdlZmZlY3QtcGFuZWxfX2hlYWRlcl9fYWN0aW9uc19faGlkZGVuJ1xufSk8U3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zUHJvcHM+YFxuICBvcGFjaXR5OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAwLjRzIGVhc2U7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5pc0NvbmZpZ0FjdGl2ZSA/IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyIDogcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWREcmFnSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogMTAwMDtcbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICB9XG5gO1xuXG5jb25zdCBEcmFnSGFuZGxlID0gKHtjbGFzc05hbWUsIGxpc3RlbmVycywgY2hpbGRyZW59KSA9PiAoXG4gIDxTdHlsZWREcmFnSGFuZGxlIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSB7Li4ubGlzdGVuZXJzfT5cbiAgICB7Y2hpbGRyZW59XG4gIDwvU3R5bGVkRHJhZ0hhbmRsZT5cbik7XG5cbkVmZmVjdFBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbkZhY3RvcnkuZGVwcyA9IFtQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnldO1xuXG5leHBvcnQgZnVuY3Rpb24gRWZmZWN0UGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uRmFjdG9yeShcbiAgUGFuZWxIZWFkZXJBY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeT5cbik6IFJlYWN0LkZDPEVmZmVjdFBhbmVsSGVhZGVyUHJvcHM+IHtcbiAgY29uc3QgRWZmZWN0UGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uID0gKHByb3BzOiBFZmZlY3RQYW5lbEhlYWRlclByb3BzKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgZWZmZWN0SWQsXG4gICAgICBpc0VuYWJsZWQsXG4gICAgICBpc0NvbmZpZ0FjdGl2ZSxcbiAgICAgIG9uVG9nZ2xlRW5hYmxlZCxcbiAgICAgIG9uUmVtb3ZlRWZmZWN0LFxuICAgICAgb25Ub2dnbGVFbmFibGVDb25maWcsXG4gICAgICBhY3Rpb25JdGVtcyxcbiAgICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zXG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgZWZmZWN0QWN0aW9uSXRlbXM6IEFjdGlvbkl0ZW1bXSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBhY3Rpb25JdGVtcyA/PyBbXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiAncmVtb3ZlLWVmZmVjdCcsXG4gICAgICAgICAgICBpc0hpZGRlbjogdHJ1ZSxcbiAgICAgICAgICAgIHRvb2x0aXA6ICd0b29sdGlwLnJlbW92ZUVmZmVjdCcsXG4gICAgICAgICAgICB0b29sdGlwVHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIG9uQ2xpY2s6IG9uUmVtb3ZlRWZmZWN0LFxuICAgICAgICAgICAgaWNvbjogYWN0aW9uSWNvbnMucmVtb3ZlXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICd2aXNpYmlsaXR5LXRvZ2dsZScsXG4gICAgICAgICAgICB0b29sdGlwOiBpc0VuYWJsZWQgPyAndG9vbHRpcC5kaXNhYmxlRWZmZWN0JyA6ICd0b29sdGlwLmVuYWJsZWRFZmZlY3QnLFxuICAgICAgICAgICAgb25DbGljazogb25Ub2dnbGVFbmFibGVkLFxuICAgICAgICAgICAgaWNvbjogaXNFbmFibGVkID8gYWN0aW9uSWNvbnMudmlzaWJsZSA6IGFjdGlvbkljb25zLmhpZGRlblxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnZW5hYmxlLWNvbmZpZycsXG4gICAgICAgICAgICBjbGFzc05hbWVzOiB7J2lzLW9wZW4nOiBpc0NvbmZpZ0FjdGl2ZX0sXG4gICAgICAgICAgICB0b29sdGlwOiAndG9vbHRpcC5lZmZlY3RTZXR0aW5ncycsXG4gICAgICAgICAgICBvbkNsaWNrOiBvblRvZ2dsZUVuYWJsZUNvbmZpZyxcbiAgICAgICAgICAgIGljb246IGFjdGlvbkljb25zLmVuYWJsZUNvbmZpZ1xuICAgICAgICAgIH1cbiAgICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgYWN0aW9uSXRlbXMsXG4gICAgICAgIGFjdGlvbkljb25zLFxuICAgICAgICBpc0VuYWJsZWQsXG4gICAgICAgIGlzQ29uZmlnQWN0aXZlLFxuICAgICAgICBvblJlbW92ZUVmZmVjdCxcbiAgICAgICAgb25Ub2dnbGVFbmFibGVkLFxuICAgICAgICBvblRvZ2dsZUVuYWJsZUNvbmZpZ1xuICAgICAgXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEhlYWRlckFjdGlvblNlY3Rpb24gY2xhc3NOYW1lPVwiZWZmZWN0LXBhbmVsX19oZWFkZXJfX2FjdGlvbnNcIj5cbiAgICAgICAgPFN0eWxlZFBhbmVsSGVhZGVySGlkZGVuQWN0aW9ucyBpc0NvbmZpZ0FjdGl2ZT17aXNDb25maWdBY3RpdmV9PlxuICAgICAgICAgIHtlZmZlY3RBY3Rpb25JdGVtc1xuICAgICAgICAgICAgLmZpbHRlcigoaXRlbTogQWN0aW9uSXRlbSkgPT4gQm9vbGVhbihpdGVtLmlzSGlkZGVuKSlcbiAgICAgICAgICAgIC5tYXAoKGl0ZW06IEFjdGlvbkl0ZW0pID0+IChcbiAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgICAga2V5PXtpdGVtLmtleX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BlZmZlY3RfXyR7aXRlbS5rZXl9YH1cbiAgICAgICAgICAgICAgICB0ZXN0SWQ9e2Ake2l0ZW0ua2V5fS1hY3Rpb25gfVxuICAgICAgICAgICAgICAgIGlkPXtlZmZlY3RJZH1cbiAgICAgICAgICAgICAgICB0b29sdGlwPXtpdGVtLnRvb2x0aXB9XG4gICAgICAgICAgICAgICAgb25DbGljaz17aXRlbS5vbkNsaWNrfVxuICAgICAgICAgICAgICAgIHRvb2x0aXBUeXBlPXtpdGVtLnRvb2x0aXBUeXBlfVxuICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2l0ZW0uaWNvbn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkpfVxuICAgICAgICA8L1N0eWxlZFBhbmVsSGVhZGVySGlkZGVuQWN0aW9ucz5cbiAgICAgICAge2VmZmVjdEFjdGlvbkl0ZW1zXG4gICAgICAgICAgLmZpbHRlcigoaXRlbTogQWN0aW9uSXRlbSkgPT4gIWl0ZW0uaXNIaWRkZW4pXG4gICAgICAgICAgLm1hcCgoaXRlbTogQWN0aW9uSXRlbSkgPT4gKFxuICAgICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcyhgZWZmZWN0X18ke2l0ZW0ua2V5fWAsIGl0ZW0uY2xhc3NOYW1lcyl9XG4gICAgICAgICAgICAgIHRlc3RJZD17YCR7aXRlbS5rZXl9LWFjdGlvbmB9XG4gICAgICAgICAgICAgIGlkPXtlZmZlY3RJZH1cbiAgICAgICAgICAgICAgdG9vbHRpcD17aXRlbS50b29sdGlwfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtpdGVtLm9uQ2xpY2t9XG4gICAgICAgICAgICAgIHRvb2x0aXBUeXBlPXtpdGVtLnRvb2x0aXBUeXBlfVxuICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXtpdGVtLmljb259XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgPC9IZWFkZXJBY3Rpb25TZWN0aW9uPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIEVmZmVjdFBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbjtcbn1cblxuY29uc3QgU3R5bGVkRWZmZWN0VGl0bGVTZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgZmxleC1ncm93OiAxO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuYDtcblxuY29uc3QgSWNvblBsYWNlaG9sZGVyID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbmA7XG5cbmNvbnN0IEVmZmVjdEljb25XcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxOHB4O1xuICBtYXJnaW46IGF1dG87XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG5gO1xuXG5FZmZlY3RQYW5lbEhlYWRlckZhY3RvcnkuZGVwcyA9IFtFZmZlY3RQYW5lbEhlYWRlckFjdGlvblNlY3Rpb25GYWN0b3J5XTtcblxuZnVuY3Rpb24gRWZmZWN0UGFuZWxIZWFkZXJGYWN0b3J5KFxuICBFZmZlY3RQYW5lbEhlYWRlckFjdGlvblNlY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIEVmZmVjdFBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbkZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxFZmZlY3RQYW5lbEhlYWRlclByb3BzPiB7XG4gIGNvbnN0IEVmZmVjdFBhbmVsSGVhZGVyID0gKHByb3BzOiBFZmZlY3RQYW5lbEhlYWRlclByb3BzKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgaXNDb25maWdBY3RpdmUsXG4gICAgICBpc0RyYWdORHJvcEVuYWJsZWQgPSB0cnVlLFxuICAgICAgdHlwZSxcbiAgICAgIG9uVG9nZ2xlRW5hYmxlQ29uZmlnLFxuICAgICAgbGlzdGVuZXJzLFxuICAgICAgc2hvd1NvcnRIYW5kbGUgPSB0cnVlXG4gICAgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgbGFiZWwgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gRUZGRUNUX0RFU0NSSVBUSU9OUy5maW5kKF9kZXNjcmlwdGlvbiA9PiBfZGVzY3JpcHRpb24udHlwZSA9PT0gdHlwZSk7XG4gICAgICByZXR1cm4gZGVzY3JpcHRpb24/Lm5hbWUgfHwgJ0VmZmVjdCc7XG4gICAgfSwgW3R5cGVdKTtcblxuICAgIGNvbnN0IEVmZmVjdEljb24gPSBkZWZhdWx0RWZmZWN0SWNvbnNbdHlwZV07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEVmZmVjdFBhbmVsSGVhZGVyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZWZmZWN0LXBhbmVsX19oZWFkZXInLCB7XG4gICAgICAgICAgJ3NvcnQtLWhhbmRsZSc6ICFpc0NvbmZpZ0FjdGl2ZVxuICAgICAgICB9KX1cbiAgICAgICAgYWN0aXZlPXtpc0NvbmZpZ0FjdGl2ZX1cbiAgICAgICAgb25DbGljaz17b25Ub2dnbGVFbmFibGVDb25maWd9XG4gICAgICA+XG4gICAgICAgIHtpc0RyYWdORHJvcEVuYWJsZWQgPyAoXG4gICAgICAgICAgPERyYWdIYW5kbGUgY2xhc3NOYW1lPVwiZWZmZWN0X19kcmFnLWhhbmRsZVwiIGxpc3RlbmVycz17bGlzdGVuZXJzfT5cbiAgICAgICAgICAgIHtzaG93U29ydEhhbmRsZSA/IDxWZXJ0RG90cyBoZWlnaHQ9XCIyMHB4XCIgLz4gOiA8SWNvblBsYWNlaG9sZGVyIC8+fVxuICAgICAgICAgIDwvRHJhZ0hhbmRsZT5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVmZmVjdF9fZHJhZy1oYW5kbGVfX3BsYWNlaG9sZGVyXCIgLz5cbiAgICAgICAgKX1cblxuICAgICAgICA8RWZmZWN0SWNvbldyYXBwZXI+e0VmZmVjdEljb24gPyA8RWZmZWN0SWNvbiBoZWlnaHQ9XCIxOHB4XCIgLz4gOiBudWxsfTwvRWZmZWN0SWNvbldyYXBwZXI+XG5cbiAgICAgICAgPFN0eWxlZEVmZmVjdFRpdGxlU2VjdGlvbj57bGFiZWx9PC9TdHlsZWRFZmZlY3RUaXRsZVNlY3Rpb24+XG5cbiAgICAgICAgPEVmZmVjdFBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbiB7Li4ucHJvcHN9IC8+XG4gICAgICA8L1N0eWxlZEVmZmVjdFBhbmVsSGVhZGVyPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIEVmZmVjdFBhbmVsSGVhZGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBFZmZlY3RQYW5lbEhlYWRlckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGlCQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFNQSxJQUFBSyxrQkFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBeUJBLElBQUFPLGtCQUFBLEdBQUFQLE9BQUE7QUFBOEQsSUFBQVEsbUJBQUEsRUFBQUMsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQXZDOUQ7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBbEIsd0JBQUFrQixDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxH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
180
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfaWNvbnMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfZGVmYXVsdEVmZmVjdEljb25zIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiZGVmYXVsdFByb3BzIiwiZXhwb3J0cyIsImlzRHJhZ05Ecm9wRW5hYmxlZCIsImRlZmF1bHRBY3Rpb25JY29ucyIsInJlbW92ZSIsIlRyYXNoIiwidmlzaWJsZSIsIkV5ZVNlZW4iLCJoaWRkZW4iLCJFeWVVbnNlZW4iLCJlbmFibGVDb25maWciLCJBcnJvd0Rvd24iLCJkaXNhYmxlQ29uZmlnIiwiQXJyb3dVcCIsImRlZmF1bHRFZmZlY3RJY29ucyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVCIsInR5cGUiLCJMaWdodEFuZFNoYWRvd0VmZmVjdEljb24iLCJQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTIiwiaW5rIiwiSW5rRWZmZWN0SWNvbiIsImJyaWdodG5lc3NDb250cmFzdCIsIkJyaWdodG5lc3NDb250cmFzdEVmZmVjdEljb24iLCJodWVTYXR1cmF0aW9uIiwiSHVlU2F0dXJhdGlvbkVmZmVjdEljb24iLCJ2aWJyYW5jZSIsIlZpYnJhbmNlRWZmZWN0SWNvbiIsInNlcGlhIiwiU2VwaWFFZmZlY3RJY29uIiwiZG90U2NyZWVuIiwiRG90U2NyZWVuRWZmZWN0SWNvbiIsImNvbG9ySGFsZnRvbmUiLCJDb2xvckhhbGZ0b25lRWZmZWN0SWNvbiIsIm5vaXNlIiwiTm9pc2VFZmZlY3RJY29uIiwidHJpYW5nbGVCbHVyIiwiVHJpYW5nbGVCbHVyRWZmZWN0SWNvbiIsInpvb21CbHVyIiwiWm9vbUJsdXJFZmZlY3RJY29uIiwidGlsdFNoaWZ0IiwiVGlsdFNoaWZ0RWZmZWN0SWNvbiIsImVkZ2VXb3JrIiwiRWRnZVdvcmtFZmZlY3RJY29uIiwidmlnbmV0dGUiLCJWaWduZXR0ZUVmZmVjdEljb24iLCJtYWduaWZ5IiwiTWFnbmlmeUVmZmVjdEljb24iLCJoZXhhZ29uYWxQaXhlbGF0ZSIsIkhleGFnb25hbFBpeGVsYXRlRWZmZWN0SWNvbiIsIkRJU1RBTkNFX0ZPR19UWVBFIiwiRGlzdGFuY2VGb2dFZmZlY3RJY29uIiwiU1VSRkFDRV9GT0dfVFlQRSIsIlN1cmZhY2VGb2dFZmZlY3RJY29uIiwiU3R5bGVkRWZmZWN0UGFuZWxIZWFkZXIiLCJzdHlsZWQiLCJTdHlsZWRQYW5lbEhlYWRlciIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImVmZmVjdFBhbmVsSGVhZGVySGVpZ2h0IiwidGV4dENvbG9yIiwicGFuZWxCYWNrZ3JvdW5kSG92ZXIiLCJIZWFkZXJBY3Rpb25TZWN0aW9uIiwiZGl2IiwiU3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zIiwiYXR0cnMiLCJjbGFzc05hbWUiLCJpc0NvbmZpZ0FjdGl2ZSIsInBhbmVsQmFja2dyb3VuZCIsIlN0eWxlZERyYWdIYW5kbGUiLCJ0ZXh0Q29sb3JIbCIsIkRyYWdIYW5kbGUiLCJfcmVmIiwibGlzdGVuZXJzIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiRWZmZWN0UGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uRmFjdG9yeSIsImRlcHMiLCJQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkiLCJQYW5lbEhlYWRlckFjdGlvbiIsIkVmZmVjdFBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbiIsImVmZmVjdElkIiwiaXNFbmFibGVkIiwib25Ub2dnbGVFbmFibGVkIiwib25SZW1vdmVFZmZlY3QiLCJvblRvZ2dsZUVuYWJsZUNvbmZpZyIsImFjdGlvbkl0ZW1zIiwiX3Byb3BzJGFjdGlvbkljb25zIiwiYWN0aW9uSWNvbnMiLCJlZmZlY3RBY3Rpb25JdGVtcyIsInVzZU1lbW8iLCJrZXkiLCJpc0hpZGRlbiIsInRvb2x0aXAiLCJ0b29sdGlwVHlwZSIsIm9uQ2xpY2siLCJpY29uIiwiY2xhc3NOYW1lcyIsImZpbHRlciIsIml0ZW0iLCJCb29sZWFuIiwibWFwIiwiY29uY2F0IiwidGVzdElkIiwiaWQiLCJJY29uQ29tcG9uZW50IiwiY2xhc3NuYW1lcyIsIlN0eWxlZEVmZmVjdFRpdGxlU2VjdGlvbiIsIkljb25QbGFjZWhvbGRlciIsIkVmZmVjdEljb25XcmFwcGVyIiwiRWZmZWN0UGFuZWxIZWFkZXJGYWN0b3J5IiwiRWZmZWN0UGFuZWxIZWFkZXIiLCJfcHJvcHMkaXNEcmFnTkRyb3BFbmEiLCJfcHJvcHMkc2hvd1NvcnRIYW5kbGUiLCJzaG93U29ydEhhbmRsZSIsImxhYmVsIiwiZGVzY3JpcHRpb24iLCJFRkZFQ1RfREVTQ1JJUFRJT05TIiwiZmluZCIsIl9kZXNjcmlwdGlvbiIsIm5hbWUiLCJFZmZlY3RJY29uIiwiYWN0aXZlIiwiVmVydERvdHMiLCJoZWlnaHQiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lZmZlY3RzL2VmZmVjdC1wYW5lbC1oZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7XG4gIEVGRkVDVF9ERVNDUklQVElPTlMsXG4gIExJR0hUX0FORF9TSEFET1dfRUZGRUNULFxuICBQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLFxuICBESVNUQU5DRV9GT0dfVFlQRSxcbiAgU1VSRkFDRV9GT0dfVFlQRVxufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnksIHtQYW5lbEhlYWRlckFjdGlvbkljb259IGZyb20gJy4uL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5pbXBvcnQge1xuICBBcnJvd0Rvd24sXG4gIEFycm93VXAsXG4gIEV5ZVNlZW4sXG4gIEV5ZVVuc2VlbixcbiAgVHJhc2gsXG4gIFZlcnREb3RzLFxuICBMaWdodEFuZFNoYWRvd0VmZmVjdEljb24sXG4gIElua0VmZmVjdEljb24sXG4gIEJyaWdodG5lc3NDb250cmFzdEVmZmVjdEljb24sXG4gIEh1ZVNhdHVyYXRpb25FZmZlY3RJY29uLFxuICBWaWJyYW5jZUVmZmVjdEljb24sXG4gIFNlcGlhRWZmZWN0SWNvbixcbiAgRG90U2NyZWVuRWZmZWN0SWNvbixcbiAgQ29sb3JIYWxmdG9uZUVmZmVjdEljb24sXG4gIE5vaXNlRWZmZWN0SWNvbixcbiAgVHJpYW5nbGVCbHVyRWZmZWN0SWNvbixcbiAgWm9vbUJsdXJFZmZlY3RJY29uLFxuICBUaWx0U2hpZnRFZmZlY3RJY29uLFxuICBFZGdlV29ya0VmZmVjdEljb24sXG4gIFZpZ25ldHRlRWZmZWN0SWNvbixcbiAgTWFnbmlmeUVmZmVjdEljb24sXG4gIEhleGFnb25hbFBpeGVsYXRlRWZmZWN0SWNvbixcbiAgRGlzdGFuY2VGb2dFZmZlY3RJY29uLFxuICBTdXJmYWNlRm9nRWZmZWN0SWNvbixcbiAgQmFzZVByb3BzXG59IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1N0eWxlZFBhbmVsSGVhZGVyfSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25JdGVtID0ge1xuICBrZXk6IHN0cmluZztcbiAgaXNIaWRkZW4/OiBib29sZWFuO1xuICB0b29sdGlwOiBzdHJpbmc7XG4gIGNsYXNzTmFtZXM/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcbiAgaWNvbjogUGFuZWxIZWFkZXJBY3Rpb25JY29uO1xuICB0b29sdGlwVHlwZT86ICdlcnJvcic7XG4gIG9uQ2xpY2s6ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBFZmZlY3RQYW5lbEhlYWRlclByb3BzID0ge1xuICB0eXBlOiBzdHJpbmc7XG4gIGxpc3RlbmVyczogYW55O1xuICBlZmZlY3RJZDogc3RyaW5nO1xuICBpc0VuYWJsZWQ6IGJvb2xlYW47XG4gIGlzQ29uZmlnQWN0aXZlOiBib29sZWFuO1xuICBpc0pzb25FZGl0b3JBY3RpdmU6IGJvb2xlYW47XG4gIHNob3dTb3J0SGFuZGxlPzogYm9vbGVhbjtcbiAgaXNEcmFnTkRyb3BFbmFibGVkOiBib29sZWFuO1xuICBvblRvZ2dsZUVuYWJsZWQ6ICgpID0+IHZvaWQ7XG4gIG9uUmVtb3ZlRWZmZWN0OiAoKSA9PiB2b2lkO1xuICBvblRvZ2dsZUVuYWJsZUNvbmZpZzogKCkgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM/OiB7XG4gICAgcmVtb3ZlOiBSZWFjdC5Db21wb25lbnRUeXBlPFBhcnRpYWw8QmFzZVByb3BzPj47XG4gICAgdmlzaWJsZTogUmVhY3QuQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGhpZGRlbjogUmVhY3QuQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGVuYWJsZUNvbmZpZzogUmVhY3QuQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGRpc2FibGVDb25maWc6IFJlYWN0LkNvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+PjtcbiAgfTtcbiAgYWN0aW9uSXRlbXM/OiBBY3Rpb25JdGVtW107XG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBpc0RyYWdORHJvcEVuYWJsZWQ6IHRydWVcbn07XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgcmVtb3ZlOiBUcmFzaCxcbiAgdmlzaWJsZTogRXllU2VlbixcbiAgaGlkZGVuOiBFeWVVbnNlZW4sXG4gIGVuYWJsZUNvbmZpZzogQXJyb3dEb3duLFxuICBkaXNhYmxlQ29uZmlnOiBBcnJvd1VwXG59O1xuXG5jb25zdCBkZWZhdWx0RWZmZWN0SWNvbnMgPSB7XG4gIFtMSUdIVF9BTkRfU0hBRE9XX0VGRkVDVC50eXBlXTogTGlnaHRBbmRTaGFkb3dFZmZlY3RJY29uLFxuICBbUE9TVFBST0NFU1NJTkdfRUZGRUNUUy5pbmsudHlwZV06IElua0VmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLmJyaWdodG5lc3NDb250cmFzdC50eXBlXTogQnJpZ2h0bmVzc0NvbnRyYXN0RWZmZWN0SWNvbixcbiAgW1BPU1RQUk9DRVNTSU5HX0VGRkVDVFMuaHVlU2F0dXJhdGlvbi50eXBlXTogSHVlU2F0dXJhdGlvbkVmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLnZpYnJhbmNlLnR5cGVdOiBWaWJyYW5jZUVmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLnNlcGlhLnR5cGVdOiBTZXBpYUVmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLmRvdFNjcmVlbi50eXBlXTogRG90U2NyZWVuRWZmZWN0SWNvbixcbiAgW1BPU1RQUk9DRVNTSU5HX0VGRkVDVFMuY29sb3JIYWxmdG9uZS50eXBlXTogQ29sb3JIYWxmdG9uZUVmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLm5vaXNlLnR5cGVdOiBOb2lzZUVmZmVjdEljb24sXG4gIFtQT1NUUFJPQ0VTU0lOR19FRkZFQ1RTLnRyaWFuZ2xlQmx1ci50eXBlXTogVHJpYW5nbGVCbHVyRWZmZWN0SWNvbixcbiAgW1BPU1RQUk9DRVNTSU5HX0VGRkVDVFMuem9vbUJsdXIudHlwZV06IFpvb21CbHVyRWZmZWN0SWNvbixcbiAgW1BPU1RQUk9DRVNTSU5HX0VGRkVDVFMudGlsdFNoaWZ0LnR5cGVdOiBUaWx0U2hpZnRFZmZlY3RJY29uLFxuICBbUE9TVFBST0NFU1NJTkdfRUZGRUNUUy5lZGdlV29yay50eXBlXTogRWRnZVdvcmtFZmZlY3RJY29uLFxuICBbUE9TVFBST0NFU1NJTkdfRUZGRUNUUy52aWduZXR0ZS50eXBlXTogVmlnbmV0dGVFZmZlY3RJY29uLFxuICBbUE9TVFBST0NFU1NJTkdfRUZGRUNUUy5tYWduaWZ5LnR5cGVdOiBNYWduaWZ5RWZmZWN0SWNvbixcbiAgW1BPU1RQUk9DRVNTSU5HX0VGRkVDVFMuaGV4YWdvbmFsUGl4ZWxhdGUudHlwZV06IEhleGFnb25hbFBpeGVsYXRlRWZmZWN0SWNvbixcbiAgW0RJU1RBTkNFX0ZPR19UWVBFXTogRGlzdGFuY2VGb2dFZmZlY3RJY29uLFxuICBbU1VSRkFDRV9GT0dfVFlQRV06IFN1cmZhY2VGb2dFZmZlY3RJY29uXG59O1xuXG5jb25zdCBTdHlsZWRFZmZlY3RQYW5lbEhlYWRlciA9IHN0eWxlZChTdHlsZWRQYW5lbEhlYWRlcilgXG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5lZmZlY3RQYW5lbEhlYWRlckhlaWdodH1weDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAuZWZmZWN0X19kcmFnLWhhbmRsZSB7XG4gICAgbWFyZ2luLWxlZnQ6IC01cHg7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgfVxuXG4gIC5lZmZlY3RfX2RyYWctaGFuZGxlX19wbGFjZWhvbGRlciB7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDBweDtcbiAgICBtYXJnaW46IDEwcHggMTBweCAxMHB4IDVweDtcbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgICAuZWZmZWN0X19kcmFnLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuXG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG5gO1xuXG5jb25zdCBIZWFkZXJBY3Rpb25TZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICByaWdodDogMTBweDtcbiAgJjpob3ZlciB7XG4gICAgLmVmZmVjdC1wYW5lbF9faGVhZGVyX19hY3Rpb25zX19oaWRkZW4ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuYDtcblxuLy8gSGlkZW4gYWN0aW9ucyBvbmx5IHNob3cgdXAgb24gaG92ZXJcbnR5cGUgU3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zUHJvcHMgPSB7aXNDb25maWdBY3RpdmU6IGJvb2xlYW59O1xuY29uc3QgU3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2VmZmVjdC1wYW5lbF9faGVhZGVyX19hY3Rpb25zX19oaWRkZW4nXG59KTxTdHlsZWRQYW5lbEhlYWRlckhpZGRlbkFjdGlvbnNQcm9wcz5gXG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuNHMgZWFzZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLmlzQ29uZmlnQWN0aXZlID8gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXIgOiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmR9O1xuXG4gICY6aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZERyYWdIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxMDAwO1xuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IG1vdmU7XG4gICAgb3BhY2l0eTogMTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gIH1cbmA7XG5cbmNvbnN0IERyYWdIYW5kbGUgPSAoe2NsYXNzTmFtZSwgbGlzdGVuZXJzLCBjaGlsZHJlbn0pID0+IChcbiAgPFN0eWxlZERyYWdIYW5kbGUgY2xhc3NOYW1lPXtjbGFzc05hbWV9IHsuLi5saXN0ZW5lcnN9PlxuICAgIHtjaGlsZHJlbn1cbiAgPC9TdHlsZWREcmFnSGFuZGxlPlxuKTtcblxuRWZmZWN0UGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uRmFjdG9yeS5kZXBzID0gW1BhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeV07XG5cbmV4cG9ydCBmdW5jdGlvbiBFZmZlY3RQYW5lbEhlYWRlckFjdGlvblNlY3Rpb25GYWN0b3J5KFxuICBQYW5lbEhlYWRlckFjdGlvbjogUmV0dXJuVHlwZTx0eXBlb2YgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5PlxuKTogUmVhY3QuRkM8RWZmZWN0UGFuZWxIZWFkZXJQcm9wcz4ge1xuICBjb25zdCBFZmZlY3RQYW5lbEhlYWRlckFjdGlvblNlY3Rpb24gPSAocHJvcHM6IEVmZmVjdFBhbmVsSGVhZGVyUHJvcHMpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBlZmZlY3RJZCxcbiAgICAgIGlzRW5hYmxlZCxcbiAgICAgIGlzQ29uZmlnQWN0aXZlLFxuICAgICAgb25Ub2dnbGVFbmFibGVkLFxuICAgICAgb25SZW1vdmVFZmZlY3QsXG4gICAgICBvblRvZ2dsZUVuYWJsZUNvbmZpZyxcbiAgICAgIGFjdGlvbkl0ZW1zLFxuICAgICAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnNcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBlZmZlY3RBY3Rpb25JdGVtczogQWN0aW9uSXRlbVtdID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGFjdGlvbkl0ZW1zID8/IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdyZW1vdmUtZWZmZWN0JyxcbiAgICAgICAgICAgIGlzSGlkZGVuOiB0cnVlLFxuICAgICAgICAgICAgdG9vbHRpcDogJ3Rvb2x0aXAucmVtb3ZlRWZmZWN0JyxcbiAgICAgICAgICAgIHRvb2x0aXBUeXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgb25DbGljazogb25SZW1vdmVFZmZlY3QsXG4gICAgICAgICAgICBpY29uOiBhY3Rpb25JY29ucy5yZW1vdmVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ3Zpc2liaWxpdHktdG9nZ2xlJyxcbiAgICAgICAgICAgIHRvb2x0aXA6IGlzRW5hYmxlZCA/ICd0b29sdGlwLmRpc2FibGVFZmZlY3QnIDogJ3Rvb2x0aXAuZW5hYmxlZEVmZmVjdCcsXG4gICAgICAgICAgICBvbkNsaWNrOiBvblRvZ2dsZUVuYWJsZWQsXG4gICAgICAgICAgICBpY29uOiBpc0VuYWJsZWQgPyBhY3Rpb25JY29ucy52aXNpYmxlIDogYWN0aW9uSWNvbnMuaGlkZGVuXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdlbmFibGUtY29uZmlnJyxcbiAgICAgICAgICAgIGNsYXNzTmFtZXM6IHsnaXMtb3Blbic6IGlzQ29uZmlnQWN0aXZlfSxcbiAgICAgICAgICAgIHRvb2x0aXA6ICd0b29sdGlwLmVmZmVjdFNldHRpbmdzJyxcbiAgICAgICAgICAgIG9uQ2xpY2s6IG9uVG9nZ2xlRW5hYmxlQ29uZmlnLFxuICAgICAgICAgICAgaWNvbjogYWN0aW9uSWNvbnMuZW5hYmxlQ29uZmlnXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgW1xuICAgICAgICBhY3Rpb25JdGVtcyxcbiAgICAgICAgYWN0aW9uSWNvbnMsXG4gICAgICAgIGlzRW5hYmxlZCxcbiAgICAgICAgaXNDb25maWdBY3RpdmUsXG4gICAgICAgIG9uUmVtb3ZlRWZmZWN0LFxuICAgICAgICBvblRvZ2dsZUVuYWJsZWQsXG4gICAgICAgIG9uVG9nZ2xlRW5hYmxlQ29uZmlnXG4gICAgICBdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8SGVhZGVyQWN0aW9uU2VjdGlvbiBjbGFzc05hbWU9XCJlZmZlY3QtcGFuZWxfX2hlYWRlcl9fYWN0aW9uc1wiPlxuICAgICAgICA8U3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zIGlzQ29uZmlnQWN0aXZlPXtpc0NvbmZpZ0FjdGl2ZX0+XG4gICAgICAgICAge2VmZmVjdEFjdGlvbkl0ZW1zXG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtOiBBY3Rpb25JdGVtKSA9PiBCb29sZWFuKGl0ZW0uaXNIaWRkZW4pKVxuICAgICAgICAgICAgLm1hcCgoaXRlbTogQWN0aW9uSXRlbSkgPT4gKFxuICAgICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgICBrZXk9e2l0ZW0ua2V5fVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YGVmZmVjdF9fJHtpdGVtLmtleX1gfVxuICAgICAgICAgICAgICAgIHRlc3RJZD17YCR7aXRlbS5rZXl9LWFjdGlvbmB9XG4gICAgICAgICAgICAgICAgaWQ9e2VmZmVjdElkfVxuICAgICAgICAgICAgICAgIHRvb2x0aXA9e2l0ZW0udG9vbHRpcH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtpdGVtLm9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgdG9vbHRpcFR5cGU9e2l0ZW0udG9vbHRpcFR5cGV9XG4gICAgICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17aXRlbS5pY29ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgIDwvU3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zPlxuICAgICAgICB7ZWZmZWN0QWN0aW9uSXRlbXNcbiAgICAgICAgICAuZmlsdGVyKChpdGVtOiBBY3Rpb25JdGVtKSA9PiAhaXRlbS5pc0hpZGRlbilcbiAgICAgICAgICAubWFwKChpdGVtOiBBY3Rpb25JdGVtKSA9PiAoXG4gICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAga2V5PXtpdGVtLmtleX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKGBlZmZlY3RfXyR7aXRlbS5rZXl9YCwgaXRlbS5jbGFzc05hbWVzKX1cbiAgICAgICAgICAgICAgdGVzdElkPXtgJHtpdGVtLmtleX0tYWN0aW9uYH1cbiAgICAgICAgICAgICAgaWQ9e2VmZmVjdElkfVxuICAgICAgICAgICAgICB0b29sdGlwPXtpdGVtLnRvb2x0aXB9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2l0ZW0ub25DbGlja31cbiAgICAgICAgICAgICAgdG9vbHRpcFR5cGU9e2l0ZW0udG9vbHRpcFR5cGV9XG4gICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2l0ZW0uaWNvbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICA8L0hlYWRlckFjdGlvblNlY3Rpb24+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gRWZmZWN0UGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uO1xufVxuXG5jb25zdCBTdHlsZWRFZmZlY3RUaXRsZVNlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tbGVmdDogOHB4O1xuICBmbGV4LWdyb3c6IDE7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG5gO1xuXG5jb25zdCBJY29uUGxhY2Vob2xkZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuYDtcblxuY29uc3QgRWZmZWN0SWNvbldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDE4cHg7XG4gIG1hcmdpbjogYXV0bztcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbmA7XG5cbkVmZmVjdFBhbmVsSGVhZGVyRmFjdG9yeS5kZXBzID0gW0VmZmVjdFBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbkZhY3RvcnldO1xuXG5mdW5jdGlvbiBFZmZlY3RQYW5lbEhlYWRlckZhY3RvcnkoXG4gIEVmZmVjdFBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbjogUmV0dXJuVHlwZTx0eXBlb2YgRWZmZWN0UGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uRmFjdG9yeT5cbik6IFJlYWN0LkZDPEVmZmVjdFBhbmVsSGVhZGVyUHJvcHM+IHtcbiAgY29uc3QgRWZmZWN0UGFuZWxIZWFkZXIgPSAocHJvcHM6IEVmZmVjdFBhbmVsSGVhZGVyUHJvcHMpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBpc0NvbmZpZ0FjdGl2ZSxcbiAgICAgIGlzRHJhZ05Ecm9wRW5hYmxlZCA9IHRydWUsXG4gICAgICB0eXBlLFxuICAgICAgb25Ub2dnbGVFbmFibGVDb25maWcsXG4gICAgICBsaXN0ZW5lcnMsXG4gICAgICBzaG93U29ydEhhbmRsZSA9IHRydWVcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBsYWJlbCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBFRkZFQ1RfREVTQ1JJUFRJT05TLmZpbmQoX2Rlc2NyaXB0aW9uID0+IF9kZXNjcmlwdGlvbi50eXBlID09PSB0eXBlKTtcbiAgICAgIHJldHVybiBkZXNjcmlwdGlvbj8ubmFtZSB8fCAnRWZmZWN0JztcbiAgICB9LCBbdHlwZV0pO1xuXG4gICAgY29uc3QgRWZmZWN0SWNvbiA9IGRlZmF1bHRFZmZlY3RJY29uc1t0eXBlXTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkRWZmZWN0UGFuZWxIZWFkZXJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdlZmZlY3QtcGFuZWxfX2hlYWRlcicsIHtcbiAgICAgICAgICAnc29ydC0taGFuZGxlJzogIWlzQ29uZmlnQWN0aXZlXG4gICAgICAgIH0pfVxuICAgICAgICBhY3RpdmU9e2lzQ29uZmlnQWN0aXZlfVxuICAgICAgICBvbkNsaWNrPXtvblRvZ2dsZUVuYWJsZUNvbmZpZ31cbiAgICAgID5cbiAgICAgICAge2lzRHJhZ05Ecm9wRW5hYmxlZCA/IChcbiAgICAgICAgICA8RHJhZ0hhbmRsZSBjbGFzc05hbWU9XCJlZmZlY3RfX2RyYWctaGFuZGxlXCIgbGlzdGVuZXJzPXtsaXN0ZW5lcnN9PlxuICAgICAgICAgICAge3Nob3dTb3J0SGFuZGxlID8gPFZlcnREb3RzIGhlaWdodD1cIjIwcHhcIiAvPiA6IDxJY29uUGxhY2Vob2xkZXIgLz59XG4gICAgICAgICAgPC9EcmFnSGFuZGxlPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZWZmZWN0X19kcmFnLWhhbmRsZV9fcGxhY2Vob2xkZXJcIiAvPlxuICAgICAgICApfVxuXG4gICAgICAgIDxFZmZlY3RJY29uV3JhcHBlcj57RWZmZWN0SWNvbiA/IDxFZmZlY3RJY29uIGhlaWdodD1cIjE4cHhcIiAvPiA6IG51bGx9PC9FZmZlY3RJY29uV3JhcHBlcj5cblxuICAgICAgICA8U3R5bGVkRWZmZWN0VGl0bGVTZWN0aW9uPntsYWJlbH08L1N0eWxlZEVmZmVjdFRpdGxlU2VjdGlvbj5cblxuICAgICAgICA8RWZmZWN0UGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uIHsuLi5wcm9wc30gLz5cbiAgICAgIDwvU3R5bGVkRWZmZWN0UGFuZWxIZWFkZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gRWZmZWN0UGFuZWxIZWFkZXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEVmZmVjdFBhbmVsSGVhZGVyRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQVFBLElBQUFLLGtCQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUEyQkEsSUFBQU8sa0JBQUEsR0FBQVAsT0FBQTtBQUE4RCxJQUFBUSxtQkFBQSxFQUFBQyxlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBM0M5RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFsQix3QkFBQWtCLENB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
@@ -3,7 +3,7 @@ import { removeEffect, updateEffect } from '@kepler.gl/actions';
3
3
  import { Effect } from '@kepler.gl/types';
4
4
  import EffectPanelHeaderFactory from './effect-panel-header';
5
5
  import EffectConfiguratorFactory from './effect-configurator';
6
- export declare type EffectPanelProps = {
6
+ export type EffectPanelProps = {
7
7
  className: string;
8
8
  effect: Effect;
9
9
  isDraggable: boolean;
@@ -14,7 +14,7 @@ export declare type EffectPanelProps = {
14
14
  onMouseDown: React.MouseEventHandler<HTMLDivElement>;
15
15
  onTouchStart: React.TouchEventHandler<HTMLDivElement>;
16
16
  };
17
- export declare type PanelWrapperProps = {
17
+ export type PanelWrapperProps = {
18
18
  active: boolean;
19
19
  };
20
20
  declare function EffectPanelFactory(EffectPanelHeader: ReturnType<typeof EffectPanelHeaderFactory>, EffectConfigurator: ReturnType<typeof EffectConfiguratorFactory>): ComponentType<EffectPanelProps>;
@@ -3,7 +3,7 @@ import { LightAndShadowEffectTimeMode } from '@kepler.gl/constants';
3
3
  import TimezoneSelectorFactory from './timezone-selector';
4
4
  import EffectTimeSliderFactory from './effect-time-slider';
5
5
  import EffectTimeSelectorFactory from './effect-time-selector';
6
- export declare type EffectTimeConfiguratorProps = {
6
+ export type EffectTimeConfiguratorProps = {
7
7
  timestamp: number;
8
8
  timezone: string;
9
9
  timeMode: LightAndShadowEffectTimeMode;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export declare type EffectTimeSelectorProps = {
2
+ export type EffectTimeSelectorProps = {
3
3
  value: string;
4
4
  onChange: (string: any) => void;
5
5
  theme?: any;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import RangeSliderFactory from '../common/range-slider';
3
- export declare type EffectTimeSliderConfig = {
3
+ export type EffectTimeSliderConfig = {
4
4
  dawn: number;
5
5
  sunrise: number;
6
6
  sunset: number;
@@ -8,7 +8,7 @@ export declare type EffectTimeSliderConfig = {
8
8
  sunriseTime: string;
9
9
  sunsetTime: string;
10
10
  };
11
- export declare type UIBlock = {
11
+ export type UIBlock = {
12
12
  type: string;
13
13
  width: number;
14
14
  center: number;
@@ -18,7 +18,7 @@ export declare type UIBlock = {
18
18
  TopRowIcon?: React.ElementType<any>;
19
19
  BottomRowIcon?: React.ElementType<any>;
20
20
  };
21
- export declare type EffectTimeSliderProps = {
21
+ export type EffectTimeSliderProps = {
22
22
  value: number;
23
23
  onChange: (number: any) => void;
24
24
  config: EffectTimeSliderConfig;
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
- export declare type EffectTypeDropdownListItem = {
2
+ export type EffectTypeDropdownListItem = {
3
3
  type: string;
4
4
  name: string;
5
5
  disabled: boolean;
6
6
  };
7
- export declare type EffectTypeDropdownListProps = {
7
+ export type EffectTypeDropdownListProps = {
8
8
  onOptionSelected: (string: any) => void;
9
9
  options: EffectTypeDropdownListItem[];
10
10
  selectedItems: EffectTypeDropdownListItem[];
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  export declare const DUMMY_ITEM_ID = "dummy";
3
- export declare type EffectTypeListItemProps = {
3
+ export type EffectTypeListItemProps = {
4
4
  value: {
5
5
  type: string;
6
6
  name: string;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import EffectTypeDropdownListFactory from './effect-type-dropdown-list';
3
3
  import EffectTypeListItemFactory from './effect-type-list-item';
4
- export declare type EffectTypeSelectorProps = {
4
+ export type EffectTypeSelectorProps = {
5
5
  options: {
6
6
  type: string;
7
7
  name: string;
@@ -14,6 +14,6 @@ export declare type EffectTypeSelectorProps = {
14
14
  };
15
15
  declare function EffectTypeSelectorFactory(EffectTypeListItem: any, EffectTypeDropdownList: any): React.FC<Omit<EffectTypeSelectorProps, "theme">>;
16
16
  declare namespace EffectTypeSelectorFactory {
17
- var deps: (typeof EffectTypeListItemFactory | typeof EffectTypeDropdownListFactory)[];
17
+ var deps: (typeof EffectTypeDropdownListFactory | typeof EffectTypeListItemFactory)[];
18
18
  }
19
19
  export default EffectTypeSelectorFactory;
@@ -1,5 +1,5 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
- export declare type PanelTitleProps = PropsWithChildren<{
2
+ export type PanelTitleProps = PropsWithChildren<{
3
3
  title: string;
4
4
  className?: string;
5
5
  }>;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export declare type TimezoneSelectorProps = {
2
+ export type TimezoneSelectorProps = {
3
3
  selected?: string;
4
4
  options?: {
5
5
  name: string;
@@ -1,6 +1,5 @@
1
- /// <reference types="react" />
2
1
  export declare const StyledFilterPanel: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("styled-components/dist/types").FastOmit<import("styled-components/dist/types").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & {
3
- ref?: ((instance: HTMLLabelElement | null) => void) | import("react").RefObject<HTMLLabelElement> | null | undefined;
2
+ ref?: ((instance: HTMLLabelElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLLabelElement> | null | undefined;
4
3
  }>, never>, never>, never>> & Omit<import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("styled-components/dist/types").FastOmit<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, Omit<import("react").DetailedHTMLProps<import("react").LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref"> & {
5
- ref?: ((instance: HTMLLabelElement | null) => void) | import("react").RefObject<HTMLLabelElement> | null | undefined;
4
+ ref?: ((instance: HTMLLabelElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLLabelElement> | null | undefined;
6
5
  }>, never>, never>>, keyof import("react").Component<any, {}, any>>;
@@ -33,8 +33,8 @@ export interface TimeRangeFilterPanelProps extends FilterPanelProps<TimeRangeFil
33
33
  export interface FilterPanelWithFieldSelectProps extends FilterPanelProps {
34
34
  panelActions?: ReadonlyArray<PanelAction>;
35
35
  }
36
- export declare type FilterPanelComponent<F> = FunctionComponent<FilterPanelProps<F>>;
37
- export declare type PolygonFilterPanelComponent = FunctionComponent<PolygonFilterPanelProps>;
38
- export declare type TimeRangeFilterPanelComponent = FunctionComponent<TimeRangeFilterPanelProps>;
39
- export declare type FilterPanelWithFieldSelectComponent = FunctionComponent<Omit<FilterPanelWithFieldSelectProps, 'setFilterPlot'>>;
36
+ export type FilterPanelComponent<F> = FunctionComponent<FilterPanelProps<F>>;
37
+ export type PolygonFilterPanelComponent = FunctionComponent<PolygonFilterPanelProps>;
38
+ export type TimeRangeFilterPanelComponent = FunctionComponent<TimeRangeFilterPanelProps>;
39
+ export type FilterPanelWithFieldSelectComponent = FunctionComponent<Omit<FilterPanelWithFieldSelectProps, 'setFilterPlot'>>;
40
40
  export {};
@@ -4,20 +4,20 @@ import { Layer } from '@kepler.gl/layers';
4
4
  import { ActionHandler, setFilterAnimationTime, setFilterAnimationWindow, setTimeFilterSyncTimelineMode, setFilterPlot, toggleFilterAnimation, updateFilterAnimationSpeed } from '@kepler.gl/actions';
5
5
  import { Datasets } from '@kepler.gl/table';
6
6
  import { BaseComponentProps } from '../types';
7
- export declare type PolygonFilterProps = {
7
+ export type PolygonFilterProps = {
8
8
  filter: Filter;
9
9
  layers: ReadonlyArray<Layer>;
10
10
  setLayers: (ids: ReadonlyArray<string>) => void;
11
11
  };
12
- export declare type TopSectionWrapperProps = BaseComponentProps & {
12
+ export type TopSectionWrapperProps = BaseComponentProps & {
13
13
  hoverColor?: CSSProperties['color'];
14
14
  };
15
- export declare type RangeFilterProps = {
15
+ export type RangeFilterProps = {
16
16
  filter: RangeFilter;
17
17
  setFilter: (v: number[]) => void;
18
18
  setFilterPlot?: ActionHandler<typeof setFilterPlot>;
19
19
  };
20
- export declare type TimeRangeFilterProps = {
20
+ export type TimeRangeFilterProps = {
21
21
  idx: number;
22
22
  filter: TimeRangeFilter;
23
23
  isAnimatable: boolean;
@@ -29,15 +29,15 @@ export declare type TimeRangeFilterProps = {
29
29
  datasets: Datasets;
30
30
  layers: readonly Layer[];
31
31
  };
32
- export declare type SingleSelectFilterProps = {
32
+ export type SingleSelectFilterProps = {
33
33
  filter: SelectFilter;
34
34
  setFilter: (v: string | number | boolean | object | null) => void;
35
35
  };
36
- export declare type MultiSelectFilterProps = {
36
+ export type MultiSelectFilterProps = {
37
37
  filter: MultiSelectFilter;
38
38
  setFilter: (v: ReadonlyArray<string | number | boolean | object> | string | number | boolean | object | null) => void;
39
39
  };
40
- export declare type TimeWidgetTopProps = {
40
+ export type TimeWidgetTopProps = {
41
41
  filter: Filter;
42
42
  readOnly: boolean;
43
43
  datasets: Datasets;
@@ -47,7 +47,7 @@ export declare type TimeWidgetTopProps = {
47
47
  onToggleMinify: () => void;
48
48
  isMinified: boolean;
49
49
  };
50
- export declare type TimeWidgetProps = {
50
+ export type TimeWidgetProps = {
51
51
  layers: Layer[];
52
52
  datasets: Datasets;
53
53
  filter: TimeRangeFilter;
@@ -15,8 +15,8 @@ export interface Result {
15
15
  bbox?: [number, number, number, number];
16
16
  text?: string;
17
17
  }
18
- export declare type Results = ReadonlyArray<Result>;
19
- declare type GeocoderProps = {
18
+ export type Results = ReadonlyArray<Result>;
19
+ type GeocoderProps = {
20
20
  mapboxApiAccessToken: string;
21
21
  className?: string;
22
22
  limit?: number;
@@ -29,7 +29,7 @@ declare type GeocoderProps = {
29
29
  pointZoom?: number;
30
30
  width?: number;
31
31
  };
32
- declare type IntlProps = {
32
+ type IntlProps = {
33
33
  intl: IntlShape;
34
34
  };
35
35
  declare const _default: React.FC<import("react-intl").WithIntlProps<GeocoderProps & IntlProps>> & {
@@ -129,10 +129,14 @@ var GeoCoder = function GeoCoder(_ref) {
129
129
  setInputValue(queryString);
130
130
  var resultCoordinates = testForCoordinates(queryString);
131
131
  if (resultCoordinates[0]) {
132
+ if (debounceTimeout) {
133
+ clearTimeout(debounceTimeout);
134
+ }
132
135
  var _resultCoordinates = (0, _slicedToArray2["default"])(resultCoordinates, 3),
133
136
  _isValid = _resultCoordinates[0],
134
137
  longitude = _resultCoordinates[1],
135
138
  latitude = _resultCoordinates[2];
139
+ setShowResults(true);
136
140
  setResults([{
137
141
  center: [longitude, latitude],
138
142
  place_name: queryString
@@ -274,4 +278,4 @@ var GeoCoder = function GeoCoder(_ref) {
274
278
  })) : null);
275
279
  };
276
280
  var _default = exports["default"] = (0, _reactIntl.injectIntl)(GeoCoder);
277
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9nZW9jb2RpbmciLCJfcmVhY3RJbnRsIiwiX3ZpZXdwb3J0TWVyY2F0b3JQcm9qZWN0IiwiX2NvbnN0YW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pY29ucyIsIl91dGlscyIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkNPT1JESU5BVEVfUkVHRVhfU1RSSU5HIiwiQ09PUkRJTkFURV9SRUdFWCIsIlJlZ0V4cCIsIlBMQUNFSE9MREVSIiwiZGVib3VuY2VUaW1lb3V0IiwidGVzdEZvckNvb3JkaW5hdGVzIiwiZXhwb3J0cyIsInF1ZXJ5IiwiaXNWYWxpZCIsInRlc3QiLCJ0cmltIiwidG9rZW5zIiwic3BsaXQiLCJsYXRpdHVkZSIsIk51bWJlciIsImxvbmdpdHVkZSIsIlN0eWxlZENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsInRleHRDb2xvciIsImJveFNoYWRvdyIsImdlb2NvZGVySW5wdXRIZWlnaHQiLCJzdWJ0ZXh0Q29sb3IiLCJwYW5lbEJhY2tncm91bmQiLCJpc0Zpbml0ZSIsIndpZHRoIiwiZ2VvY29kZXJXaWR0aCIsImRyb3Bkb3duV2FwcGVyTWFyZ2luIiwiZHJvcGRvd25MaXN0SXRlbSIsInRleHRUcnVuY2F0ZSIsImRyb3Bkb3duTGlzdEhpZ2hsaWdodEJnIiwidGV4dENvbG9ySGwiLCJHZW9Db2RlciIsIl9yZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIl9yZWYkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3JlZiRsaW1pdCIsImxpbWl0IiwiX3JlZiR0aW1lb3V0IiwidGltZW91dCIsIl9yZWYkZm9ybWF0SXRlbSIsImZvcm1hdEl0ZW0iLCJpdGVtIiwicGxhY2VfbmFtZSIsInZpZXdwb3J0Iiwib25TZWxlY3RlZCIsIm9uRGVsZXRlTWFya2VyIiwidHJhbnNpdGlvbkR1cmF0aW9uIiwicG9pbnRab29tIiwiaW50bCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlucHV0VmFsdWUiLCJzZXRJbnB1dFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzaG93UmVzdWx0cyIsInNldFNob3dSZXN1bHRzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzaG93RGVsZXRlIiwic2V0U2hvd0RlbGV0ZSIsImluaXRpYWxSZXN1bHRzIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJyZXN1bHRzIiwic2V0UmVzdWx0cyIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsInNlbGVjdGVkSW5kZXgiLCJzZXRTZWxlY3RlZEluZGV4IiwiY2xpZW50IiwidXNlTWVtbyIsImlzVGVzdCIsImdlb2NvZGVyU2VydmljZSIsImFjY2Vzc1Rva2VuIiwib25DaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImV2ZW50IiwicXVlcnlTdHJpbmciLCJ0YXJnZXQiLCJ2YWx1ZSIsInJlc3VsdENvb3JkaW5hdGVzIiwiX3Jlc3VsdENvb3JkaW5hdGVzIiwiX2lzVmFsaWQiLCJjZW50ZXIiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJyZXNwb25zZSIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJCb29sZWFuIiwiZm9yd2FyZEdlb2NvZGUiLCJzZW5kIiwic2VudCIsImJvZHkiLCJmZWF0dXJlcyIsInQwIiwiY29uc29sZSIsImxvZyIsInN0b3AiLCJvbkJsdXIiLCJvbkZvY3VzIiwib25JdGVtU2VsZWN0ZWQiLCJuZXdWaWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJiYm94IiwiZ290b1ZpZXdwb3J0IiwiZml0Qm91bmRzIiwiem9vbSIsIm9uTWFya0RlbGV0ZWQiLCJvbktleURvd24iLCJrZXlDb2RlIiwiS2V5RXZlbnQiLCJET01fVktfVVAiLCJET01fVktfRE9XTiIsIkRPTV9WS19FTlRFUiIsIkRPTV9WS19SRVRVUk4iLCJjcmVhdGVFbGVtZW50IiwiU2VhcmNoIiwiaGVpZ2h0IiwiSW5wdXQiLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJmb3JtYXRNZXNzYWdlIiwiaWQiLCJkZWZhdWx0TWVzc2FnZSIsIkRlbGV0ZSIsIm9uQ2xpY2siLCJtYXAiLCJpbmRleCIsImtleSIsImNsYXNzbmFtZXMiLCJhY3RpdmUiLCJfZGVmYXVsdCIsImluamVjdEludGwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VvY29kZXIvZ2VvY29kZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBnZW9jb2RlclNlcnZpY2UgZnJvbSAnQG1hcGJveC9tYXBib3gtc2RrL3NlcnZpY2VzL2dlb2NvZGluZyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge1dlYk1lcmNhdG9yVmlld3BvcnR9IGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuaW1wb3J0IHtLZXlFdmVudH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtJbnB1dH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7U2VhcmNoLCBEZWxldGV9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1ZpZXdwb3J0fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7aXNUZXN0fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IHtcbiAgd2lkdGg/OiBudW1iZXI7XG59O1xuXG4vLyBtYXRjaGVzIG9ubHkgdmFsaWQgY29vcmRpbmF0ZXNcbmNvbnN0IENPT1JESU5BVEVfUkVHRVhfU1RSSU5HID1cbiAgJyheWy0rXT8oPzpbMS04XT9cXFxcZCg/OlxcXFwuXFxcXGQrKT98OTAoPzpcXFxcLjArKT8pKSxcXFxccyooWy0rXT8oPzoxODAoPzpcXFxcLjArKT98KD86KD86MVswLTddXFxcXGQpfCg/OlsxLTldP1xcXFxkKSkoPzpcXFxcLlxcXFxkKyk/KSkkJztcblxuY29uc3QgQ09PUkRJTkFURV9SRUdFWCA9IFJlZ0V4cChDT09SRElOQVRFX1JFR0VYX1NUUklORyk7XG5cbmNvbnN0IFBMQUNFSE9MREVSID0gJ0VudGVyIGFuIGFkZHJlc3Mgb3IgY29vcmRpbmF0ZXMsIGV4IDM3Ljc5LC0xMjIuNDAnO1xuXG5sZXQgZGVib3VuY2VUaW1lb3V0OiBOb2RlSlMuVGltZW91dCB8IG51bGwgPSBudWxsO1xuXG4vKipcbiAqIFRlc3RzIGlmIGEgZ2l2ZW4gcXVlcnkgc3RyaW5nIGNvbnRhaW5zIHZhbGlkIGNvb3JkaW5hdGVzLlxuICogQHBhcmFtIHF1ZXJ5IFRoZSBpbnB1dCBzdHJpbmcgdG8gdGVzdCBmb3IgY29vcmRpbmF0ZXMuXG4gKiBAcmV0dXJucyBBIHR1cGxlIHdoZXJlOlxuICogICAtIElmIHZhbGlkLCByZXR1cm5zIGBbdHJ1ZSwgbG9uZ2l0dWRlLCBsYXRpdHVkZV1gLlxuICogICAtIElmIGludmFsaWQsIHJldHVybnMgYFtmYWxzZSwgcXVlcnldYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHRlc3RGb3JDb29yZGluYXRlcyA9IChxdWVyeTogc3RyaW5nKTogW3RydWUsIG51bWJlciwgbnVtYmVyXSB8IFtmYWxzZSwgc3RyaW5nXSA9PiB7XG4gIGNvbnN0IGlzVmFsaWQgPSBDT09SRElOQVRFX1JFR0VYLnRlc3QocXVlcnkudHJpbSgpKTtcblxuICBpZiAoIWlzVmFsaWQpIHtcbiAgICByZXR1cm4gW2lzVmFsaWQsIHF1ZXJ5XTtcbiAgfVxuXG4gIGNvbnN0IHRva2VucyA9IHF1ZXJ5LnRyaW0oKS5zcGxpdCgnLCcpO1xuICBjb25zdCBsYXRpdHVkZSA9IE51bWJlcih0b2tlbnNbMF0pO1xuICBjb25zdCBsb25naXR1ZGUgPSBOdW1iZXIodG9rZW5zWzFdKTtcblxuICByZXR1cm4gW2lzVmFsaWQsIGxvbmdpdHVkZSwgbGF0aXR1ZGVdO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcblxuICAuZ2VvY29kZXItaW5wdXQge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcblxuICAgIC5nZW9jb2Rlci1pbnB1dF9fc2VhcmNoIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5nZW9jb2RlcklucHV0SGVpZ2h0fXB4O1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHBhZGRpbmc6IDRweCAzNnB4O1xuICAgICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmdlb2NvZGVySW5wdXRIZWlnaHR9cHg7XG4gICAgICBjYXJldC1jb2xvcjogdW5zZXQ7XG4gICAgfVxuICB9XG5cbiAgLmdlb2NvZGVyLXJlc3VsdHMge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAke3Byb3BzID0+IChOdW1iZXIuaXNGaW5pdGUocHJvcHMud2lkdGgpID8gcHJvcHMud2lkdGggOiBwcm9wcy50aGVtZS5nZW9jb2RlcldpZHRoKX1weDtcbiAgICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4O1xuICB9XG5cbiAgLmdlb2NvZGVyLWl0ZW0ge1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SXRlbX07XG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0VHJ1bmNhdGV9O1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RIaWdobGlnaHRCZ307XG4gICAgfVxuICB9XG5cbiAgLnJlbW92ZS1yZXN1bHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTZweDtcbiAgICB0b3A6IDBweDtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZ2VvY29kZXJJbnB1dEhlaWdodH1weDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdWx0IHtcbiAgY2VudGVyOiBbbnVtYmVyLCBudW1iZXJdO1xuICBwbGFjZV9uYW1lOiBzdHJpbmc7XG4gIGJib3g/OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgdGV4dD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUmVzdWx0cyA9IFJlYWRvbmx5QXJyYXk8UmVzdWx0PjtcblxudHlwZSBHZW9jb2RlclByb3BzID0ge1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGxpbWl0PzogbnVtYmVyO1xuICB0aW1lb3V0PzogbnVtYmVyO1xuICBmb3JtYXRJdGVtPzogKGl0ZW06IFJlc3VsdCkgPT4gc3RyaW5nO1xuICB2aWV3cG9ydD86IFZpZXdwb3J0O1xuICBvblNlbGVjdGVkOiAodmlld3BvcnQ6IFZpZXdwb3J0IHwgbnVsbCwgaXRlbTogUmVzdWx0KSA9PiB2b2lkO1xuICBvbkRlbGV0ZU1hcmtlcj86ICgpID0+IHZvaWQ7XG4gIHRyYW5zaXRpb25EdXJhdGlvbj86IG51bWJlcjtcbiAgcG9pbnRab29tPzogbnVtYmVyO1xuICB3aWR0aD86IG51bWJlcjtcbn07XG5cbnR5cGUgSW50bFByb3BzID0ge1xuICBpbnRsOiBJbnRsU2hhcGU7XG59O1xuXG5jb25zdCBHZW9Db2RlcjogUmVhY3QuRkM8R2VvY29kZXJQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgY2xhc3NOYW1lID0gJycsXG4gIGxpbWl0ID0gNSxcbiAgdGltZW91dCA9IDMwMCxcbiAgZm9ybWF0SXRlbSA9IGl0ZW0gPT4gaXRlbS5wbGFjZV9uYW1lLFxuICB2aWV3cG9ydCxcbiAgb25TZWxlY3RlZCxcbiAgb25EZWxldGVNYXJrZXIsXG4gIHRyYW5zaXRpb25EdXJhdGlvbixcbiAgcG9pbnRab29tLFxuICB3aWR0aCxcbiAgaW50bFxufSkgPT4ge1xuICBjb25zdCBbaW5wdXRWYWx1ZSwgc2V0SW5wdXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtzaG93UmVzdWx0cywgc2V0U2hvd1Jlc3VsdHNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd0RlbGV0ZSwgc2V0U2hvd0RlbGV0ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGluaXRpYWxSZXN1bHRzOiBSZXN1bHRbXSA9IFtdO1xuICBjb25zdCBbcmVzdWx0cywgc2V0UmVzdWx0c10gPSB1c2VTdGF0ZShpbml0aWFsUmVzdWx0cyk7XG4gIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKDApO1xuXG4gIGNvbnN0IGNsaWVudCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGlzVGVzdCgpID8gbnVsbCA6IGdlb2NvZGVyU2VydmljZSh7YWNjZXNzVG9rZW46IG1hcGJveEFwaUFjY2Vzc1Rva2VufSkpLFxuICAgIFttYXBib3hBcGlBY2Nlc3NUb2tlbl1cbiAgKTtcblxuICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgc2V0SW5wdXRWYWx1ZShxdWVyeVN0cmluZyk7XG4gICAgICBjb25zdCByZXN1bHRDb29yZGluYXRlcyA9IHRlc3RGb3JDb29yZGluYXRlcyhxdWVyeVN0cmluZyk7XG4gICAgICBpZiAocmVzdWx0Q29vcmRpbmF0ZXNbMF0pIHtcbiAgICAgICAgY29uc3QgW19pc1ZhbGlkLCBsb25naXR1ZGUsIGxhdGl0dWRlXSA9IHJlc3VsdENvb3JkaW5hdGVzO1xuICAgICAgICBzZXRSZXN1bHRzKFt7Y2VudGVyOiBbbG9uZ2l0dWRlLCBsYXRpdHVkZV0sIHBsYWNlX25hbWU6IHF1ZXJ5U3RyaW5nfV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGRlYm91bmNlVGltZW91dCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICAgIGRlYm91bmNlVGltZW91dCA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGlmIChsaW1pdCA+IDAgJiYgQm9vbGVhbihxdWVyeVN0cmluZykpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50XG4gICAgICAgICAgICAgICAgLmZvcndhcmRHZW9jb2RlKHtcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeVN0cmluZyxcbiAgICAgICAgICAgICAgICAgIGxpbWl0XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuc2VuZCgpO1xuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuYm9keS5mZWF0dXJlcykge1xuICAgICAgICAgICAgICAgIHNldFNob3dSZXN1bHRzKHRydWUpO1xuICAgICAgICAgICAgICAgIHNldFJlc3VsdHMocmVzcG9uc2UuYm9keS5mZWF0dXJlcyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgLy8gVE9ETzogc2hvdyBnZW9jb2RlIGVycm9yXG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgdGltZW91dCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBbY2xpZW50LCBsaW1pdCwgdGltZW91dCwgc2V0UmVzdWx0cywgc2V0U2hvd1Jlc3VsdHNdXG4gICk7XG5cbiAgY29uc3Qgb25CbHVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0U2hvd1Jlc3VsdHMoZmFsc2UpO1xuICAgIH0sIHRpbWVvdXQpO1xuICB9LCBbc2V0U2hvd1Jlc3VsdHMsIHRpbWVvdXRdKTtcblxuICBjb25zdCBvbkZvY3VzID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0U2hvd1Jlc3VsdHModHJ1ZSksIFtzZXRTaG93UmVzdWx0c10pO1xuXG4gIGNvbnN0IG9uSXRlbVNlbGVjdGVkID0gdXNlQ2FsbGJhY2soXG4gICAgaXRlbSA9PiB7XG4gICAgICBjb25zdCBuZXdWaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHZpZXdwb3J0KTtcbiAgICAgIGNvbnN0IHtiYm94LCBjZW50ZXJ9ID0gaXRlbTtcblxuICAgICAgY29uc3QgZ290b1ZpZXdwb3J0ID0gYmJveFxuICAgICAgICA/IG5ld1ZpZXdwb3J0LmZpdEJvdW5kcyhbXG4gICAgICAgICAgICBbYmJveFswXSwgYmJveFsxXV0sXG4gICAgICAgICAgICBbYmJveFsyXSwgYmJveFszXV1cbiAgICAgICAgICBdKVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGxvbmdpdHVkZTogY2VudGVyWzBdLFxuICAgICAgICAgICAgbGF0aXR1ZGU6IGNlbnRlclsxXSxcbiAgICAgICAgICAgIHpvb206IHBvaW50Wm9vbVxuICAgICAgICAgIH07XG5cbiAgICAgIGNvbnN0IHtsb25naXR1ZGUsIGxhdGl0dWRlLCB6b29tfSA9IGdvdG9WaWV3cG9ydDtcblxuICAgICAgb25TZWxlY3RlZCh7Li4udmlld3BvcnQsIC4uLntsb25naXR1ZGUsIGxhdGl0dWRlLCB6b29tLCB0cmFuc2l0aW9uRHVyYXRpb259fSwgaXRlbSk7XG5cbiAgICAgIHNldFNob3dSZXN1bHRzKGZhbHNlKTtcbiAgICAgIHNldElucHV0VmFsdWUoZm9ybWF0SXRlbShpdGVtKSk7XG4gICAgICBzZXRTaG93RGVsZXRlKHRydWUpO1xuICAgIH0sXG4gICAgW3ZpZXdwb3J0LCBvblNlbGVjdGVkLCB0cmFuc2l0aW9uRHVyYXRpb24sIHBvaW50Wm9vbSwgZm9ybWF0SXRlbV1cbiAgKTtcblxuICBjb25zdCBvbk1hcmtEZWxldGVkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFNob3dEZWxldGUoZmFsc2UpO1xuICAgIHNldElucHV0VmFsdWUoJycpO1xuICAgIG9uRGVsZXRlTWFya2VyPy4oKTtcbiAgfSwgW29uRGVsZXRlTWFya2VyXSk7XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgZSA9PiB7XG4gICAgICBpZiAoIXJlc3VsdHMgfHwgcmVzdWx0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgc3dpdGNoIChlLmtleUNvZGUpIHtcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfVVA6XG4gICAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChzZWxlY3RlZEluZGV4ID4gMCA/IHNlbGVjdGVkSW5kZXggLSAxIDogc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX0RPV046XG4gICAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChzZWxlY3RlZEluZGV4IDwgcmVzdWx0cy5sZW5ndGggLSAxID8gc2VsZWN0ZWRJbmRleCArIDEgOiBzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfRU5URVI6XG4gICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX1JFVFVSTjpcbiAgICAgICAgICBpZiAocmVzdWx0c1tzZWxlY3RlZEluZGV4XSkge1xuICAgICAgICAgICAgb25JdGVtU2VsZWN0ZWQocmVzdWx0c1tzZWxlY3RlZEluZGV4XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0sXG4gICAgW3Jlc3VsdHMsIHNlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXgsIG9uSXRlbVNlbGVjdGVkXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZENvbnRhaW5lciBjbGFzc05hbWU9e2NsYXNzTmFtZX0gd2lkdGg9e3dpZHRofT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2VvY29kZXItaW5wdXRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW9jb2Rlci1pbnB1dF9fc2VhcmNoXCI+XG4gICAgICAgICAgPFNlYXJjaCBoZWlnaHQ9XCIyMHB4XCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxJbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICAgICAgICB2YWx1ZT17aW5wdXRWYWx1ZX1cbiAgICAgICAgICBwbGFjZWhvbGRlcj17XG4gICAgICAgICAgICBpbnRsXG4gICAgICAgICAgICAgID8gaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ2dlb2NvZGVyLnRpdGxlJywgZGVmYXVsdE1lc3NhZ2U6IFBMQUNFSE9MREVSfSlcbiAgICAgICAgICAgICAgOiBQTEFDRUhPTERFUlxuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgICAge3Nob3dEZWxldGUgPyAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZW1vdmUtcmVzdWx0XCI+XG4gICAgICAgICAgICA8RGVsZXRlIGhlaWdodD1cIjE2cHhcIiBvbkNsaWNrPXtvbk1hcmtEZWxldGVkfSAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICB7c2hvd1Jlc3VsdHMgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ2VvY29kZXItcmVzdWx0c1wiPlxuICAgICAgICAgIHtyZXN1bHRzLm1hcCgoaXRlbSwgaW5kZXgpID0+IChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdnZW9jb2Rlci1pdGVtJywge2FjdGl2ZTogc2VsZWN0ZWRJbmRleCA9PT0gaW5kZXh9KX1cbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25JdGVtU2VsZWN0ZWQoaXRlbSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtmb3JtYXRJdGVtKGl0ZW0pfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IG51bGx9XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBpbmplY3RJbnRsKEdlb0NvZGVyKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFD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
281
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lcyIsIl9nZW9jb2RpbmciLCJfcmVhY3RJbnRsIiwiX3ZpZXdwb3J0TWVyY2F0b3JQcm9qZWN0IiwiX2NvbnN0YW50cyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pY29ucyIsIl91dGlscyIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkNPT1JESU5BVEVfUkVHRVhfU1RSSU5HIiwiQ09PUkRJTkFURV9SRUdFWCIsIlJlZ0V4cCIsIlBMQUNFSE9MREVSIiwiZGVib3VuY2VUaW1lb3V0IiwidGVzdEZvckNvb3JkaW5hdGVzIiwiZXhwb3J0cyIsInF1ZXJ5IiwiaXNWYWxpZCIsInRlc3QiLCJ0cmltIiwidG9rZW5zIiwic3BsaXQiLCJsYXRpdHVkZSIsIk51bWJlciIsImxvbmdpdHVkZSIsIlN0eWxlZENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsInRleHRDb2xvciIsImJveFNoYWRvdyIsImdlb2NvZGVySW5wdXRIZWlnaHQiLCJzdWJ0ZXh0Q29sb3IiLCJwYW5lbEJhY2tncm91bmQiLCJpc0Zpbml0ZSIsIndpZHRoIiwiZ2VvY29kZXJXaWR0aCIsImRyb3Bkb3duV2FwcGVyTWFyZ2luIiwiZHJvcGRvd25MaXN0SXRlbSIsInRleHRUcnVuY2F0ZSIsImRyb3Bkb3duTGlzdEhpZ2hsaWdodEJnIiwidGV4dENvbG9ySGwiLCJHZW9Db2RlciIsIl9yZWYiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIl9yZWYkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3JlZiRsaW1pdCIsImxpbWl0IiwiX3JlZiR0aW1lb3V0IiwidGltZW91dCIsIl9yZWYkZm9ybWF0SXRlbSIsImZvcm1hdEl0ZW0iLCJpdGVtIiwicGxhY2VfbmFtZSIsInZpZXdwb3J0Iiwib25TZWxlY3RlZCIsIm9uRGVsZXRlTWFya2VyIiwidHJhbnNpdGlvbkR1cmF0aW9uIiwicG9pbnRab29tIiwiaW50bCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlucHV0VmFsdWUiLCJzZXRJbnB1dFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzaG93UmVzdWx0cyIsInNldFNob3dSZXN1bHRzIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzaG93RGVsZXRlIiwic2V0U2hvd0RlbGV0ZSIsImluaXRpYWxSZXN1bHRzIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJyZXN1bHRzIiwic2V0UmVzdWx0cyIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsInNlbGVjdGVkSW5kZXgiLCJzZXRTZWxlY3RlZEluZGV4IiwiY2xpZW50IiwidXNlTWVtbyIsImlzVGVzdCIsImdlb2NvZGVyU2VydmljZSIsImFjY2Vzc1Rva2VuIiwib25DaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImV2ZW50IiwicXVlcnlTdHJpbmciLCJ0YXJnZXQiLCJ2YWx1ZSIsInJlc3VsdENvb3JkaW5hdGVzIiwiY2xlYXJUaW1lb3V0IiwiX3Jlc3VsdENvb3JkaW5hdGVzIiwiX2lzVmFsaWQiLCJjZW50ZXIiLCJzZXRUaW1lb3V0IiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJyZXNwb25zZSIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJCb29sZWFuIiwiZm9yd2FyZEdlb2NvZGUiLCJzZW5kIiwic2VudCIsImJvZHkiLCJmZWF0dXJlcyIsInQwIiwiY29uc29sZSIsImxvZyIsInN0b3AiLCJvbkJsdXIiLCJvbkZvY3VzIiwib25JdGVtU2VsZWN0ZWQiLCJuZXdWaWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJiYm94IiwiZ290b1ZpZXdwb3J0IiwiZml0Qm91bmRzIiwiem9vbSIsIm9uTWFya0RlbGV0ZWQiLCJvbktleURvd24iLCJrZXlDb2RlIiwiS2V5RXZlbnQiLCJET01fVktfVVAiLCJET01fVktfRE9XTiIsIkRPTV9WS19FTlRFUiIsIkRPTV9WS19SRVRVUk4iLCJjcmVhdGVFbGVtZW50IiwiU2VhcmNoIiwiaGVpZ2h0IiwiSW5wdXQiLCJ0eXBlIiwicGxhY2Vob2xkZXIiLCJmb3JtYXRNZXNzYWdlIiwiaWQiLCJkZWZhdWx0TWVzc2FnZSIsIkRlbGV0ZSIsIm9uQ2xpY2siLCJtYXAiLCJpbmRleCIsImtleSIsImNsYXNzbmFtZXMiLCJhY3RpdmUiLCJfZGVmYXVsdCIsImluamVjdEludGwiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VvY29kZXIvZ2VvY29kZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBnZW9jb2RlclNlcnZpY2UgZnJvbSAnQG1hcGJveC9tYXBib3gtc2RrL3NlcnZpY2VzL2dlb2NvZGluZyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge1dlYk1lcmNhdG9yVmlld3BvcnR9IGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuaW1wb3J0IHtLZXlFdmVudH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtJbnB1dH0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7U2VhcmNoLCBEZWxldGV9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge1ZpZXdwb3J0fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7aXNUZXN0fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxudHlwZSBTdHlsZWRDb250YWluZXJQcm9wcyA9IHtcbiAgd2lkdGg/OiBudW1iZXI7XG59O1xuXG4vLyBtYXRjaGVzIG9ubHkgdmFsaWQgY29vcmRpbmF0ZXNcbmNvbnN0IENPT1JESU5BVEVfUkVHRVhfU1RSSU5HID1cbiAgJyheWy0rXT8oPzpbMS04XT9cXFxcZCg/OlxcXFwuXFxcXGQrKT98OTAoPzpcXFxcLjArKT8pKSxcXFxccyooWy0rXT8oPzoxODAoPzpcXFxcLjArKT98KD86KD86MVswLTddXFxcXGQpfCg/OlsxLTldP1xcXFxkKSkoPzpcXFxcLlxcXFxkKyk/KSkkJztcblxuY29uc3QgQ09PUkRJTkFURV9SRUdFWCA9IFJlZ0V4cChDT09SRElOQVRFX1JFR0VYX1NUUklORyk7XG5cbmNvbnN0IFBMQUNFSE9MREVSID0gJ0VudGVyIGFuIGFkZHJlc3Mgb3IgY29vcmRpbmF0ZXMsIGV4IDM3Ljc5LC0xMjIuNDAnO1xuXG5sZXQgZGVib3VuY2VUaW1lb3V0OiBOb2RlSlMuVGltZW91dCB8IG51bGwgPSBudWxsO1xuXG4vKipcbiAqIFRlc3RzIGlmIGEgZ2l2ZW4gcXVlcnkgc3RyaW5nIGNvbnRhaW5zIHZhbGlkIGNvb3JkaW5hdGVzLlxuICogQHBhcmFtIHF1ZXJ5IFRoZSBpbnB1dCBzdHJpbmcgdG8gdGVzdCBmb3IgY29vcmRpbmF0ZXMuXG4gKiBAcmV0dXJucyBBIHR1cGxlIHdoZXJlOlxuICogICAtIElmIHZhbGlkLCByZXR1cm5zIGBbdHJ1ZSwgbG9uZ2l0dWRlLCBsYXRpdHVkZV1gLlxuICogICAtIElmIGludmFsaWQsIHJldHVybnMgYFtmYWxzZSwgcXVlcnldYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHRlc3RGb3JDb29yZGluYXRlcyA9IChxdWVyeTogc3RyaW5nKTogW3RydWUsIG51bWJlciwgbnVtYmVyXSB8IFtmYWxzZSwgc3RyaW5nXSA9PiB7XG4gIGNvbnN0IGlzVmFsaWQgPSBDT09SRElOQVRFX1JFR0VYLnRlc3QocXVlcnkudHJpbSgpKTtcblxuICBpZiAoIWlzVmFsaWQpIHtcbiAgICByZXR1cm4gW2lzVmFsaWQsIHF1ZXJ5XTtcbiAgfVxuXG4gIGNvbnN0IHRva2VucyA9IHF1ZXJ5LnRyaW0oKS5zcGxpdCgnLCcpO1xuICBjb25zdCBsYXRpdHVkZSA9IE51bWJlcih0b2tlbnNbMF0pO1xuICBjb25zdCBsb25naXR1ZGUgPSBOdW1iZXIodG9rZW5zWzFdKTtcblxuICByZXR1cm4gW2lzVmFsaWQsIGxvbmdpdHVkZSwgbGF0aXR1ZGVdO1xufTtcblxuY29uc3QgU3R5bGVkQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRDb250YWluZXJQcm9wcz5gXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcblxuICAuZ2VvY29kZXItaW5wdXQge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcblxuICAgIC5nZW9jb2Rlci1pbnB1dF9fc2VhcmNoIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5nZW9jb2RlcklucHV0SGVpZ2h0fXB4O1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDZweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIH1cblxuICAgIGlucHV0IHtcbiAgICAgIHBhZGRpbmc6IDRweCAzNnB4O1xuICAgICAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmdlb2NvZGVySW5wdXRIZWlnaHR9cHg7XG4gICAgICBjYXJldC1jb2xvcjogdW5zZXQ7XG4gICAgfVxuICB9XG5cbiAgLmdlb2NvZGVyLXJlc3VsdHMge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAke3Byb3BzID0+IChOdW1iZXIuaXNGaW5pdGUocHJvcHMud2lkdGgpID8gcHJvcHMud2lkdGggOiBwcm9wcy50aGVtZS5nZW9jb2RlcldpZHRoKX1weDtcbiAgICBtYXJnaW4tdG9wOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4O1xuICB9XG5cbiAgLmdlb2NvZGVyLWl0ZW0ge1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0SXRlbX07XG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0VHJ1bmNhdGV9O1xuXG4gICAgJi5hY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RIaWdobGlnaHRCZ307XG4gICAgfVxuICB9XG5cbiAgLnJlbW92ZS1yZXN1bHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTZweDtcbiAgICB0b3A6IDBweDtcbiAgICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZ2VvY29kZXJJbnB1dEhlaWdodH1weDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdWx0IHtcbiAgY2VudGVyOiBbbnVtYmVyLCBudW1iZXJdO1xuICBwbGFjZV9uYW1lOiBzdHJpbmc7XG4gIGJib3g/OiBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgdGV4dD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUmVzdWx0cyA9IFJlYWRvbmx5QXJyYXk8UmVzdWx0PjtcblxudHlwZSBHZW9jb2RlclByb3BzID0ge1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGxpbWl0PzogbnVtYmVyO1xuICB0aW1lb3V0PzogbnVtYmVyO1xuICBmb3JtYXRJdGVtPzogKGl0ZW06IFJlc3VsdCkgPT4gc3RyaW5nO1xuICB2aWV3cG9ydD86IFZpZXdwb3J0O1xuICBvblNlbGVjdGVkOiAodmlld3BvcnQ6IFZpZXdwb3J0IHwgbnVsbCwgaXRlbTogUmVzdWx0KSA9PiB2b2lkO1xuICBvbkRlbGV0ZU1hcmtlcj86ICgpID0+IHZvaWQ7XG4gIHRyYW5zaXRpb25EdXJhdGlvbj86IG51bWJlcjtcbiAgcG9pbnRab29tPzogbnVtYmVyO1xuICB3aWR0aD86IG51bWJlcjtcbn07XG5cbnR5cGUgSW50bFByb3BzID0ge1xuICBpbnRsOiBJbnRsU2hhcGU7XG59O1xuXG5jb25zdCBHZW9Db2RlcjogUmVhY3QuRkM8R2VvY29kZXJQcm9wcyAmIEludGxQcm9wcz4gPSAoe1xuICBtYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgY2xhc3NOYW1lID0gJycsXG4gIGxpbWl0ID0gNSxcbiAgdGltZW91dCA9IDMwMCxcbiAgZm9ybWF0SXRlbSA9IGl0ZW0gPT4gaXRlbS5wbGFjZV9uYW1lLFxuICB2aWV3cG9ydCxcbiAgb25TZWxlY3RlZCxcbiAgb25EZWxldGVNYXJrZXIsXG4gIHRyYW5zaXRpb25EdXJhdGlvbixcbiAgcG9pbnRab29tLFxuICB3aWR0aCxcbiAgaW50bFxufSkgPT4ge1xuICBjb25zdCBbaW5wdXRWYWx1ZSwgc2V0SW5wdXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFtzaG93UmVzdWx0cywgc2V0U2hvd1Jlc3VsdHNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd0RlbGV0ZSwgc2V0U2hvd0RlbGV0ZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGluaXRpYWxSZXN1bHRzOiBSZXN1bHRbXSA9IFtdO1xuICBjb25zdCBbcmVzdWx0cywgc2V0UmVzdWx0c10gPSB1c2VTdGF0ZShpbml0aWFsUmVzdWx0cyk7XG4gIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKDApO1xuXG4gIGNvbnN0IGNsaWVudCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKGlzVGVzdCgpID8gbnVsbCA6IGdlb2NvZGVyU2VydmljZSh7YWNjZXNzVG9rZW46IG1hcGJveEFwaUFjY2Vzc1Rva2VufSkpLFxuICAgIFttYXBib3hBcGlBY2Nlc3NUb2tlbl1cbiAgKTtcblxuICBjb25zdCBvbkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgc2V0SW5wdXRWYWx1ZShxdWVyeVN0cmluZyk7XG4gICAgICBjb25zdCByZXN1bHRDb29yZGluYXRlcyA9IHRlc3RGb3JDb29yZGluYXRlcyhxdWVyeVN0cmluZyk7XG4gICAgICBpZiAocmVzdWx0Q29vcmRpbmF0ZXNbMF0pIHtcbiAgICAgICAgaWYgKGRlYm91bmNlVGltZW91dCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IFtfaXNWYWxpZCwgbG9uZ2l0dWRlLCBsYXRpdHVkZV0gPSByZXN1bHRDb29yZGluYXRlcztcbiAgICAgICAgc2V0U2hvd1Jlc3VsdHModHJ1ZSk7XG4gICAgICAgIHNldFJlc3VsdHMoW3tjZW50ZXI6IFtsb25naXR1ZGUsIGxhdGl0dWRlXSwgcGxhY2VfbmFtZTogcXVlcnlTdHJpbmd9XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZGVib3VuY2VUaW1lb3V0KSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYm91bmNlVGltZW91dCk7XG4gICAgICAgIH1cbiAgICAgICAgZGVib3VuY2VUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgaWYgKGxpbWl0ID4gMCAmJiBCb29sZWFuKHF1ZXJ5U3RyaW5nKSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnRcbiAgICAgICAgICAgICAgICAuZm9yd2FyZEdlb2NvZGUoe1xuICAgICAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5U3RyaW5nLFxuICAgICAgICAgICAgICAgICAgbGltaXRcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5zZW5kKCk7XG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZS5ib2R5LmZlYXR1cmVzKSB7XG4gICAgICAgICAgICAgICAgc2V0U2hvd1Jlc3VsdHModHJ1ZSk7XG4gICAgICAgICAgICAgICAgc2V0UmVzdWx0cyhyZXNwb25zZS5ib2R5LmZlYXR1cmVzKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAvLyBUT0RPOiBzaG93IGdlb2NvZGUgZXJyb3JcbiAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LCB0aW1lb3V0KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtjbGllbnQsIGxpbWl0LCB0aW1lb3V0LCBzZXRSZXN1bHRzLCBzZXRTaG93UmVzdWx0c11cbiAgKTtcblxuICBjb25zdCBvbkJsdXIgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRTaG93UmVzdWx0cyhmYWxzZSk7XG4gICAgfSwgdGltZW91dCk7XG4gIH0sIFtzZXRTaG93UmVzdWx0cywgdGltZW91dF0pO1xuXG4gIGNvbnN0IG9uRm9jdXMgPSB1c2VDYWxsYmFjaygoKSA9PiBzZXRTaG93UmVzdWx0cyh0cnVlKSwgW3NldFNob3dSZXN1bHRzXSk7XG5cbiAgY29uc3Qgb25JdGVtU2VsZWN0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICBpdGVtID0+IHtcbiAgICAgIGNvbnN0IG5ld1ZpZXdwb3J0ID0gbmV3IFdlYk1lcmNhdG9yVmlld3BvcnQodmlld3BvcnQpO1xuICAgICAgY29uc3Qge2Jib3gsIGNlbnRlcn0gPSBpdGVtO1xuXG4gICAgICBjb25zdCBnb3RvVmlld3BvcnQgPSBiYm94XG4gICAgICAgID8gbmV3Vmlld3BvcnQuZml0Qm91bmRzKFtcbiAgICAgICAgICAgIFtiYm94WzBdLCBiYm94WzFdXSxcbiAgICAgICAgICAgIFtiYm94WzJdLCBiYm94WzNdXVxuICAgICAgICAgIF0pXG4gICAgICAgIDoge1xuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXJbMF0sXG4gICAgICAgICAgICBsYXRpdHVkZTogY2VudGVyWzFdLFxuICAgICAgICAgICAgem9vbTogcG9pbnRab29tXG4gICAgICAgICAgfTtcblxuICAgICAgY29uc3Qge2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb219ID0gZ290b1ZpZXdwb3J0O1xuXG4gICAgICBvblNlbGVjdGVkKHsuLi52aWV3cG9ydCwgLi4ue2xvbmdpdHVkZSwgbGF0aXR1ZGUsIHpvb20sIHRyYW5zaXRpb25EdXJhdGlvbn19LCBpdGVtKTtcblxuICAgICAgc2V0U2hvd1Jlc3VsdHMoZmFsc2UpO1xuICAgICAgc2V0SW5wdXRWYWx1ZShmb3JtYXRJdGVtKGl0ZW0pKTtcbiAgICAgIHNldFNob3dEZWxldGUodHJ1ZSk7XG4gICAgfSxcbiAgICBbdmlld3BvcnQsIG9uU2VsZWN0ZWQsIHRyYW5zaXRpb25EdXJhdGlvbiwgcG9pbnRab29tLCBmb3JtYXRJdGVtXVxuICApO1xuXG4gIGNvbnN0IG9uTWFya0RlbGV0ZWQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0U2hvd0RlbGV0ZShmYWxzZSk7XG4gICAgc2V0SW5wdXRWYWx1ZSgnJyk7XG4gICAgb25EZWxldGVNYXJrZXI/LigpO1xuICB9LCBbb25EZWxldGVNYXJrZXJdKTtcblxuICBjb25zdCBvbktleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICBlID0+IHtcbiAgICAgIGlmICghcmVzdWx0cyB8fCByZXN1bHRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKGUua2V5Q29kZSkge1xuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19VUDpcbiAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHNlbGVjdGVkSW5kZXggPiAwID8gc2VsZWN0ZWRJbmRleCAtIDEgOiBzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfRE9XTjpcbiAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KHNlbGVjdGVkSW5kZXggPCByZXN1bHRzLmxlbmd0aCAtIDEgPyBzZWxlY3RlZEluZGV4ICsgMSA6IHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19FTlRFUjpcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfUkVUVVJOOlxuICAgICAgICAgIGlmIChyZXN1bHRzW3NlbGVjdGVkSW5kZXhdKSB7XG4gICAgICAgICAgICBvbkl0ZW1TZWxlY3RlZChyZXN1bHRzW3NlbGVjdGVkSW5kZXhdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSxcbiAgICBbcmVzdWx0cywgc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleCwgb25JdGVtU2VsZWN0ZWRdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ29udGFpbmVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSB3aWR0aD17d2lkdGh9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW9jb2Rlci1pbnB1dFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdlb2NvZGVyLWlucHV0X19zZWFyY2hcIj5cbiAgICAgICAgICA8U2VhcmNoIGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPElucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAgIHZhbHVlPXtpbnB1dFZhbHVlfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgICAgIGludGxcbiAgICAgICAgICAgICAgPyBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAnZ2VvY29kZXIudGl0bGUnLCBkZWZhdWx0TWVzc2FnZTogUExBQ0VIT0xERVJ9KVxuICAgICAgICAgICAgICA6IFBMQUNFSE9MREVSXG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgICB7c2hvd0RlbGV0ZSA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbW92ZS1yZXN1bHRcIj5cbiAgICAgICAgICAgIDxEZWxldGUgaGVpZ2h0PVwiMTZweFwiIG9uQ2xpY2s9e29uTWFya0RlbGV0ZWR9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIHtzaG93UmVzdWx0cyA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJnZW9jb2Rlci1yZXN1bHRzXCI+XG4gICAgICAgICAge3Jlc3VsdHMubWFwKChpdGVtLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2dlb2NvZGVyLWl0ZW0nLCB7YWN0aXZlOiBzZWxlY3RlZEluZGV4ID09PSBpbmRleH0pfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBvbkl0ZW1TZWxlY3RlZChpdGVtKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2Zvcm1hdEl0ZW0oaXRlbSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogbnVsbH1cbiAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZh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
@@ -1,9 +1,17 @@
1
1
  import React from 'react';
2
2
  import { AddDataToMapOptions, MapState, ProtoDataset, UiState } from '@kepler.gl/types';
3
3
  import { ActionHandler, removeDataset, updateMap, updateVisData } from '@kepler.gl/actions';
4
- import { MapViewState } from '@deck.gl/core/typed';
4
+ type MapViewState = {
5
+ latitude: number;
6
+ longitude: number;
7
+ zoom: number;
8
+ bearing?: number;
9
+ pitch?: number;
10
+ transitionDuration?: number;
11
+ transitionInterpolator?: object;
12
+ };
5
13
  import { BaseComponentProps } from './types';
6
- export declare type StyledGeocoderPanelProps = BaseComponentProps & {
14
+ export type StyledGeocoderPanelProps = BaseComponentProps & {
7
15
  unsyncedViewports?: boolean;
8
16
  index?: number;
9
17
  width?: number;