@grafana/scenes 6.7.0--canary.1091.14350229100.0 → 6.8.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 (331) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/esm/components/layout/CSSGrid/SceneCSSGridItem.js +33 -0
  3. package/dist/esm/dist/esm/behaviors/CursorSync.js +76 -0
  4. package/dist/esm/dist/esm/behaviors/LiveNowTimer.js +44 -0
  5. package/dist/esm/dist/esm/behaviors/SceneQueryController.js +14 -0
  6. package/dist/esm/dist/esm/components/EmbeddedScene.js +59 -0
  7. package/dist/esm/dist/esm/components/NestedScene.js +95 -0
  8. package/dist/esm/dist/esm/components/SceneApp/SceneApp.js +27 -0
  9. package/dist/esm/dist/esm/components/SceneApp/SceneAppPage.js +176 -0
  10. package/dist/esm/dist/esm/components/SceneApp/SceneAppPageView.js +104 -0
  11. package/dist/esm/dist/esm/components/SceneApp/utils.js +42 -0
  12. package/dist/esm/dist/esm/components/SceneByFrameRepeater.js +41 -0
  13. package/dist/esm/dist/esm/components/SceneByVariableRepeater.js +55 -0
  14. package/dist/esm/dist/esm/components/SceneCanvasText.js +32 -0
  15. package/dist/esm/dist/esm/components/SceneControlsSpacer.js +17 -0
  16. package/dist/esm/dist/esm/components/SceneDebugger/DebugDetails.js +82 -0
  17. package/dist/esm/dist/esm/components/SceneDebugger/DebugTreeNode.js +72 -0
  18. package/dist/esm/dist/esm/components/SceneDebugger/SceneDebugger.js +77 -0
  19. package/dist/esm/dist/esm/components/SceneReactObject.js +34 -0
  20. package/dist/esm/dist/esm/components/SceneRefreshPicker.js +205 -0
  21. package/dist/esm/dist/esm/components/SceneTimePicker.js +139 -0
  22. package/dist/esm/dist/esm/components/SceneTimeRangeCompare.js +240 -0
  23. package/dist/esm/dist/esm/components/SceneToolbarButton.js +33 -0
  24. package/dist/esm/dist/esm/components/VizPanel/VizPanel.js +406 -0
  25. package/dist/esm/dist/esm/components/VizPanel/VizPanelExploreButton.js +44 -0
  26. package/dist/esm/dist/esm/components/VizPanel/VizPanelMenu.js +59 -0
  27. package/dist/esm/dist/esm/components/VizPanel/VizPanelRenderer.js +285 -0
  28. package/dist/esm/dist/esm/components/VizPanel/VizPanelSeriesLimit.js +45 -0
  29. package/dist/esm/dist/esm/components/VizPanel/colorSeriesConfigFactory.js +72 -0
  30. package/dist/esm/dist/esm/components/VizPanel/registerRuntimePanelPlugin.js +11 -0
  31. package/dist/esm/dist/esm/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
  32. package/dist/esm/dist/esm/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
  33. package/dist/esm/dist/esm/components/layout/LazyLoader.js +103 -0
  34. package/dist/esm/dist/esm/components/layout/SceneFlexLayout.js +135 -0
  35. package/dist/esm/dist/esm/components/layout/grid/SceneGridItem.js +30 -0
  36. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayout.js +283 -0
  37. package/dist/esm/dist/esm/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
  38. package/dist/esm/dist/esm/components/layout/grid/SceneGridRow.js +190 -0
  39. package/dist/esm/dist/esm/components/layout/grid/constants.js +7 -0
  40. package/dist/esm/dist/esm/components/layout/grid/utils.js +36 -0
  41. package/dist/esm/dist/esm/components/layout/split/SplitLayout.js +17 -0
  42. package/dist/esm/dist/esm/components/layout/split/SplitLayoutRenderer.js +29 -0
  43. package/dist/esm/dist/esm/components/layout/split/Splitter.js +386 -0
  44. package/dist/esm/dist/esm/core/SceneComponentWrapper.js +57 -0
  45. package/dist/esm/dist/esm/core/SceneDataNode.js +43 -0
  46. package/dist/esm/dist/esm/core/SceneObjectBase.js +286 -0
  47. package/dist/esm/dist/esm/core/SceneObjectRef.js +32 -0
  48. package/dist/esm/dist/esm/core/SceneTimeRange.js +231 -0
  49. package/dist/esm/dist/esm/core/events.js +11 -0
  50. package/dist/esm/dist/esm/core/sceneGraph/getTimeRange.js +10 -0
  51. package/dist/esm/dist/esm/core/sceneGraph/index.js +25 -0
  52. package/dist/esm/dist/esm/core/sceneGraph/sceneGraph.js +178 -0
  53. package/dist/esm/dist/esm/core/sceneGraph/utils.js +64 -0
  54. package/dist/esm/dist/esm/core/types.js +15 -0
  55. package/dist/esm/dist/esm/querying/DataLayersMerger.js +46 -0
  56. package/dist/esm/dist/esm/querying/ExtraQueryProvider.js +6 -0
  57. package/dist/esm/dist/esm/querying/RuntimeDataSource.js +6 -0
  58. package/dist/esm/dist/esm/querying/SceneDataLayerSet.js +100 -0
  59. package/dist/esm/dist/esm/querying/SceneQueryRunner.js +468 -0
  60. package/dist/esm/dist/esm/querying/extraQueryProcessingOperator.js +46 -0
  61. package/dist/esm/dist/esm/querying/getEnrichedDataRequest.js +12 -0
  62. package/dist/esm/dist/esm/querying/layers/SceneDataLayerBase.js +112 -0
  63. package/dist/esm/dist/esm/querying/layers/SceneDataLayerControls.js +51 -0
  64. package/dist/esm/dist/esm/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
  65. package/dist/esm/dist/esm/querying/layers/annotations/filterAnnotations.js +85 -0
  66. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationQuery.js +121 -0
  67. package/dist/esm/dist/esm/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
  68. package/dist/esm/dist/esm/querying/layers/annotations/utils.js +77 -0
  69. package/dist/esm/dist/esm/querying/registerQueryWithController.js +41 -0
  70. package/dist/esm/dist/esm/services/SceneObjectUrlSyncConfig.js +30 -0
  71. package/dist/esm/dist/esm/services/UniqueUrlKeyMapper.js +45 -0
  72. package/dist/esm/dist/esm/services/UrlSyncManager.js +167 -0
  73. package/dist/esm/dist/esm/services/useUrlSync.js +29 -0
  74. package/dist/esm/dist/esm/services/utils.js +71 -0
  75. package/dist/esm/dist/esm/utils/ControlsLabel.js +107 -0
  76. package/dist/esm/dist/esm/utils/LoadingIndicator.js +19 -0
  77. package/dist/esm/dist/esm/utils/SafeSerializableSceneObject.js +39 -0
  78. package/dist/esm/dist/esm/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
  79. package/dist/esm/dist/esm/utils/date.js +15 -0
  80. package/dist/esm/dist/esm/utils/evaluateTimeRange.js +16 -0
  81. package/dist/esm/dist/esm/utils/explore.js +47 -0
  82. package/dist/esm/dist/esm/utils/getCompareSeriesRefId.js +4 -0
  83. package/dist/esm/dist/esm/utils/getDataSource.js +18 -0
  84. package/dist/esm/dist/esm/utils/getMessageFromError.js +24 -0
  85. package/dist/esm/dist/esm/utils/metricTree.js +53 -0
  86. package/dist/esm/dist/esm/utils/parseUrlParam.js +41 -0
  87. package/dist/esm/dist/esm/utils/utils.js +11 -0
  88. package/dist/esm/dist/esm/utils/wrapInSafeSerializableSceneObject.js +30 -0
  89. package/dist/esm/dist/esm/utils/writeSceneLog.js +12 -0
  90. package/dist/esm/dist/esm/variables/VariableDependencyConfig.js +150 -0
  91. package/dist/esm/dist/esm/variables/VariableValueRecorder.js +71 -0
  92. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterBuilder.js +24 -0
  93. package/dist/esm/dist/esm/variables/adhoc/AdHocFilterRenderer.js +303 -0
  94. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
  95. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
  96. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
  97. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
  98. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
  99. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
  100. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
  101. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
  102. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariable.js +289 -0
  103. package/dist/esm/dist/esm/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
  104. package/dist/esm/dist/esm/variables/adhoc/getAdhocOptionSearcher.js +13 -0
  105. package/dist/esm/dist/esm/variables/adhoc/patchGetAdhocFilters.js +47 -0
  106. package/dist/esm/dist/esm/variables/components/VariableValueControl.js +23 -0
  107. package/dist/esm/dist/esm/variables/components/VariableValueInput.js +33 -0
  108. package/dist/esm/dist/esm/variables/components/VariableValueSelect.js +228 -0
  109. package/dist/esm/dist/esm/variables/components/VariableValueSelectors.js +72 -0
  110. package/dist/esm/dist/esm/variables/components/getOptionSearcher.js +15 -0
  111. package/dist/esm/dist/esm/variables/constants.js +9 -0
  112. package/dist/esm/dist/esm/variables/getEnrichedFiltersRequest.js +12 -0
  113. package/dist/esm/dist/esm/variables/groupby/GroupByVariable.js +259 -0
  114. package/dist/esm/dist/esm/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
  115. package/dist/esm/dist/esm/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
  116. package/dist/esm/dist/esm/variables/interpolation/ScopedVarsVariable.js +40 -0
  117. package/dist/esm/dist/esm/variables/interpolation/defaults.js +21 -0
  118. package/dist/esm/dist/esm/variables/interpolation/fieldAccessorCache.js +13 -0
  119. package/dist/esm/dist/esm/variables/interpolation/formatRegistry.js +296 -0
  120. package/dist/esm/dist/esm/variables/interpolation/sceneInterpolator.js +87 -0
  121. package/dist/esm/dist/esm/variables/lookupVariable.js +20 -0
  122. package/dist/esm/dist/esm/variables/macros/AllVariablesMacro.js +57 -0
  123. package/dist/esm/dist/esm/variables/macros/contextMacros.js +43 -0
  124. package/dist/esm/dist/esm/variables/macros/dataMacros.js +134 -0
  125. package/dist/esm/dist/esm/variables/macros/index.js +26 -0
  126. package/dist/esm/dist/esm/variables/macros/templateProxies.js +51 -0
  127. package/dist/esm/dist/esm/variables/macros/timeMacros.js +86 -0
  128. package/dist/esm/dist/esm/variables/macros/types.js +11 -0
  129. package/dist/esm/dist/esm/variables/macros/urlMacros.js +56 -0
  130. package/dist/esm/dist/esm/variables/sets/SceneVariableSet.js +254 -0
  131. package/dist/esm/dist/esm/variables/types.js +11 -0
  132. package/dist/esm/dist/esm/variables/utils.js +172 -0
  133. package/dist/esm/dist/esm/variables/variants/ConstantVariable.js +38 -0
  134. package/dist/esm/dist/esm/variables/variants/CustomVariable.js +60 -0
  135. package/dist/esm/dist/esm/variables/variants/DataSourceVariable.js +88 -0
  136. package/dist/esm/dist/esm/variables/variants/IntervalVariable.js +117 -0
  137. package/dist/esm/dist/esm/variables/variants/MultiValueVariable.js +295 -0
  138. package/dist/esm/dist/esm/variables/variants/TestVariable.js +117 -0
  139. package/dist/esm/dist/esm/variables/variants/TextBoxVariable.js +61 -0
  140. package/dist/esm/dist/esm/variables/variants/query/QueryVariable.js +139 -0
  141. package/dist/esm/dist/esm/variables/variants/query/createQueryVariableRunner.js +129 -0
  142. package/dist/esm/dist/esm/variables/variants/query/guards.js +28 -0
  143. package/dist/esm/dist/esm/variables/variants/query/toMetricFindValues.js +96 -0
  144. package/dist/esm/dist/esm/variables/variants/query/utils.js +124 -0
  145. package/dist/esm/index.js +1 -1
  146. package/dist/esm/index.js.map +1 -1
  147. package/dist/esm/querying/DataProviderSharer.js +39 -0
  148. package/dist/esm/src/behaviors/ActWhenVariableChanged.js +27 -0
  149. package/dist/esm/src/behaviors/CursorSync.js +76 -0
  150. package/dist/esm/src/behaviors/LiveNowTimer.js +44 -0
  151. package/dist/esm/src/behaviors/SceneQueryController.js +60 -0
  152. package/dist/esm/src/behaviors/index.js +5 -0
  153. package/dist/esm/src/components/EmbeddedScene.js +59 -0
  154. package/dist/esm/src/components/NestedScene.js +95 -0
  155. package/dist/esm/src/components/SceneApp/SceneApp.js +37 -0
  156. package/dist/esm/src/components/SceneApp/SceneAppPage.js +176 -0
  157. package/dist/esm/src/components/SceneApp/SceneAppPageView.js +104 -0
  158. package/dist/esm/src/components/SceneApp/utils.js +42 -0
  159. package/dist/esm/src/components/SceneByFrameRepeater.js +41 -0
  160. package/dist/esm/src/components/SceneByVariableRepeater.js +55 -0
  161. package/dist/esm/src/components/SceneCanvasText.js +32 -0
  162. package/dist/esm/src/components/SceneControlsSpacer.js +17 -0
  163. package/dist/esm/src/components/SceneDebugger/DebugDetails.js +82 -0
  164. package/dist/esm/src/components/SceneDebugger/DebugTreeNode.js +72 -0
  165. package/dist/esm/src/components/SceneDebugger/SceneDebugger.js +77 -0
  166. package/dist/esm/src/components/SceneReactObject.js +34 -0
  167. package/dist/esm/src/components/SceneRefreshPicker.js +205 -0
  168. package/dist/esm/src/components/SceneTimePicker.js +139 -0
  169. package/dist/esm/src/components/SceneTimeRangeCompare.js +240 -0
  170. package/dist/esm/src/components/SceneToolbarButton.js +33 -0
  171. package/dist/esm/src/components/VizPanel/VizPanel.js +406 -0
  172. package/dist/esm/src/components/VizPanel/VizPanelExploreButton.js +44 -0
  173. package/dist/esm/src/components/VizPanel/VizPanelMenu.js +59 -0
  174. package/dist/esm/src/components/VizPanel/VizPanelRenderer.js +285 -0
  175. package/dist/esm/src/components/VizPanel/VizPanelSeriesLimit.js +45 -0
  176. package/dist/esm/src/components/VizPanel/colorSeriesConfigFactory.js +72 -0
  177. package/dist/esm/src/components/VizPanel/registerRuntimePanelPlugin.js +56 -0
  178. package/dist/esm/src/components/VizPanel/seriesVisibilityConfigFactory.js +164 -0
  179. package/dist/esm/src/components/layout/CSSGrid/SceneCSSGridLayout.js +124 -0
  180. package/dist/esm/src/components/layout/LazyLoader.js +103 -0
  181. package/dist/esm/src/components/layout/SceneFlexLayout.js +135 -0
  182. package/dist/esm/src/components/layout/grid/SceneGridItem.js +30 -0
  183. package/dist/esm/src/components/layout/grid/SceneGridLayout.js +283 -0
  184. package/dist/esm/src/components/layout/grid/SceneGridLayoutRenderer.js +178 -0
  185. package/dist/esm/src/components/layout/grid/SceneGridRow.js +190 -0
  186. package/dist/esm/src/components/layout/grid/constants.js +7 -0
  187. package/dist/esm/src/components/layout/grid/utils.js +36 -0
  188. package/dist/esm/src/components/layout/split/SplitLayout.js +17 -0
  189. package/dist/esm/src/components/layout/split/SplitLayoutRenderer.js +29 -0
  190. package/dist/esm/src/components/layout/split/Splitter.js +386 -0
  191. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilder.js +100 -0
  192. package/dist/esm/src/core/PanelBuilders/FieldConfigBuilders.js +75 -0
  193. package/dist/esm/src/core/PanelBuilders/FieldConfigOverridesBuilder.js +75 -0
  194. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilder.js +22 -0
  195. package/dist/esm/src/core/PanelBuilders/PanelOptionsBuilders.js +85 -0
  196. package/dist/esm/src/core/PanelBuilders/StandardFieldConfigBuilders.js +52 -0
  197. package/dist/esm/src/core/PanelBuilders/VizConfigBuilder.js +78 -0
  198. package/dist/esm/src/core/PanelBuilders/VizConfigBuilders.js +114 -0
  199. package/dist/esm/src/core/PanelBuilders/VizPanelBuilder.js +162 -0
  200. package/dist/esm/src/core/PanelBuilders/index.js +116 -0
  201. package/dist/esm/src/core/SceneComponentWrapper.js +57 -0
  202. package/dist/esm/src/core/SceneDataNode.js +43 -0
  203. package/dist/esm/src/core/SceneObjectBase.js +286 -0
  204. package/dist/esm/src/core/SceneObjectRef.js +32 -0
  205. package/dist/esm/src/core/SceneTimeRange.js +231 -0
  206. package/dist/esm/src/core/SceneTimeRangeTransformerBase.js +35 -0
  207. package/dist/esm/src/core/SceneTimeZoneOverride.js +63 -0
  208. package/dist/esm/src/core/events.js +11 -0
  209. package/dist/esm/src/core/sceneGraph/getTimeRange.js +10 -0
  210. package/dist/esm/src/core/sceneGraph/index.js +25 -0
  211. package/dist/esm/src/core/sceneGraph/sceneGraph.js +178 -0
  212. package/dist/esm/src/core/sceneGraph/utils.js +64 -0
  213. package/dist/esm/src/core/types.js +15 -0
  214. package/dist/esm/src/index.js +108 -0
  215. package/dist/esm/src/querying/DataLayersMerger.js +46 -0
  216. package/dist/esm/src/querying/DataProviderProxy.js +37 -0
  217. package/dist/esm/src/querying/DataProviderSharer.js +108 -0
  218. package/dist/esm/src/querying/ExtraQueryProvider.js +6 -0
  219. package/dist/esm/src/querying/RuntimeDataSource.js +49 -0
  220. package/dist/esm/src/querying/SceneDataLayerSet.js +100 -0
  221. package/dist/esm/src/querying/SceneDataTransformer.js +178 -0
  222. package/dist/esm/src/querying/SceneQueryRunner.js +468 -0
  223. package/dist/esm/src/querying/extraQueryProcessingOperator.js +46 -0
  224. package/dist/esm/src/querying/getEnrichedDataRequest.js +12 -0
  225. package/dist/esm/src/querying/layers/SceneDataLayerBase.js +112 -0
  226. package/dist/esm/src/querying/layers/SceneDataLayerControls.js +51 -0
  227. package/dist/esm/src/querying/layers/annotations/AnnotationsDataLayer.js +130 -0
  228. package/dist/esm/src/querying/layers/annotations/filterAnnotations.js +85 -0
  229. package/dist/esm/src/querying/layers/annotations/standardAnnotationQuery.js +121 -0
  230. package/dist/esm/src/querying/layers/annotations/standardAnnotationsSupport.js +211 -0
  231. package/dist/esm/src/querying/layers/annotations/utils.js +77 -0
  232. package/dist/esm/src/querying/layers/index.js +2 -0
  233. package/dist/esm/src/querying/registerQueryWithController.js +41 -0
  234. package/dist/esm/src/services/SceneObjectUrlSyncConfig.js +30 -0
  235. package/dist/esm/src/services/UniqueUrlKeyMapper.js +45 -0
  236. package/dist/esm/src/services/UrlSyncContextProvider.js +17 -0
  237. package/dist/esm/src/services/UrlSyncManager.js +167 -0
  238. package/dist/esm/src/services/useUrlSync.js +29 -0
  239. package/dist/esm/src/services/utils.js +75 -0
  240. package/dist/esm/src/utils/ControlsLabel.js +107 -0
  241. package/dist/esm/src/utils/LoadingIndicator.js +19 -0
  242. package/dist/esm/src/utils/SafeSerializableSceneObject.js +39 -0
  243. package/dist/esm/src/utils/compatibility/setWindowGrafanaSceneContext.js +16 -0
  244. package/dist/esm/src/utils/date.js +15 -0
  245. package/dist/esm/src/utils/evaluateTimeRange.js +16 -0
  246. package/dist/esm/src/utils/explore.js +47 -0
  247. package/dist/esm/src/utils/getCompareSeriesRefId.js +4 -0
  248. package/dist/esm/src/utils/getDataSource.js +18 -0
  249. package/dist/esm/src/utils/getMessageFromError.js +24 -0
  250. package/dist/esm/src/utils/metricTree.js +53 -0
  251. package/dist/esm/src/utils/parseUrlParam.js +41 -0
  252. package/dist/esm/src/utils/utils.js +11 -0
  253. package/dist/esm/src/utils/wrapInSafeSerializableSceneObject.js +30 -0
  254. package/dist/esm/src/utils/writeSceneLog.js +12 -0
  255. package/dist/esm/src/variables/VariableDependencyConfig.js +150 -0
  256. package/dist/esm/src/variables/VariableValueRecorder.js +71 -0
  257. package/dist/esm/src/variables/adhoc/AdHocFilterBuilder.js +24 -0
  258. package/dist/esm/src/variables/adhoc/AdHocFilterRenderer.js +303 -0
  259. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFilterPill.js +162 -0
  260. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersAlwaysWipCombobox.js +20 -0
  261. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersCombobox.js +640 -0
  262. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/AdHocFiltersComboboxRenderer.js +65 -0
  263. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/DropdownItem.js +146 -0
  264. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/MultiValuePill.js +114 -0
  265. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/useFloatingInteractions.js +68 -0
  266. package/dist/esm/src/variables/adhoc/AdHocFiltersCombobox/utils.js +146 -0
  267. package/dist/esm/src/variables/adhoc/AdHocFiltersVariable.js +289 -0
  268. package/dist/esm/src/variables/adhoc/AdHocFiltersVariableUrlSyncHandler.js +76 -0
  269. package/dist/esm/src/variables/adhoc/getAdhocOptionSearcher.js +13 -0
  270. package/dist/esm/src/variables/adhoc/patchGetAdhocFilters.js +47 -0
  271. package/dist/esm/src/variables/components/VariableValueControl.js +23 -0
  272. package/dist/esm/src/variables/components/VariableValueInput.js +33 -0
  273. package/dist/esm/src/variables/components/VariableValueSelect.js +228 -0
  274. package/dist/esm/src/variables/components/VariableValueSelectors.js +72 -0
  275. package/dist/esm/src/variables/components/getOptionSearcher.js +15 -0
  276. package/dist/esm/src/variables/constants.js +9 -0
  277. package/dist/esm/src/variables/getEnrichedFiltersRequest.js +12 -0
  278. package/dist/esm/src/variables/groupby/GroupByVariable.js +259 -0
  279. package/dist/esm/src/variables/groupby/GroupByVariableUrlSyncHandler.js +63 -0
  280. package/dist/esm/src/variables/groupby/findActiveGroupByVariablesByUid.js +13 -0
  281. package/dist/esm/src/variables/interpolation/ScopedVarsVariable.js +40 -0
  282. package/dist/esm/src/variables/interpolation/defaults.js +21 -0
  283. package/dist/esm/src/variables/interpolation/fieldAccessorCache.js +13 -0
  284. package/dist/esm/src/variables/interpolation/formatRegistry.js +296 -0
  285. package/dist/esm/src/variables/interpolation/sceneInterpolator.js +87 -0
  286. package/dist/esm/src/variables/lookupVariable.js +20 -0
  287. package/dist/esm/src/variables/macros/AllVariablesMacro.js +57 -0
  288. package/dist/esm/src/variables/macros/contextMacros.js +43 -0
  289. package/dist/esm/src/variables/macros/dataMacros.js +134 -0
  290. package/dist/esm/src/variables/macros/index.js +35 -0
  291. package/dist/esm/src/variables/macros/templateProxies.js +51 -0
  292. package/dist/esm/src/variables/macros/timeMacros.js +86 -0
  293. package/dist/esm/src/variables/macros/types.js +11 -0
  294. package/dist/esm/src/variables/macros/urlMacros.js +56 -0
  295. package/dist/esm/src/variables/sets/SceneVariableSet.js +254 -0
  296. package/dist/esm/src/variables/types.js +11 -0
  297. package/dist/esm/src/variables/utils.js +172 -0
  298. package/dist/esm/src/variables/variants/ConstantVariable.js +38 -0
  299. package/dist/esm/src/variables/variants/CustomVariable.js +60 -0
  300. package/dist/esm/src/variables/variants/DataSourceVariable.js +88 -0
  301. package/dist/esm/src/variables/variants/IntervalVariable.js +117 -0
  302. package/dist/esm/src/variables/variants/JsonVariable.js +193 -0
  303. package/dist/esm/src/variables/variants/LocalValueVariable.js +56 -0
  304. package/dist/esm/src/variables/variants/MultiValueVariable.js +295 -0
  305. package/dist/esm/src/variables/variants/TestVariable.js +117 -0
  306. package/dist/esm/src/variables/variants/TextBoxVariable.js +61 -0
  307. package/dist/esm/src/variables/variants/guards.js +27 -0
  308. package/dist/esm/src/variables/variants/query/QueryVariable.js +139 -0
  309. package/dist/esm/src/variables/variants/query/createQueryVariableRunner.js +129 -0
  310. package/dist/esm/src/variables/variants/query/guards.js +28 -0
  311. package/dist/esm/src/variables/variants/query/toMetricFindValues.js +96 -0
  312. package/dist/esm/src/variables/variants/query/utils.js +124 -0
  313. package/dist/esm/variables/components/VariableValueSelect.js +13 -9
  314. package/dist/esm/variables/components/VariableValueSelect.js.map +1 -1
  315. package/dist/esm/variables/variants/ConstantVariable.js +22 -0
  316. package/dist/esm/variables/variants/ConstantVariable.js.map +1 -1
  317. package/dist/esm/variables/variants/CustomVariable.js +3 -2
  318. package/dist/esm/variables/variants/CustomVariable.js.map +1 -1
  319. package/dist/esm/variables/variants/DataSourceVariable.js +3 -2
  320. package/dist/esm/variables/variants/DataSourceVariable.js.map +1 -1
  321. package/dist/esm/variables/variants/JsonVariable.js +96 -0
  322. package/dist/esm/variables/variants/TestVariable.js +3 -2
  323. package/dist/esm/variables/variants/TestVariable.js.map +1 -1
  324. package/dist/esm/variables/variants/json/JsonVariable.js +95 -0
  325. package/dist/esm/variables/variants/json/JsonVariableOptionProviders.js +70 -0
  326. package/dist/esm/variables/variants/query/QueryVariable.js +3 -2
  327. package/dist/esm/variables/variants/query/QueryVariable.js.map +1 -1
  328. package/dist/index.d.ts +14 -6
  329. package/dist/index.js +35 -13
  330. package/dist/index.js.map +1 -1
  331. package/package.json +2 -2
@@ -0,0 +1,121 @@
1
+ import { from, of } from 'rxjs';
2
+ import { map, mergeMap } from 'rxjs/operators';
3
+ import { rangeUtil, CoreApp, DataTopic } from '@grafana/data';
4
+ import { getTemplateSrv, getRunRequest } from '@grafana/runtime';
5
+ import { shouldUseLegacyRunner, standardAnnotationSupport } from './standardAnnotationsSupport.js';
6
+ import { LoadingState } from '@grafana/schema';
7
+ import { getEnrichedDataRequest } from '../../getEnrichedDataRequest.js';
8
+ import { wrapInSafeSerializableSceneObject } from '../../../utils/wrapInSafeSerializableSceneObject.js';
9
+
10
+ var __defProp = Object.defineProperty;
11
+ var __defProps = Object.defineProperties;
12
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
13
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
14
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
15
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
16
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
17
+ var __spreadValues = (a, b) => {
18
+ for (var prop in b || (b = {}))
19
+ if (__hasOwnProp.call(b, prop))
20
+ __defNormalProp(a, prop, b[prop]);
21
+ if (__getOwnPropSymbols)
22
+ for (var prop of __getOwnPropSymbols(b)) {
23
+ if (__propIsEnum.call(b, prop))
24
+ __defNormalProp(a, prop, b[prop]);
25
+ }
26
+ return a;
27
+ };
28
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
29
+ let counter = 100;
30
+ function getNextRequestId() {
31
+ return "AQ" + counter++;
32
+ }
33
+ function executeAnnotationQuery(datasource, timeRange, query, layer) {
34
+ var _a;
35
+ if (datasource.annotationQuery && shouldUseLegacyRunner(datasource)) {
36
+ console.warn("Using deprecated annotationQuery method, please upgrade your datasource");
37
+ return from(
38
+ datasource.annotationQuery({
39
+ range: timeRange.state.value,
40
+ rangeRaw: timeRange.state.value.raw,
41
+ annotation: query,
42
+ dashboard: {
43
+ getVariables: getTemplateSrv().getVariables
44
+ }
45
+ })
46
+ ).pipe(
47
+ map((events) => ({
48
+ state: LoadingState.Done,
49
+ events
50
+ }))
51
+ );
52
+ }
53
+ const processor = __spreadValues(__spreadValues({}, standardAnnotationSupport), datasource.annotations);
54
+ const annotationWithDefaults = __spreadValues(__spreadValues({}, (_a = processor.getDefaultQuery) == null ? void 0 : _a.call(processor)), query);
55
+ const annotation = processor.prepareAnnotation(annotationWithDefaults);
56
+ if (!annotation) {
57
+ return of({
58
+ state: LoadingState.Done,
59
+ events: []
60
+ });
61
+ }
62
+ const processedQuery = processor.prepareQuery(annotation);
63
+ if (!processedQuery) {
64
+ return of({
65
+ state: LoadingState.Done,
66
+ events: []
67
+ });
68
+ }
69
+ const maxDataPoints = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
70
+ const interval = rangeUtil.calculateInterval(timeRange.state.value, maxDataPoints, datasource.interval);
71
+ const scopedVars = {
72
+ __interval: { text: interval.interval, value: interval.interval },
73
+ __interval_ms: { text: interval.intervalMs.toString(), value: interval.intervalMs },
74
+ __annotation: { text: annotation.name, value: annotation },
75
+ __sceneObject: wrapInSafeSerializableSceneObject(layer)
76
+ };
77
+ const queryRequest = __spreadValues(__spreadProps(__spreadValues({
78
+ startTime: Date.now(),
79
+ requestId: getNextRequestId(),
80
+ range: timeRange.state.value,
81
+ maxDataPoints,
82
+ scopedVars
83
+ }, interval), {
84
+ app: CoreApp.Dashboard,
85
+ timezone: timeRange.getTimeZone(),
86
+ targets: [
87
+ __spreadProps(__spreadValues({}, processedQuery), {
88
+ refId: "Anno"
89
+ })
90
+ ]
91
+ }), getEnrichedDataRequest(layer));
92
+ const runRequest = getRunRequest();
93
+ return runRequest(datasource, queryRequest).pipe(
94
+ mergeMap((panelData) => {
95
+ const data = (panelData == null ? void 0 : panelData.series.length) ? panelData.series : panelData.annotations;
96
+ if (!(data == null ? void 0 : data.length)) {
97
+ return of({
98
+ state: panelData.state,
99
+ events: []
100
+ });
101
+ }
102
+ data.forEach((frame) => {
103
+ var _a2;
104
+ if (!((_a2 = frame.meta) == null ? void 0 : _a2.dataTopic)) {
105
+ frame.meta = __spreadProps(__spreadValues({}, frame.meta || {}), { dataTopic: DataTopic.Annotations });
106
+ }
107
+ });
108
+ return processor.processEvents(annotation, data).pipe(
109
+ map((events) => {
110
+ return {
111
+ state: panelData.state,
112
+ events: events || []
113
+ };
114
+ })
115
+ );
116
+ })
117
+ );
118
+ }
119
+
120
+ export { executeAnnotationQuery };
121
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmRBbm5vdGF0aW9uUXVlcnkuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3F1ZXJ5aW5nL2xheWVycy9hbm5vdGF0aW9ucy9zdGFuZGFyZEFubm90YXRpb25RdWVyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHJhbmdlVXRpbCwgQ29yZUFwcCwgRGF0YVRvcGljIH0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5pbXBvcnQgeyBnZXRUZW1wbGF0ZVNydiwgZ2V0UnVuUmVxdWVzdCB9IGZyb20gJ0BncmFmYW5hL3J1bnRpbWUnO1xuaW1wb3J0IHsgc2hvdWxkVXNlTGVnYWN5UnVubmVyLCBzdGFuZGFyZEFubm90YXRpb25TdXBwb3J0IH0gZnJvbSAnLi9zdGFuZGFyZEFubm90YXRpb25zU3VwcG9ydC5qcyc7XG5pbXBvcnQgeyBMb2FkaW5nU3RhdGUgfSBmcm9tICdAZ3JhZmFuYS9zY2hlbWEnO1xuaW1wb3J0IHsgZ2V0RW5yaWNoZWREYXRhUmVxdWVzdCB9IGZyb20gJy4uLy4uL2dldEVucmljaGVkRGF0YVJlcXVlc3QuanMnO1xuaW1wb3J0IHsgd3JhcEluU2FmZVNlcmlhbGl6YWJsZVNjZW5lT2JqZWN0IH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvd3JhcEluU2FmZVNlcmlhbGl6YWJsZVNjZW5lT2JqZWN0LmpzJztcblxudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2RlZlByb3BzID0gT2JqZWN0LmRlZmluZVByb3BlcnRpZXM7XG52YXIgX19nZXRPd25Qcm9wRGVzY3MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycztcbnZhciBfX2dldE93blByb3BTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fcHJvcElzRW51bSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG52YXIgX19kZWZOb3JtYWxQcm9wID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA/IF9fZGVmUHJvcChvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19zcHJlYWRWYWx1ZXMgPSAoYSwgYikgPT4ge1xuICBmb3IgKHZhciBwcm9wIGluIGIgfHwgKGIgPSB7fSkpXG4gICAgaWYgKF9faGFzT3duUHJvcC5jYWxsKGIsIHByb3ApKVxuICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICBpZiAoX19nZXRPd25Qcm9wU3ltYm9scylcbiAgICBmb3IgKHZhciBwcm9wIG9mIF9fZ2V0T3duUHJvcFN5bWJvbHMoYikpIHtcbiAgICAgIGlmIChfX3Byb3BJc0VudW0uY2FsbChiLCBwcm9wKSlcbiAgICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICAgIH1cbiAgcmV0dXJuIGE7XG59O1xudmFyIF9fc3ByZWFkUHJvcHMgPSAoYSwgYikgPT4gX19kZWZQcm9wcyhhLCBfX2dldE93blByb3BEZXNjcyhiKSk7XG5sZXQgY291bnRlciA9IDEwMDtcbmZ1bmN0aW9uIGdldE5leHRSZXF1ZXN0SWQoKSB7XG4gIHJldHVybiBcIkFRXCIgKyBjb3VudGVyKys7XG59XG5mdW5jdGlvbiBleGVjdXRlQW5ub3RhdGlvblF1ZXJ5KGRhdGFzb3VyY2UsIHRpbWVSYW5nZSwgcXVlcnksIGxheWVyKSB7XG4gIHZhciBfYTtcbiAgaWYgKGRhdGFzb3VyY2UuYW5ub3RhdGlvblF1ZXJ5ICYmIHNob3VsZFVzZUxlZ2FjeVJ1bm5lcihkYXRhc291cmNlKSkge1xuICAgIGNvbnNvbGUud2FybihcIlVzaW5nIGRlcHJlY2F0ZWQgYW5ub3RhdGlvblF1ZXJ5IG1ldGhvZCwgcGxlYXNlIHVwZ3JhZGUgeW91ciBkYXRhc291cmNlXCIpO1xuICAgIHJldHVybiBmcm9tKFxuICAgICAgZGF0YXNvdXJjZS5hbm5vdGF0aW9uUXVlcnkoe1xuICAgICAgICByYW5nZTogdGltZVJhbmdlLnN0YXRlLnZhbHVlLFxuICAgICAgICByYW5nZVJhdzogdGltZVJhbmdlLnN0YXRlLnZhbHVlLnJhdyxcbiAgICAgICAgYW5ub3RhdGlvbjogcXVlcnksXG4gICAgICAgIGRhc2hib2FyZDoge1xuICAgICAgICAgIGdldFZhcmlhYmxlczogZ2V0VGVtcGxhdGVTcnYoKS5nZXRWYXJpYWJsZXNcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApLnBpcGUoXG4gICAgICBtYXAoKGV2ZW50cykgPT4gKHtcbiAgICAgICAgc3RhdGU6IExvYWRpbmdTdGF0ZS5Eb25lLFxuICAgICAgICBldmVudHNcbiAgICAgIH0pKVxuICAgICk7XG4gIH1cbiAgY29uc3QgcHJvY2Vzc29yID0gX19zcHJlYWRWYWx1ZXMoX19zcHJlYWRWYWx1ZXMoe30sIHN0YW5kYXJkQW5ub3RhdGlvblN1cHBvcnQpLCBkYXRhc291cmNlLmFubm90YXRpb25zKTtcbiAgY29uc3QgYW5ub3RhdGlvbldpdGhEZWZhdWx0cyA9IF9fc3ByZWFkVmFsdWVzKF9fc3ByZWFkVmFsdWVzKHt9LCAoX2EgPSBwcm9jZXNzb3IuZ2V0RGVmYXVsdFF1ZXJ5KSA9PSBudWxsID8gdm9pZCAwIDogX2EuY2FsbChwcm9jZXNzb3IpKSwgcXVlcnkpO1xuICBjb25zdCBhbm5vdGF0aW9uID0gcHJvY2Vzc29yLnByZXBhcmVBbm5vdGF0aW9uKGFubm90YXRpb25XaXRoRGVmYXVsdHMpO1xuICBpZiAoIWFubm90YXRpb24pIHtcbiAgICByZXR1cm4gb2Yoe1xuICAgICAgc3RhdGU6IExvYWRpbmdTdGF0ZS5Eb25lLFxuICAgICAgZXZlbnRzOiBbXVxuICAgIH0pO1xuICB9XG4gIGNvbnN0IHByb2Nlc3NlZFF1ZXJ5ID0gcHJvY2Vzc29yLnByZXBhcmVRdWVyeShhbm5vdGF0aW9uKTtcbiAgaWYgKCFwcm9jZXNzZWRRdWVyeSkge1xuICAgIHJldHVybiBvZih7XG4gICAgICBzdGF0ZTogTG9hZGluZ1N0YXRlLkRvbmUsXG4gICAgICBldmVudHM6IFtdXG4gICAgfSk7XG4gIH1cbiAgY29uc3QgbWF4RGF0YVBvaW50cyA9IHdpbmRvdy5pbm5lcldpZHRoIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO1xuICBjb25zdCBpbnRlcnZhbCA9IHJhbmdlVXRpbC5jYWxjdWxhdGVJbnRlcnZhbCh0aW1lUmFuZ2Uuc3RhdGUudmFsdWUsIG1heERhdGFQb2ludHMsIGRhdGFzb3VyY2UuaW50ZXJ2YWwpO1xuICBjb25zdCBzY29wZWRWYXJzID0ge1xuICAgIF9faW50ZXJ2YWw6IHsgdGV4dDogaW50ZXJ2YWwuaW50ZXJ2YWwsIHZhbHVlOiBpbnRlcnZhbC5pbnRlcnZhbCB9LFxuICAgIF9faW50ZXJ2YWxfbXM6IHsgdGV4dDogaW50ZXJ2YWwuaW50ZXJ2YWxNcy50b1N0cmluZygpLCB2YWx1ZTogaW50ZXJ2YWwuaW50ZXJ2YWxNcyB9LFxuICAgIF9fYW5ub3RhdGlvbjogeyB0ZXh0OiBhbm5vdGF0aW9uLm5hbWUsIHZhbHVlOiBhbm5vdGF0aW9uIH0sXG4gICAgX19zY2VuZU9iamVjdDogd3JhcEluU2FmZVNlcmlhbGl6YWJsZVNjZW5lT2JqZWN0KGxheWVyKVxuICB9O1xuICBjb25zdCBxdWVyeVJlcXVlc3QgPSBfX3NwcmVhZFZhbHVlcyhfX3NwcmVhZFByb3BzKF9fc3ByZWFkVmFsdWVzKHtcbiAgICBzdGFydFRpbWU6IERhdGUubm93KCksXG4gICAgcmVxdWVzdElkOiBnZXROZXh0UmVxdWVzdElkKCksXG4gICAgcmFuZ2U6IHRpbWVSYW5nZS5zdGF0ZS52YWx1ZSxcbiAgICBtYXhEYXRhUG9pbnRzLFxuICAgIHNjb3BlZFZhcnNcbiAgfSwgaW50ZXJ2YWwpLCB7XG4gICAgYXBwOiBDb3JlQXBwLkRhc2hib2FyZCxcbiAgICB0aW1lem9uZTogdGltZVJhbmdlLmdldFRpbWVab25lKCksXG4gICAgdGFyZ2V0czogW1xuICAgICAgX19zcHJlYWRQcm9wcyhfX3NwcmVhZFZhbHVlcyh7fSwgcHJvY2Vzc2VkUXVlcnkpLCB7XG4gICAgICAgIHJlZklkOiBcIkFubm9cIlxuICAgICAgfSlcbiAgICBdXG4gIH0pLCBnZXRFbnJpY2hlZERhdGFSZXF1ZXN0KGxheWVyKSk7XG4gIGNvbnN0IHJ1blJlcXVlc3QgPSBnZXRSdW5SZXF1ZXN0KCk7XG4gIHJldHVybiBydW5SZXF1ZXN0KGRhdGFzb3VyY2UsIHF1ZXJ5UmVxdWVzdCkucGlwZShcbiAgICBtZXJnZU1hcCgocGFuZWxEYXRhKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gKHBhbmVsRGF0YSA9PSBudWxsID8gdm9pZCAwIDogcGFuZWxEYXRhLnNlcmllcy5sZW5ndGgpID8gcGFuZWxEYXRhLnNlcmllcyA6IHBhbmVsRGF0YS5hbm5vdGF0aW9ucztcbiAgICAgIGlmICghKGRhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGRhdGEubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gb2Yoe1xuICAgICAgICAgIHN0YXRlOiBwYW5lbERhdGEuc3RhdGUsXG4gICAgICAgICAgZXZlbnRzOiBbXVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGRhdGEuZm9yRWFjaCgoZnJhbWUpID0+IHtcbiAgICAgICAgdmFyIF9hMjtcbiAgICAgICAgaWYgKCEoKF9hMiA9IGZyYW1lLm1ldGEpID09IG51bGwgPyB2b2lkIDAgOiBfYTIuZGF0YVRvcGljKSkge1xuICAgICAgICAgIGZyYW1lLm1ldGEgPSBfX3NwcmVhZFByb3BzKF9fc3ByZWFkVmFsdWVzKHt9LCBmcmFtZS5tZXRhIHx8IHt9KSwgeyBkYXRhVG9waWM6IERhdGFUb3BpYy5Bbm5vdGF0aW9ucyB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcHJvY2Vzc29yLnByb2Nlc3NFdmVudHMoYW5ub3RhdGlvbiwgZGF0YSkucGlwZShcbiAgICAgICAgbWFwKChldmVudHMpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RhdGU6IHBhbmVsRGF0YS5zdGF0ZSxcbiAgICAgICAgICAgIGV2ZW50czogZXZlbnRzIHx8IFtdXG4gICAgICAgICAgfTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IHsgZXhlY3V0ZUFubm90YXRpb25RdWVyeSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2ljM1JoYm1SaGNtUkJibTV2ZEdGMGFXOXVVWFZsY25rdWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUx5NHVMM055WXk5eGRXVnllV2x1Wnk5c1lYbGxjbk12WVc1dWIzUmhkR2x2Ym5NdmMzUmhibVJoY21SQmJtNXZkR0YwYVc5dVVYVmxjbmt1ZEhNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2dabkp2YlN3Z1QySnpaWEoyWVdKc1pTd2diMllnZlNCbWNtOXRJQ2R5ZUdwekp6dGNibWx0Y0c5eWRDQjdJRzFoY0N3Z2JXVnlaMlZOWVhBZ2ZTQm1jbTl0SUNkeWVHcHpMMjl3WlhKaGRHOXljeWM3WEc1Y2JtbHRjRzl5ZENCN1hHNGdJRUZ1Ym05MFlYUnBiMjVGZG1WdWRDeGNiaUFnUVc1dWIzUmhkR2x2YmxGMVpYSjVMRnh1SUNCRGIzSmxRWEJ3TEZ4dUlDQkVZWFJoVVhWbGNubFNaWEYxWlhOMExGeHVJQ0JFWVhSaFUyOTFjbU5sUVhCcExGeHVJQ0JFWVhSaFZHOXdhV01zWEc0Z0lGQmhibVZzVFc5a1pXd3NYRzRnSUhKaGJtZGxWWFJwYkN4Y2JpQWdVMk52Y0dWa1ZtRnljeXhjYm4wZ1puSnZiU0FuUUdkeVlXWmhibUV2WkdGMFlTYzdYRzVjYm1sdGNHOXlkQ0I3SUdkbGRGSjFibEpsY1hWbGMzUXNJR2RsZEZSbGJYQnNZWFJsVTNKMklIMGdabkp2YlNBblFHZHlZV1poYm1FdmNuVnVkR2x0WlNjN1hHNXBiWEJ2Y25RZ2V5QnphRzkxYkdSVmMyVk1aV2RoWTNsU2RXNXVaWElzSUhOMFlXNWtZWEprUVc1dWIzUmhkR2x2YmxOMWNIQnZjblFnZlNCbWNtOXRJQ2N1TDNOMFlXNWtZWEprUVc1dWIzUmhkR2x2Ym5OVGRYQndiM0owSnp0Y2JtbHRjRzl5ZENCN0lFUmhjMmhpYjJGeVpDd2dURzloWkdsdVoxTjBZWFJsSUgwZ1puSnZiU0FuUUdkeVlXWmhibUV2YzJOb1pXMWhKenRjYm1sdGNHOXlkQ0I3SUZOalpXNWxUMkpxWldOMExDQlRZMlZ1WlZScGJXVlNZVzVuWlV4cGEyVWdmU0JtY205dElDY3VMaTh1TGk4dUxpOWpiM0psTDNSNWNHVnpKenRjYm1sdGNHOXlkQ0I3SUdkbGRFVnVjbWxqYUdWa1JHRjBZVkpsY1hWbGMzUWdmU0JtY205dElDY3VMaTh1TGk5blpYUkZibkpwWTJobFpFUmhkR0ZTWlhGMVpYTjBKenRjYm1sdGNHOXlkQ0I3SUhkeVlYQkpibE5oWm1WVFpYSnBZV3hwZW1GaWJHVlRZMlZ1WlU5aWFtVmpkQ0I5SUdaeWIyMGdKeTR1THk0dUx5NHVMM1YwYVd4ekwzZHlZWEJKYmxOaFptVlRaWEpwWVd4cGVtRmliR1ZUWTJWdVpVOWlhbVZqZENjN1hHNWNibXhsZENCamIzVnVkR1Z5SUQwZ01UQXdPMXh1Wm5WdVkzUnBiMjRnWjJWMFRtVjRkRkpsY1hWbGMzUkpaQ2dwSUh0Y2JpQWdjbVYwZFhKdUlDZEJVU2NnS3lCamIzVnVkR1Z5S3lzN1hHNTlYRzVjYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnUVc1dWIzUmhkR2x2YmxGMVpYSjVUM0IwYVc5dWN5QjdYRzRnSUdSaGMyaGliMkZ5WkRvZ1JHRnphR0p2WVhKa08xeHVJQ0J3WVc1bGJEb2dVR0Z1Wld4TmIyUmxiRHRjYm4xY2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkJibTV2ZEdGMGFXOXVVWFZsY25sU1pYTjFiSFJ6SUh0Y2JpQWdjM1JoZEdVNklFeHZZV1JwYm1kVGRHRjBaVHRjYmlBZ1pYWmxiblJ6T2lCQmJtNXZkR0YwYVc5dVJYWmxiblJiWFR0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJR1Y0WldOMWRHVkJibTV2ZEdGMGFXOXVVWFZsY25rb1hHNGdJR1JoZEdGemIzVnlZMlU2SUVSaGRHRlRiM1Z5WTJWQmNHa3NYRzRnSUhScGJXVlNZVzVuWlRvZ1UyTmxibVZVYVcxbFVtRnVaMlZNYVd0bExGeHVJQ0J4ZFdWeWVUb2dRVzV1YjNSaGRHbHZibEYxWlhKNUxGeHVJQ0JzWVhsbGNqb2dVMk5sYm1WUFltcGxZM1JjYmlrNklFOWljMlZ5ZG1GaWJHVThRVzV1YjNSaGRHbHZibEYxWlhKNVVtVnpkV3gwY3o0Z2UxeHVJQ0F2THlCRGFHVmpheUJwWmlCM1pTQnphRzkxYkdRZ2RYTmxJSFJvWlNCdmJHUWdZVzV1YjNSaGRHbHZibEYxWlhKNUlHMWxkR2h2WkZ4dUlDQnBaaUFvWkdGMFlYTnZkWEpqWlM1aGJtNXZkR0YwYVc5dVVYVmxjbmtnSmlZZ2MyaHZkV3hrVlhObFRHVm5ZV041VW5WdWJtVnlLR1JoZEdGemIzVnlZMlVwS1NCN1hHNGdJQ0FnWTI5dWMyOXNaUzUzWVhKdUtDZFZjMmx1WnlCa1pYQnlaV05oZEdWa0lHRnVibTkwWVhScGIyNVJkV1Z5ZVNCdFpYUm9iMlFzSUhCc1pXRnpaU0IxY0dkeVlXUmxJSGx2ZFhJZ1pHRjBZWE52ZFhKalpTY3BPMXh1SUNBZ0lISmxkSFZ5YmlCbWNtOXRLRnh1SUNBZ0lDQWdaR0YwWVhOdmRYSmpaUzVoYm01dmRHRjBhVzl1VVhWbGNua29lMXh1SUNBZ0lDQWdJQ0J5WVc1blpUb2dkR2x0WlZKaGJtZGxMbk4wWVhSbExuWmhiSFZsTEZ4dUlDQWdJQ0FnSUNCeVlXNW5aVkpoZHpvZ2RHbHRaVkpoYm1kbExuTjBZWFJsTG5aaGJIVmxMbkpoZHl4Y2JpQWdJQ0FnSUNBZ1lXNXViM1JoZEdsdmJqb2djWFZsY25rc1hHNGdJQ0FnSUNBZ0lHUmhjMmhpYjJGeVpEb2dlMXh1SUNBZ0lDQWdJQ0FnSUdkbGRGWmhjbWxoWW14bGN6b2daMlYwVkdWdGNHeGhkR1ZUY25Zb0tTNW5aWFJXWVhKcFlXSnNaWE1zWEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCOUtWeHVJQ0FnSUNrdWNHbHdaU2hjYmlBZ0lDQWdJRzFoY0Nnb1pYWmxiblJ6S1NBOVBpQW9lMXh1SUNBZ0lDQWdJQ0J6ZEdGMFpUb2dURzloWkdsdVoxTjBZWFJsTGtSdmJtVXNYRzRnSUNBZ0lDQWdJR1YyWlc1MGN5eGNiaUFnSUNBZ0lIMHBLVnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0F2THlCVGRHRnVaR0Z5WkNCQlVFa2dabTl5SUdGdWJtOTBZWFJwYjI1eklITjFjSEJ2Y25RdUlGTndjbVZoWkNCcGJpQmtZWFJoYzI5MWNtTmxJR0Z1Ym05MFlYUnBiMjV6SUhOMWNIQnZjblFnYjNabGNuSnBaR1Z6WEc0Z0lHTnZibk4wSUhCeWIyTmxjM052Y2lBOUlIdGNiaUFnSUNBdUxpNXpkR0Z1WkdGeVpFRnVibTkwWVhScGIyNVRkWEJ3YjNKMExGeHVJQ0FnSUM0dUxtUmhkR0Z6YjNWeVkyVXVZVzV1YjNSaGRHbHZibk1zWEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnWVc1dWIzUmhkR2x2YmxkcGRHaEVaV1poZFd4MGN5QTlJSHRjYmlBZ0lDQXZMeUJFWldaaGRXeDBJSEYxWlhKNUlIQnliM1pwWkdWa0lHSjVJR0VnWkdGMFlTQnpiM1Z5WTJWY2JpQWdJQ0F1TGk1d2NtOWpaWE56YjNJdVoyVjBSR1ZtWVhWc2RGRjFaWEo1UHk0b0tTeGNiaUFnSUNBdUxpNXhkV1Z5ZVN4Y2JpQWdmVHRjYmx4dUlDQXZMeUJFWVhSaElITnZkWEpqWlNCeGRXVnllU0J0YVdkeVlYUnBiMjV6WEc0Z0lHTnZibk4wSUdGdWJtOTBZWFJwYjI0Z1BTQndjbTlqWlhOemIzSXVjSEpsY0dGeVpVRnVibTkwWVhScGIyNGhLR0Z1Ym05MFlYUnBiMjVYYVhSb1JHVm1ZWFZzZEhNcE8xeHVJQ0JwWmlBb0lXRnVibTkwWVhScGIyNHBJSHRjYmlBZ0lDQnlaWFIxY200Z2IyWW9lMXh1SUNBZ0lDQWdjM1JoZEdVNklFeHZZV1JwYm1kVGRHRjBaUzVFYjI1bExGeHVJQ0FnSUNBZ1pYWmxiblJ6T2lCYlhTeGNiaUFnSUNCOUtUdGNiaUFnZlZ4dVhHNGdJR052Ym5OMElIQnliMk5sYzNObFpGRjFaWEo1SUQwZ2NISnZZMlZ6YzI5eUxuQnlaWEJoY21WUmRXVnllU0VvWVc1dWIzUmhkR2x2YmlrN1hHNGdJR2xtSUNnaGNISnZZMlZ6YzJWa1VYVmxjbmtwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdiMllvZTF4dUlDQWdJQ0FnYzNSaGRHVTZJRXh2WVdScGJtZFRkR0YwWlM1RWIyNWxMRnh1SUNBZ0lDQWdaWFpsYm5Sek9pQmJYU3hjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVYRzRnSUM4dklFNXZJRzF2Y21VZ2NHOXBiblJ6SUhSb1lXNGdjR2w0Wld4elhHNGdJR052Ym5OMElHMWhlRVJoZEdGUWIybHVkSE1nUFNCM2FXNWtiM2N1YVc1dVpYSlhhV1IwYUNCOGZDQmtiMk4xYldWdWRDNWtiMk4xYldWdWRFVnNaVzFsYm5RdVkyeHBaVzUwVjJsa2RHZ2dmSHdnWkc5amRXMWxiblF1WW05a2VTNWpiR2xsYm5SWGFXUjBhRHRjYmx4dUlDQXZMeUJCWkdRZ2FXNTBaWEoyWVd3Z2RHOGdZVzV1YjNSaGRHbHZiaUJ4ZFdWeWFXVnpYRzRnSUdOdmJuTjBJR2x1ZEdWeWRtRnNJRDBnY21GdVoyVlZkR2xzTG1OaGJHTjFiR0YwWlVsdWRHVnlkbUZzS0hScGJXVlNZVzVuWlM1emRHRjBaUzUyWVd4MVpTd2diV0Y0UkdGMFlWQnZhVzUwY3l3Z1pHRjBZWE52ZFhKalpTNXBiblJsY25aaGJDazdYRzVjYmlBZ1kyOXVjM1FnYzJOdmNHVmtWbUZ5Y3pvZ1UyTnZjR1ZrVm1GeWN5QTlJSHRjYmlBZ0lDQmZYMmx1ZEdWeWRtRnNPaUI3SUhSbGVIUTZJR2x1ZEdWeWRtRnNMbWx1ZEdWeWRtRnNMQ0IyWVd4MVpUb2dhVzUwWlhKMllXd3VhVzUwWlhKMllXd2dmU3hjYmlBZ0lDQmZYMmx1ZEdWeWRtRnNYMjF6T2lCN0lIUmxlSFE2SUdsdWRHVnlkbUZzTG1sdWRHVnlkbUZzVFhNdWRHOVRkSEpwYm1jb0tTd2dkbUZzZFdVNklHbHVkR1Z5ZG1Gc0xtbHVkR1Z5ZG1Gc1RYTWdmU3hjYmlBZ0lDQmZYMkZ1Ym05MFlYUnBiMjQ2SUhzZ2RHVjRkRG9nWVc1dWIzUmhkR2x2Ymk1dVlXMWxMQ0IyWVd4MVpUb2dZVzV1YjNSaGRHbHZiaUI5TEZ4dUlDQWdJRjlmYzJObGJtVlBZbXBsWTNRNklIZHlZWEJKYmxOaFptVlRaWEpwWVd4cGVtRmliR1ZUWTJWdVpVOWlhbVZqZENoc1lYbGxjaWtzWEc0Z0lIMDdYRzVjYmlBZ1kyOXVjM1FnY1hWbGNubFNaWEYxWlhOME9pQkVZWFJoVVhWbGNubFNaWEYxWlhOMElEMGdlMXh1SUNBZ0lITjBZWEowVkdsdFpUb2dSR0YwWlM1dWIzY29LU3hjYmlBZ0lDQnlaWEYxWlhOMFNXUTZJR2RsZEU1bGVIUlNaWEYxWlhOMFNXUW9LU3hjYmlBZ0lDQnlZVzVuWlRvZ2RHbHRaVkpoYm1kbExuTjBZWFJsTG5aaGJIVmxMRnh1SUNBZ0lHMWhlRVJoZEdGUWIybHVkSE1zWEc0Z0lDQWdjMk52Y0dWa1ZtRnljeXhjYmlBZ0lDQXVMaTVwYm5SbGNuWmhiQ3hjYmlBZ0lDQmhjSEE2SUVOdmNtVkJjSEF1UkdGemFHSnZZWEprTEZ4dUlDQWdJSFJwYldWNmIyNWxPaUIwYVcxbFVtRnVaMlV1WjJWMFZHbHRaVnB2Ym1Vb0tTeGNiaUFnSUNCMFlYSm5aWFJ6T2lCYlhHNGdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDNHVMbkJ5YjJObGMzTmxaRkYxWlhKNUxGeHVJQ0FnSUNBZ0lDQnlaV1pKWkRvZ0owRnVibThuTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0JkTEZ4dUlDQWdJQzR1TG1kbGRFVnVjbWxqYUdWa1JHRjBZVkpsY1hWbGMzUW9iR0Y1WlhJcExGeHVJQ0I5TzF4dVhHNGdJR052Ym5OMElISjFibEpsY1hWbGMzUWdQU0JuWlhSU2RXNVNaWEYxWlhOMEtDazdYRzVjYmlBZ2NtVjBkWEp1SUhKMWJsSmxjWFZsYzNRb1pHRjBZWE52ZFhKalpTd2djWFZsY25sU1pYRjFaWE4wS1M1d2FYQmxLRnh1SUNBZ0lHMWxjbWRsVFdGd0tDaHdZVzVsYkVSaGRHRXBJRDArSUh0Y2JpQWdJQ0FnSUM4dklGTnZiV1VnWVc1dWIzUmhkR2x2Ym5NZ2MyVjBJSFJvWlNCMGIzQnBZeUJoYkhKbFlXUjVYRzRnSUNBZ0lDQmpiMjV6ZENCa1lYUmhJRDBnY0dGdVpXeEVZWFJoUHk1elpYSnBaWE11YkdWdVozUm9JRDhnY0dGdVpXeEVZWFJoTG5ObGNtbGxjeUE2SUhCaGJtVnNSR0YwWVM1aGJtNXZkR0YwYVc5dWN6dGNibHh1SUNBZ0lDQWdhV1lnS0NGa1lYUmhQeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRzltS0h0Y2JpQWdJQ0FnSUNBZ0lDQnpkR0YwWlRvZ2NHRnVaV3hFWVhSaExuTjBZWFJsTEZ4dUlDQWdJQ0FnSUNBZ0lHVjJaVzUwY3pvZ1cxMHNYRzRnSUNBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBdkx5QkJaR1FnWkdGMFlTQjBiM0JwWXlCMGJ5QmxZV05vSUdaeVlXMWxYRzRnSUNBZ0lDQmtZWFJoTG1admNrVmhZMmdvS0daeVlXMWxLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDOHZJRWxtSUdSaGRHRWdkRzl3YVdNZ2FHRnpJRzV2ZENCaVpXVnVJSEJ5YjNacFpHVmtJR0o1SUhSb1pTQmtZWFJoSUhOdmRYSmpaU3dnYldGclpTQnpkWEpsSUdsMEozTWdjMlYwSUdOdmNuSmxZM1JzZVZ4dUlDQWdJQ0FnSUNCcFppQW9JV1p5WVcxbExtMWxkR0UvTG1SaGRHRlViM0JwWXlrZ2UxeHVJQ0FnSUNBZ0lDQWdJR1p5WVcxbExtMWxkR0VnUFNCN0lDNHVMaWhtY21GdFpTNXRaWFJoSUh4OElIdDlLU3dnWkdGMFlWUnZjR2xqT2lCRVlYUmhWRzl3YVdNdVFXNXViM1JoZEdsdmJuTWdmVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNrN1hHNWNiaUFnSUNBZ0lISmxkSFZ5YmlCd2NtOWpaWE56YjNJdWNISnZZMlZ6YzBWMlpXNTBjeUVvWVc1dWIzUmhkR2x2Yml3Z1pHRjBZU2t1Y0dsd1pTaGNiaUFnSUNBZ0lDQWdiV0Z3S0NobGRtVnVkSE1wSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2MzUmhkR1U2SUhCaGJtVnNSR0YwWVM1emRHRjBaU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHVjJaVzUwY3pvZ1pYWmxiblJ6SUh4OElGdGRMRnh1SUNBZ0lDQWdJQ0FnSUgwN1hHNGdJQ0FnSUNBZ0lIMHBYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMHBYRzRnSUNrN1hHNTlYRzRpWFN3aWJtRnRaWE1pT2xzaVgyRWlYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN1FVRnpRa0VzU1VGQlNTeFBRVUZWTEVkQlFVRXNSMEZCUVN4RFFVRkJPMEZCUTJRc1UwRkJVeXhuUWtGQmJVSXNSMEZCUVR0QlFVTXhRaXhGUVVGQkxFOUJRVThzU1VGQlR5eEhRVUZCTEU5QlFVRXNSVUZCUVN4RFFVRkJPMEZCUTJoQ0xFTkJRVUU3UVVGWlR5eFRRVUZUTEhOQ1FVTmtMRU5CUVVFc1ZVRkJRU3hGUVVOQkxGTkJRMEVzUlVGQlFTeExRVUZCTEVWQlEwRXNTMEZEYjBNc1JVRkJRVHRCUVRGRGRFTXNSVUZCUVN4SlFVRkJMRVZCUVVFc1EwRkJRVHRCUVRSRFJTeEZRVUZCTEVsQlFVa3NWVUZCVnl4RFFVRkJMR1ZCUVVFc1NVRkJiVUlzY1VKQlFYTkNMRU5CUVVFc1ZVRkJWU3hEUVVGSExFVkJRVUU3UVVGRGJrVXNTVUZCUVN4UFFVRkJMRU5CUVZFc1MwRkJTeXg1UlVGQmVVVXNRMEZCUVN4RFFVRkJPMEZCUTNSR0xFbEJRVThzVDBGQlFTeEpRVUZCTzBGQlFVRXNUVUZEVEN4WFFVRlhMR1ZCUVdkQ0xFTkJRVUU3UVVGQlFTeFJRVU42UWl4TFFVRkJMRVZCUVU4c1ZVRkJWU3hMUVVGTkxFTkJRVUVzUzBGQlFUdEJRVUZCTEZGQlEzWkNMRkZCUVVFc1JVRkJWU3hUUVVGVkxFTkJRVUVzUzBGQlFTeERRVUZOTEV0QlFVMHNRMEZCUVN4SFFVRkJPMEZCUVVFc1VVRkRhRU1zVlVGQldTeEZRVUZCTEV0QlFVRTdRVUZCUVN4UlFVTmFMRk5CUVZjc1JVRkJRVHRCUVVGQkxGVkJRMVFzV1VGQlFTeEZRVUZqTEdkQ1FVRnBRaXhEUVVGQkxGbEJRVUU3UVVGQlFTeFRRVU5xUXp0QlFVRkJMRTlCUTBRc1EwRkJRVHRCUVVGQkxFdEJRMFFzUTBGQlFTeEpRVUZCTzBGQlFVRXNUVUZEUVN4SFFVRkJMRU5CUVVrc1EwRkJReXhOUVVGWkxFMUJRVUU3UVVGQlFTeFJRVU5tTEU5QlFVOHNXVUZCWVN4RFFVRkJMRWxCUVVFN1FVRkJRU3hSUVVOd1FpeE5RVUZCTzBGQlFVRXNUMEZEUVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOS0xFTkJRVUU3UVVGQlFTeEhRVU5HTzBGQlIwRXNSVUZCVFN4TlFVRkJMRk5CUVVFc1IwRkJXU3hqUVVOaUxFTkJRVUVzWTBGQlFTeERRVUZCTEVWQlFVRXNSVUZCUVN4NVFrRkJRU3hEUVVGQkxFVkJRMEVzVlVGQlZ5eERRVUZCTEZkQlFVRXNRMEZCUVN4RFFVRkJPMEZCUjJoQ0xFVkJRVUVzVFVGQlRTeHpRa0ZCZVVJc1IwRkJRU3hqUVVGQkxFTkJRVUVzWTBGQlFTeERRVUZCTEVWQlFVRXNSVUZCUVN4RFFVVXhRaXhGUVVGVkxFZEJRVUVzVTBGQlFTeERRVUZCTEdWQlFVRXNTMEZCVml4SlFVTkJMRWRCUVVFc1MwRkJRU3hEUVVGQkxFZEJRVUVzUlVGQlFTeERRVUZCTEVsQlFVRXNRMEZCUVN4VFFVRkJMRU5CUVVFc1EwRkJRU3hGUVVGQkxFdEJRVUVzUTBGQlFTeERRVUZCTzBGQlNVd3NSVUZCVFN4TlFVRkJMRlZCUVVFc1IwRkJZU3hUUVVGVkxFTkJRVUVzYVVKQlFVRXNRMEZCYlVJc2MwSkJRWE5DTEVOQlFVRXNRMEZCUVR0QlFVTjBSU3hGUVVGQkxFbEJRVWtzUTBGQlF5eFZRVUZaTEVWQlFVRTdRVUZEWml4SlFVRkJMRTlCUVU4c1JVRkJSeXhEUVVGQk8wRkJRVUVzVFVGRFVpeFBRVUZQTEZsQlFXRXNRMEZCUVN4SlFVRkJPMEZCUVVFc1RVRkRjRUlzVVVGQlVTeEZRVUZETzBGQlFVRXNTMEZEVml4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOSU8wRkJSVUVzUlVGQlRTeE5RVUZCTEdOQlFVRXNSMEZCYVVJc1UwRkJWU3hEUVVGQkxGbEJRVUVzUTBGQll5eFZRVUZWTEVOQlFVRXNRMEZCUVR0QlFVTjZSQ3hGUVVGQkxFbEJRVWtzUTBGQlF5eGpRVUZuUWl4RlFVRkJPMEZCUTI1Q0xFbEJRVUVzVDBGQlR5eEZRVUZITEVOQlFVRTdRVUZCUVN4TlFVTlNMRTlCUVU4c1dVRkJZU3hEUVVGQkxFbEJRVUU3UVVGQlFTeE5RVU53UWl4UlFVRlJMRVZCUVVNN1FVRkJRU3hMUVVOV0xFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEwZzdRVUZIUVN4RlFVRkJMRTFCUVUwc1owSkJRV2RDTEUxQlFVOHNRMEZCUVN4VlFVRkJMRWxCUVdNc1UwRkJVeXhsUVVGblFpeERRVUZCTEZkQlFVRXNTVUZCWlN4VFFVRlRMRWxCUVVzc1EwRkJRU3hYUVVGQkxFTkJRVUU3UVVGSGFrY3NSVUZCVFN4TlFVRkJMRkZCUVVFc1IwRkJWeXhWUVVGVkxHbENRVUZyUWl4RFFVRkJMRk5CUVVFc1EwRkJWU3hOUVVGTkxFdEJRVThzUlVGQlFTeGhRVUZCTEVWQlFXVXNWMEZCVnl4UlFVRlJMRU5CUVVFc1EwRkJRVHRCUVVWMFJ5eEZRVUZCTEUxQlFVMHNWVUZCZVVJc1IwRkJRVHRCUVVGQkxFbEJRemRDTEZsQlFWa3NSVUZCUlN4SlFVRkJMRVZCUVUwc1UwRkJVeXhSUVVGVkxFVkJRVUVzUzBGQlFTeEZRVUZQTEZOQlFWTXNVVUZCVXl4RlFVRkJPMEZCUVVFc1NVRkRhRVVzWVVGQlFTeEZRVUZsTEVWQlFVVXNTVUZCVFN4RlFVRkJMRkZCUVVFc1EwRkJVeXhYUVVGWExGRkJRVk1zUlVGQlFTeEZRVUZITEV0QlFVOHNSVUZCUVN4UlFVRkJMRU5CUVZNc1ZVRkJWeXhGUVVGQk8wRkJRVUVzU1VGRGJFWXNZMEZCWXl4RlFVRkZMRWxCUVVFc1JVRkJUU3hWUVVGWExFTkJRVUVzU1VGQlFTeEZRVUZOTEU5QlFVOHNWVUZCVnl4RlFVRkJPMEZCUVVFc1NVRkRla1FzWVVGQlFTeEZRVUZsTEd0RFFVRnJReXhMUVVGTExFTkJRVUU3UVVGQlFTeEhRVU40UkN4RFFVRkJPMEZCUlVFc1JVRkJRU3hOUVVGTkxGbEJRV2xETEVkQlFVRXNZMEZCUVN4RFFVRkJMR0ZCUVVFc1EwRkJRU3hqUVVGQkxFTkJRVUU3UVVGQlFTeEpRVU55UXl4VFFVRkJMRVZCUVZjc1MwRkJTeXhIUVVGSkxFVkJRVUU3UVVGQlFTeEpRVU53UWl4WFFVRlhMR2RDUVVGcFFpeEZRVUZCTzBGQlFVRXNTVUZETlVJc1MwRkJRU3hGUVVGUExGVkJRVlVzUzBGQlRTeERRVUZCTEV0QlFVRTdRVUZCUVN4SlFVTjJRaXhoUVVGQk8wRkJRVUVzU1VGRFFTeFZRVUZCTzBGQlFVRXNSMEZCUVN4RlFVTkhMRkZCVG10RExFTkJRVUVzUlVGQlFUdEJRVUZCTEVsQlQzSkRMRXRCUVVzc1QwRkJVU3hEUVVGQkxGTkJRVUU3UVVGQlFTeEpRVU5pTEZGQlFVRXNSVUZCVlN4VlFVRlZMRmRCUVZrc1JVRkJRVHRCUVVGQkxFbEJRMmhETEU5QlFWTXNSVUZCUVR0QlFVRkJMRTFCUTFBc2FVTkJRMHNzWTBGRVRDeERRVUZCTEVWQlFVRTdRVUZCUVN4UlFVVkZMRXRCUVU4c1JVRkJRU3hOUVVGQk8wRkJRVUVzVDBGRFZDeERRVUZCTzBGQlFVRXNTMEZEUmp0QlFVRkJMRWRCUVVFc1EwRkJRU3hGUVVOSExIVkNRVUYxUWl4TFFVRkxMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJSMnBETEVWQlFVRXNUVUZCVFN4aFFVRmhMR0ZCUVdNc1JVRkJRU3hEUVVGQk8wRkJSV3BETEVWQlFVOHNUMEZCUVN4VlFVRkJMRU5CUVZjc1ZVRkJXU3hGUVVGQkxGbEJRVmtzUTBGQlJTeERRVUZCTEVsQlFVRTdRVUZCUVN4SlFVTXhReXhSUVVGQkxFTkJRVk1zUTBGQlF5eFRRVUZqTEV0QlFVRTdRVUZGZEVJc1RVRkJRU3hOUVVGTkxGRkJRVThzVTBGQlZ5eEpRVUZCTEVsQlFVRXNSMEZCUVN4TFFVRkJMRU5CUVVFc1IwRkJRU3hUUVVGQkxFTkJRVUVzVFVGQlFTeERRVUZQTEUxQlFWTXNTVUZCUVN4VFFVRkJMRU5CUVZVc1UwRkJVeXhUUVVGVkxFTkJRVUVzVjBGQlFTeERRVUZCTzBGQlJYSkZMRTFCUVVrc1NVRkJRU3hGUVVGRExEWkNRVUZOTEUxQlFWRXNRMEZCUVN4RlFVRkJPMEZCUTJwQ0xGRkJRVUVzVDBGQlR5eEZRVUZITEVOQlFVRTdRVUZCUVN4VlFVTlNMRTlCUVU4c1UwRkJWU3hEUVVGQkxFdEJRVUU3UVVGQlFTeFZRVU5xUWl4UlFVRlJMRVZCUVVNN1FVRkJRU3hUUVVOV0xFTkJRVUVzUTBGQlFUdEJRVUZCTEU5QlEwZzdRVUZIUVN4TlFVRkxMRWxCUVVFc1EwRkJRU3hQUVVGQkxFTkJRVkVzUTBGQlF5eExRVUZWTEV0QlFVRTdRVUV4U1RsQ0xGRkJRVUZCTEVsQlFVRkJMRWRCUVVGQkxFTkJRVUZCTzBGQk5FbFJMRkZCUVVFc1NVRkJTU3hIUVVGRFFTeEhRVUZCTEVkQlFVRXNTMEZCUVN4RFFVRk5MRWxCUVU0c1MwRkJRU3hKUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRkJMRWxCUVZrc1UwRkJWeXhEUVVGQkxFVkJRVUU3UVVGRE1VSXNWVUZCVFN4TFFVRkJMRU5CUVVFc1NVRkJRU3hIUVVGUExHbERRVUZOTEV0QlFVMHNRMEZCUVN4SlFVRkJMRWxCUVZFc1JVRkJjRUlzUTBGQlFTeEZRVUZCTEVWQlFYbENMRk5CUVZjc1JVRkJRU3hUUVVGQkxFTkJRVlVzVjBGQldTeEZRVUZCTEVOQlFVRXNRMEZCUVR0QlFVRkJMRk5CUTNwRk8wRkJRVUVzVDBGRFJDeERRVUZCTEVOQlFVRTdRVUZGUkN4TlFVRkJMRTlCUVU4c1UwRkJWU3hEUVVGQkxHRkJRVUVzUTBGQlpTeFZRVUZaTEVWQlFVRXNTVUZCU1N4RFFVRkZMRU5CUVVFc1NVRkJRVHRCUVVGQkxGRkJRMmhFTEVkQlFVRXNRMEZCU1N4RFFVRkRMRTFCUVZjc1MwRkJRVHRCUVVOa0xGVkJRVThzVDBGQlFUdEJRVUZCTEZsQlEwd3NUMEZCVHl4VFFVRlZMRU5CUVVFc1MwRkJRVHRCUVVGQkxGbEJRMnBDTEUxQlFVRXNSVUZCVVN4VlFVRlZMRVZCUVVNN1FVRkJRU3hYUVVOeVFpeERRVUZCTzBGQlFVRXNVMEZEUkN4RFFVRkJPMEZCUVVFc1QwRkRTQ3hEUVVGQk8wRkJRVUVzUzBGRFJDeERRVUZCTzBGQlFVRXNSMEZEU0N4RFFVRkJPMEZCUTBZN096czdJbjA9XG4iXSwibmFtZXMiOlsiX2EiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkEsSUFBSSxPQUFVLEdBQUEsR0FBQSxDQUFBO0FBQ2QsU0FBUyxnQkFBbUIsR0FBQTtBQUMxQixFQUFBLE9BQU8sSUFBTyxHQUFBLE9BQUEsRUFBQSxDQUFBO0FBQ2hCLENBQUE7QUFZTyxTQUFTLHNCQUNkLENBQUEsVUFBQSxFQUNBLFNBQ0EsRUFBQSxLQUFBLEVBQ0EsS0FDb0MsRUFBQTtBQTFDdEMsRUFBQSxJQUFBLEVBQUEsQ0FBQTtBQTRDRSxFQUFBLElBQUksVUFBVyxDQUFBLGVBQUEsSUFBbUIscUJBQXNCLENBQUEsVUFBVSxDQUFHLEVBQUE7QUFDbkUsSUFBQSxPQUFBLENBQVEsS0FBSyx5RUFBeUUsQ0FBQSxDQUFBO0FBQy9FLElBQUEsT0FBQSxJQUFBO0FBQ0wsTUFBQSxVQUFBLENBQVcsZUFBZ0IsQ0FBQTtBQUN6QixRQUFBLEtBQUEsRUFBTyxVQUFVLEtBQU0sQ0FBQSxLQUFBO1FBQ3ZCLFFBQVUsRUFBQSxTQUFBLENBQVUsTUFBTSxLQUFNLENBQUEsR0FBQTtRQUNoQyxVQUFZLEVBQUEsS0FBQTtRQUNaLFNBQVcsRUFBQTtBQUNULFVBQUEsWUFBQSxFQUFjLGdC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
@@ -0,0 +1,211 @@
1
+ import { isString } from 'lodash';
2
+ import { of } from 'rxjs';
3
+ import { map, mergeMap } from 'rxjs/operators';
4
+ import { FieldType, getFieldDisplayName, AnnotationEventFieldSource, standardTransformers } from '@grafana/data';
5
+ import { config } from '@grafana/runtime';
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __defProps = Object.defineProperties;
9
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
10
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
13
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
14
+ var __spreadValues = (a, b) => {
15
+ for (var prop in b || (b = {}))
16
+ if (__hasOwnProp.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ if (__getOwnPropSymbols)
19
+ for (var prop of __getOwnPropSymbols(b)) {
20
+ if (__propIsEnum.call(b, prop))
21
+ __defNormalProp(a, prop, b[prop]);
22
+ }
23
+ return a;
24
+ };
25
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
+ var __objRest = (source, exclude) => {
27
+ var target = {};
28
+ for (var prop in source)
29
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
30
+ target[prop] = source[prop];
31
+ if (source != null && __getOwnPropSymbols)
32
+ for (var prop of __getOwnPropSymbols(source)) {
33
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
34
+ target[prop] = source[prop];
35
+ }
36
+ return target;
37
+ };
38
+ const standardAnnotationSupport = {
39
+ prepareAnnotation: (json) => {
40
+ if (isString(json == null ? void 0 : json.query)) {
41
+ const _a = json, { query } = _a, rest = __objRest(_a, ["query"]);
42
+ return __spreadProps(__spreadValues({}, rest), {
43
+ target: {
44
+ refId: "annotation_query",
45
+ query
46
+ },
47
+ mappings: {}
48
+ });
49
+ }
50
+ return json;
51
+ },
52
+ prepareQuery: (anno) => anno.target,
53
+ processEvents: (anno, data) => {
54
+ return getAnnotationsFromData(data, anno.mappings);
55
+ }
56
+ };
57
+ function singleFrameFromPanelData() {
58
+ return (source) => source.pipe(
59
+ mergeMap((data) => {
60
+ if (!(data == null ? void 0 : data.length)) {
61
+ return of(void 0);
62
+ }
63
+ if (data.length === 1) {
64
+ return of(data[0]);
65
+ }
66
+ const ctx = {
67
+ interpolate: (v) => v
68
+ };
69
+ return of(data).pipe(
70
+ standardTransformers.mergeTransformer.operator({}, ctx),
71
+ map((d) => d[0])
72
+ );
73
+ })
74
+ );
75
+ }
76
+ const annotationEventNames = [
77
+ {
78
+ key: "time",
79
+ field: (frame) => frame.fields.find((f) => f.type === FieldType.time),
80
+ placeholder: "time, or the first time field"
81
+ },
82
+ { key: "timeEnd", help: "When this field is defined, the annotation will be treated as a range" },
83
+ {
84
+ key: "title"
85
+ },
86
+ {
87
+ key: "text",
88
+ field: (frame) => frame.fields.find((f) => f.type === FieldType.string),
89
+ placeholder: "text, or the first text field"
90
+ },
91
+ { key: "tags", split: ",", help: "The results will be split on comma (,)" },
92
+ {
93
+ key: "id"
94
+ }
95
+ ];
96
+ const publicDashboardEventNames = [
97
+ {
98
+ key: "color"
99
+ },
100
+ {
101
+ key: "isRegion"
102
+ },
103
+ {
104
+ key: "source"
105
+ }
106
+ ];
107
+ const alertEventAndAnnotationFields = [
108
+ ...config.publicDashboardAccessToken ? publicDashboardEventNames : [],
109
+ ...annotationEventNames,
110
+ { key: "userId" },
111
+ { key: "login" },
112
+ { key: "email" },
113
+ { key: "prevState" },
114
+ { key: "newState" },
115
+ { key: "data" },
116
+ { key: "panelId" },
117
+ { key: "alertId" },
118
+ { key: "dashboardId" },
119
+ { key: "dashboardUID" }
120
+ ];
121
+ function getAnnotationsFromData(data, options) {
122
+ return of(data).pipe(
123
+ singleFrameFromPanelData(),
124
+ map((frame) => {
125
+ if (!(frame == null ? void 0 : frame.length)) {
126
+ return [];
127
+ }
128
+ let hasTime = false;
129
+ let hasText = false;
130
+ const byName = {};
131
+ for (const f of frame.fields) {
132
+ const name = getFieldDisplayName(f, frame);
133
+ byName[name.toLowerCase()] = f;
134
+ }
135
+ if (!options) {
136
+ options = {};
137
+ }
138
+ const fields = [];
139
+ for (const evts of alertEventAndAnnotationFields) {
140
+ const opt = options[evts.key] || {};
141
+ if (opt.source === AnnotationEventFieldSource.Skip) {
142
+ continue;
143
+ }
144
+ const setter = { key: evts.key, split: evts.split };
145
+ if (opt.source === AnnotationEventFieldSource.Text) {
146
+ setter.text = opt.value;
147
+ } else {
148
+ const lower = (opt.value || evts.key).toLowerCase();
149
+ setter.field = byName[lower];
150
+ if (!setter.field && evts.field) {
151
+ setter.field = evts.field(frame);
152
+ }
153
+ }
154
+ if (setter.field || setter.text) {
155
+ fields.push(setter);
156
+ if (setter.key === "time") {
157
+ hasTime = true;
158
+ } else if (setter.key === "text") {
159
+ hasText = true;
160
+ }
161
+ }
162
+ }
163
+ if (!hasTime || !hasText) {
164
+ console.error("Cannot process annotation fields. No time or text present.");
165
+ return [];
166
+ }
167
+ const events = [];
168
+ for (let i = 0; i < frame.length; i++) {
169
+ const anno = {
170
+ type: "default",
171
+ color: "red"
172
+ };
173
+ for (const f of fields) {
174
+ let v = void 0;
175
+ if (f.text) {
176
+ v = f.text;
177
+ } else if (f.field) {
178
+ v = f.field.values.get(i);
179
+ if (v !== void 0 && f.regex) {
180
+ const match = f.regex.exec(v);
181
+ if (match) {
182
+ v = match[1] ? match[1] : match[0];
183
+ }
184
+ }
185
+ }
186
+ if (v !== null && v !== void 0) {
187
+ if (f.split && typeof v === "string") {
188
+ v = v.split(",");
189
+ }
190
+ anno[f.key] = v;
191
+ }
192
+ }
193
+ events.push(anno);
194
+ }
195
+ return events;
196
+ })
197
+ );
198
+ }
199
+ const legacyRunner = [
200
+ "prometheus",
201
+ "loki",
202
+ "elasticsearch",
203
+ "grafana-opensearch-datasource"
204
+ ];
205
+ function shouldUseLegacyRunner(datasource) {
206
+ const { type } = datasource;
207
+ return !datasource.annotations || legacyRunner.includes(type);
208
+ }
209
+
210
+ export { annotationEventNames, getAnnotationsFromData, publicDashboardEventNames, shouldUseLegacyRunner, singleFrameFromPanelData, standardAnnotationSupport };
211
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmRBbm5vdGF0aW9uc1N1cHBvcnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3F1ZXJ5aW5nL2xheWVycy9hbm5vdGF0aW9ucy9zdGFuZGFyZEFubm90YXRpb25zU3VwcG9ydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgZ2V0RmllbGREaXNwbGF5TmFtZSwgQW5ub3RhdGlvbkV2ZW50RmllbGRTb3VyY2UsIHN0YW5kYXJkVHJhbnNmb3JtZXJzIH0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICdAZ3JhZmFuYS9ydW50aW1lJztcblxudmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBfX2RlZlByb3BzID0gT2JqZWN0LmRlZmluZVByb3BlcnRpZXM7XG52YXIgX19nZXRPd25Qcm9wRGVzY3MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycztcbnZhciBfX2dldE93blByb3BTeW1ib2xzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbnZhciBfX2hhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xudmFyIF9fcHJvcElzRW51bSA9IE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGU7XG52YXIgX19kZWZOb3JtYWxQcm9wID0gKG9iaiwga2V5LCB2YWx1ZSkgPT4ga2V5IGluIG9iaiA/IF9fZGVmUHJvcChvYmosIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHdyaXRhYmxlOiB0cnVlLCB2YWx1ZSB9KSA6IG9ialtrZXldID0gdmFsdWU7XG52YXIgX19zcHJlYWRWYWx1ZXMgPSAoYSwgYikgPT4ge1xuICBmb3IgKHZhciBwcm9wIGluIGIgfHwgKGIgPSB7fSkpXG4gICAgaWYgKF9faGFzT3duUHJvcC5jYWxsKGIsIHByb3ApKVxuICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICBpZiAoX19nZXRPd25Qcm9wU3ltYm9scylcbiAgICBmb3IgKHZhciBwcm9wIG9mIF9fZ2V0T3duUHJvcFN5bWJvbHMoYikpIHtcbiAgICAgIGlmIChfX3Byb3BJc0VudW0uY2FsbChiLCBwcm9wKSlcbiAgICAgICAgX19kZWZOb3JtYWxQcm9wKGEsIHByb3AsIGJbcHJvcF0pO1xuICAgIH1cbiAgcmV0dXJuIGE7XG59O1xudmFyIF9fc3ByZWFkUHJvcHMgPSAoYSwgYikgPT4gX19kZWZQcm9wcyhhLCBfX2dldE93blByb3BEZXNjcyhiKSk7XG52YXIgX19vYmpSZXN0ID0gKHNvdXJjZSwgZXhjbHVkZSkgPT4ge1xuICB2YXIgdGFyZ2V0ID0ge307XG4gIGZvciAodmFyIHByb3AgaW4gc291cmNlKVxuICAgIGlmIChfX2hhc093blByb3AuY2FsbChzb3VyY2UsIHByb3ApICYmIGV4Y2x1ZGUuaW5kZXhPZihwcm9wKSA8IDApXG4gICAgICB0YXJnZXRbcHJvcF0gPSBzb3VyY2VbcHJvcF07XG4gIGlmIChzb3VyY2UgIT0gbnVsbCAmJiBfX2dldE93blByb3BTeW1ib2xzKVxuICAgIGZvciAodmFyIHByb3Agb2YgX19nZXRPd25Qcm9wU3ltYm9scyhzb3VyY2UpKSB7XG4gICAgICBpZiAoZXhjbHVkZS5pbmRleE9mKHByb3ApIDwgMCAmJiBfX3Byb3BJc0VudW0uY2FsbChzb3VyY2UsIHByb3ApKVxuICAgICAgICB0YXJnZXRbcHJvcF0gPSBzb3VyY2VbcHJvcF07XG4gICAgfVxuICByZXR1cm4gdGFyZ2V0O1xufTtcbmNvbnN0IHN0YW5kYXJkQW5ub3RhdGlvblN1cHBvcnQgPSB7XG4gIHByZXBhcmVBbm5vdGF0aW9uOiAoanNvbikgPT4ge1xuICAgIGlmIChpc1N0cmluZyhqc29uID09IG51bGwgPyB2b2lkIDAgOiBqc29uLnF1ZXJ5KSkge1xuICAgICAgY29uc3QgX2EgPSBqc29uLCB7IHF1ZXJ5IH0gPSBfYSwgcmVzdCA9IF9fb2JqUmVzdChfYSwgW1wicXVlcnlcIl0pO1xuICAgICAgcmV0dXJuIF9fc3ByZWFkUHJvcHMoX19zcHJlYWRWYWx1ZXMoe30sIHJlc3QpLCB7XG4gICAgICAgIHRhcmdldDoge1xuICAgICAgICAgIHJlZklkOiBcImFubm90YXRpb25fcXVlcnlcIixcbiAgICAgICAgICBxdWVyeVxuICAgICAgICB9LFxuICAgICAgICBtYXBwaW5nczoge31cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4ganNvbjtcbiAgfSxcbiAgcHJlcGFyZVF1ZXJ5OiAoYW5ubykgPT4gYW5uby50YXJnZXQsXG4gIHByb2Nlc3NFdmVudHM6IChhbm5vLCBkYXRhKSA9PiB7XG4gICAgcmV0dXJuIGdldEFubm90YXRpb25zRnJvbURhdGEoZGF0YSwgYW5uby5tYXBwaW5ncyk7XG4gIH1cbn07XG5mdW5jdGlvbiBzaW5nbGVGcmFtZUZyb21QYW5lbERhdGEoKSB7XG4gIHJldHVybiAoc291cmNlKSA9PiBzb3VyY2UucGlwZShcbiAgICBtZXJnZU1hcCgoZGF0YSkgPT4ge1xuICAgICAgaWYgKCEoZGF0YSA9PSBudWxsID8gdm9pZCAwIDogZGF0YS5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBvZih2b2lkIDApO1xuICAgICAgfVxuICAgICAgaWYgKGRhdGEubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJldHVybiBvZihkYXRhWzBdKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGN0eCA9IHtcbiAgICAgICAgaW50ZXJwb2xhdGU6ICh2KSA9PiB2XG4gICAgICB9O1xuICAgICAgcmV0dXJuIG9mKGRhdGEpLnBpcGUoXG4gICAgICAgIHN0YW5kYXJkVHJhbnNmb3JtZXJzLm1lcmdlVHJhbnNmb3JtZXIub3BlcmF0b3Ioe30sIGN0eCksXG4gICAgICAgIG1hcCgoZCkgPT4gZFswXSlcbiAgICAgICk7XG4gICAgfSlcbiAgKTtcbn1cbmNvbnN0IGFubm90YXRpb25FdmVudE5hbWVzID0gW1xuICB7XG4gICAga2V5OiBcInRpbWVcIixcbiAgICBmaWVsZDogKGZyYW1lKSA9PiBmcmFtZS5maWVsZHMuZmluZCgoZikgPT4gZi50eXBlID09PSBGaWVsZFR5cGUudGltZSksXG4gICAgcGxhY2Vob2xkZXI6IFwidGltZSwgb3IgdGhlIGZpcnN0IHRpbWUgZmllbGRcIlxuICB9LFxuICB7IGtleTogXCJ0aW1lRW5kXCIsIGhlbHA6IFwiV2hlbiB0aGlzIGZpZWxkIGlzIGRlZmluZWQsIHRoZSBhbm5vdGF0aW9uIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHJhbmdlXCIgfSxcbiAge1xuICAgIGtleTogXCJ0aXRsZVwiXG4gIH0sXG4gIHtcbiAgICBrZXk6IFwidGV4dFwiLFxuICAgIGZpZWxkOiAoZnJhbWUpID0+IGZyYW1lLmZpZWxkcy5maW5kKChmKSA9PiBmLnR5cGUgPT09IEZpZWxkVHlwZS5zdHJpbmcpLFxuICAgIHBsYWNlaG9sZGVyOiBcInRleHQsIG9yIHRoZSBmaXJzdCB0ZXh0IGZpZWxkXCJcbiAgfSxcbiAgeyBrZXk6IFwidGFnc1wiLCBzcGxpdDogXCIsXCIsIGhlbHA6IFwiVGhlIHJlc3VsdHMgd2lsbCBiZSBzcGxpdCBvbiBjb21tYSAoLClcIiB9LFxuICB7XG4gICAga2V5OiBcImlkXCJcbiAgfVxuXTtcbmNvbnN0IHB1YmxpY0Rhc2hib2FyZEV2ZW50TmFtZXMgPSBbXG4gIHtcbiAgICBrZXk6IFwiY29sb3JcIlxuICB9LFxuICB7XG4gICAga2V5OiBcImlzUmVnaW9uXCJcbiAgfSxcbiAge1xuICAgIGtleTogXCJzb3VyY2VcIlxuICB9XG5dO1xuY29uc3QgYWxlcnRFdmVudEFuZEFubm90YXRpb25GaWVsZHMgPSBbXG4gIC4uLmNvbmZpZy5wdWJsaWNEYXNoYm9hcmRBY2Nlc3NUb2tlbiA/IHB1YmxpY0Rhc2hib2FyZEV2ZW50TmFtZXMgOiBbXSxcbiAgLi4uYW5ub3RhdGlvbkV2ZW50TmFtZXMsXG4gIHsga2V5OiBcInVzZXJJZFwiIH0sXG4gIHsga2V5OiBcImxvZ2luXCIgfSxcbiAgeyBrZXk6IFwiZW1haWxcIiB9LFxuICB7IGtleTogXCJwcmV2U3RhdGVcIiB9LFxuICB7IGtleTogXCJuZXdTdGF0ZVwiIH0sXG4gIHsga2V5OiBcImRhdGFcIiB9LFxuICB7IGtleTogXCJwYW5lbElkXCIgfSxcbiAgeyBrZXk6IFwiYWxlcnRJZFwiIH0sXG4gIHsga2V5OiBcImRhc2hib2FyZElkXCIgfSxcbiAgeyBrZXk6IFwiZGFzaGJvYXJkVUlEXCIgfVxuXTtcbmZ1bmN0aW9uIGdldEFubm90YXRpb25zRnJvbURhdGEoZGF0YSwgb3B0aW9ucykge1xuICByZXR1cm4gb2YoZGF0YSkucGlwZShcbiAgICBzaW5nbGVGcmFtZUZyb21QYW5lbERhdGEoKSxcbiAgICBtYXAoKGZyYW1lKSA9PiB7XG4gICAgICBpZiAoIShmcmFtZSA9PSBudWxsID8gdm9pZCAwIDogZnJhbWUubGVuZ3RoKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBsZXQgaGFzVGltZSA9IGZhbHNlO1xuICAgICAgbGV0IGhhc1RleHQgPSBmYWxzZTtcbiAgICAgIGNvbnN0IGJ5TmFtZSA9IHt9O1xuICAgICAgZm9yIChjb25zdCBmIG9mIGZyYW1lLmZpZWxkcykge1xuICAgICAgICBjb25zdCBuYW1lID0gZ2V0RmllbGREaXNwbGF5TmFtZShmLCBmcmFtZSk7XG4gICAgICAgIGJ5TmFtZVtuYW1lLnRvTG93ZXJDYXNlKCldID0gZjtcbiAgICAgIH1cbiAgICAgIGlmICghb3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0ge307XG4gICAgICB9XG4gICAgICBjb25zdCBmaWVsZHMgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgZXZ0cyBvZiBhbGVydEV2ZW50QW5kQW5ub3RhdGlvbkZpZWxkcykge1xuICAgICAgICBjb25zdCBvcHQgPSBvcHRpb25zW2V2dHMua2V5XSB8fCB7fTtcbiAgICAgICAgaWYgKG9wdC5zb3VyY2UgPT09IEFubm90YXRpb25FdmVudEZpZWxkU291cmNlLlNraXApIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXR0ZXIgPSB7IGtleTogZXZ0cy5rZXksIHNwbGl0OiBldnRzLnNwbGl0IH07XG4gICAgICAgIGlmIChvcHQuc291cmNlID09PSBBbm5vdGF0aW9uRXZlbnRGaWVsZFNvdXJjZS5UZXh0KSB7XG4gICAgICAgICAgc2V0dGVyLnRleHQgPSBvcHQudmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgbG93ZXIgPSAob3B0LnZhbHVlIHx8IGV2dHMua2V5KS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgIHNldHRlci5maWVsZCA9IGJ5TmFtZVtsb3dlcl07XG4gICAgICAgICAgaWYgKCFzZXR0ZXIuZmllbGQgJiYgZXZ0cy5maWVsZCkge1xuICAgICAgICAgICAgc2V0dGVyLmZpZWxkID0gZXZ0cy5maWVsZChmcmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzZXR0ZXIuZmllbGQgfHwgc2V0dGVyLnRleHQpIHtcbiAgICAgICAgICBmaWVsZHMucHVzaChzZXR0ZXIpO1xuICAgICAgICAgIGlmIChzZXR0ZXIua2V5ID09PSBcInRpbWVcIikge1xuICAgICAgICAgICAgaGFzVGltZSA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIGlmIChzZXR0ZXIua2V5ID09PSBcInRleHRcIikge1xuICAgICAgICAgICAgaGFzVGV4dCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoIWhhc1RpbWUgfHwgIWhhc1RleHQpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkNhbm5vdCBwcm9jZXNzIGFubm90YXRpb24gZmllbGRzLiBObyB0aW1lIG9yIHRleHQgcHJlc2VudC5cIik7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGV2ZW50cyA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmcmFtZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBhbm5vID0ge1xuICAgICAgICAgIHR5cGU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgIGNvbG9yOiBcInJlZFwiXG4gICAgICAgIH07XG4gICAgICAgIGZvciAoY29uc3QgZiBvZiBmaWVsZHMpIHtcbiAgICAgICAgICBsZXQgdiA9IHZvaWQgMDtcbiAgICAgICAgICBpZiAoZi50ZXh0KSB7XG4gICAgICAgICAgICB2ID0gZi50ZXh0O1xuICAgICAgICAgIH0gZWxzZSBpZiAoZi5maWVsZCkge1xuICAgICAgICAgICAgdiA9IGYuZmllbGQudmFsdWVzLmdldChpKTtcbiAgICAgICAgICAgIGlmICh2ICE9PSB2b2lkIDAgJiYgZi5yZWdleCkge1xuICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9IGYucmVnZXguZXhlYyh2KTtcbiAgICAgICAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgdiA9IG1hdGNoWzFdID8gbWF0Y2hbMV0gOiBtYXRjaFswXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodiAhPT0gbnVsbCAmJiB2ICE9PSB2b2lkIDApIHtcbiAgICAgICAgICAgIGlmIChmLnNwbGl0ICYmIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgIHYgPSB2LnNwbGl0KFwiLFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFubm9bZi5rZXldID0gdjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnRzLnB1c2goYW5ubyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXZlbnRzO1xuICAgIH0pXG4gICk7XG59XG5jb25zdCBsZWdhY3lSdW5uZXIgPSBbXG4gIFwicHJvbWV0aGV1c1wiLFxuICBcImxva2lcIixcbiAgXCJlbGFzdGljc2VhcmNoXCIsXG4gIFwiZ3JhZmFuYS1vcGVuc2VhcmNoLWRhdGFzb3VyY2VcIlxuXTtcbmZ1bmN0aW9uIHNob3VsZFVzZUxlZ2FjeVJ1bm5lcihkYXRhc291cmNlKSB7XG4gIGNvbnN0IHsgdHlwZSB9ID0gZGF0YXNvdXJjZTtcbiAgcmV0dXJuICFkYXRhc291cmNlLmFubm90YXRpb25zIHx8IGxlZ2FjeVJ1bm5lci5pbmNsdWRlcyh0eXBlKTtcbn1cblxuZXhwb3J0IHsgYW5ub3RhdGlvbkV2ZW50TmFtZXMsIGdldEFubm90YXRpb25zRnJvbURhdGEsIHB1YmxpY0Rhc2hib2FyZEV2ZW50TmFtZXMsIHNob3VsZFVzZUxlZ2FjeVJ1bm5lciwgc2luZ2xlRnJhbWVGcm9tUGFuZWxEYXRhLCBzdGFuZGFyZEFubm90YXRpb25TdXBwb3J0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWMzUmhibVJoY21SQmJtNXZkR0YwYVc5dWMxTjFjSEJ2Y25RdWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1THk0dUx5NHVMM055WXk5eGRXVnllV2x1Wnk5c1lYbGxjbk12WVc1dWIzUmhkR2x2Ym5NdmMzUmhibVJoY21SQmJtNXZkR0YwYVc5dWMxTjFjSEJ2Y25RdWRITWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnYVhOVGRISnBibWNnZlNCbWNtOXRJQ2RzYjJSaGMyZ25PMXh1YVcxd2IzSjBJSHNnVDJKelpYSjJZV0pzWlN3Z2IyWXNJRTl3WlhKaGRHOXlSblZ1WTNScGIyNGdmU0JtY205dElDZHllR3B6Snp0Y2JtbHRjRzl5ZENCN0lHMWhjQ3dnYldWeVoyVk5ZWEFnZlNCbWNtOXRJQ2R5ZUdwekwyOXdaWEpoZEc5eWN5YzdYRzVjYm1sdGNHOXlkQ0I3WEc0Z0lFRnVibTkwWVhScGIyNUZkbVZ1ZEN4Y2JpQWdRVzV1YjNSaGRHbHZia1YyWlc1MFJtbGxiR1JUYjNWeVkyVXNYRzRnSUVGdWJtOTBZWFJwYjI1RmRtVnVkRTFoY0hCcGJtZHpMRnh1SUNCQmJtNXZkR0YwYVc5dVVYVmxjbmtzWEc0Z0lFRnVibTkwWVhScGIyNVRkWEJ3YjNKMExGeHVJQ0JFWVhSaFJuSmhiV1VzWEc0Z0lFUmhkR0ZUYjNWeVkyVkJjR2tzWEc0Z0lFUmhkR0ZVY21GdWMyWnZjbTFEYjI1MFpYaDBMRnh1SUNCR2FXVnNaQ3hjYmlBZ1JtbGxiR1JVZVhCbExGeHVJQ0JuWlhSR2FXVnNaRVJwYzNCc1lYbE9ZVzFsTEZ4dUlDQkxaWGxXWVd4MVpTeGNiaUFnYzNSaGJtUmhjbVJVY21GdWMyWnZjbTFsY25Nc1hHNTlJR1p5YjIwZ0owQm5jbUZtWVc1aEwyUmhkR0VuTzF4dWFXMXdiM0owSUhzZ1kyOXVabWxuSUgwZ1puSnZiU0FuUUdkeVlXWmhibUV2Y25WdWRHbHRaU2M3WEc1Y2JtVjRjRzl5ZENCamIyNXpkQ0J6ZEdGdVpHRnlaRUZ1Ym05MFlYUnBiMjVUZFhCd2IzSjBPaUJCYm01dmRHRjBhVzl1VTNWd2NHOXlkQ0E5SUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRUZ6YzNWdFpTQjBhR1VnYzNSdmNtVmtJSFpoYkhWbElHbHpJSE4wWVc1a1lYSmtJRzF2WkdWc0xseHVJQ0FnS2k5Y2JpQWdjSEpsY0dGeVpVRnVibTkwWVhScGIyNDZJQ2hxYzI5dU9pQmhibmtwSUQwK0lIdGNiaUFnSUNCcFppQW9hWE5UZEhKcGJtY29hbk52Ymo4dWNYVmxjbmtwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0I3SUhGMVpYSjVMQ0F1TGk1eVpYTjBJSDBnUFNCcWMyOXVPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lDQWdMaTR1Y21WemRDeGNiaUFnSUNBZ0lDQWdkR0Z5WjJWME9pQjdYRzRnSUNBZ0lDQWdJQ0FnY21WbVNXUTZJQ2RoYm01dmRHRjBhVzl1WDNGMVpYSjVKeXhjYmlBZ0lDQWdJQ0FnSUNCeGRXVnllU3hjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2JXRndjR2x1WjNNNklIdDlMRnh1SUNBZ0lDQWdmVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUdwemIyNGdZWE1nUVc1dWIzUmhkR2x2YmxGMVpYSjVPMXh1SUNCOUxGeHVYRzRnSUM4cUtseHVJQ0FnS2lCRVpXWmhkV3gwSUhkcGJHd2dhblZ6ZENCeVpYUjFjbTRnZEdGeVoyVjBJR1p5YjIwZ2RHaGxJR0Z1Ym05MFlYUnBiMjR1WEc0Z0lDQXFMMXh1SUNCd2NtVndZWEpsVVhWbGNuazZJQ2hoYm01dk9pQkJibTV2ZEdGMGFXOXVVWFZsY25rcElEMCtJR0Z1Ym04dWRHRnlaMlYwTEZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJRY205MmFXUmxjeUJrWldaaGRXeDBJSEJ5YjJObGMzTnBibWNnWm5KdmJTQmtZWFJoUm5KaGJXVWdkRzhnWVc1dWIzUmhkR2x2YmlCbGRtVnVkSE11WEc0Z0lDQXFMMXh1SUNCd2NtOWpaWE56UlhabGJuUnpPaUFvWVc1dWJ6b2dRVzV1YjNSaGRHbHZibEYxWlhKNUxDQmtZWFJoT2lCRVlYUmhSbkpoYldWYlhTa2dQVDRnZTF4dUlDQWdJSEpsZEhWeWJpQm5aWFJCYm01dmRHRjBhVzl1YzBaeWIyMUVZWFJoS0dSaGRHRXNJR0Z1Ym04dWJXRndjR2x1WjNNcE8xeHVJQ0I5TEZ4dWZUdGNibHh1THlvcVhHNGdLaUJHYkdGMGRHVnVJR0ZzYkNCbWNtRnRaWE1nYVc1MGJ5QmhJSE5wYm1kc1pTQm1jbUZ0WlNCM2FYUm9JRzFsY21kbFZISmhibk5tYjNKdFpYSXVYRzRnS2k5Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlITnBibWRzWlVaeVlXMWxSbkp2YlZCaGJtVnNSR0YwWVNncE9pQlBjR1Z5WVhSdmNrWjFibU4wYVc5dVBFUmhkR0ZHY21GdFpWdGRMQ0JFWVhSaFJuSmhiV1VnZkNCMWJtUmxabWx1WldRK0lIdGNiaUFnY21WMGRYSnVJQ2h6YjNWeVkyVXBJRDArWEc0Z0lDQWdjMjkxY21ObExuQnBjR1VvWEc0Z0lDQWdJQ0J0WlhKblpVMWhjQ2dvWkdGMFlTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCcFppQW9JV1JoZEdFL0xteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnZaaWgxYm1SbFptbHVaV1FwTzF4dUlDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdhV1lnS0dSaGRHRXViR1Z1WjNSb0lEMDlQU0F4S1NCN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHOW1LR1JoZEdGYk1GMHBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTNSNE9pQkVZWFJoVkhKaGJuTm1iM0p0UTI5dWRHVjRkQ0E5SUh0Y2JpQWdJQ0FnSUNBZ0lDQnBiblJsY25CdmJHRjBaVG9nS0hZNklITjBjbWx1WnlrZ1BUNGdkaXhjYmlBZ0lDQWdJQ0FnZlR0Y2JseHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2IyWW9aR0YwWVNrdWNHbHdaU2hjYmlBZ0lDQWdJQ0FnSUNCemRHRnVaR0Z5WkZSeVlXNXpabTl5YldWeWN5NXRaWEpuWlZSeVlXNXpabTl5YldWeUxtOXdaWEpoZEc5eUtIdDlMQ0JqZEhncExGeHVJQ0FnSUNBZ0lDQWdJRzFoY0Nnb1pDa2dQVDRnWkZzd1hTbGNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDBwWEc0Z0lDQWdLVHRjYm4xY2JseHVhVzUwWlhKbVlXTmxJRUZ1Ym05MFlYUnBiMjVGZG1WdWRFWnBaV3hrVTJWMGRHVnlJSHRjYmlBZ2EyVjVPaUJyWlhsdlppQkJibTV2ZEdGMGFXOXVSWFpsYm5RN1hHNGdJR1pwWld4a1B6b2dSbWxsYkdRN1hHNGdJSFJsZUhRL09pQnpkSEpwYm1jN1hHNGdJSEpsWjJWNFB6b2dVbVZuUlhod08xeHVJQ0J6Y0d4cGREODZJSE4wY21sdVp6c2dMeThnWm05eUlIUmhaM05jYm4xY2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkJibTV2ZEdGMGFXOXVSbWxsYkdSSmJtWnZJSHRjYmlBZ2EyVjVPaUJyWlhsdlppQkJibTV2ZEdGMGFXOXVSWFpsYm5RN1hHNWNiaUFnYzNCc2FYUS9PaUJ6ZEhKcGJtYzdYRzRnSUdacFpXeGtQem9nS0daeVlXMWxPaUJFWVhSaFJuSmhiV1VwSUQwK0lFWnBaV3hrSUh3Z2RXNWtaV1pwYm1Wa08xeHVJQ0J3YkdGalpXaHZiR1JsY2o4NklITjBjbWx1Wnp0Y2JpQWdhR1ZzY0Q4NklITjBjbWx1Wnp0Y2JuMWNibHh1THk4Z1ZHaGxjMlVnWm1sbGJHUnpJR2RsZENCaFpHUmxaQ0IwYnlCMGFHVWdjM1JoYm1SaGNtUWdWVWxjYm1WNGNHOXlkQ0JqYjI1emRDQmhibTV2ZEdGMGFXOXVSWFpsYm5ST1lXMWxjem9nUVc1dWIzUmhkR2x2YmtacFpXeGtTVzVtYjF0ZElEMGdXMXh1SUNCN1hHNGdJQ0FnYTJWNU9pQW5kR2x0WlNjc1hHNGdJQ0FnWm1sbGJHUTZJQ2htY21GdFpUb2dSR0YwWVVaeVlXMWxLU0E5UGlCbWNtRnRaUzVtYVdWc1pITXVabWx1WkNnb1ppa2dQVDRnWmk1MGVYQmxJRDA5UFNCR2FXVnNaRlI1Y0dVdWRHbHRaU2tzWEc0Z0lDQWdjR3hoWTJWb2IyeGtaWEk2SUNkMGFXMWxMQ0J2Y2lCMGFHVWdabWx5YzNRZ2RHbHRaU0JtYVdWc1pDY3NYRzRnSUgwc1hHNGdJSHNnYTJWNU9pQW5kR2x0WlVWdVpDY3NJR2hsYkhBNklDZFhhR1Z1SUhSb2FYTWdabWxsYkdRZ2FYTWdaR1ZtYVc1bFpDd2dkR2hsSUdGdWJtOTBZWFJwYjI0Z2QybHNiQ0JpWlNCMGNtVmhkR1ZrSUdGeklHRWdjbUZ1WjJVbklIMHNYRzRnSUh0Y2JpQWdJQ0JyWlhrNklDZDBhWFJzWlNjc1hHNGdJSDBzWEc0Z0lIdGNiaUFnSUNCclpYazZJQ2QwWlhoMEp5eGNiaUFnSUNCbWFXVnNaRG9nS0daeVlXMWxPaUJFWVhSaFJuSmhiV1VwSUQwK0lHWnlZVzFsTG1acFpXeGtjeTVtYVc1a0tDaG1LU0E5UGlCbUxuUjVjR1VnUFQwOUlFWnBaV3hrVkhsd1pTNXpkSEpwYm1jcExGeHVJQ0FnSUhCc1lXTmxhRzlzWkdWeU9pQW5kR1Y0ZEN3Z2IzSWdkR2hsSUdacGNuTjBJSFJsZUhRZ1ptbGxiR1FuTEZ4dUlDQjlMRnh1SUNCN0lHdGxlVG9nSjNSaFozTW5MQ0J6Y0d4cGREb2dKeXduTENCb1pXeHdPaUFuVkdobElISmxjM1ZzZEhNZ2QybHNiQ0JpWlNCemNHeHBkQ0J2YmlCamIyMXRZU0FvTENrbklIMHNYRzRnSUh0Y2JpQWdJQ0JyWlhrNklDZHBaQ2NzWEc0Z0lIMHNYRzVkTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnY0hWaWJHbGpSR0Z6YUdKdllYSmtSWFpsYm5ST1lXMWxjem9nUVc1dWIzUmhkR2x2YmtacFpXeGtTVzVtYjF0ZElEMGdXMXh1SUNCN1hHNGdJQ0FnYTJWNU9pQW5ZMjlzYjNJbkxGeHVJQ0I5TEZ4dUlDQjdYRzRnSUNBZ2EyVjVPaUFuYVhOU1pXZHBiMjRuTEZ4dUlDQjlMRnh1SUNCN1hHNGdJQ0FnYTJWNU9pQW5jMjkxY21ObEp5eGNiaUFnZlN4Y2JsMDdYRzVjYmk4dklFZHBkbVZ1SUd4bFoyRmplU0JwYm1aeVlYTjBjblZqZEhWeVpTd2dZV3hsY25RZ1pYWmxiblJ6SUdGeVpTQndZWE56WldRZ2RHaHZkV2RvSUhSb1pTQnpZVzFsSUdGdWJtOTBZWFJwYjI1Y2JpOHZJSEJwY0dWc2FXNWxMQ0JpZFhRZ2FXNWpiSFZrWlNCbWFXVnNaSE1nZEdoaGRDQnphRzkxYkdRZ2JtOTBJR0psSUdWNGNHOXpaV1FnWjJWdVpYSmhiR3g1WEc1amIyNXpkQ0JoYkdWeWRFVjJaVzUwUVc1a1FXNXViM1JoZEdsdmJrWnBaV3hrY3pvZ1FXNXViM1JoZEdsdmJrWnBaV3hrU1c1bWIxdGRJRDBnVzF4dUlDQXVMaTRvWTI5dVptbG5MbkIxWW14cFkwUmhjMmhpYjJGeVpFRmpZMlZ6YzFSdmEyVnVJRDhnY0hWaWJHbGpSR0Z6YUdKdllYSmtSWFpsYm5ST1lXMWxjeUE2SUZ0ZEtTeGNiaUFnTGk0dVlXNXViM1JoZEdsdmJrVjJaVzUwVG1GdFpYTXNYRzRnSUhzZ2EyVjVPaUFuZFhObGNrbGtKeUI5TEZ4dUlDQjdJR3RsZVRvZ0oyeHZaMmx1SnlCOUxGeHVJQ0I3SUd0bGVUb2dKMlZ0WVdsc0p5QjlMRnh1SUNCN0lHdGxlVG9nSjNCeVpYWlRkR0YwWlNjZ2ZTeGNiaUFnZXlCclpYazZJQ2R1WlhkVGRHRjBaU2NnZlN4Y2JpQWdleUJyWlhrNklDZGtZWFJoSnlCaGN5QmhibmtnZlN4Y2JpQWdleUJyWlhrNklDZHdZVzVsYkVsa0p5QjlMRnh1SUNCN0lHdGxlVG9nSjJGc1pYSjBTV1FuSUgwc1hHNGdJSHNnYTJWNU9pQW5aR0Z6YUdKdllYSmtTV1FuSUgwc1hHNGdJSHNnYTJWNU9pQW5aR0Z6YUdKdllYSmtWVWxFSnlCOUxGeHVYVHRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRFRnVibTkwWVhScGIyNXpSbkp2YlVSaGRHRW9YRzRnSUdSaGRHRTZJRVJoZEdGR2NtRnRaVnRkTEZ4dUlDQnZjSFJwYjI1elB6b2dRVzV1YjNSaGRHbHZia1YyWlc1MFRXRndjR2x1WjNOY2JpazZJRTlpYzJWeWRtRmliR1U4UVc1dWIzUmhkR2x2YmtWMlpXNTBXMTArSUh0Y2JpQWdjbVYwZFhKdUlHOW1LR1JoZEdFcExuQnBjR1VvWEc0Z0lDQWdjMmx1WjJ4bFJuSmhiV1ZHY205dFVHRnVaV3hFWVhSaEtDa3NYRzRnSUNBZ2JXRndLQ2htY21GdFpTa2dQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tDRm1jbUZ0WlQ4dWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCYlhUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdiR1YwSUdoaGMxUnBiV1VnUFNCbVlXeHpaVHRjYmlBZ0lDQWdJR3hsZENCb1lYTlVaWGgwSUQwZ1ptRnNjMlU3WEc0Z0lDQWdJQ0JqYjI1emRDQmllVTVoYldVNklFdGxlVlpoYkhWbFBFWnBaV3hrUGlBOUlIdDlPMXh1WEc0Z0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUdZZ2IyWWdabkpoYldVdVptbGxiR1J6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc1aGJXVWdQU0JuWlhSR2FXVnNaRVJwYzNCc1lYbE9ZVzFsS0dZc0lHWnlZVzFsS1R0Y2JpQWdJQ0FnSUNBZ1lubE9ZVzFsVzI1aGJXVXVkRzlNYjNkbGNrTmhjMlVvS1YwZ1BTQm1PMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb0lXOXdkR2x2Ym5NcElIdGNiaUFnSUNBZ0lDQWdiM0IwYVc5dWN5QTlJSHQ5TzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCamIyNXpkQ0JtYVdWc1pITTZJRUZ1Ym05MFlYUnBiMjVGZG1WdWRFWnBaV3hrVTJWMGRHVnlXMTBnUFNCYlhUdGNibHh1SUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JsZG5SeklHOW1JR0ZzWlhKMFJYWmxiblJCYm1SQmJtNXZkR0YwYVc5dVJtbGxiR1J6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUc5d2RDQTlJRzl3ZEdsdmJuTmJaWFowY3k1clpYbGRJSHg4SUh0OU95QXZMMEZ1Ym05MFlYUnBiMjVGZG1WdWRFWnBaV3hrVFdGd2NHbHVaMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaHZjSFF1YzI5MWNtTmxJRDA5UFNCQmJtNXZkR0YwYVc5dVJYWmxiblJHYVdWc1pGTnZkWEpqWlM1VGEybHdLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JqYjI1emRDQnpaWFIwWlhJNklFRnVibTkwWVhScGIyNUZkbVZ1ZEVacFpXeGtVMlYwZEdWeUlEMGdleUJyWlhrNklHVjJkSE11YTJWNUxDQnpjR3hwZERvZ1pYWjBjeTV6Y0d4cGRDQjlPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaHZjSFF1YzI5MWNtTmxJRDA5UFNCQmJtNXZkR0YwYVc5dVJYWmxiblJHYVdWc1pGTnZkWEpqWlM1VVpYaDBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2MyVjBkR1Z5TG5SbGVIUWdQU0J2Y0hRdWRtRnNkV1U3WEc0Z0lDQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYkc5M1pYSWdQU0FvYjNCMExuWmhiSFZsSUh4OElHVjJkSE11YTJWNUtTNTBiMHh2ZDJWeVEyRnpaU2dwTzF4dUlDQWdJQ0FnSUNBZ0lITmxkSFJsY2k1bWFXVnNaQ0E5SUdKNVRtRnRaVnRzYjNkbGNsMDdYRzVjYmlBZ0lDQWdJQ0FnSUNCcFppQW9JWE5sZEhSbGNpNW1hV1ZzWkNBbUppQmxkblJ6TG1acFpXeGtLU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnpaWFIwWlhJdVptbGxiR1FnUFNCbGRuUnpMbVpwWld4a0tHWnlZVzFsS1R0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnSUNCcFppQW9jMlYwZEdWeUxtWnBaV3hrSUh4OElITmxkSFJsY2k1MFpYaDBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ1ptbGxiR1J6TG5CMWMyZ29jMlYwZEdWeUtUdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2MyVjBkR1Z5TG10bGVTQTlQVDBnSjNScGJXVW5LU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQm9ZWE5VYVcxbElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLSE5sZEhSbGNpNXJaWGtnUFQwOUlDZDBaWGgwSnlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnYUdGelZHVjRkQ0E5SUhSeWRXVTdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lHbG1JQ2doYUdGelZHbHRaU0I4ZkNBaGFHRnpWR1Y0ZENrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6YjJ4bExtVnljbTl5S0NkRFlXNXViM1FnY0hKdlkyVnpjeUJoYm01dmRHRjBhVzl1SUdacFpXeGtjeTRnVG04Z2RHbHRaU0J2Y2lCMFpYaDBJSEJ5WlhObGJuUXVKeWs3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJiWFR0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ0x5OGdRV1JrSUdWaFkyZ2dkbUZzZFdVZ2RHOGdkR2hsSUhOMGNtbHVaMXh1SUNBZ0lDQWdZMjl1YzNRZ1pYWmxiblJ6T2lCQmJtNXZkR0YwYVc5dVJYWmxiblJiWFNBOUlGdGRPMXh1WEc0Z0lDQWdJQ0JtYjNJZ0tHeGxkQ0JwSUQwZ01Ec2dhU0E4SUdaeVlXMWxMbXhsYm1kMGFEc2dhU3NyS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdGdWJtODZJRUZ1Ym05MFlYUnBiMjVGZG1WdWRDQTlJSHRjYmlBZ0lDQWdJQ0FnSUNCMGVYQmxPaUFuWkdWbVlYVnNkQ2NzWEc0Z0lDQWdJQ0FnSUNBZ1kyOXNiM0k2SUNkeVpXUW5MRnh1SUNBZ0lDQWdJQ0I5TzF4dVhHNGdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdaaUJ2WmlCbWFXVnNaSE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQnNaWFFnZGpvZ1lXNTVJRDBnZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnSUNBZ0lDQWdhV1lnS0dZdWRHVjRkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdkaUE5SUdZdWRHVjRkRHNnTHk4Z1ZFOUVUeUJ6ZFhCd2IzSjBJSFJsYlhCc1lYUmxjeUZjYmlBZ0lDQWdJQ0FnSUNCOUlHVnNjMlVnYVdZZ0tHWXVabWxsYkdRcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhZZ1BTQm1MbVpwWld4a0xuWmhiSFZsY3k1blpYUW9hU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQnBaaUFvZGlBaFBUMGdkVzVrWldacGJtVmtJQ1ltSUdZdWNtVm5aWGdwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdiV0YwWTJnZ1BTQm1MbkpsWjJWNExtVjRaV01vZGlrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaHRZWFJqYUNrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIWWdQU0J0WVhSamFGc3hYU0EvSUcxaGRHTm9XekZkSURvZ2JXRjBZMmhiTUYwN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2RpQWhQVDBnYm5Wc2JDQW1KaUIySUNFOVBTQjFibVJsWm1sdVpXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2htTG5Od2JHbDBJQ1ltSUhSNWNHVnZaaUIySUQwOVBTQW5jM1J5YVc1bkp5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjJJRDBnZGk1emNHeHBkQ2duTENjcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBZ0lDQWdLR0Z1Ym04Z1lYTWdZVzU1S1Z0bUxtdGxlVjBnUFNCMk8xeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHVjJaVzUwY3k1d2RYTm9LR0Z1Ym04cE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUdWMlpXNTBjenRjYmlBZ0lDQjlLVnh1SUNBcE8xeHVmVnh1WEc0dkx5QlVhR1Z6WlNCdmNIUWdiM1YwY3lCaGNtVWdhR1Z5WlNCdmJteDVJR1p2Y2lCeGRXbGphMlZ5SUdGdVpDQmxZWE5wWlhJZ2JXbG5jbUYwYVc5dUlIUnZJSEpsWVdOMElHSmhjMlZrSUdGdWJtOTBZWFJwYjI1eklHVmthWFJ2Y25NZ1lXNWtJR0psWTJGMWMyVmNiaTh2SUdGdWJtOTBZWFJwYjI0Z2MzVndjRzl5ZENCQlVFa2dibVZsWkhNZ2MyOXRaU0IzYjNKcklIUnZJSE4xY0hCdmNuUWdiR1Z6Y3lCY0luTjBZVzVrWVhKa1hDSWdaV1JwZEc5eWN5QnNhV3RsSUhCeWIyMWxkR2hsZFhNZ1lXNWtJR2hsY21VZ2FYUWdhWE1nYm05MFhHNHZMeUJ3YjJ4c2RYUnBibWNnY0hWaWJHbGpJRUZRU1M1Y2JseHVZMjl1YzNRZ2JHVm5ZV041VW5WdWJtVnlJRDBnVzF4dUlDQW5jSEp2YldWMGFHVjFjeWNzWEc0Z0lDZHNiMnRwSnl4Y2JpQWdKMlZzWVhOMGFXTnpaV0Z5WTJnbkxGeHVJQ0FuWjNKaFptRnVZUzF2Y0dWdWMyVmhjbU5vTFdSaGRHRnpiM1Z5WTJVbkxDQXZMeUJsZUhSbGNtNWhiRnh1WFR0Y2JseHVMeW9xWEc0Z0tpQlZjMlVnYkdWbllXTjVJSEoxYm01bGNpNGdWWE5sWkNCdmJteDVJR0Z6SUdGdUlHVnpZMkZ3WlNCb1lYUmphQ0JtYjNJZ1pXRnphV1Z5SUhSeVlXNXphWFJwYjI0Z2RHOGdVbVZoWTNRZ1ltRnpaV1FnWVc1dWIzUmhkR2x2YmlCbFpHbDBiM0l1WEc0Z0tpOWNibVY0Y0c5eWRDQm1kVzVqZEdsdmJpQnphRzkxYkdSVmMyVk1aV2RoWTNsU2RXNXVaWElvWkdGMFlYTnZkWEpqWlRvZ1JHRjBZVk52ZFhKalpVRndhU2s2SUdKdmIyeGxZVzRnZTF4dUlDQmpiMjV6ZENCN0lIUjVjR1VnZlNBOUlHUmhkR0Z6YjNWeVkyVTdYRzRnSUhKbGRIVnliaUFoWkdGMFlYTnZkWEpqWlM1aGJtNXZkR0YwYVc5dWN5QjhmQ0JzWldkaFkzbFNkVzV1WlhJdWFXNWpiSFZrWlhNb2RIbHdaU2s3WEc1OVhHNGlYU3dpYm1GdFpYTWlPbHRkTENKdFlYQndhVzVuY3lJNklqczdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dEJRWEZDVHl4TlFVRk5MSGxDUVVFclF5eEhRVUZCTzBGQlFVRXNSVUZKTVVRc2FVSkJRVUVzUlVGQmJVSXNRMEZCUXl4SlFVRmpMRXRCUVVFN1FVRkRhRU1zU1VGQlNTeEpRVUZCTEZGQlFVRXNRMEZCVXl4SlFVRk5MRWxCUVVFc1NVRkJRU3hIUVVGQkxFdEJRVUVzUTBGQlFTeEhRVUZCTEVsQlFVRXNRMEZCUVN4TFFVRkxMRU5CUVVjc1JVRkJRVHRCUVVONlFpeE5RVUZCTEUxQlFUSkNMRmRCUVc1Q0xFVkJNMEprTEV0QlFVRXNSVUZCUVN4SFFUSkNhVU1zUlVGQlZDeEZRVUZCTEVsQlFVRXNSMEZCUVN4VFFVRkJMRU5CUVZNc1NVRkJWQ3hEUVVGV0xFOUJRVUVzUTBGQlFTeERRVUZCTEVOQlFVRTdRVUZEVWl4TlFVRkJMRTlCUVU4c2FVTkJRMFlzU1VGRVJTeERRVUZCTEVWQlFVRTdRVUZCUVN4UlFVVk1MRTFCUVZFc1JVRkJRVHRCUVVGQkxGVkJRMDRzUzBGQlR5eEZRVUZCTEd0Q1FVRkJPMEZCUVVFc1ZVRkRVQ3hMUVVGQk8wRkJRVUVzVTBGRFJqdEJRVUZCTEZGQlEwRXNWVUZCVlN4RlFVRkRPMEZCUVVFc1QwRkRZaXhEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5HTzBGQlEwRXNTVUZCVHl4UFFVRkJMRWxCUVVFc1EwRkJRVHRCUVVGQkxFZEJRMVE3UVVGQlFTeEZRVXRCTEZsQlFVRXNSVUZCWXl4RFFVRkRMRWxCUVVFc1MwRkJNRUlzU1VGQlN5eERRVUZCTEUxQlFVRTdRVUZCUVN4RlFVczVReXhoUVVGQkxFVkJRV1VzUTBGQlF5eEpRVUZCTEVWQlFYVkNMRWxCUVhOQ0xFdEJRVUU3UVVGRE0wUXNTVUZCVHl4UFFVRkJMSE5DUVVGQkxFTkJRWFZDTEVsQlFVMHNSVUZCUVN4SlFVRkJMRU5CUVVzc1VVRkJVU3hEUVVGQkxFTkJRVUU3UVVGQlFTeEhRVU51UkR0QlFVTkdMRVZCUVVFN1FVRk5UeXhUUVVGVExIZENRVUZwUml4SFFVRkJPMEZCUXk5R0xFVkJRVThzVDBGQlFTeERRVUZETEZkQlEwNHNUVUZCVHl4RFFVRkJMRWxCUVVFN1FVRkJRU3hKUVVOTUxGRkJRVUVzUTBGQlV5eERRVUZETEVsQlFWTXNTMEZCUVR0QlFVTnFRaXhOUVVGSkxFbEJRVUVzUlVGQlF5dzJRa0ZCVFN4TlFVRlJMRU5CUVVFc1JVRkJRVHRCUVVOcVFpeFJRVUZCTEU5QlFVOHNSMEZCUnl4TFFVRlRMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzVDBGRGNrSTdRVUZGUVN4TlFVRkpMRWxCUVVFc1NVRkJRU3hEUVVGTExGZEJRVmNzUTBGQlJ5eEZRVUZCTzBGQlEzSkNMRkZCUVU4c1QwRkJRU3hGUVVGQkxFTkJRVWNzUzBGQlN5eERRVUZGTEVOQlFVRXNRMEZCUVN4RFFVRkJPMEZCUVVFc1QwRkRia0k3UVVGRlFTeE5RVUZCTEUxQlFVMHNSMEZCTkVJc1IwRkJRVHRCUVVGQkxGRkJRMmhETEZkQlFVRXNSVUZCWVN4RFFVRkRMRU5CUVdNc1MwRkJRU3hEUVVGQk8wRkJRVUVzVDBGRE9VSXNRMEZCUVR0QlFVVkJMRTFCUVU4c1QwRkJRU3hGUVVGQkxFTkJRVWNzU1VGQlNTeERRVUZGTEVOQlFVRXNTVUZCUVR0QlFVRkJMRkZCUTJRc2IwSkJRWEZDTEVOQlFVRXNaMEpCUVVFc1EwRkJhVUlzVVVGQlV5eERRVUZCTEVsQlFVa3NSMEZCUnl4RFFVRkJPMEZCUVVFc1VVRkRkRVFzUjBGQlNTeERRVUZCTEVOQlFVTXNRMEZCVFN4TFFVRkJMRU5CUVVFc1EwRkJSU3hEUVVGRkxFTkJRVUVzUTBGQlFUdEJRVUZCTEU5QlEycENMRU5CUVVFN1FVRkJRU3hMUVVORUxFTkJRVUU3UVVGQlFTeEhRVU5JTEVOQlFVRTdRVUZEU2l4RFFVRkJPMEZCYjBKUExFMUJRVTBzYjBKQlFUaERMRWRCUVVFN1FVRkJRU3hGUVVONlJEdEJRVUZCTEVsQlEwVXNSMEZCU3l4RlFVRkJMRTFCUVVFN1FVRkJRU3hKUVVOTUxFdEJRVUVzUlVGQlR5eERRVUZETEV0QlFVRXNTMEZCY1VJc1MwRkJUU3hEUVVGQkxFMUJRVUVzUTBGQlR5eEpRVUZMTEVOQlFVRXNRMEZCUXl4RFFVRk5MRXRCUVVFc1EwRkJRU3hEUVVGRkxFbEJRVk1zUzBGQlFTeFRRVUZCTEVOQlFWVXNTVUZCU1N4RFFVRkJPMEZCUVVFc1NVRkRMMFVzVjBGQllTeEZRVUZCTEN0Q1FVRkJPMEZCUVVFc1IwRkRaanRCUVVGQkxFVkJRMEVzUlVGQlJTeEhRVUZCTEVWQlFVc3NVMEZCVnl4RlFVRkJMRWxCUVVFc1JVRkJUU3gxUlVGQmQwVXNSVUZCUVR0QlFVRkJMRVZCUTJoSE8wRkJRVUVzU1VGRFJTeEhRVUZMTEVWQlFVRXNUMEZCUVR0QlFVRkJMRWRCUTFBN1FVRkJRU3hGUVVOQk8wRkJRVUVzU1VGRFJTeEhRVUZMTEVWQlFVRXNUVUZCUVR0QlFVRkJMRWxCUTB3c1MwRkJRU3hGUVVGUExFTkJRVU1zUzBGQlFTeExRVUZ4UWl4TFFVRk5MRU5CUVVFc1RVRkJRU3hEUVVGUExFbEJRVXNzUTBGQlFTeERRVUZETEVOQlFVMHNTMEZCUVN4RFFVRkJMRU5CUVVVc1NVRkJVeXhMUVVGQkxGTkJRVUVzUTBGQlZTeE5RVUZOTEVOQlFVRTdRVUZCUVN4SlFVTnFSaXhYUVVGaExFVkJRVUVzSzBKQlFVRTdRVUZCUVN4SFFVTm1PMEZCUVVFc1JVRkRRU3hGUVVGRkxFZEJRVXNzUlVGQlFTeE5RVUZCTEVWQlFWRXNTMEZCVHl4RlFVRkJMRWRCUVVFc1JVRkJTeXhOUVVGTkxIZERRVUY1UXl4RlFVRkJPMEZCUVVFc1JVRkRNVVU3UVVGQlFTeEpRVU5GTEVkQlFVc3NSVUZCUVN4SlFVRkJPMEZCUVVFc1IwRkRVRHRCUVVOR0xFVkJRVUU3UVVGRlR5eE5RVUZOTEhsQ1FVRnRSQ3hIUVVGQk8wRkJRVUVzUlVGRE9VUTdRVUZCUVN4SlFVTkZMRWRCUVVzc1JVRkJRU3hQUVVGQk8wRkJRVUVzUjBGRFVEdEJRVUZCTEVWQlEwRTdRVUZCUVN4SlFVTkZMRWRCUVVzc1JVRkJRU3hWUVVGQk8wRkJRVUVzUjBGRFVEdEJRVUZCTEVWQlEwRTdRVUZCUVN4SlFVTkZMRWRCUVVzc1JVRkJRU3hSUVVGQk8wRkJRVUVzUjBGRFVEdEJRVU5HTEVWQlFVRTdRVUZKUVN4TlFVRk5MRFpDUVVGMVJDeEhRVUZCTzBGQlFVRXNSVUZETTBRc1IwRkJTU3hOUVVGQkxFTkJRVThzTUVKQlFUWkNMRWRCUVVFc2VVSkJRVUVzUjBGQk5FSXNSVUZCUXp0QlFVRkJMRVZCUTNKRkxFZEJRVWNzYjBKQlFVRTdRVUZCUVN4RlFVTklMRVZCUVVVc1MwRkJTeXhSUVVGVExFVkJRVUU3UVVGQlFTeEZRVU5vUWl4RlFVRkZMRXRCUVVzc1QwRkJVU3hGUVVGQk8wRkJRVUVzUlVGRFppeEZRVUZGTEV0QlFVc3NUMEZCVVN4RlFVRkJPMEZCUVVFc1JVRkRaaXhGUVVGRkxFdEJRVXNzVjBGQldTeEZRVUZCTzBGQlFVRXNSVUZEYmtJc1JVRkJSU3hMUVVGTExGVkJRVmNzUlVGQlFUdEJRVUZCTEVWQlEyeENMRVZCUVVVc1MwRkJTeXhOUVVGakxFVkJRVUU3UVVGQlFTeEZRVU55UWl4RlFVRkZMRXRCUVVzc1UwRkJWU3hGUVVGQk8wRkJRVUVzUlVGRGFrSXNSVUZCUlN4TFFVRkxMRk5CUVZVc1JVRkJRVHRCUVVGQkxFVkJRMnBDTEVWQlFVVXNTMEZCU3l4aFFVRmpMRVZCUVVFN1FVRkJRU3hGUVVOeVFpeEZRVUZGTEV0QlFVc3NZMEZCWlN4RlFVRkJPMEZCUTNoQ0xFTkJRVUVzUTBGQlFUdEJRVVZuUWl4VFFVRkJMSE5DUVVGQkxFTkJRMlFzVFVGRFFTeFBRVU1yUWl4RlFVRkJPMEZCUXk5Q0xFVkJRVThzVDBGQlFTeEZRVUZCTEVOQlFVY3NTVUZCU1N4RFFVRkZMRU5CUVVFc1NVRkJRVHRCUVVGQkxFbEJRMlFzZDBKQlFYbENMRVZCUVVFN1FVRkJRU3hKUVVONlFpeEhRVUZCTEVOQlFVa3NRMEZCUXl4TFFVRlZMRXRCUVVFN1FVRkRZaXhOUVVGSkxFbEJRVUVzUlVGQlF5d3JRa0ZCVHl4TlFVRlJMRU5CUVVFc1JVRkJRVHRCUVVOc1FpeFJRVUZCTEU5QlFVOHNSVUZCUXl4RFFVRkJPMEZCUVVFc1QwRkRWanRCUVVWQkxFMUJRVUVzU1VGQlNTeFBRVUZWTEVkQlFVRXNTMEZCUVN4RFFVRkJPMEZCUTJRc1RVRkJRU3hKUVVGSkxFOUJRVlVzUjBGQlFTeExRVUZCTEVOQlFVRTdRVUZEWkN4TlFVRkJMRTFCUVUwc1UwRkJNRUlzUlVGQlF5eERRVUZCTzBGQlJXcERMRTFCUVZjc1MwRkJRU3hOUVVGQkxFTkJRVUVzU1VGQlN5eE5RVUZOTEUxQlFWRXNSVUZCUVR0QlFVTTFRaXhSUVVGTkxFMUJRVUVzU1VGQlFTeEhRVUZQTEcxQ1FVRnZRaXhEUVVGQkxFTkJRVUVzUlVGQlJ5eExRVUZMTEVOQlFVRXNRMEZCUVR0QlFVTjZReXhSUVVGUExFMUJRVUVzUTBGQlFTeEpRVUZCTEVOQlFVc3NZVUZCYVVJc1EwRkJRU3hIUVVGQkxFTkJRVUVzUTBGQlFUdEJRVUZCTEU5QlF5OUNPMEZCUlVFc1RVRkJRU3hKUVVGSkxFTkJRVU1zVDBGQlV5eEZRVUZCTzBGQlExb3NVVUZCUVN4UFFVRkJMRWRCUVZVc1JVRkJReXhEUVVGQk8wRkJRVUVzVDBGRFlqdEJRVVZCTEUxQlFVRXNUVUZCVFN4VFFVRjFReXhGUVVGRExFTkJRVUU3UVVGRk9VTXNUVUZCUVN4TFFVRkJMRTFCUVZjc1VVRkJVU3cyUWtGQkswSXNSVUZCUVR0QlFVTm9SQ3hSUVVGQkxFMUJRVTBzUjBGQlRTeEhRVUZCTEU5QlFVRXNRMEZCVVN4SlFVRkxMRU5CUVVFc1IwRkJRU3hEUVVGQkxFbEJRVkVzUlVGQlF5eERRVUZCTzBGQlJXeERMRkZCUVVrc1NVRkJRU3hIUVVGQkxFTkJRVWtzVFVGQlZ5eExRVUZCTERCQ1FVRkJMRU5CUVRKQ0xFbEJRVTBzUlVGQlFUdEJRVU5zUkN4VlFVRkJMRk5CUVVFN1FVRkJRU3hUUVVOR08wRkJSVUVzVVVGQlFTeE5RVUZOTEZOQlFYRkRMRVZCUVVVc1IwRkJRU3hGUVVGTExFdEJRVXNzUjBGQlN5eEZRVUZCTEV0QlFVRXNSVUZCVHl4TFFVRkxMRXRCUVUwc1JVRkJRU3hEUVVGQk8wRkJSVGxGTEZGQlFVa3NTVUZCUVN4SFFVRkJMRU5CUVVrc1RVRkJWeXhMUVVGQkxEQkNRVUZCTEVOQlFUSkNMRWxCUVUwc1JVRkJRVHRCUVVOc1JDeFZRVUZCTEUxQlFVRXNRMEZCVHl4UFFVRlBMRWRCUVVrc1EwRkJRU3hMUVVGQkxFTkJRVUU3UVVGQlFTeFRRVU5pTEUxQlFVRTdRVUZEVEN4VlFVRkJMRTFCUVUwc1MwRkJVeXhIUVVGQkxFTkJRVUVzUjBGQlFTeERRVUZKTEV0QlFWTXNTVUZCUVN4SlFVRkJMRU5CUVVzc1MwRkJTeXhYUVVGWkxFVkJRVUVzUTBGQlFUdEJRVU5zUkN4VlFVRkJMRTFCUVVFc1EwRkJUeXhSUVVGUkxFMUJRVThzUTBGQlFTeExRVUZCTEVOQlFVRXNRMEZCUVR0QlFVVjBRaXhWUVVGQkxFbEJRVWtzUTBGQlF5eE5RVUZCTEVOQlFVOHNTMEZCVXl4SlFVRkJMRWxCUVVFc1EwRkJTeXhMUVVGUExFVkJRVUU3UVVGREwwSXNXVUZCVHl4TlFVRkJMRU5CUVVFc1MwRkJRU3hIUVVGUkxFbEJRVXNzUTBGQlFTeExRVUZCTEVOQlFVMHNTMEZCU3l4RFFVRkJMRU5CUVVFN1FVRkJRU3hYUVVOcVF6dEJRVUZCTEZOQlEwWTdRVUZGUVN4UlFVRkpMRWxCUVVFc1RVRkJRU3hEUVVGUExFdEJRVk1zU1VGQlFTeE5RVUZCTEVOQlFVOHNTVUZCVFN4RlFVRkJPMEZCUXk5Q0xGVkJRVUVzVFVGQlFTeERRVUZQTEV0QlFVc3NUVUZCVFN4RFFVRkJMRU5CUVVFN1FVRkRiRUlzVlVGQlNTeEpRVUZCTEUxQlFVRXNRMEZCVHl4UlFVRlJMRTFCUVZFc1JVRkJRVHRCUVVONlFpeFpRVUZWTEU5QlFVRXNSMEZCUVN4SlFVRkJMRU5CUVVFN1FVRkJRU3hYUVVOYUxFMUJRVUVzU1VGQlZ5eE5RVUZQTEVOQlFVRXNSMEZCUVN4TFFVRlJMRTFCUVZFc1JVRkJRVHRCUVVOb1F5eFpRVUZWTEU5QlFVRXNSMEZCUVN4SlFVRkJMRU5CUVVFN1FVRkJRU3hYUVVOYU8wRkJRVUVzVTBGRFJqdEJRVUZCTEU5QlEwWTdRVUZGUVN4TlFVRkpMRWxCUVVFc1EwRkJReXhQUVVGWExFbEJRVUVzUTBGQlF5eFBRVUZUTEVWQlFVRTdRVUZEZUVJc1VVRkJRU3hQUVVGQkxFTkJRVkVzVFVGQlRTdzBSRUZCTkVRc1EwRkJRU3hEUVVGQk8wRkJRekZGTEZGQlFVRXNUMEZCVHl4RlFVRkRMRU5CUVVFN1FVRkJRU3hQUVVOV08wRkJSMEVzVFVGQlFTeE5RVUZOTEZOQlFUUkNMRVZCUVVNc1EwRkJRVHRCUVVWdVF5eE5RVUZCTEV0QlFVRXNTVUZCVXl4RFFVRkpMRWRCUVVFc1EwRkJRU3hGUVVGSExFTkJRVWtzUjBGQlFTeExRVUZCTEVOQlFVMHNVVUZCVVN4RFFVRkxMRVZCUVVFc1JVRkJRVHRCUVVOeVF5eFJRVUZCTEUxQlFVMHNTVUZCZDBJc1IwRkJRVHRCUVVGQkxGVkJRelZDTEVsQlFVMHNSVUZCUVN4VFFVRkJPMEZCUVVFc1ZVRkRUaXhMUVVGUExFVkJRVUVzUzBGQlFUdEJRVUZCTEZOQlExUXNRMEZCUVR0QlFVVkJMRkZCUVVFc1MwRkJRU3hOUVVGWExFdEJRVXNzVFVGQlVTeEZRVUZCTzBGQlEzUkNMRlZCUVVFc1NVRkJTU3hEUVVGVExFZEJRVUVzUzBGQlFTeERRVUZCTEVOQlFVRTdRVUZGWWl4VlFVRkJMRWxCUVVrc1JVRkJSU3hKUVVGTkxFVkJRVUU3UVVGRFZpeFpRVUZCTEVOQlFVRXNSMEZCU1N4RFFVRkZMRU5CUVVFc1NVRkJRU3hEUVVGQk8wRkJRVUVzVjBGRFVpeE5RVUZCTEVsQlFWY3NSVUZCUlN4TFFVRlBMRVZCUVVFN1FVRkRiRUlzV1VGQlFTeERRVUZCTEVkQlFVa3NRMEZCUlN4RFFVRkJMRXRCUVVFc1EwRkJUU3hOUVVGUExFTkJRVUVzUjBGQlFTeERRVUZKTEVOQlFVTXNRMEZCUVN4RFFVRkJPMEZCUTNoQ0xGbEJRVWtzU1VGQlFTeERRVUZCTEV0QlFVMHNTMEZCWVN4RFFVRkJMRWxCUVVFc1EwRkJRU3hEUVVGRkxFdEJRVThzUlVGQlFUdEJRVU01UWl4alFVRkJMRTFCUVUwc1MwRkJVU3hIUVVGQkxFTkJRVUVzUTBGQlJTeExRVUZOTEVOQlFVRXNTVUZCUVN4RFFVRkxMRU5CUVVNc1EwRkJRU3hEUVVGQk8wRkJRelZDTEdOQlFVRXNTVUZCU1N4TFFVRlBMRVZCUVVFN1FVRkRWQ3huUWtGQlFTeERRVUZCTEVkQlFVa3NTMEZCVFN4RFFVRkJMRU5CUVVFc1EwRkJRU3hIUVVGTExFdEJRVTBzUTBGQlFTeERRVUZCTEVOQlFVRXNSMEZCU3l4TFFVRk5MRU5CUVVFc1EwRkJRU3hEUVVGQkxFTkJRVUU3UVVGQlFTeGxRVU5zUXp0QlFVRkJMR0ZCUTBZN1FVRkJRU3hYUVVOR08wRkJSVUVzVlVGQlNTeEpRVUZCTEVOQlFVRXNTMEZCVFN4SlFVRlJMRWxCUVVFc1EwRkJRU3hMUVVGTkxFdEJRVmNzUTBGQlFTeEZRVUZCTzBGQlEycERMRmxCUVVFc1NVRkJTU3hEUVVGRkxFTkJRVUVzUzBGQlFTeEpRVUZUTEU5QlFVOHNRMEZCUVN4TFFVRk5MRkZCUVZVc1JVRkJRVHRCUVVOd1F5eGpRVUZKTEVOQlFVRXNSMEZCUVN4RFFVRkJMRU5CUVVVc1RVRkJUU3hIUVVGSExFTkJRVUVzUTBGQlFUdEJRVUZCTEdGQlEycENPMEZCUTBFc1dVRkJReXhKUVVGQkxFTkJRV0VzUlVGQlJTeEhRVUZQTEVOQlFVRXNSMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hYUVVONlFqdEJRVUZCTEZOQlEwWTdRVUZGUVN4UlFVRkJMRTFCUVVFc1EwRkJUeXhMUVVGTExFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlFVRXNUMEZEYkVJN1FVRkRRU3hOUVVGUExFOUJRVUVzVFVGQlFTeERRVUZCTzBGQlFVRXNTMEZEVWl4RFFVRkJPMEZCUVVFc1IwRkRTQ3hEUVVGQk8wRkJRMFlzUTBGQlFUdEJRVTFCTEUxQlFVMHNXVUZCWlN4SFFVRkJPMEZCUVVFc1JVRkRia0lzV1VGQlFUdEJRVUZCTEVWQlEwRXNUVUZCUVR0QlFVRkJMRVZCUTBFc1pVRkJRVHRCUVVGQkxFVkJRMEVzSzBKQlFVRTdRVUZEUml4RFFVRkJMRU5CUVVFN1FVRkxUeXhUUVVGVExITkNRVUZ6UWl4VlFVRnZReXhGUVVGQk8wRkJRM2hGTEVWQlFVMHNUVUZCUVN4RlFVRkZMRTFCUVZNc1IwRkJRU3hWUVVGQkxFTkJRVUU3UVVGRGFrSXNSVUZCUVN4UFFVRlBMRU5CUVVNc1ZVRkJRU3hEUVVGWExGZEJRV1VzU1VGQlFTeFpRVUZCTEVOQlFXRXNVMEZCVXl4SlFVRkpMRU5CUVVFc1EwRkJRVHRCUVVNNVJEczdPenNpZlE9PVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQk8sTUFBTSx5QkFBK0MsR0FBQTtBQUkxRCxFQUFBLGlCQUFBLEVBQW1CLENBQUMsSUFBYyxLQUFBO0FBQzVCLElBQUEsSUFBQSxTQUFTLElBQU0sSUFBQSxJQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUEsSUFBQSxDQUFBLEtBQUssQ0FBRyxFQUFBO0FBQ3pCLE1BQTJCLE1BQUEsRUFBQSxHQUFBLElBQW5CLEVBQUEsRUEzQmQsS0FBQSxFQUFBLEdBMkJpQyxFQUFULEVBQUEsSUFBQSxHQUFBLFNBQVMsQ0FBQSxFQUFBLEVBQVQsQ0FBVixPQUFBLENBQUEsQ0FBQSxDQUFBO0FBQ1IsTUFBQSxPQUFPLGFBQUEsQ0FBQSxjQUFBLENBQUEsRUFBQSxFQUNGLElBREUsQ0FBQSxFQUFBO1FBRUwsTUFBUSxFQUFBO1VBQ04sS0FBTyxFQUFBLGtCQUFBO0FBQ1As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
@@ -0,0 +1,77 @@
1
+ import { config } from '@grafana/runtime';
2
+ import { cloneDeep, partition, groupBy, map, every, find, head, concat } from 'lodash';
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __spreadValues = (a, b) => {
10
+ for (var prop in b || (b = {}))
11
+ if (__hasOwnProp.call(b, prop))
12
+ __defNormalProp(a, prop, b[prop]);
13
+ if (__getOwnPropSymbols)
14
+ for (var prop of __getOwnPropSymbols(b)) {
15
+ if (__propIsEnum.call(b, prop))
16
+ __defNormalProp(a, prop, b[prop]);
17
+ }
18
+ return a;
19
+ };
20
+ function postProcessQueryResult(annotation, results) {
21
+ if (annotation.snapshotData) {
22
+ annotation = cloneDeep(annotation);
23
+ delete annotation.snapshotData;
24
+ }
25
+ const processed = results.map((item) => {
26
+ var _a;
27
+ const processedItem = __spreadValues({}, item);
28
+ processedItem.source = annotation;
29
+ processedItem.color = config.theme2.visualization.getColorByName(annotation.iconColor);
30
+ processedItem.type = annotation.name;
31
+ processedItem.isRegion = Boolean(processedItem.timeEnd && processedItem.time !== processedItem.timeEnd);
32
+ switch ((_a = processedItem.newState) == null ? void 0 : _a.toLowerCase()) {
33
+ case "pending":
34
+ processedItem.color = "yellow";
35
+ break;
36
+ case "alerting":
37
+ processedItem.color = "red";
38
+ break;
39
+ case "ok":
40
+ processedItem.color = "green";
41
+ break;
42
+ case "normal":
43
+ processedItem.color = "green";
44
+ break;
45
+ case "no_data":
46
+ processedItem.color = "gray";
47
+ break;
48
+ case "nodata":
49
+ processedItem.color = "gray";
50
+ break;
51
+ }
52
+ return processedItem;
53
+ });
54
+ return processed;
55
+ }
56
+ function dedupAnnotations(annotations) {
57
+ let dedup = [];
58
+ const events = partition(annotations, "id");
59
+ const eventsById = groupBy(events[0], "id");
60
+ dedup = map(eventsById, (eventGroup) => {
61
+ if (eventGroup.length > 1 && !every(eventGroup, isPanelAlert)) {
62
+ return find(eventGroup, (event) => {
63
+ return event.eventType !== "panel-alert";
64
+ });
65
+ } else {
66
+ return head(eventGroup);
67
+ }
68
+ });
69
+ dedup = concat(dedup, events[1]);
70
+ return dedup;
71
+ }
72
+ function isPanelAlert(event) {
73
+ return event.eventType === "panel-alert";
74
+ }
75
+
76
+ export { dedupAnnotations, postProcessQueryResult };
77
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3F1ZXJ5aW5nL2xheWVycy9hbm5vdGF0aW9ucy91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25maWcgfSBmcm9tICdAZ3JhZmFuYS9ydW50aW1lJztcbmltcG9ydCB7IGNsb25lRGVlcCwgcGFydGl0aW9uLCBncm91cEJ5LCBtYXAsIGV2ZXJ5LCBmaW5kLCBoZWFkLCBjb25jYXQgfSBmcm9tICdsb2Rhc2gnO1xuXG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19wcm9wSXNFbnVtID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBfX2RlZk5vcm1hbFByb3AgPSAob2JqLCBrZXksIHZhbHVlKSA9PiBrZXkgaW4gb2JqID8gX19kZWZQcm9wKG9iaiwga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlIH0pIDogb2JqW2tleV0gPSB2YWx1ZTtcbnZhciBfX3NwcmVhZFZhbHVlcyA9IChhLCBiKSA9PiB7XG4gIGZvciAodmFyIHByb3AgaW4gYiB8fCAoYiA9IHt9KSlcbiAgICBpZiAoX19oYXNPd25Qcm9wLmNhbGwoYiwgcHJvcCkpXG4gICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gIGlmIChfX2dldE93blByb3BTeW1ib2xzKVxuICAgIGZvciAodmFyIHByb3Agb2YgX19nZXRPd25Qcm9wU3ltYm9scyhiKSkge1xuICAgICAgaWYgKF9fcHJvcElzRW51bS5jYWxsKGIsIHByb3ApKVxuICAgICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gICAgfVxuICByZXR1cm4gYTtcbn07XG5mdW5jdGlvbiBwb3N0UHJvY2Vzc1F1ZXJ5UmVzdWx0KGFubm90YXRpb24sIHJlc3VsdHMpIHtcbiAgaWYgKGFubm90YXRpb24uc25hcHNob3REYXRhKSB7XG4gICAgYW5ub3RhdGlvbiA9IGNsb25lRGVlcChhbm5vdGF0aW9uKTtcbiAgICBkZWxldGUgYW5ub3RhdGlvbi5zbmFwc2hvdERhdGE7XG4gIH1cbiAgY29uc3QgcHJvY2Vzc2VkID0gcmVzdWx0cy5tYXAoKGl0ZW0pID0+IHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgcHJvY2Vzc2VkSXRlbSA9IF9fc3ByZWFkVmFsdWVzKHt9LCBpdGVtKTtcbiAgICBwcm9jZXNzZWRJdGVtLnNvdXJjZSA9IGFubm90YXRpb247XG4gICAgcHJvY2Vzc2VkSXRlbS5jb2xvciA9IGNvbmZpZy50aGVtZTIudmlzdWFsaXphdGlvbi5nZXRDb2xvckJ5TmFtZShhbm5vdGF0aW9uLmljb25Db2xvcik7XG4gICAgcHJvY2Vzc2VkSXRlbS50eXBlID0gYW5ub3RhdGlvbi5uYW1lO1xuICAgIHByb2Nlc3NlZEl0ZW0uaXNSZWdpb24gPSBCb29sZWFuKHByb2Nlc3NlZEl0ZW0udGltZUVuZCAmJiBwcm9jZXNzZWRJdGVtLnRpbWUgIT09IHByb2Nlc3NlZEl0ZW0udGltZUVuZCk7XG4gICAgc3dpdGNoICgoX2EgPSBwcm9jZXNzZWRJdGVtLm5ld1N0YXRlKSA9PSBudWxsID8gdm9pZCAwIDogX2EudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICAgICAgcHJvY2Vzc2VkSXRlbS5jb2xvciA9IFwieWVsbG93XCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFsZXJ0aW5nXCI6XG4gICAgICAgIHByb2Nlc3NlZEl0ZW0uY29sb3IgPSBcInJlZFwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJva1wiOlxuICAgICAgICBwcm9jZXNzZWRJdGVtLmNvbG9yID0gXCJncmVlblwiO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJub3JtYWxcIjpcbiAgICAgICAgcHJvY2Vzc2VkSXRlbS5jb2xvciA9IFwiZ3JlZW5cIjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwibm9fZGF0YVwiOlxuICAgICAgICBwcm9jZXNzZWRJdGVtLmNvbG9yID0gXCJncmF5XCI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIm5vZGF0YVwiOlxuICAgICAgICBwcm9jZXNzZWRJdGVtLmNvbG9yID0gXCJncmF5XCI7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gcHJvY2Vzc2VkSXRlbTtcbiAgfSk7XG4gIHJldHVybiBwcm9jZXNzZWQ7XG59XG5mdW5jdGlvbiBkZWR1cEFubm90YXRpb25zKGFubm90YXRpb25zKSB7XG4gIGxldCBkZWR1cCA9IFtdO1xuICBjb25zdCBldmVudHMgPSBwYXJ0aXRpb24oYW5ub3RhdGlvbnMsIFwiaWRcIik7XG4gIGNvbnN0IGV2ZW50c0J5SWQgPSBncm91cEJ5KGV2ZW50c1swXSwgXCJpZFwiKTtcbiAgZGVkdXAgPSBtYXAoZXZlbnRzQnlJZCwgKGV2ZW50R3JvdXApID0+IHtcbiAgICBpZiAoZXZlbnRHcm91cC5sZW5ndGggPiAxICYmICFldmVyeShldmVudEdyb3VwLCBpc1BhbmVsQWxlcnQpKSB7XG4gICAgICByZXR1cm4gZmluZChldmVudEdyb3VwLCAoZXZlbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIGV2ZW50LmV2ZW50VHlwZSAhPT0gXCJwYW5lbC1hbGVydFwiO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBoZWFkKGV2ZW50R3JvdXApO1xuICAgIH1cbiAgfSk7XG4gIGRlZHVwID0gY29uY2F0KGRlZHVwLCBldmVudHNbMV0pO1xuICByZXR1cm4gZGVkdXA7XG59XG5mdW5jdGlvbiBpc1BhbmVsQWxlcnQoZXZlbnQpIHtcbiAgcmV0dXJuIGV2ZW50LmV2ZW50VHlwZSA9PT0gXCJwYW5lbC1hbGVydFwiO1xufVxuXG5leHBvcnQgeyBkZWR1cEFubm90YXRpb25zLCBwb3N0UHJvY2Vzc1F1ZXJ5UmVzdWx0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWRYUnBiSE11YW5NaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMeTR1THk0dUwzTnlZeTl4ZFdWeWVXbHVaeTlzWVhsbGNuTXZZVzV1YjNSaGRHbHZibk12ZFhScGJITXVkSE1pWFN3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaUx5OGdWR2hsYzJVZ2IzQjBJRzkxZEhNZ1lYSmxJR2hsY21VZ2IyNXNlU0JtYjNJZ2NYVnBZMnRsY2lCaGJtUWdaV0Z6YVdWeUlHMXBaM0poZEdsdmJpQjBieUJ5WldGamRDQmlZWE5sWkNCaGJtNXZkR0YwYVc5dWN5QmxaR2wwYjNKeklHRnVaQ0JpWldOaGRYTmxYRzR2THlCaGJtNXZkR0YwYVc5dUlITjFjSEJ2Y25RZ1FWQkpJRzVsWldSeklITnZiV1VnZDI5eWF5QjBieUJ6ZFhCd2IzSjBJR3hsYzNNZ1hDSnpkR0Z1WkdGeVpGd2lJR1ZrYVhSdmNuTWdiR2xyWlNCd2NtOXRaWFJvWlhWeklHRnVaQ0JvWlhKbElHbDBJR2x6SUc1dmRGeHVMeThnY0c5c2JIVjBhVzVuSUhCMVlteHBZeUJCVUVrdVhHNWNibWx0Y0c5eWRDQjdJRUZ1Ym05MFlYUnBiMjVGZG1WdWRDd2dRVzV1YjNSaGRHbHZibEYxWlhKNUxDQkVZWFJoVTI5MWNtTmxRWEJwSUgwZ1puSnZiU0FuUUdkeVlXWmhibUV2WkdGMFlTYzdYRzVwYlhCdmNuUWdleUJqYjI1bWFXY2dmU0JtY205dElDZEFaM0poWm1GdVlTOXlkVzUwYVcxbEp6dGNibWx0Y0c5eWRDQjdJR05zYjI1bFJHVmxjQ3dnWTI5dVkyRjBMQ0JsZG1WeWVTd2dabWx1WkN3Z1ozSnZkWEJDZVN3Z2FHVmhaQ3dnYldGd0xDQndZWEowYVhScGIyNGdmU0JtY205dElDZHNiMlJoYzJnbk8xeHVYRzVqYjI1emRDQnNaV2RoWTNsU2RXNXVaWElnUFNCYlhHNGdJQ2R3Y205dFpYUm9aWFZ6Snl4Y2JpQWdKMnh2YTJrbkxGeHVJQ0FuWld4aGMzUnBZM05sWVhKamFDY3NYRzRnSUNkbmNtRm1ZVzVoTFc5d1pXNXpaV0Z5WTJndFpHRjBZWE52ZFhKalpTY3NJQzh2SUdWNGRHVnlibUZzWEc1ZE8xeHVYRzR2S2lwY2JpQXFJRlZ6WlNCc1pXZGhZM2tnY25WdWJtVnlMaUJWYzJWa0lHOXViSGtnWVhNZ1lXNGdaWE5qWVhCbElHaGhkR05vSUdadmNpQmxZWE5wWlhJZ2RISmhibk5wZEdsdmJpQjBieUJTWldGamRDQmlZWE5sWkNCaGJtNXZkR0YwYVc5dUlHVmthWFJ2Y2k1Y2JpQXFMMXh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE5vYjNWc1pGVnpaVXhsWjJGamVWSjFibTVsY2loa1lYUmhjMjkxY21ObE9pQkVZWFJoVTI5MWNtTmxRWEJwS1RvZ1ltOXZiR1ZoYmlCN1hHNGdJR052Ym5OMElIc2dkSGx3WlNCOUlEMGdaR0YwWVhOdmRYSmpaVHRjYmlBZ2NtVjBkWEp1SUNGa1lYUmhjMjkxY21ObExtRnVibTkwWVhScGIyNXpJSHg4SUd4bFoyRmplVkoxYm01bGNpNXBibU5zZFdSbGN5aDBlWEJsS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSEJ2YzNSUWNtOWpaWE56VVhWbGNubFNaWE4xYkhRb1lXNXViM1JoZEdsdmJqb2dRVzV1YjNSaGRHbHZibEYxWlhKNUxDQnlaWE4xYkhSek9pQkJibTV2ZEdGMGFXOXVSWFpsYm5SYlhTazZJRUZ1Ym05MFlYUnBiMjVGZG1WdWRGdGRJSHRjYmlBZ0x5OGdhV1lnWVc1dWIzUmhkR2x2YmlCb1lYTWdjMjVoY0hOb2IzUkVZWFJoWEc0Z0lDOHZJRzFoYTJVZ1kyeHZibVVnWVc1a0lISmxiVzkyWlNCcGRGeHVJQ0JwWmlBb1lXNXViM1JoZEdsdmJpNXpibUZ3YzJodmRFUmhkR0VwSUh0Y2JpQWdJQ0JoYm01dmRHRjBhVzl1SUQwZ1kyeHZibVZFWldWd0tHRnVibTkwWVhScGIyNHBPMXh1SUNBZ0lHUmxiR1YwWlNCaGJtNXZkR0YwYVc5dUxuTnVZWEJ6YUc5MFJHRjBZVHRjYmlBZ2ZWeHVYRzRnSUM4dlhHNGdJR052Ym5OMElIQnliMk5sYzNObFpDQTlJSEpsYzNWc2RITXViV0Z3S0NocGRHVnRLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdjSEp2WTJWemMyVmtTWFJsYlNBOUlIc2dMaTR1YVhSbGJTQjlPMXh1WEc0Z0lDQWdjSEp2WTJWemMyVmtTWFJsYlM1emIzVnlZMlVnUFNCaGJtNXZkR0YwYVc5dU8xeHVJQ0FnSUhCeWIyTmxjM05sWkVsMFpXMHVZMjlzYjNJZ1BTQmpiMjVtYVdjdWRHaGxiV1V5TG5acGMzVmhiR2w2WVhScGIyNHVaMlYwUTI5c2IzSkNlVTVoYldVb1lXNXViM1JoZEdsdmJpNXBZMjl1UTI5c2IzSXBPMXh1SUNBZ0lIQnliMk5sYzNObFpFbDBaVzB1ZEhsd1pTQTlJR0Z1Ym05MFlYUnBiMjR1Ym1GdFpUdGNiaUFnSUNCd2NtOWpaWE56WldSSmRHVnRMbWx6VW1WbmFXOXVJRDBnUW05dmJHVmhiaWh3Y205alpYTnpaV1JKZEdWdExuUnBiV1ZGYm1RZ0ppWWdjSEp2WTJWemMyVmtTWFJsYlM1MGFXMWxJQ0U5UFNCd2NtOWpaWE56WldSSmRHVnRMblJwYldWRmJtUXBPMXh1WEc0Z0lDQWdjM2RwZEdOb0lDaHdjbTlqWlhOelpXUkpkR1Z0TG01bGQxTjBZWFJsUHk1MGIweHZkMlZ5UTJGelpTZ3BLU0I3WEc0Z0lDQWdJQ0JqWVhObElDZHdaVzVrYVc1bkp6cGNiaUFnSUNBZ0lDQWdjSEp2WTJWemMyVmtTWFJsYlM1amIyeHZjaUE5SUNkNVpXeHNiM2NuTzF4dUlDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJR05oYzJVZ0oyRnNaWEowYVc1bkp6cGNiaUFnSUNBZ0lDQWdjSEp2WTJWemMyVmtTWFJsYlM1amIyeHZjaUE5SUNkeVpXUW5PMXh1SUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNBZ0lHTmhjMlVnSjI5ckp6cGNiaUFnSUNBZ0lDQWdjSEp2WTJWemMyVmtTWFJsYlM1amIyeHZjaUE5SUNkbmNtVmxiaWM3WEc0Z0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdZMkZ6WlNBbmJtOXliV0ZzSnpvZ0x5OGdibWRoYkdWeWRDQW9YQ0p1YjNKdFlXeGNJaUJwYm5OMFpXRmtJRzltSUZ3aWIydGNJaWxjYmlBZ0lDQWdJQ0FnY0hKdlkyVnpjMlZrU1hSbGJTNWpiMnh2Y2lBOUlDZG5jbVZsYmljN1hHNGdJQ0FnSUNBZ0lHSnlaV0ZyTzF4dUlDQWdJQ0FnWTJGelpTQW5ibTlmWkdGMFlTYzZYRzRnSUNBZ0lDQWdJSEJ5YjJObGMzTmxaRWwwWlcwdVkyOXNiM0lnUFNBblozSmhlU2M3WEc0Z0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdZMkZ6WlNBbmJtOWtZWFJoSnpvZ0x5OGdibWRoYkdWeWRGeHVJQ0FnSUNBZ0lDQndjbTlqWlhOelpXUkpkR1Z0TG1OdmJHOXlJRDBnSjJkeVlYa25PMXh1SUNBZ0lDQWdJQ0JpY21WaGF6dGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnY0hKdlkyVnpjMlZrU1hSbGJUdGNiaUFnZlNrN1hHNWNiaUFnY21WMGRYSnVJSEJ5YjJObGMzTmxaRHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlHUmxaSFZ3UVc1dWIzUmhkR2x2Ym5Nb1lXNXViM1JoZEdsdmJuTTZJR0Z1ZVNrZ2UxeHVJQ0JzWlhRZ1pHVmtkWEFnUFNCYlhUdGNibHh1SUNBdkx5QlRjR3hwZENCbGRtVnVkSE1nWW5rZ1lXNXViM1JoZEdsdmJrbGtJSEJ5YjNCbGNuUjVJR1Y0YVhOMFpXNWpaVnh1SUNCamIyNXpkQ0JsZG1WdWRITWdQU0J3WVhKMGFYUnBiMjRvWVc1dWIzUmhkR2x2Ym5Nc0lDZHBaQ2NwTzF4dVhHNGdJR052Ym5OMElHVjJaVzUwYzBKNVNXUWdQU0JuY205MWNFSjVLR1YyWlc1MGMxc3dYU3dnSjJsa0p5azdYRzRnSUdSbFpIVndJRDBnYldGd0tHVjJaVzUwYzBKNVNXUXNJQ2hsZG1WdWRFZHliM1Z3S1NBOVBpQjdYRzRnSUNBZ2FXWWdLR1YyWlc1MFIzSnZkWEF1YkdWdVozUm9JRDRnTVNBbUppQWhaWFpsY25rb1pYWmxiblJIY205MWNDd2dhWE5RWVc1bGJFRnNaWEowS1NrZ2UxeHVJQ0FnSUNBZ0x5OGdSMlYwSUdacGNuTjBJRzV2Ymkxd1lXNWxiQ0JoYkdWeWRGeHVJQ0FnSUNBZ2NtVjBkWEp1SUdacGJtUW9aWFpsYm5SSGNtOTFjQ3dnS0dWMlpXNTBLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCbGRtVnVkQzVsZG1WdWRGUjVjR1VnSVQwOUlDZHdZVzVsYkMxaGJHVnlkQ2M3WEc0Z0lDQWdJQ0I5S1R0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHaGxZV1FvWlhabGJuUkhjbTkxY0NrN1hHNGdJQ0FnZlZ4dUlDQjlLVHRjYmx4dUlDQmtaV1IxY0NBOUlHTnZibU5oZENoa1pXUjFjQ3dnWlhabGJuUnpXekZkS1R0Y2JpQWdjbVYwZFhKdUlHUmxaSFZ3TzF4dWZWeHVYRzVtZFc1amRHbHZiaUJwYzFCaGJtVnNRV3hsY25Rb1pYWmxiblE2SUhzZ1pYWmxiblJVZVhCbE9pQnpkSEpwYm1jZ2ZTa2dlMXh1SUNCeVpYUjFjbTRnWlhabGJuUXVaWFpsYm5SVWVYQmxJRDA5UFNBbmNHRnVaV3d0WVd4bGNuUW5PMXh1ZlZ4dUlsMHNJbTVoYldWeklqcGJYU3dpYldGd2NHbHVaM01pT2lJN096czdPenM3T3pzN096czdPenM3T3pzN1FVRjFRbWRDTEZOQlFVRXNjMEpCUVVFc1EwRkJkVUlzV1VGQk5rSXNUMEZCSzBNc1JVRkJRVHRCUVVkcVNDeEZRVUZCTEVsQlFVa3NWMEZCVnl4WlFVRmpMRVZCUVVFN1FVRkRNMElzU1VGQlFTeFZRVUZCTEVkQlFXRXNWVUZCVlN4VlFVRlZMRU5CUVVFc1EwRkJRVHRCUVVOcVF5eEpRVUZCTEU5QlFVOHNWVUZCVnl4RFFVRkJMRmxCUVVFc1EwRkJRVHRCUVVGQkxFZEJRM0JDTzBGQlIwRXNSVUZCUVN4TlFVRk5MRk5CUVZrc1IwRkJRU3hQUVVGQkxFTkJRVkVzUjBGQlNTeERRVUZCTEVOQlFVTXNTVUZCVXl4TFFVRkJPMEZCYUVNeFF5eEpRVUZCTEVsQlFVRXNSVUZCUVN4RFFVRkJPMEZCYVVOSkxFbEJRVUVzVFVGQlRTeG5Ra0ZCWjBJc1kwRkJTeXhEUVVGQkxFVkJRVUVzUlVGQlFTeEpRVUZCTEVOQlFVRXNRMEZCUVR0QlFVVXpRaXhKUVVGQkxHRkJRVUVzUTBGQll5eE5RVUZUTEVkQlFVRXNWVUZCUVN4RFFVRkJPMEZCUTNaQ0xFbEJRVUVzWVVGQlFTeERRVUZqTEZGQlFWRXNUVUZCVHl4RFFVRkJMRTFCUVVFc1EwRkJUeXhoUVVGakxFTkJRVUVzWTBGQlFTeERRVUZsTEZkQlFWY3NVMEZCVXl4RFFVRkJMRU5CUVVFN1FVRkRja1lzU1VGQlFTeGhRVUZCTEVOQlFXTXNUMEZCVHl4VlFVRlhMRU5CUVVFc1NVRkJRU3hEUVVGQk8wRkJRMmhETEVsQlFVRXNZVUZCUVN4RFFVRmpMRmRCUVZjc1QwRkJVU3hEUVVGQkxHRkJRVUVzUTBGQll5eFhRVUZYTEdGQlFXTXNRMEZCUVN4SlFVRkJMRXRCUVZNc1kwRkJZeXhQUVVGUExFTkJRVUVzUTBGQlFUdEJRVVYwUnl4SlFVRlJMRkZCUVVFc1EwRkJRU3hGUVVGQkxFZEJRVUVzWVVGQlFTeERRVUZqTEdGQlFXUXNTVUZCZDBJc1IwRkJRU3hMUVVGQkxFTkJRVUVzUjBGQlFTeEZRVUZCTEVOQlFVRXNWMEZCUVN4RlFVRkJPMEZCUVVFc1RVRkRla0lzUzBGQlFTeFRRVUZCTzBGQlEwZ3NVVUZCUVN4aFFVRkJMRU5CUVdNc1MwRkJVU3hIUVVGQkxGRkJRVUVzUTBGQlFUdEJRVU4wUWl4UlFVRkJMRTFCUVVFN1FVRkJRU3hOUVVOSExFdEJRVUVzVlVGQlFUdEJRVU5JTEZGQlFVRXNZVUZCUVN4RFFVRmpMRXRCUVZFc1IwRkJRU3hMUVVGQkxFTkJRVUU3UVVGRGRFSXNVVUZCUVN4TlFVRkJPMEZCUVVFc1RVRkRSeXhMUVVGQkxFbEJRVUU3UVVGRFNDeFJRVUZCTEdGQlFVRXNRMEZCWXl4TFFVRlJMRWRCUVVFc1QwRkJRU3hEUVVGQk8wRkJRM1JDTEZGQlFVRXNUVUZCUVR0QlFVRkJMRTFCUTBjc1MwRkJRU3hSUVVGQk8wRkJRMGdzVVVGQlFTeGhRVUZCTEVOQlFXTXNTMEZCVVN4SFFVRkJMRTlCUVVFc1EwRkJRVHRCUVVOMFFpeFJRVUZCTEUxQlFVRTdRVUZCUVN4TlFVTkhMRXRCUVVFc1UwRkJRVHRCUVVOSUxGRkJRVUVzWVVGQlFTeERRVUZqTEV0QlFWRXNSMEZCUVN4TlFVRkJMRU5CUVVFN1FVRkRkRUlzVVVGQlFTeE5RVUZCTzBGQlFVRXNUVUZEUnl4TFFVRkJMRkZCUVVFN1FVRkRTQ3hSUVVGQkxHRkJRVUVzUTBGQll5eExRVUZSTEVkQlFVRXNUVUZCUVN4RFFVRkJPMEZCUTNSQ0xGRkJRVUVzVFVGQlFUdEJRVUZCTEV0QlFVRTdRVUZIU2l4SlFVRlBMRTlCUVVFc1lVRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFVpeERRVUZCTEVOQlFVRTdRVUZGUkN4RlFVRlBMRTlCUVVFc1UwRkJRU3hEUVVGQk8wRkJRMVFzUTBGQlFUdEJRVVZQTEZOQlFWTXNhVUpCUVdsQ0xGZEJRV3RDTEVWQlFVRTdRVUZEYWtRc1JVRkJRU3hKUVVGSkxGRkJRVkVzUlVGQlF5eERRVUZCTzBGQlIySXNSVUZCVFN4TlFVRkJMRTFCUVVFc1IwRkJVeXhUUVVGVkxFTkJRVUVzVjBGQlFTeEZRVUZoTEVsQlFVa3NRMEZCUVN4RFFVRkJPMEZCUlRGRExFVkJRVUVzVFVGQlRTeFZRVUZoTEVkQlFVRXNUMEZCUVN4RFFVRlJMRTFCUVU4c1EwRkJRU3hEUVVGQkxFTkJRVUVzUlVGQlNTeEpRVUZKTEVOQlFVRXNRMEZCUVR0QlFVTXhReXhGUVVGUkxFdEJRVUVzUjBGQlFTeEhRVUZCTEVOQlFVa3NWVUZCV1N4RlFVRkJMRU5CUVVNc1ZVRkJaU3hMUVVGQk8wRkJRM1JETEVsQlFVRXNTVUZCU1N4WFFVRlhMRTFCUVZNc1IwRkJRU3hEUVVGQkxFbEJRVXNzUTBGQlF5eExRVUZOTEVOQlFVRXNWVUZCUVN4RlFVRlpMRmxCUVZrc1EwRkJSeXhGUVVGQk8wRkJSVGRFTEUxQlFVOHNUMEZCUVN4SlFVRkJMRU5CUVVzc1ZVRkJXU3hGUVVGQkxFTkJRVU1zUzBGQlZTeExRVUZCTzBGQlEycERMRkZCUVVFc1QwRkJUeXhOUVVGTkxGTkJRV01zUzBGQlFTeGhRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTTFRaXhEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5KTEUxQlFVRTdRVUZEVEN4TlFVRkJMRTlCUVU4c1MwRkJTeXhWUVVGVkxFTkJRVUVzUTBGQlFUdEJRVUZCTEV0QlEzaENPMEZCUVVFc1IwRkRSQ3hEUVVGQkxFTkJRVUU3UVVGRlJDeEZRVUZSTEV0QlFVRXNSMEZCUVN4TlFVRkJMRU5CUVU4c1MwRkJUeXhGUVVGQkxFMUJRVUVzUTBGQlR5eERRVUZGTEVOQlFVRXNRMEZCUVN4RFFVRkJPMEZCUXk5Q0xFVkJRVThzVDBGQlFTeExRVUZCTEVOQlFVRTdRVUZEVkN4RFFVRkJPMEZCUlVFc1UwRkJVeXhoUVVGaExFdEJRVGhDTEVWQlFVRTdRVUZEYkVRc1JVRkJRU3hQUVVGUExFMUJRVTBzVTBGQll5eExRVUZCTEdGQlFVRXNRMEZCUVR0QlFVTTNRanM3T3pzaWZRPT1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUJnQixTQUFBLHNCQUFBLENBQXVCLFlBQTZCLE9BQStDLEVBQUE7QUFHakgsRUFBQSxJQUFJLFdBQVcsWUFBYyxFQUFBO0FBQzNCLElBQUEsVUFBQSxHQUFhLFVBQVUsVUFBVSxDQUFBLENBQUE7QUFDakMsSUFBQSxPQUFPLFVBQVcsQ0FBQSxZQUFBLENBQUE7QUFBQSxHQUFBO0FBSXBCLEVBQUEsTUFBTSxTQUFZLEdBQUEsT0FBQSxDQUFRLEdBQUksQ0FBQSxDQUFDLElBQVMsS0FBQTtBQWhDMUMsSUFBQSxJQUFBLEVBQUEsQ0FBQTtBQWlDSSxJQUFBLE1BQU0sYUFBZ0IsR0FBQSxjQUFBLENBQUssRUFBQSxFQUFBLElBQUEs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
@@ -0,0 +1,41 @@
1
+ import { Observable } from 'rxjs';
2
+ import { LoadingState } from '@grafana/schema';
3
+ import { sceneGraph } from '../core/sceneGraph/index.js';
4
+
5
+ function registerQueryWithController(entry) {
6
+ return (queryStream) => {
7
+ const queryControler = sceneGraph.getQueryController(entry.origin);
8
+ if (!queryControler) {
9
+ return queryStream;
10
+ }
11
+ return new Observable((observer) => {
12
+ if (!entry.cancel) {
13
+ entry.cancel = () => observer.complete();
14
+ }
15
+ queryControler.queryStarted(entry);
16
+ let markedAsCompleted = false;
17
+ const sub = queryStream.subscribe({
18
+ next: (v) => {
19
+ if (!markedAsCompleted && v.state !== LoadingState.Loading) {
20
+ markedAsCompleted = true;
21
+ queryControler.queryCompleted(entry);
22
+ }
23
+ observer.next(v);
24
+ },
25
+ error: (e) => observer.error(e),
26
+ complete: () => {
27
+ observer.complete();
28
+ }
29
+ });
30
+ return () => {
31
+ sub.unsubscribe();
32
+ if (!markedAsCompleted) {
33
+ queryControler.queryCompleted(entry);
34
+ }
35
+ };
36
+ });
37
+ };
38
+ }
39
+
40
+ export { registerQueryWithController };
41
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXJRdWVyeVdpdGhDb250cm9sbGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9xdWVyeWluZy9yZWdpc3RlclF1ZXJ5V2l0aENvbnRyb2xsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9hZGluZ1N0YXRlIH0gZnJvbSAnQGdyYWZhbmEvc2NoZW1hJztcbmltcG9ydCB7IHNjZW5lR3JhcGggfSBmcm9tICcuLi9jb3JlL3NjZW5lR3JhcGgvaW5kZXguanMnO1xuXG5mdW5jdGlvbiByZWdpc3RlclF1ZXJ5V2l0aENvbnRyb2xsZXIoZW50cnkpIHtcbiAgcmV0dXJuIChxdWVyeVN0cmVhbSkgPT4ge1xuICAgIGNvbnN0IHF1ZXJ5Q29udHJvbGVyID0gc2NlbmVHcmFwaC5nZXRRdWVyeUNvbnRyb2xsZXIoZW50cnkub3JpZ2luKTtcbiAgICBpZiAoIXF1ZXJ5Q29udHJvbGVyKSB7XG4gICAgICByZXR1cm4gcXVlcnlTdHJlYW07XG4gICAgfVxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGlmICghZW50cnkuY2FuY2VsKSB7XG4gICAgICAgIGVudHJ5LmNhbmNlbCA9ICgpID0+IG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgICBxdWVyeUNvbnRyb2xlci5xdWVyeVN0YXJ0ZWQoZW50cnkpO1xuICAgICAgbGV0IG1hcmtlZEFzQ29tcGxldGVkID0gZmFsc2U7XG4gICAgICBjb25zdCBzdWIgPSBxdWVyeVN0cmVhbS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAodikgPT4ge1xuICAgICAgICAgIGlmICghbWFya2VkQXNDb21wbGV0ZWQgJiYgdi5zdGF0ZSAhPT0gTG9hZGluZ1N0YXRlLkxvYWRpbmcpIHtcbiAgICAgICAgICAgIG1hcmtlZEFzQ29tcGxldGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHF1ZXJ5Q29udHJvbGVyLnF1ZXJ5Q29tcGxldGVkKGVudHJ5KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dCh2KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlKSA9PiBvYnNlcnZlci5lcnJvcihlKSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICBpZiAoIW1hcmtlZEFzQ29tcGxldGVkKSB7XG4gICAgICAgICAgcXVlcnlDb250cm9sZXIucXVlcnlDb21wbGV0ZWQoZW50cnkpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgeyByZWdpc3RlclF1ZXJ5V2l0aENvbnRyb2xsZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pY21WbmFYTjBaWEpSZFdWeWVWZHBkR2hEYjI1MGNtOXNiR1Z5TG1weklpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTl6Y21NdmNYVmxjbmxwYm1jdmNtVm5hWE4wWlhKUmRXVnllVmRwZEdoRGIyNTBjbTlzYkdWeUxuUnpJbDBzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3SUU5aWMyVnlkbUZpYkdVZ2ZTQm1jbTl0SUNkeWVHcHpKenRjYm1sdGNHOXlkQ0I3SUV4dllXUnBibWRUZEdGMFpTQjlJR1p5YjIwZ0owQm5jbUZtWVc1aEwzTmphR1Z0WVNjN1hHNXBiWEJ2Y25RZ2V5QnpZMlZ1WlVkeVlYQm9JSDBnWm5KdmJTQW5MaTR2WTI5eVpTOXpZMlZ1WlVkeVlYQm9KenRjYm1sdGNHOXlkQ0I3SUZGMVpYSjVVbVZ6ZFd4MFYybDBhRk4wWVhSbExDQlRZMlZ1WlZGMVpYSjVRMjl1ZEhKdmJHeGxja1Z1ZEhKNUlIMGdabkp2YlNBbkxpNHZZbVZvWVhacGIzSnpMMU5qWlc1bFVYVmxjbmxEYjI1MGNtOXNiR1Z5Snp0Y2JseHVMeW9xWEc0Z0tpQlhhV3hzSUd4dmIyc2dabTl5SUdFZ2MyTmxibVVnYjJKcVpXTjBJSGRwZEdnZ1lTQmlaV2hoZG1sdmNpQjBhR0YwSUdseklHRWdVMk5sYm1WUmRXVnllVU52Ym5SeWIyeHNaWElnWVc1a0lISmxaMmx6ZEdWeUlIUm9aU0J4ZFdWeWVTQjNhWFJvSUdsMExseHVJQ292WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnY21WbmFYTjBaWEpSZFdWeWVWZHBkR2hEYjI1MGNtOXNiR1Z5UEZRZ1pYaDBaVzVrY3lCUmRXVnllVkpsYzNWc2RGZHBkR2hUZEdGMFpUNG9aVzUwY25rNklGTmpaVzVsVVhWbGNubERiMjUwY205c2JHVnlSVzUwY25rcElIdGNiaUFnY21WMGRYSnVJQ2h4ZFdWeWVWTjBjbVZoYlRvZ1QySnpaWEoyWVdKc1pUeFVQaWtnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSEYxWlhKNVEyOXVkSEp2YkdWeUlEMGdjMk5sYm1WSGNtRndhQzVuWlhSUmRXVnllVU52Ym5SeWIyeHNaWElvWlc1MGNua3ViM0pwWjJsdUtUdGNiaUFnSUNCcFppQW9JWEYxWlhKNVEyOXVkSEp2YkdWeUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2NYVmxjbmxUZEhKbFlXMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QlBZbk5sY25aaFlteGxQRlErS0NodlluTmxjblpsY2lrZ1BUNGdlMXh1SUNBZ0lDQWdhV1lnS0NGbGJuUnllUzVqWVc1alpXd3BJSHRjYmlBZ0lDQWdJQ0FnWlc1MGNua3VZMkZ1WTJWc0lEMGdLQ2tnUFQ0Z2IySnpaWEoyWlhJdVkyOXRjR3hsZEdVb0tUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdjWFZsY25sRGIyNTBjbTlzWlhJdWNYVmxjbmxUZEdGeWRHVmtLR1Z1ZEhKNUtUdGNiaUFnSUNBZ0lHeGxkQ0J0WVhKclpXUkJjME52YlhCc1pYUmxaQ0E5SUdaaGJITmxPMXh1WEc0Z0lDQWdJQ0JqYjI1emRDQnpkV0lnUFNCeGRXVnllVk4wY21WaGJTNXpkV0p6WTNKcFltVW9lMXh1SUNBZ0lDQWdJQ0J1WlhoME9pQW9kaWtnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJR2xtSUNnaGJXRnlhMlZrUVhORGIyMXdiR1YwWldRZ0ppWWdkaTV6ZEdGMFpTQWhQVDBnVEc5aFpHbHVaMU4wWVhSbExreHZZV1JwYm1jcElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUcxaGNtdGxaRUZ6UTI5dGNHeGxkR1ZrSUQwZ2RISjFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIRjFaWEo1UTI5dWRISnZiR1Z5TG5GMVpYSjVRMjl0Y0d4bGRHVmtLR1Z1ZEhKNUtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ0lDQnZZbk5sY25abGNpNXVaWGgwS0hZcE8xeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0JsY25KdmNqb2dLR1VwSUQwK0lHOWljMlZ5ZG1WeUxtVnljbTl5S0dVcExGeHVJQ0FnSUNBZ0lDQmpiMjF3YkdWMFpUb2dLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJRzlpYzJWeWRtVnlMbU52YlhCc1pYUmxLQ2s3WEc0Z0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lDQWdjbVYwZFhKdUlDZ3BJRDArSUh0Y2JpQWdJQ0FnSUNBZ2MzVmlMblZ1YzNWaWMyTnlhV0psS0NrN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0NGdFlYSnJaV1JCYzBOdmJYQnNaWFJsWkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJSEYxWlhKNVEyOXVkSEp2YkdWeUxuRjFaWEo1UTI5dGNHeGxkR1ZrS0dWdWRISjVLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0I5S1R0Y2JpQWdmVHRjYm4xY2JpSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96czdPMEZCVVU4c1UwRkJVeXcwUWtGQk5FUXNTMEZCYTBNc1JVRkJRVHRCUVVNMVJ5eEZRVUZCTEU5QlFVOHNRMEZCUXl4WFFVRXJRaXhMUVVGQk8wRkJRM0pETEVsQlFVRXNUVUZCVFN4alFVRnBRaXhIUVVGQkxGVkJRVUVzUTBGQlZ5eHJRa0ZCYlVJc1EwRkJRU3hMUVVGQkxFTkJRVTBzVFVGQlRTeERRVUZCTEVOQlFVRTdRVUZEYWtVc1NVRkJRU3hKUVVGSkxFTkJRVU1zWTBGQlowSXNSVUZCUVR0QlFVTnVRaXhOUVVGUExFOUJRVUVzVjBGQlFTeERRVUZCTzBGQlFVRXNTMEZEVkR0QlFVVkJMRWxCUVU4c1QwRkJRU3hKUVVGSkxGVkJRV01zUTBGQlFTeERRVUZETEZGQlFXRXNTMEZCUVR0QlFVTnlReXhOUVVGSkxFbEJRVUVzUTBGQlF5eE5RVUZOTEUxQlFWRXNSVUZCUVR0QlFVTnFRaXhSUVVGTkxFdEJRVUVzUTBGQlFTeE5RVUZCTEVkQlFWTXNUVUZCVFN4UlFVRkJMRU5CUVZNc1VVRkJVeXhGUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU42UXp0QlFVVkJMRTFCUVVFc1kwRkJRU3hEUVVGbExHRkJRV0VzUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZEYWtNc1RVRkJRU3hKUVVGSkxHbENRVUZ2UWl4SFFVRkJMRXRCUVVFc1EwRkJRVHRCUVVWNFFpeE5RVUZOTEUxQlFVRXNSMEZCUVN4SFFVRk5MRmxCUVZrc1UwRkJWU3hEUVVGQk8wRkJRVUVzVVVGRGFFTXNTVUZCUVN4RlFVRk5MRU5CUVVNc1EwRkJUU3hMUVVGQk8wRkJRMWdzVlVGQlFTeEpRVUZKTEVOQlFVTXNhVUpCUVVFc1NVRkJjVUlzUTBGQlJTeERRVUZCTEV0QlFVRXNTMEZCVlN4aFFVRmhMRTlCUVZNc1JVRkJRVHRCUVVNeFJDeFpRVUZ2UWl4cFFrRkJRU3hIUVVGQkxFbEJRVUVzUTBGQlFUdEJRVU53UWl4WlFVRkJMR05CUVVFc1EwRkJaU3hsUVVGbExFdEJRVXNzUTBGQlFTeERRVUZCTzBGQlFVRXNWMEZEY2tNN1FVRkZRU3hWUVVGQkxGRkJRVUVzUTBGQlV5eExRVUZMTEVOQlFVTXNRMEZCUVN4RFFVRkJPMEZCUVVFc1UwRkRha0k3UVVGQlFTeFJRVU5CTEV0QlFVOHNSVUZCUVN4RFFVRkRMRU5CUVUwc1MwRkJRU3hSUVVGQkxFTkJRVk1zVFVGQlRTeERRVUZETEVOQlFVRTdRVUZCUVN4UlFVTTVRaXhWUVVGVkxFMUJRVTA3UVVGRFpDeFZRVUZCTEZGQlFVRXNRMEZCVXl4UlFVRlRMRVZCUVVFc1EwRkJRVHRCUVVGQkxGTkJRM0JDTzBGQlFVRXNUMEZEUkN4RFFVRkJMRU5CUVVFN1FVRkZSQ3hOUVVGQkxFOUJRVThzVFVGQlRUdEJRVU5ZTEZGQlFVRXNSMEZCUVN4RFFVRkpMRmRCUVZrc1JVRkJRU3hEUVVGQk8wRkJSV2hDTEZGQlFVRXNTVUZCU1N4RFFVRkRMR2xDUVVGdFFpeEZRVUZCTzBGQlEzUkNMRlZCUVVFc1kwRkJRU3hEUVVGbExHVkJRV1VzUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZCUVN4VFFVTnlRenRCUVVGQkxFOUJRMFlzUTBGQlFUdEJRVUZCTEV0QlEwUXNRMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRTQ3hEUVVGQk8wRkJRMFk3T3pzN0luMD1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBUU8sU0FBUyw0QkFBNEQsS0FBa0MsRUFBQTtBQUM1RyxFQUFBLE9BQU8sQ0FBQyxXQUErQixLQUFBO0FBQ3JDLElBQUEsTUFBTSxjQUFpQixHQUFBLFVBQUEsQ0FBVyxrQkFBbUIsQ0FBQSxLQUFBLENBQU0sTUFBTSxDQUFBLENBQUE7QUFDakUsSUFBQSxJQUFJLENBQUMsY0FBZ0IsRUFBQTtBQUNaLE1BQUEsT0FBQSxXQUFBLENBQUE7QUFBQSxLQUFBO0FBR0YsSUFBQSxPQUFBLElBQUksVUFBYyxDQUFBLENBQUMsUUFBYSxLQUFBO0FBQ2pDLE1BQUEsSUFBQSxDQUFDLE1BQU0sTUFBUSxFQUFBO0FBQ1gsUUFBQSxLQUFBLENBQUEsTUFBQSxHQUFTLE1BQU0sUUFBQSxDQUFTLFFBQVMsRUFBQSxDQUFBO0FBQUEsT0FBQTtBQUd6QyxNQUFBLGNBQUEsQ0FBZSxhQUFhLEtBQUssQ0FBQSxDQUFBO0FBQ2pDLE1BQUEsSUFBSSxpQkFBb0IsR0FBQSxLQUFBLENBQUE7QUFFbEIsTUFBQSxNQUFBLEdBQUEsR0FBTSxZQUFZLFNBQVUsQ0FBQTtBQUNoQyxRQUFBLElBQUEsRUFBTSxDQUFDLENBQU0sS0FBQTtBQUNYLFVBQUEsSUFBSSxDQUFDLGlCQUFBLElBQXFCLENBQUUsQ0FBQSxLQUFBLEtBQVUsYUFBYSxPQUFTLEVBQUE7QUFDdEMsWUFBQSxpQkFBQSxHQUFBLElBQUEsQ0FBQTtBQUNwQixZQUFBLGNBQUEsQ0FBZSxlQUFlLEtBQUssQ0FBQSxDQUFBO0FBQUEsV0FBQTtBQUdyQyxVQUFBLFFBQUEsQ0FBUyxLQUFLLENBQUMsQ0FBQSxDQUFBO0FBQUEsU0FBQTtBQUVqQixRQUFBLEtBQUEsRUFBTyxDQUFDLENBQUEsS0FBTSxRQUFTLENBQUEsS0FBQSxDQUFNLENBQUMsQ0FBQTtBQUM5QixRQUFBLFFBQUEsRUFBVSxNQUFNO0FBQ2QsVUFBQSxRQUFBLENBQVMsUUFBUyxFQUFBLENBQUE7QUFBQSxTQUFBO09BRXJCLENBQUEsQ0FBQTtBQUVELE1BQUEsT0FBTyxNQUFNO0FBQ1gsUUFBQSxHQUFBLENBQUksV0FBWSxFQUFBLENBQUE7QUFFaEIsUUFBQSxJQUFJLENBQUMsaUJBQW1CLEVBQUE7QUFDdEIsVUFBQSxjQUFBLENBQWUsZUFBZSxLQUFLLENBQUEsQ0FBQTtBQUFBLFNBQUE7QUFDckMsT0FBQSxDQUFBO0tBRUgsQ0FBQSxDQUFBO0FBQUEsR0FBQSxDQUFBO0FBRUw7Ozs7In0=