@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,117 @@
1
+ import { rangeUtil } from '@grafana/data';
2
+ import { VariableRefresh } from '@grafana/schema';
3
+ import { Select } from '@grafana/ui';
4
+ import React from 'react';
5
+ import { of } from 'rxjs';
6
+ import { sceneGraph } from '../../core/sceneGraph/index.js';
7
+ import { SceneObjectBase } from '../../core/SceneObjectBase.js';
8
+ import { SceneObjectUrlSyncConfig } from '../../services/SceneObjectUrlSyncConfig.js';
9
+ import { AUTO_VARIABLE_VALUE, AUTO_VARIABLE_TEXT } from '../constants.js';
10
+ import { SceneVariableValueChangedEvent } from '../types.js';
11
+
12
+ var __defProp = Object.defineProperty;
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
+ class IntervalVariable extends SceneObjectBase {
29
+ constructor(initialState) {
30
+ super(__spreadValues({
31
+ type: "interval",
32
+ value: "",
33
+ intervals: ["1m", "10m", "30m", "1h", "6h", "12h", "1d", "7d", "14d", "30d"],
34
+ name: "",
35
+ autoStepCount: 30,
36
+ autoMinInterval: "10s",
37
+ autoEnabled: false,
38
+ refresh: VariableRefresh.onTimeRangeChanged
39
+ }, initialState));
40
+ this._onChange = (value) => {
41
+ this.setState({ value: value.value });
42
+ this.publishEvent(new SceneVariableValueChangedEvent(this), true);
43
+ };
44
+ this._urlSync = new SceneObjectUrlSyncConfig(this, { keys: () => [this.getKey()] });
45
+ }
46
+ getKey() {
47
+ return `var-${this.state.name}`;
48
+ }
49
+ getUrlState() {
50
+ return { [this.getKey()]: this.state.value };
51
+ }
52
+ updateFromUrl(values) {
53
+ const update = {};
54
+ const val = values[this.getKey()];
55
+ if (typeof val === "string") {
56
+ if (val.startsWith("$__auto_interval_")) {
57
+ update.value = AUTO_VARIABLE_VALUE;
58
+ } else {
59
+ update.value = val;
60
+ }
61
+ }
62
+ this.setState(update);
63
+ }
64
+ getOptionsForSelect() {
65
+ const { value: currentValue, intervals, autoEnabled } = this.state;
66
+ let options = intervals.map((interval) => ({ value: interval, label: interval }));
67
+ if (autoEnabled) {
68
+ options = [{ value: AUTO_VARIABLE_VALUE, label: AUTO_VARIABLE_TEXT }, ...options];
69
+ }
70
+ if (currentValue && !options.some((option) => option.value === currentValue)) {
71
+ options.push({ value: currentValue, label: currentValue });
72
+ }
73
+ return options;
74
+ }
75
+ getValue() {
76
+ const { value, autoStepCount, autoMinInterval } = this.state;
77
+ if (value === AUTO_VARIABLE_VALUE) {
78
+ return this.getAutoRefreshInteval(autoStepCount, autoMinInterval);
79
+ }
80
+ return value;
81
+ }
82
+ getAutoRefreshInteval(autoStepCount, minRefreshInterval) {
83
+ const timeRange = sceneGraph.getTimeRange(this).state.value;
84
+ const intervalObject = rangeUtil.calculateInterval(timeRange, autoStepCount, minRefreshInterval);
85
+ return intervalObject.interval;
86
+ }
87
+ validateAndUpdate() {
88
+ const { value, intervals } = this.state;
89
+ let shouldPublish = false;
90
+ if (value === AUTO_VARIABLE_VALUE) {
91
+ shouldPublish = true;
92
+ } else if (!value && intervals.length > 0) {
93
+ const firstOption = intervals[0];
94
+ this.setState({ value: firstOption });
95
+ shouldPublish = true;
96
+ }
97
+ if (shouldPublish) {
98
+ this.publishEvent(new SceneVariableValueChangedEvent(this), true);
99
+ }
100
+ return of({});
101
+ }
102
+ }
103
+ IntervalVariable.Component = ({ model }) => {
104
+ const { key, value } = model.useState();
105
+ return /* @__PURE__ */ React.createElement(Select, {
106
+ id: key,
107
+ placeholder: "Select value",
108
+ width: "auto",
109
+ value,
110
+ tabSelectsValue: false,
111
+ options: model.getOptionsForSelect(),
112
+ onChange: model._onChange
113
+ });
114
+ };
115
+
116
+ export { IntervalVariable };
117
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZXJ2YWxWYXJpYWJsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdmFyaWFibGVzL3ZhcmlhbnRzL0ludGVydmFsVmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZ2VVdGlsIH0gZnJvbSAnQGdyYWZhbmEvZGF0YSc7XG5pbXBvcnQgeyBWYXJpYWJsZVJlZnJlc2ggfSBmcm9tICdAZ3JhZmFuYS9zY2hlbWEnO1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnQGdyYWZhbmEvdWknO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzY2VuZUdyYXBoIH0gZnJvbSAnLi4vLi4vY29yZS9zY2VuZUdyYXBoL2luZGV4LmpzJztcbmltcG9ydCB7IFNjZW5lT2JqZWN0QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvU2NlbmVPYmplY3RCYXNlLmpzJztcbmltcG9ydCB7IFNjZW5lT2JqZWN0VXJsU3luY0NvbmZpZyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL1NjZW5lT2JqZWN0VXJsU3luY0NvbmZpZy5qcyc7XG5pbXBvcnQgeyBBVVRPX1ZBUklBQkxFX1ZBTFVFLCBBVVRPX1ZBUklBQkxFX1RFWFQgfSBmcm9tICcuLi9jb25zdGFudHMuanMnO1xuaW1wb3J0IHsgU2NlbmVWYXJpYWJsZVZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG52YXIgX19kZWZQcm9wID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xudmFyIF9fZ2V0T3duUHJvcFN5bWJvbHMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO1xudmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG52YXIgX19wcm9wSXNFbnVtID0gT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbnZhciBfX2RlZk5vcm1hbFByb3AgPSAob2JqLCBrZXksIHZhbHVlKSA9PiBrZXkgaW4gb2JqID8gX19kZWZQcm9wKG9iaiwga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUsIHZhbHVlIH0pIDogb2JqW2tleV0gPSB2YWx1ZTtcbnZhciBfX3NwcmVhZFZhbHVlcyA9IChhLCBiKSA9PiB7XG4gIGZvciAodmFyIHByb3AgaW4gYiB8fCAoYiA9IHt9KSlcbiAgICBpZiAoX19oYXNPd25Qcm9wLmNhbGwoYiwgcHJvcCkpXG4gICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gIGlmIChfX2dldE93blByb3BTeW1ib2xzKVxuICAgIGZvciAodmFyIHByb3Agb2YgX19nZXRPd25Qcm9wU3ltYm9scyhiKSkge1xuICAgICAgaWYgKF9fcHJvcElzRW51bS5jYWxsKGIsIHByb3ApKVxuICAgICAgICBfX2RlZk5vcm1hbFByb3AoYSwgcHJvcCwgYltwcm9wXSk7XG4gICAgfVxuICByZXR1cm4gYTtcbn07XG5jbGFzcyBJbnRlcnZhbFZhcmlhYmxlIGV4dGVuZHMgU2NlbmVPYmplY3RCYXNlIHtcbiAgY29uc3RydWN0b3IoaW5pdGlhbFN0YXRlKSB7XG4gICAgc3VwZXIoX19zcHJlYWRWYWx1ZXMoe1xuICAgICAgdHlwZTogXCJpbnRlcnZhbFwiLFxuICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICBpbnRlcnZhbHM6IFtcIjFtXCIsIFwiMTBtXCIsIFwiMzBtXCIsIFwiMWhcIiwgXCI2aFwiLCBcIjEyaFwiLCBcIjFkXCIsIFwiN2RcIiwgXCIxNGRcIiwgXCIzMGRcIl0sXG4gICAgICBuYW1lOiBcIlwiLFxuICAgICAgYXV0b1N0ZXBDb3VudDogMzAsXG4gICAgICBhdXRvTWluSW50ZXJ2YWw6IFwiMTBzXCIsXG4gICAgICBhdXRvRW5hYmxlZDogZmFsc2UsXG4gICAgICByZWZyZXNoOiBWYXJpYWJsZVJlZnJlc2gub25UaW1lUmFuZ2VDaGFuZ2VkXG4gICAgfSwgaW5pdGlhbFN0YXRlKSk7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSAodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyB2YWx1ZTogdmFsdWUudmFsdWUgfSk7XG4gICAgICB0aGlzLnB1Ymxpc2hFdmVudChuZXcgU2NlbmVWYXJpYWJsZVZhbHVlQ2hhbmdlZEV2ZW50KHRoaXMpLCB0cnVlKTtcbiAgICB9O1xuICAgIHRoaXMuX3VybFN5bmMgPSBuZXcgU2NlbmVPYmplY3RVcmxTeW5jQ29uZmlnKHRoaXMsIHsga2V5czogKCkgPT4gW3RoaXMuZ2V0S2V5KCldIH0pO1xuICB9XG4gIGdldEtleSgpIHtcbiAgICByZXR1cm4gYHZhci0ke3RoaXMuc3RhdGUubmFtZX1gO1xuICB9XG4gIGdldFVybFN0YXRlKCkge1xuICAgIHJldHVybiB7IFt0aGlzLmdldEtleSgpXTogdGhpcy5zdGF0ZS52YWx1ZSB9O1xuICB9XG4gIHVwZGF0ZUZyb21VcmwodmFsdWVzKSB7XG4gICAgY29uc3QgdXBkYXRlID0ge307XG4gICAgY29uc3QgdmFsID0gdmFsdWVzW3RoaXMuZ2V0S2V5KCldO1xuICAgIGlmICh0eXBlb2YgdmFsID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBpZiAodmFsLnN0YXJ0c1dpdGgoXCIkX19hdXRvX2ludGVydmFsX1wiKSkge1xuICAgICAgICB1cGRhdGUudmFsdWUgPSBBVVRPX1ZBUklBQkxFX1ZBTFVFO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlLnZhbHVlID0gdmFsO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNldFN0YXRlKHVwZGF0ZSk7XG4gIH1cbiAgZ2V0T3B0aW9uc0ZvclNlbGVjdCgpIHtcbiAgICBjb25zdCB7IHZhbHVlOiBjdXJyZW50VmFsdWUsIGludGVydmFscywgYXV0b0VuYWJsZWQgfSA9IHRoaXMuc3RhdGU7XG4gICAgbGV0IG9wdGlvbnMgPSBpbnRlcnZhbHMubWFwKChpbnRlcnZhbCkgPT4gKHsgdmFsdWU6IGludGVydmFsLCBsYWJlbDogaW50ZXJ2YWwgfSkpO1xuICAgIGlmIChhdXRvRW5hYmxlZCkge1xuICAgICAgb3B0aW9ucyA9IFt7IHZhbHVlOiBBVVRPX1ZBUklBQkxFX1ZBTFVFLCBsYWJlbDogQVVUT19WQVJJQUJMRV9URVhUIH0sIC4uLm9wdGlvbnNdO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFZhbHVlICYmICFvcHRpb25zLnNvbWUoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBjdXJyZW50VmFsdWUpKSB7XG4gICAgICBvcHRpb25zLnB1c2goeyB2YWx1ZTogY3VycmVudFZhbHVlLCBsYWJlbDogY3VycmVudFZhbHVlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuICBnZXRWYWx1ZSgpIHtcbiAgICBjb25zdCB7IHZhbHVlLCBhdXRvU3RlcENvdW50LCBhdXRvTWluSW50ZXJ2YWwgfSA9IHRoaXMuc3RhdGU7XG4gICAgaWYgKHZhbHVlID09PSBBVVRPX1ZBUklBQkxFX1ZBTFVFKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRBdXRvUmVmcmVzaEludGV2YWwoYXV0b1N0ZXBDb3VudCwgYXV0b01pbkludGVydmFsKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGdldEF1dG9SZWZyZXNoSW50ZXZhbChhdXRvU3RlcENvdW50LCBtaW5SZWZyZXNoSW50ZXJ2YWwpIHtcbiAgICBjb25zdCB0aW1lUmFuZ2UgPSBzY2VuZUdyYXBoLmdldFRpbWVSYW5nZSh0aGlzKS5zdGF0ZS52YWx1ZTtcbiAgICBjb25zdCBpbnRlcnZhbE9iamVjdCA9IHJhbmdlVXRpbC5jYWxjdWxhdGVJbnRlcnZhbCh0aW1lUmFuZ2UsIGF1dG9TdGVwQ291bnQsIG1pblJlZnJlc2hJbnRlcnZhbCk7XG4gICAgcmV0dXJuIGludGVydmFsT2JqZWN0LmludGVydmFsO1xuICB9XG4gIHZhbGlkYXRlQW5kVXBkYXRlKCkge1xuICAgIGNvbnN0IHsgdmFsdWUsIGludGVydmFscyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBsZXQgc2hvdWxkUHVibGlzaCA9IGZhbHNlO1xuICAgIGlmICh2YWx1ZSA9PT0gQVVUT19WQVJJQUJMRV9WQUxVRSkge1xuICAgICAgc2hvdWxkUHVibGlzaCA9IHRydWU7XG4gICAgfSBlbHNlIGlmICghdmFsdWUgJiYgaW50ZXJ2YWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpcnN0T3B0aW9uID0gaW50ZXJ2YWxzWzBdO1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IHZhbHVlOiBmaXJzdE9wdGlvbiB9KTtcbiAgICAgIHNob3VsZFB1Ymxpc2ggPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoc2hvdWxkUHVibGlzaCkge1xuICAgICAgdGhpcy5wdWJsaXNoRXZlbnQobmV3IFNjZW5lVmFyaWFibGVWYWx1ZUNoYW5nZWRFdmVudCh0aGlzKSwgdHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiBvZih7fSk7XG4gIH1cbn1cbkludGVydmFsVmFyaWFibGUuQ29tcG9uZW50ID0gKHsgbW9kZWwgfSkgPT4ge1xuICBjb25zdCB7IGtleSwgdmFsdWUgfSA9IG1vZGVsLnVzZVN0YXRlKCk7XG4gIHJldHVybiAvKiBAX19QVVJFX18gKi8gUmVhY3QuY3JlYXRlRWxlbWVudChTZWxlY3QsIHtcbiAgICBpZDoga2V5LFxuICAgIHBsYWNlaG9sZGVyOiBcIlNlbGVjdCB2YWx1ZVwiLFxuICAgIHdpZHRoOiBcImF1dG9cIixcbiAgICB2YWx1ZSxcbiAgICB0YWJTZWxlY3RzVmFsdWU6IGZhbHNlLFxuICAgIG9wdGlvbnM6IG1vZGVsLmdldE9wdGlvbnNGb3JTZWxlY3QoKSxcbiAgICBvbkNoYW5nZTogbW9kZWwuX29uQ2hhbmdlXG4gIH0pO1xufTtcblxuZXhwb3J0IHsgSW50ZXJ2YWxWYXJpYWJsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lTVzUwWlhKMllXeFdZWEpwWVdKc1pTNXFjeUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDNaaGNtbGhZbXhsY3k5MllYSnBZVzUwY3k5SmJuUmxjblpoYkZaaGNtbGhZbXhsTG5SemVDSmRMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJ5WVc1blpWVjBhV3dzSUZObGJHVmpkR0ZpYkdWV1lXeDFaU0I5SUdaeWIyMGdKMEJuY21GbVlXNWhMMlJoZEdFbk8xeHVhVzF3YjNKMElIc2dWbUZ5YVdGaWJHVlNaV1p5WlhOb0lIMGdabkp2YlNBblFHZHlZV1poYm1FdmMyTm9aVzFoSnp0Y2JtbHRjRzl5ZENCN0lGTmxiR1ZqZENCOUlHWnliMjBnSjBCbmNtRm1ZVzVoTDNWcEp6dGNibWx0Y0c5eWRDQlNaV0ZqZENCbWNtOXRJQ2R5WldGamRDYzdYRzVwYlhCdmNuUWdleUJQWW5ObGNuWmhZbXhsTENCdlppQjlJR1p5YjIwZ0ozSjRhbk1uTzF4dWFXMXdiM0owSUhzZ2MyTmxibVZIY21Gd2FDQjlJR1p5YjIwZ0p5NHVMeTR1TDJOdmNtVXZjMk5sYm1WSGNtRndhQ2M3WEc1cGJYQnZjblFnZXlCVFkyVnVaVTlpYW1WamRFSmhjMlVnZlNCbWNtOXRJQ2N1TGk4dUxpOWpiM0psTDFOalpXNWxUMkpxWldOMFFtRnpaU2M3WEc1cGJYQnZjblFnZXlCVFkyVnVaVU52YlhCdmJtVnVkRkJ5YjNCekxDQlRZMlZ1WlU5aWFtVmpkRlZ5YkZaaGJIVmxjeUI5SUdaeWIyMGdKeTR1THk0dUwyTnZjbVV2ZEhsd1pYTW5PMXh1YVcxd2IzSjBJSHNnVTJObGJtVlBZbXBsWTNSVmNteFRlVzVqUTI5dVptbG5JSDBnWm5KdmJTQW5MaTR2TGk0dmMyVnlkbWxqWlhNdlUyTmxibVZQWW1wbFkzUlZjbXhUZVc1alEyOXVabWxuSnp0Y2JtbHRjRzl5ZENCN0lFRlZWRTlmVmtGU1NVRkNURVZmVkVWWVZDd2dRVlZVVDE5V1FWSkpRVUpNUlY5V1FVeFZSU0I5SUdaeWIyMGdKeTR1TDJOdmJuTjBZVzUwY3ljN1hHNXBiWEJ2Y25RZ2UxeHVJQ0JUWTJWdVpWWmhjbWxoWW14bExGeHVJQ0JUWTJWdVpWWmhjbWxoWW14bFUzUmhkR1VzWEc0Z0lGTmpaVzVsVm1GeWFXRmliR1ZXWVd4MVpVTm9ZVzVuWldSRmRtVnVkQ3hjYmlBZ1ZtRnNhV1JoZEdWQmJtUlZjR1JoZEdWU1pYTjFiSFFzWEc0Z0lGWmhjbWxoWW14bFZtRnNkV1VzWEc1OUlHWnliMjBnSnk0dUwzUjVjR1Z6Snp0Y2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQkpiblJsY25aaGJGWmhjbWxoWW14bFUzUmhkR1VnWlhoMFpXNWtjeUJUWTJWdVpWWmhjbWxoWW14bFUzUmhkR1VnZTF4dUlDQnBiblJsY25aaGJITTZJSE4wY21sdVoxdGRPMXh1SUNCMllXeDFaVG9nYzNSeWFXNW5PMXh1SUNCaGRYUnZSVzVoWW14bFpEb2dZbTl2YkdWaGJqdGNiaUFnWVhWMGIwMXBia2x1ZEdWeWRtRnNPaUJ6ZEhKcGJtYzdYRzRnSUdGMWRHOVRkR1Z3UTI5MWJuUTZJRzUxYldKbGNqdGNiaUFnY21WbWNtVnphRG9nVm1GeWFXRmliR1ZTWldaeVpYTm9PMXh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nU1c1MFpYSjJZV3hXWVhKcFlXSnNaVnh1SUNCbGVIUmxibVJ6SUZOalpXNWxUMkpxWldOMFFtRnpaVHhKYm5SbGNuWmhiRlpoY21saFlteGxVM1JoZEdVK1hHNGdJR2x0Y0d4bGJXVnVkSE1nVTJObGJtVldZWEpwWVdKc1pUeEpiblJsY25aaGJGWmhjbWxoWW14bFUzUmhkR1UrWEc1N1hHNGdJSEIxWW14cFl5QmpiMjV6ZEhKMVkzUnZjaWhwYm1sMGFXRnNVM1JoZEdVNklGQmhjblJwWVd3OFNXNTBaWEoyWVd4V1lYSnBZV0pzWlZOMFlYUmxQaWtnZTF4dUlDQWdJSE4xY0dWeUtIdGNiaUFnSUNBZ0lIUjVjR1U2SUNkcGJuUmxjblpoYkNjc1hHNGdJQ0FnSUNCMllXeDFaVG9nSnljc1hHNGdJQ0FnSUNCcGJuUmxjblpoYkhNNklGc25NVzBuTENBbk1UQnRKeXdnSnpNd2JTY3NJQ2N4YUNjc0lDYzJhQ2NzSUNjeE1tZ25MQ0FuTVdRbkxDQW5OMlFuTENBbk1UUmtKeXdnSnpNd1pDZGRMRnh1SUNBZ0lDQWdibUZ0WlRvZ0p5Y3NYRzRnSUNBZ0lDQmhkWFJ2VTNSbGNFTnZkVzUwT2lBek1DeGNiaUFnSUNBZ0lHRjFkRzlOYVc1SmJuUmxjblpoYkRvZ0p6RXdjeWNzWEc0Z0lDQWdJQ0JoZFhSdlJXNWhZbXhsWkRvZ1ptRnNjMlVzWEc0Z0lDQWdJQ0J5WldaeVpYTm9PaUJXWVhKcFlXSnNaVkpsWm5KbGMyZ3ViMjVVYVcxbFVtRnVaMlZEYUdGdVoyVmtMRnh1SUNBZ0lDQWdMaTR1YVc1cGRHbGhiRk4wWVhSbExGeHVJQ0FnSUgwcE8xeHVYRzRnSUNBZ2RHaHBjeTVmZFhKc1UzbHVZeUE5SUc1bGR5QlRZMlZ1WlU5aWFtVmpkRlZ5YkZONWJtTkRiMjVtYVdjb2RHaHBjeXdnZXlCclpYbHpPaUFvS1NBOVBpQmJkR2hwY3k1blpYUkxaWGtvS1YwZ2ZTazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR2RsZEV0bGVTZ3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lISmxkSFZ5YmlCZ2RtRnlMU1I3ZEdocGN5NXpkR0YwWlM1dVlXMWxmV0E3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMFZYSnNVM1JoZEdVb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhzZ1czUm9hWE11WjJWMFMyVjVLQ2xkT2lCMGFHbHpMbk4wWVhSbExuWmhiSFZsSUgwN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2RYQmtZWFJsUm5KdmJWVnliQ2gyWVd4MVpYTTZJRk5qWlc1bFQySnFaV04wVlhKc1ZtRnNkV1Z6S1NCN1hHNGdJQ0FnWTI5dWMzUWdkWEJrWVhSbE9pQlFZWEowYVdGc1BFbHVkR1Z5ZG1Gc1ZtRnlhV0ZpYkdWVGRHRjBaVDRnUFNCN2ZUdGNiaUFnSUNCamIyNXpkQ0IyWVd3Z1BTQjJZV3gxWlhOYmRHaHBjeTVuWlhSTFpYa29LVjA3WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUIyWVd3Z1BUMDlJQ2R6ZEhKcGJtY25LU0I3WEc0Z0lDQWdJQ0F2THlCemRYQndiM0owSUc5c1pDQmhkWFJ2SUdsdWRHVnlkbUZzSUhWeWJDQjJZV3gxWlZ4dUlDQWdJQ0FnYVdZZ0tIWmhiQzV6ZEdGeWRITlhhWFJvS0Nja1gxOWhkWFJ2WDJsdWRHVnlkbUZzWHljcEtTQjdYRzRnSUNBZ0lDQWdJSFZ3WkdGMFpTNTJZV3gxWlNBOUlFRlZWRTlmVmtGU1NVRkNURVZmVmtGTVZVVTdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2UxeHVJQ0FnSUNBZ0lDQjFjR1JoZEdVdWRtRnNkV1VnUFNCMllXdzdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhSb2FYTXVjMlYwVTNSaGRHVW9kWEJrWVhSbEtUdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5Qm5aWFJQY0hScGIyNXpSbTl5VTJWc1pXTjBLQ2s2SUVGeWNtRjVQRk5sYkdWamRHRmliR1ZXWVd4MVpUeHpkSEpwYm1jK1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCMllXeDFaVG9nWTNWeWNtVnVkRlpoYkhWbExDQnBiblJsY25aaGJITXNJR0YxZEc5RmJtRmliR1ZrSUgwZ1BTQjBhR2x6TG5OMFlYUmxPMXh1WEc0Z0lDQWdiR1YwSUc5d2RHbHZibk1nUFNCcGJuUmxjblpoYkhNdWJXRndLQ2hwYm5SbGNuWmhiQ2tnUFQ0Z0tIc2dkbUZzZFdVNklHbHVkR1Z5ZG1Gc0xDQnNZV0psYkRvZ2FXNTBaWEoyWVd3Z2ZTa3BPMXh1WEc0Z0lDQWdhV1lnS0dGMWRHOUZibUZpYkdWa0tTQjdYRzRnSUNBZ0lDQnZjSFJwYjI1eklEMGdXM3NnZG1Gc2RXVTZJRUZWVkU5ZlZrRlNTVUZDVEVWZlZrRk1WVVVzSUd4aFltVnNPaUJCVlZSUFgxWkJVa2xCUWt4RlgxUkZXRlFnZlN3Z0xpNHViM0IwYVc5dWMxMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdTV1lnZEdobElHTjFjbkpsYm5RZ2RtRnNkV1VnYVhNZ2JtOTBJR2x1SUhSb1pTQnNhWE4wSUc5bUlHbHVkR1Z5ZG1Gc2N5d2dZV1JrSUdsMElIUnZJSFJvWlNCc2FYTjBYRzRnSUNBZ2FXWWdLR04xY25KbGJuUldZV3gxWlNBbUppQWhiM0IwYVc5dWN5NXpiMjFsS0NodmNIUnBiMjRwSUQwK0lHOXdkR2x2Ymk1MllXeDFaU0E5UFQwZ1kzVnljbVZ1ZEZaaGJIVmxLU2tnZTF4dUlDQWdJQ0FnYjNCMGFXOXVjeTV3ZFhOb0tIc2dkbUZzZFdVNklHTjFjbkpsYm5SV1lXeDFaU3dnYkdGaVpXdzZJR04xY25KbGJuUldZV3gxWlNCOUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYjNCMGFXOXVjenRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhSV1lXeDFaU2dwT2lCV1lYSnBZV0pzWlZaaGJIVmxJSHRjYmlBZ0lDQmpiMjV6ZENCN0lIWmhiSFZsTENCaGRYUnZVM1JsY0VOdmRXNTBMQ0JoZFhSdlRXbHVTVzUwWlhKMllXd2dmU0E5SUhSb2FYTXVjM1JoZEdVN1hHNGdJQ0FnYVdZZ0tIWmhiSFZsSUQwOVBTQkJWVlJQWDFaQlVrbEJRa3hGWDFaQlRGVkZLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1blpYUkJkWFJ2VW1WbWNtVnphRWx1ZEdWMllXd29ZWFYwYjFOMFpYQkRiM1Z1ZEN3Z1lYVjBiMDFwYmtsdWRHVnlkbUZzS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHZGxkRUYxZEc5U1pXWnlaWE5vU1c1MFpYWmhiQ2hoZFhSdlUzUmxjRU52ZFc1ME9pQnVkVzFpWlhJc0lHMXBibEpsWm5KbGMyaEpiblJsY25aaGJEb2djM1J5YVc1bktTQjdYRzRnSUNBZ1kyOXVjM1FnZEdsdFpWSmhibWRsSUQwZ2MyTmxibVZIY21Gd2FDNW5aWFJVYVcxbFVtRnVaMlVvZEdocGN5a3VjM1JoZEdVdWRtRnNkV1U3WEc0Z0lDQWdZMjl1YzNRZ2FXNTBaWEoyWVd4UFltcGxZM1FnUFNCeVlXNW5aVlYwYVd3dVkyRnNZM1ZzWVhSbFNXNTBaWEoyWVd3b2RHbHRaVkpoYm1kbExDQmhkWFJ2VTNSbGNFTnZkVzUwTENCdGFXNVNaV1p5WlhOb1NXNTBaWEoyWVd3cE8xeHVJQ0FnSUhKbGRIVnliaUJwYm5SbGNuWmhiRTlpYW1WamRDNXBiblJsY25aaGJEdGNiaUFnZlZ4dVhHNGdJSEIxWW14cFl5QmZiMjVEYUdGdVoyVWdQU0FvZG1Gc2RXVTZJRk5sYkdWamRHRmliR1ZXWVd4MVpUeHpkSEpwYm1jK0tTQTlQaUI3WEc0Z0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN0lIWmhiSFZsT2lCMllXeDFaUzUyWVd4MVpTRWdmU2s3WEc0Z0lDQWdkR2hwY3k1d2RXSnNhWE5vUlhabGJuUW9ibVYzSUZOalpXNWxWbUZ5YVdGaWJHVldZV3gxWlVOb1lXNW5aV1JGZG1WdWRDaDBhR2x6S1N3Z2RISjFaU2s3WEc0Z0lIMDdYRzVjYmlBZ2NIVmliR2xqSUhaaGJHbGtZWFJsUVc1a1ZYQmtZWFJsS0NrNklFOWljMlZ5ZG1GaWJHVThWbUZzYVdSaGRHVkJibVJWY0dSaGRHVlNaWE4xYkhRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUhaaGJIVmxMQ0JwYm5SbGNuWmhiSE1nZlNBOUlIUm9hWE11YzNSaGRHVTdYRzRnSUNBZ2JHVjBJSE5vYjNWc1pGQjFZbXhwYzJnZ1BTQm1ZV3h6WlR0Y2JseHVJQ0FnSUdsbUlDaDJZV3gxWlNBOVBUMGdRVlZVVDE5V1FWSkpRVUpNUlY5V1FVeFZSU2tnZTF4dUlDQWdJQ0FnYzJodmRXeGtVSFZpYkdsemFDQTlJSFJ5ZFdVN1hHNGdJQ0FnZlNCbGJITmxJR2xtSUNnaGRtRnNkV1VnSmlZZ2FXNTBaWEoyWVd4ekxteGxibWQwYUNBK0lEQXBJSHRjYmlBZ0lDQWdJR052Ym5OMElHWnBjbk4wVDNCMGFXOXVJRDBnYVc1MFpYSjJZV3h6V3pCZE8xeHVJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3SUhaaGJIVmxPaUJtYVhKemRFOXdkR2x2YmlCOUtUdGNiaUFnSUNBZ0lITm9iM1ZzWkZCMVlteHBjMmdnUFNCMGNuVmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2h6YUc5MWJHUlFkV0pzYVhOb0tTQjdYRzRnSUNBZ0lDQjBhR2x6TG5CMVlteHBjMmhGZG1WdWRDaHVaWGNnVTJObGJtVldZWEpwWVdKc1pWWmhiSFZsUTJoaGJtZGxaRVYyWlc1MEtIUm9hWE1wTENCMGNuVmxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2IyWW9lMzBwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUhOMFlYUnBZeUJEYjIxd2IyNWxiblFnUFNBb2V5QnRiMlJsYkNCOU9pQlRZMlZ1WlVOdmJYQnZibVZ1ZEZCeWIzQnpQRWx1ZEdWeWRtRnNWbUZ5YVdGaWJHVStLU0E5UGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJyWlhrc0lIWmhiSFZsSUgwZ1BTQnRiMlJsYkM1MWMyVlRkR0YwWlNncE8xeHVJQ0FnSUhKbGRIVnliaUFvWEc0Z0lDQWdJQ0E4VTJWc1pXTjBYRzRnSUNBZ0lDQWdJR2xrUFh0clpYbDlYRzRnSUNBZ0lDQWdJSEJzWVdObGFHOXNaR1Z5UFZ3aVUyVnNaV04wSUhaaGJIVmxYQ0pjYmlBZ0lDQWdJQ0FnZDJsa2RHZzlYQ0poZFhSdlhDSmNiaUFnSUNBZ0lDQWdkbUZzZFdVOWUzWmhiSFZsZlZ4dUlDQWdJQ0FnSUNCMFlXSlRaV3hsWTNSelZtRnNkV1U5ZTJaaGJITmxmVnh1SUNBZ0lDQWdJQ0J2Y0hScGIyNXpQWHR0YjJSbGJDNW5aWFJQY0hScGIyNXpSbTl5VTJWc1pXTjBLQ2w5WEc0Z0lDQWdJQ0FnSUc5dVEyaGhibWRsUFh0dGIyUmxiQzVmYjI1RGFHRnVaMlY5WEc0Z0lDQWdJQ0F2UGx4dUlDQWdJQ2s3WEc0Z0lIMDdYRzU5WEc0aVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBGQk1rSlBMRTFCUVUwc2VVSkJRMGdzWlVGRlZpeERRVUZCTzBGQlFVRXNSVUZEVXl4WlFVRlpMRmxCUVRoRExFVkJRVUU3UVVGREwwUXNTVUZCVFN4TFFVRkJMRU5CUVVFc1kwRkJRU3hEUVVGQk8wRkJRVUVzVFVGRFNpeEpRVUZOTEVWQlFVRXNWVUZCUVR0QlFVRkJMRTFCUTA0c1MwRkJUeXhGUVVGQkxFVkJRVUU3UVVGQlFTeE5RVU5RTEZOQlFVRXNSVUZCVnl4RFFVRkRMRWxCUVVFc1JVRkJUU3hMUVVGUExFVkJRVUVzUzBGQlFTeEZRVUZQTEVsQlFVMHNSVUZCUVN4SlFVRkJMRVZCUVUwc1MwRkJUeXhGUVVGQkxFbEJRVUVzUlVGQlRTeEpRVUZOTEVWQlFVRXNTMEZCUVN4RlFVRlBMRXRCUVVzc1EwRkJRVHRCUVVGQkxFMUJRek5GTEVsQlFVMHNSVUZCUVN4RlFVRkJPMEZCUVVFc1RVRkRUaXhoUVVGbExFVkJRVUVzUlVGQlFUdEJRVUZCTEUxQlEyWXNaVUZCYVVJc1JVRkJRU3hMUVVGQk8wRkJRVUVzVFVGRGFrSXNWMEZCWVN4RlFVRkJMRXRCUVVFN1FVRkJRU3hOUVVOaUxGTkJRVk1zWlVGQlowSXNRMEZCUVN4clFrRkJRVHRCUVVGQkxFdEJRVUVzUlVGRGRFSXNXVUZEU2l4RFFVRkJMRU5CUVVFc1EwRkJRVHRCUVRKRVNDeEpRVUZQTEVsQlFVRXNRMEZCUVN4VFFVRkJMRWRCUVZrc1EwRkJReXhMUVVGdFF5eExRVUZCTzBGQlEzSkVMRTFCUVVFc1NVRkJRU3hEUVVGTExGRkJRVk1zUTBGQlFTeEZRVUZGTEV0QlFVOHNSVUZCUVN4TFFVRkJMRU5CUVUwc1QwRkJVU3hEUVVGQkxFTkJRVUU3UVVGRGNrTXNUVUZCUVN4SlFVRkJMRU5CUVVzc1dVRkJZU3hEUVVGQkxFbEJRVWtzT0VKQlFTdENMRU5CUVVFc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZEYkVVc1EwRkJRVHRCUVRWRVJTeEpRVUZCTEVsQlFVRXNRMEZCU3l4UlFVRlhMRWRCUVVFc1NVRkJTU3gzUWtGQmVVSXNRMEZCUVN4SlFVRkJMRVZCUVUwc1JVRkJSU3hKUVVGQkxFVkJRVTBzVFVGQlRTeERRVUZETEVsQlFVc3NRMEZCUVN4TlFVRkJMRVZCUVZFc1EwRkJRU3hGUVVGSExFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEzQkdPMEZCUVVFc1JVRkZVU3hOUVVGcFFpeEhRVUZCTzBGQlEzWkNMRWxCUVU4c1QwRkJRU3hEUVVGQkxFbEJRVUVzUlVGQlR5eExRVUZMTEV0QlFVMHNRMEZCUVN4SlFVRkJMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRE0wSTdRVUZCUVN4RlFVVlBMRmRCUVdNc1IwRkJRVHRCUVVOdVFpeEpRVUZCTEU5QlFVOHNSVUZCUlN4RFFVRkRMRWxCUVVFc1EwRkJTeXhSUVVGWExFZEJRVUVzU1VGQlFTeERRVUZMTEUxQlFVMHNTMEZCVFN4RlFVRkJMRU5CUVVFN1FVRkJRU3hIUVVNM1F6dEJRVUZCTEVWQlJVOHNZMEZCWXl4TlFVRTRRaXhGUVVGQk8wRkJRMnBFTEVsQlFVRXNUVUZCVFN4VFFVRjVReXhGUVVGRExFTkJRVUU3UVVGRGFFUXNTVUZCVFN4TlFVRkJMRWRCUVVFc1IwRkJUU3hOUVVGUExFTkJRVUVzU1VGQlFTeERRVUZMTEUxQlFVOHNSVUZCUVN4RFFVRkJMRU5CUVVFN1FVRkRMMElzU1VGQlNTeEpRVUZCTEU5QlFVOHNVVUZCVVN4UlFVRlZMRVZCUVVFN1FVRkZNMElzVFVGQlNTeEpRVUZCTEVkQlFVRXNRMEZCU1N4VlFVRlhMRU5CUVVFc2JVSkJRVzFDTEVOQlFVY3NSVUZCUVR0QlFVTjJReXhSUVVGQkxFMUJRVUVzUTBGQlR5eExRVUZSTEVkQlFVRXNiVUpCUVVFc1EwRkJRVHRCUVVGQkxFOUJRMVlzVFVGQlFUdEJRVU5NTEZGQlFVRXNUVUZCUVN4RFFVRlBMRXRCUVZFc1IwRkJRU3hIUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU5xUWp0QlFVRkJMRXRCUTBZN1FVRkRRU3hKUVVGQkxFbEJRVUVzUTBGQlN5eFRRVUZUTEUxQlFVMHNRMEZCUVN4RFFVRkJPMEZCUVVFc1IwRkRkRUk3UVVGQlFTeEZRVVZQTEcxQ1FVRnpSQ3hIUVVGQk8wRkJRek5FTEVsQlFVRXNUVUZCVFN4RlFVRkZMRXRCUVU4c1JVRkJRU3haUVVGQkxFVkJRV01zVTBGQlZ5eEZRVUZCTEZkQlFVRXNTMEZCWjBJc1NVRkJTeXhEUVVGQkxFdEJRVUVzUTBGQlFUdEJRVVUzUkN4SlFVRkpMRWxCUVVFc1QwRkJRU3hIUVVGVkxGTkJRVlVzUTBGQlFTeEhRVUZCTEVOQlFVa3NRMEZCUXl4UlFVRkJMRTFCUVdNc1JVRkJSU3hMUVVGUExFVkJRVUVzVVVGQlFTeEZRVUZWTEV0QlFVOHNSVUZCUVN4UlFVRkJMRVZCUVZjc1EwRkJRU3hEUVVGQkxFTkJRVUU3UVVGRmFFWXNTVUZCUVN4SlFVRkpMRmRCUVdFc1JVRkJRVHRCUVVObUxFMUJRVlVzVDBGQlFTeEhRVUZCTEVOQlFVTXNSVUZCUlN4TFFVRlBMRVZCUVVFc2JVSkJRVUVzUlVGQmNVSXNUMEZCVHl4clFrRkJiVUlzUlVGQlFTeEZRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOc1JqdEJRVWRCTEVsQlFVa3NTVUZCUVN4WlFVRkJMRWxCUVdkQ0xFTkJRVU1zVDBGQlVTeERRVUZCTEVsQlFVRXNRMEZCU3l4RFFVRkRMRTFCUVZjc1MwRkJRU3hOUVVGQkxFTkJRVThzUzBGQlZTeExRVUZCTEZsQlFWa3NRMEZCUnl4RlFVRkJPMEZCUXpWRkxFMUJRVUVzVDBGQlFTeERRVUZSTEV0QlFVc3NSVUZCUlN4TFFVRkJMRVZCUVU4c1dVRkJZeXhGUVVGQkxFdEJRVUVzUlVGQlR5eGpRVUZqTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUXpORU8wRkJSVUVzU1VGQlR5eFBRVUZCTEU5QlFVRXNRMEZCUVR0QlFVRkJMRWRCUTFRN1FVRkJRU3hGUVVWUExGRkJRVEJDTEVkQlFVRTdRVUZETDBJc1NVRkJRU3hOUVVGTkxFVkJRVVVzUzBGQlFTeEZRVUZQTEdGQlFXVXNSVUZCUVN4bFFVRkJMRXRCUVc5Q0xFbEJRVXNzUTBGQlFTeExRVUZCTEVOQlFVRTdRVUZEZGtRc1NVRkJRU3hKUVVGSkxGVkJRVlVzYlVKQlFYRkNMRVZCUVVFN1FVRkRha01zVFVGQlR5eFBRVUZCTEVsQlFVRXNRMEZCU3l4eFFrRkJjMElzUTBGQlFTeGhRVUZCTEVWQlFXVXNaVUZCWlN4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOc1JUdEJRVVZCTEVsQlFVOHNUMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOVU8wRkJRVUVzUlVGRlVTeHhRa0ZCUVN4RFFVRnpRaXhsUVVGMVFpeHJRa0ZCTkVJc1JVRkJRVHRCUVVNdlJTeEpRVUZCTEUxQlFVMHNVMEZCV1N4SFFVRkJMRlZCUVVFc1EwRkJWeXhaUVVGaExFTkJRVUVzU1VGQlNTeEZRVUZGTEV0QlFVMHNRMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkRkRVFzU1VGQlFTeE5RVUZOTEdOQlFXbENMRWRCUVVFc1UwRkJRU3hEUVVGVkxHbENRVUZyUWl4RFFVRkJMRk5CUVVFc1JVRkJWeXhsUVVGbExHdENRVUZyUWl4RFFVRkJMRU5CUVVFN1FVRkRMMFlzU1VGQlFTeFBRVUZQTEdOQlFXVXNRMEZCUVN4UlFVRkJMRU5CUVVFN1FVRkJRU3hIUVVONFFqdEJRVUZCTEVWQlQwOHNhVUpCUVhsRUxFZEJRVUU3UVVGRE9VUXNTVUZCUVN4TlFVRk5MRVZCUVVVc1MwRkJRU3hGUVVGUExGTkJRVlVzUlVGQlFTeEhRVUZKTEVsQlFVc3NRMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkRiRU1zU1VGQlFTeEpRVUZKTEdGQlFXZENMRWRCUVVFc1MwRkJRU3hEUVVGQk8wRkJSWEJDTEVsQlFVRXNTVUZCU1N4VlFVRlZMRzFDUVVGeFFpeEZRVUZCTzBGQlEycERMRTFCUVdkQ0xHRkJRVUVzUjBGQlFTeEpRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTlFMRTFCUVVFc1NVRkJRU3hEUVVGRExFdEJRVk1zU1VGQlFTeFRRVUZCTEVOQlFWVXNVMEZCVXl4RFFVRkhMRVZCUVVFN1FVRkRla01zVFVGQlFTeE5RVUZOTEdOQlFXTXNVMEZCVlN4RFFVRkJMRU5CUVVFc1EwRkJRU3hEUVVGQk8wRkJRemxDTEUxQlFVRXNTVUZCUVN4RFFVRkxMRkZCUVZNc1EwRkJRU3hGUVVGRkxFdEJRVThzUlVGQlFTeFhRVUZCTEVWQlFXRXNRMEZCUVN4RFFVRkJPMEZCUTNCRExFMUJRV2RDTEdGQlFVRXNSMEZCUVN4SlFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOc1FqdEJRVVZCTEVsQlFVRXNTVUZCU1N4aFFVRmxMRVZCUVVFN1FVRkRha0lzVFVGQlFTeEpRVUZCTEVOQlFVc3NXVUZCWVN4RFFVRkJMRWxCUVVrc09FSkJRU3RDTEVOQlFVRXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRGJFVTdRVUZGUVN4SlFVRlBMRTlCUVVFc1JVRkJRU3hEUVVGSExFVkJRVVVzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZEWkR0QlFXZENSaXhEUVVGQk8wRkJhRWhoTEdkQ1FVRkJMRU5CYTBkSExGTkJRVmtzUjBGQlFTeERRVUZETEVWQlFVVXNTMEZCUVN4RlFVRnRSQ3hMUVVGQk8wRkJRemxGTEVWQlFVRXNUVUZCVFN4RlFVRkZMRWRCUVVFc1JVRkJTeXhMUVVGTkxFVkJRVUVzUjBGQlNTeE5RVUZOTEZGQlFWTXNSVUZCUVN4RFFVRkJPMEZCUTNSRExFVkJRVUVzZFVKQlEwY3NTMEZCUVN4RFFVRkJMR0ZCUVVFc1EwRkJRU3hOUVVGQkxFVkJRVUU3UVVGQlFTeEpRVU5ETEVWQlFVa3NSVUZCUVN4SFFVRkJPMEZCUVVFc1NVRkRTaXhYUVVGWkxFVkJRVUVzWTBGQlFUdEJRVUZCTEVsQlExb3NTMEZCVFN4RlFVRkJMRTFCUVVFN1FVRkJRU3hKUVVOT0xFdEJRVUU3UVVGQlFTeEpRVU5CTEdWQlFXbENMRVZCUVVFc1MwRkJRVHRCUVVGQkxFbEJRMnBDTEU5QlFVRXNSVUZCVXl4TlFVRk5MRzFDUVVGdlFpeEZRVUZCTzBGQlFVRXNTVUZEYmtNc1ZVRkJWU3hMUVVGTkxFTkJRVUVzVTBGQlFUdEJRVUZCTEVkQlEyeENMRU5CUVVFc1EwRkJRVHRCUVVWS0xFTkJRVUU3T3pzN0luMD1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQk8sTUFBTSx5QkFDSCxlQUVWLENBQUE7QUFDUyxFQUFBLFdBQUEsQ0FBWSxZQUE4QyxFQUFBO0FBQ3pELElBQUEsS0FBQSxDQUFBLGNBQUEsQ0FBQTtN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
@@ -0,0 +1,295 @@
1
+ import { isEqual, isArray } from 'lodash';
2
+ import { map } from 'rxjs';
3
+ import { ALL_VARIABLE_VALUE, ALL_VARIABLE_TEXT } from '../constants.js';
4
+ import { SceneObjectBase } from '../../core/SceneObjectBase.js';
5
+ import { SceneVariableValueChangedEvent } from '../types.js';
6
+ import { formatRegistry } from '../interpolation/formatRegistry.js';
7
+ import { VariableFormatID } from '@grafana/schema';
8
+ import { setBaseClassState } from '../../utils/utils.js';
9
+
10
+ class MultiValueVariable extends SceneObjectBase {
11
+ constructor() {
12
+ super(...arguments);
13
+ this._urlSync = new MultiValueUrlSyncHandler(this);
14
+ }
15
+ validateAndUpdate() {
16
+ return this.getValueOptions({}).pipe(
17
+ map((options) => {
18
+ this.updateValueGivenNewOptions(options);
19
+ return {};
20
+ })
21
+ );
22
+ }
23
+ onCancel() {
24
+ this.setStateHelper({ loading: false });
25
+ const sceneVarSet = this.parent;
26
+ sceneVarSet == null ? void 0 : sceneVarSet.cancel(this);
27
+ }
28
+ updateValueGivenNewOptions(options) {
29
+ const { value: currentValue, text: currentText, options: oldOptions } = this.state;
30
+ const stateUpdate = this.getStateUpdateGivenNewOptions(options, currentValue, currentText);
31
+ this.interceptStateUpdateAfterValidation(stateUpdate);
32
+ this.setStateHelper(stateUpdate);
33
+ if (stateUpdate.value !== currentValue || stateUpdate.text !== currentText || this.hasAllValue() && !isEqual(options, oldOptions)) {
34
+ this.publishEvent(new SceneVariableValueChangedEvent(this), true);
35
+ }
36
+ }
37
+ getStateUpdateGivenNewOptions(options, currentValue, currentText) {
38
+ const stateUpdate = {
39
+ options,
40
+ loading: false,
41
+ value: currentValue,
42
+ text: currentText
43
+ };
44
+ if (options.length === 0) {
45
+ if (this.state.defaultToAll || this.state.includeAll) {
46
+ stateUpdate.value = ALL_VARIABLE_VALUE;
47
+ stateUpdate.text = ALL_VARIABLE_TEXT;
48
+ } else if (this.state.isMulti) {
49
+ stateUpdate.value = [];
50
+ stateUpdate.text = [];
51
+ } else {
52
+ stateUpdate.value = "";
53
+ stateUpdate.text = "";
54
+ }
55
+ return stateUpdate;
56
+ }
57
+ if (this.hasAllValue()) {
58
+ if (this.state.includeAll) {
59
+ stateUpdate.text = ALL_VARIABLE_TEXT;
60
+ } else {
61
+ stateUpdate.value = options[0].value;
62
+ stateUpdate.text = options[0].label;
63
+ if (this.state.isMulti) {
64
+ stateUpdate.value = [stateUpdate.value];
65
+ stateUpdate.text = [stateUpdate.text];
66
+ }
67
+ }
68
+ return stateUpdate;
69
+ }
70
+ if (this.state.isMulti) {
71
+ const currentValues = Array.isArray(currentValue) ? currentValue : [currentValue];
72
+ const validValues = currentValues.filter((v) => options.find((o) => o.value === v));
73
+ const validTexts = validValues.map((v) => options.find((o) => o.value === v).label);
74
+ if (validValues.length === 0) {
75
+ const defaultState = this.getDefaultMultiState(options);
76
+ stateUpdate.value = defaultState.value;
77
+ stateUpdate.text = defaultState.text;
78
+ } else {
79
+ if (!isEqual(validValues, currentValue)) {
80
+ stateUpdate.value = validValues;
81
+ }
82
+ if (!isEqual(validTexts, currentText)) {
83
+ stateUpdate.text = validTexts;
84
+ }
85
+ }
86
+ return stateUpdate;
87
+ }
88
+ let matchingOption = findOptionMatchingCurrent(currentValue, currentText, options);
89
+ if (matchingOption) {
90
+ stateUpdate.text = matchingOption.label;
91
+ stateUpdate.value = matchingOption.value;
92
+ } else {
93
+ if (this.state.defaultToAll) {
94
+ stateUpdate.value = ALL_VARIABLE_VALUE;
95
+ stateUpdate.text = ALL_VARIABLE_TEXT;
96
+ } else {
97
+ stateUpdate.value = options[0].value;
98
+ stateUpdate.text = options[0].label;
99
+ }
100
+ }
101
+ return stateUpdate;
102
+ }
103
+ interceptStateUpdateAfterValidation(stateUpdate) {
104
+ const isAllValueFix = stateUpdate.value === ALL_VARIABLE_VALUE && this.state.text === ALL_VARIABLE_TEXT;
105
+ if (this.skipNextValidation && stateUpdate.value !== this.state.value && stateUpdate.text !== this.state.text && !isAllValueFix) {
106
+ stateUpdate.value = this.state.value;
107
+ stateUpdate.text = this.state.text;
108
+ }
109
+ this.skipNextValidation = false;
110
+ }
111
+ getValue() {
112
+ if (this.hasAllValue()) {
113
+ if (this.state.allValue) {
114
+ return new CustomAllValue(this.state.allValue, this);
115
+ }
116
+ return this.state.options.map((x) => x.value);
117
+ }
118
+ return this.state.value;
119
+ }
120
+ getValueText() {
121
+ if (this.hasAllValue()) {
122
+ return ALL_VARIABLE_TEXT;
123
+ }
124
+ if (Array.isArray(this.state.text)) {
125
+ return this.state.text.join(" + ");
126
+ }
127
+ return String(this.state.text);
128
+ }
129
+ hasAllValue() {
130
+ const value = this.state.value;
131
+ return value === ALL_VARIABLE_VALUE || Array.isArray(value) && value[0] === ALL_VARIABLE_VALUE;
132
+ }
133
+ getDefaultMultiState(options) {
134
+ if (this.state.defaultToAll) {
135
+ return { value: [ALL_VARIABLE_VALUE], text: [ALL_VARIABLE_TEXT] };
136
+ } else if (options.length > 0) {
137
+ return { value: [options[0].value], text: [options[0].label] };
138
+ } else {
139
+ return { value: [], text: [] };
140
+ }
141
+ }
142
+ changeValueTo(value, text) {
143
+ if (value === this.state.value && text === this.state.text) {
144
+ return;
145
+ }
146
+ if (!text) {
147
+ if (Array.isArray(value)) {
148
+ text = value.map((v) => this.findLabelTextForValue(v));
149
+ } else {
150
+ text = this.findLabelTextForValue(value);
151
+ }
152
+ }
153
+ if (Array.isArray(value)) {
154
+ if (value.length === 0) {
155
+ const state = this.getDefaultMultiState(this.state.options);
156
+ value = state.value;
157
+ text = state.text;
158
+ }
159
+ if (value[value.length - 1] === ALL_VARIABLE_VALUE) {
160
+ value = [ALL_VARIABLE_VALUE];
161
+ text = [ALL_VARIABLE_TEXT];
162
+ } else if (value[0] === ALL_VARIABLE_VALUE && value.length > 1) {
163
+ value.shift();
164
+ if (Array.isArray(text)) {
165
+ text.shift();
166
+ }
167
+ }
168
+ }
169
+ if (isEqual(value, this.state.value) && isEqual(text, this.state.text)) {
170
+ return;
171
+ }
172
+ this.setStateHelper({ value, text, loading: false });
173
+ this.publishEvent(new SceneVariableValueChangedEvent(this), true);
174
+ }
175
+ findLabelTextForValue(value) {
176
+ if (value === ALL_VARIABLE_VALUE) {
177
+ return ALL_VARIABLE_TEXT;
178
+ }
179
+ const option = this.state.options.find((x) => x.value === value);
180
+ if (option) {
181
+ return option.label;
182
+ }
183
+ const optionByLabel = this.state.options.find((x) => x.label === value);
184
+ if (optionByLabel) {
185
+ return optionByLabel.label;
186
+ }
187
+ return value;
188
+ }
189
+ setStateHelper(state) {
190
+ setBaseClassState(this, state);
191
+ }
192
+ getOptionsForSelect() {
193
+ let options = this.state.options;
194
+ if (this.state.includeAll) {
195
+ options = [{ value: ALL_VARIABLE_VALUE, label: ALL_VARIABLE_TEXT }, ...options];
196
+ }
197
+ if (!Array.isArray(this.state.value)) {
198
+ const current = options.find((x) => x.value === this.state.value);
199
+ if (!current) {
200
+ options = [{ value: this.state.value, label: String(this.state.text) }, ...options];
201
+ }
202
+ }
203
+ return options;
204
+ }
205
+ refreshOptions() {
206
+ this.getValueOptions({}).subscribe((options) => {
207
+ this.updateValueGivenNewOptions(options);
208
+ });
209
+ }
210
+ }
211
+ function findOptionMatchingCurrent(currentValue, currentText, options) {
212
+ let textMatch;
213
+ for (const item of options) {
214
+ if (item.value === currentValue) {
215
+ return item;
216
+ }
217
+ if (item.label === currentText) {
218
+ textMatch = item;
219
+ }
220
+ }
221
+ return textMatch;
222
+ }
223
+ class MultiValueUrlSyncHandler {
224
+ constructor(_sceneObject) {
225
+ this._sceneObject = _sceneObject;
226
+ }
227
+ getKey() {
228
+ return `var-${this._sceneObject.state.name}`;
229
+ }
230
+ getKeys() {
231
+ if (this._sceneObject.state.skipUrlSync) {
232
+ return [];
233
+ }
234
+ return [this.getKey()];
235
+ }
236
+ getUrlState() {
237
+ if (this._sceneObject.state.skipUrlSync) {
238
+ return {};
239
+ }
240
+ let urlValue = null;
241
+ let value = this._sceneObject.state.value;
242
+ if (Array.isArray(value)) {
243
+ urlValue = value.map(String);
244
+ } else if (this._sceneObject.state.isMulti) {
245
+ urlValue = [String(value)];
246
+ } else {
247
+ urlValue = String(value);
248
+ }
249
+ return { [this.getKey()]: urlValue };
250
+ }
251
+ updateFromUrl(values) {
252
+ let urlValue = values[this.getKey()];
253
+ if (urlValue != null) {
254
+ if (this._sceneObject.state.includeAll) {
255
+ urlValue = handleLegacyUrlAllValue(urlValue);
256
+ }
257
+ if (this._sceneObject.state.allValue && this._sceneObject.state.allValue === urlValue) {
258
+ urlValue = ALL_VARIABLE_VALUE;
259
+ }
260
+ if (!this._sceneObject.isActive) {
261
+ this._sceneObject.skipNextValidation = true;
262
+ }
263
+ this._sceneObject.changeValueTo(urlValue);
264
+ }
265
+ }
266
+ }
267
+ function handleLegacyUrlAllValue(value) {
268
+ if (isArray(value) && value[0] === ALL_VARIABLE_TEXT) {
269
+ return [ALL_VARIABLE_VALUE];
270
+ } else if (value === ALL_VARIABLE_TEXT) {
271
+ return ALL_VARIABLE_VALUE;
272
+ }
273
+ return value;
274
+ }
275
+ class CustomAllValue {
276
+ constructor(_value, _variable) {
277
+ this._value = _value;
278
+ this._variable = _variable;
279
+ }
280
+ formatter(formatNameOrFn) {
281
+ if (formatNameOrFn === VariableFormatID.Text) {
282
+ return ALL_VARIABLE_TEXT;
283
+ }
284
+ if (formatNameOrFn === VariableFormatID.PercentEncode) {
285
+ return formatRegistry.get(VariableFormatID.PercentEncode).formatter(this._value, [], this._variable);
286
+ }
287
+ if (formatNameOrFn === VariableFormatID.QueryParam) {
288
+ return formatRegistry.get(VariableFormatID.QueryParam).formatter(ALL_VARIABLE_TEXT, [], this._variable);
289
+ }
290
+ return this._value;
291
+ }
292
+ }
293
+
294
+ export { CustomAllValue, MultiValueUrlSyncHandler, MultiValueVariable };
295
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXVsdGlWYWx1ZVZhcmlhYmxlLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi92YXJpYWJsZXMvdmFyaWFudHMvTXVsdGlWYWx1ZVZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRXF1YWwsIGlzQXJyYXkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBTExfVkFSSUFCTEVfVkFMVUUsIEFMTF9WQVJJQUJMRV9URVhUIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IFNjZW5lT2JqZWN0QmFzZSB9IGZyb20gJy4uLy4uL2NvcmUvU2NlbmVPYmplY3RCYXNlLmpzJztcbmltcG9ydCB7IFNjZW5lVmFyaWFibGVWYWx1ZUNoYW5nZWRFdmVudCB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB7IGZvcm1hdFJlZ2lzdHJ5IH0gZnJvbSAnLi4vaW50ZXJwb2xhdGlvbi9mb3JtYXRSZWdpc3RyeS5qcyc7XG5pbXBvcnQgeyBWYXJpYWJsZUZvcm1hdElEIH0gZnJvbSAnQGdyYWZhbmEvc2NoZW1hJztcbmltcG9ydCB7IHNldEJhc2VDbGFzc1N0YXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbHMuanMnO1xuXG5jbGFzcyBNdWx0aVZhbHVlVmFyaWFibGUgZXh0ZW5kcyBTY2VuZU9iamVjdEJhc2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgIHRoaXMuX3VybFN5bmMgPSBuZXcgTXVsdGlWYWx1ZVVybFN5bmNIYW5kbGVyKHRoaXMpO1xuICB9XG4gIHZhbGlkYXRlQW5kVXBkYXRlKCkge1xuICAgIHJldHVybiB0aGlzLmdldFZhbHVlT3B0aW9ucyh7fSkucGlwZShcbiAgICAgIG1hcCgob3B0aW9ucykgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlR2l2ZW5OZXdPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9KVxuICAgICk7XG4gIH1cbiAgb25DYW5jZWwoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZUhlbHBlcih7IGxvYWRpbmc6IGZhbHNlIH0pO1xuICAgIGNvbnN0IHNjZW5lVmFyU2V0ID0gdGhpcy5wYXJlbnQ7XG4gICAgc2NlbmVWYXJTZXQgPT0gbnVsbCA/IHZvaWQgMCA6IHNjZW5lVmFyU2V0LmNhbmNlbCh0aGlzKTtcbiAgfVxuICB1cGRhdGVWYWx1ZUdpdmVuTmV3T3B0aW9ucyhvcHRpb25zKSB7XG4gICAgY29uc3QgeyB2YWx1ZTogY3VycmVudFZhbHVlLCB0ZXh0OiBjdXJyZW50VGV4dCwgb3B0aW9uczogb2xkT3B0aW9ucyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBzdGF0ZVVwZGF0ZSA9IHRoaXMuZ2V0U3RhdGVVcGRhdGVHaXZlbk5ld09wdGlvbnMob3B0aW9ucywgY3VycmVudFZhbHVlLCBjdXJyZW50VGV4dCk7XG4gICAgdGhpcy5pbnRlcmNlcHRTdGF0ZVVwZGF0ZUFmdGVyVmFsaWRhdGlvbihzdGF0ZVVwZGF0ZSk7XG4gICAgdGhpcy5zZXRTdGF0ZUhlbHBlcihzdGF0ZVVwZGF0ZSk7XG4gICAgaWYgKHN0YXRlVXBkYXRlLnZhbHVlICE9PSBjdXJyZW50VmFsdWUgfHwgc3RhdGVVcGRhdGUudGV4dCAhPT0gY3VycmVudFRleHQgfHwgdGhpcy5oYXNBbGxWYWx1ZSgpICYmICFpc0VxdWFsKG9wdGlvbnMsIG9sZE9wdGlvbnMpKSB7XG4gICAgICB0aGlzLnB1Ymxpc2hFdmVudChuZXcgU2NlbmVWYXJpYWJsZVZhbHVlQ2hhbmdlZEV2ZW50KHRoaXMpLCB0cnVlKTtcbiAgICB9XG4gIH1cbiAgZ2V0U3RhdGVVcGRhdGVHaXZlbk5ld09wdGlvbnMob3B0aW9ucywgY3VycmVudFZhbHVlLCBjdXJyZW50VGV4dCkge1xuICAgIGNvbnN0IHN0YXRlVXBkYXRlID0ge1xuICAgICAgb3B0aW9ucyxcbiAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgdmFsdWU6IGN1cnJlbnRWYWx1ZSxcbiAgICAgIHRleHQ6IGN1cnJlbnRUZXh0XG4gICAgfTtcbiAgICBpZiAob3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlLmRlZmF1bHRUb0FsbCB8fCB0aGlzLnN0YXRlLmluY2x1ZGVBbGwpIHtcbiAgICAgICAgc3RhdGVVcGRhdGUudmFsdWUgPSBBTExfVkFSSUFCTEVfVkFMVUU7XG4gICAgICAgIHN0YXRlVXBkYXRlLnRleHQgPSBBTExfVkFSSUFCTEVfVEVYVDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5pc011bHRpKSB7XG4gICAgICAgIHN0YXRlVXBkYXRlLnZhbHVlID0gW107XG4gICAgICAgIHN0YXRlVXBkYXRlLnRleHQgPSBbXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXRlVXBkYXRlLnZhbHVlID0gXCJcIjtcbiAgICAgICAgc3RhdGVVcGRhdGUudGV4dCA9IFwiXCI7XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RhdGVVcGRhdGU7XG4gICAgfVxuICAgIGlmICh0aGlzLmhhc0FsbFZhbHVlKCkpIHtcbiAgICAgIGlmICh0aGlzLnN0YXRlLmluY2x1ZGVBbGwpIHtcbiAgICAgICAgc3RhdGVVcGRhdGUudGV4dCA9IEFMTF9WQVJJQUJMRV9URVhUO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3RhdGVVcGRhdGUudmFsdWUgPSBvcHRpb25zWzBdLnZhbHVlO1xuICAgICAgICBzdGF0ZVVwZGF0ZS50ZXh0ID0gb3B0aW9uc1swXS5sYWJlbDtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUuaXNNdWx0aSkge1xuICAgICAgICAgIHN0YXRlVXBkYXRlLnZhbHVlID0gW3N0YXRlVXBkYXRlLnZhbHVlXTtcbiAgICAgICAgICBzdGF0ZVVwZGF0ZS50ZXh0ID0gW3N0YXRlVXBkYXRlLnRleHRdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gc3RhdGVVcGRhdGU7XG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXRlLmlzTXVsdGkpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBBcnJheS5pc0FycmF5KGN1cnJlbnRWYWx1ZSkgPyBjdXJyZW50VmFsdWUgOiBbY3VycmVudFZhbHVlXTtcbiAgICAgIGNvbnN0IHZhbGlkVmFsdWVzID0gY3VycmVudFZhbHVlcy5maWx0ZXIoKHYpID0+IG9wdGlvbnMuZmluZCgobykgPT4gby52YWx1ZSA9PT0gdikpO1xuICAgICAgY29uc3QgdmFsaWRUZXh0cyA9IHZhbGlkVmFsdWVzLm1hcCgodikgPT4gb3B0aW9ucy5maW5kKChvKSA9PiBvLnZhbHVlID09PSB2KS5sYWJlbCk7XG4gICAgICBpZiAodmFsaWRWYWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRTdGF0ZSA9IHRoaXMuZ2V0RGVmYXVsdE11bHRpU3RhdGUob3B0aW9ucyk7XG4gICAgICAgIHN0YXRlVXBkYXRlLnZhbHVlID0gZGVmYXVsdFN0YXRlLnZhbHVlO1xuICAgICAgICBzdGF0ZVVwZGF0ZS50ZXh0ID0gZGVmYXVsdFN0YXRlLnRleHQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIWlzRXF1YWwodmFsaWRWYWx1ZXMsIGN1cnJlbnRWYWx1ZSkpIHtcbiAgICAgICAgICBzdGF0ZVVwZGF0ZS52YWx1ZSA9IHZhbGlkVmFsdWVzO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNFcXVhbCh2YWxpZFRleHRzLCBjdXJyZW50VGV4dCkpIHtcbiAgICAgICAgICBzdGF0ZVVwZGF0ZS50ZXh0ID0gdmFsaWRUZXh0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0YXRlVXBkYXRlO1xuICAgIH1cbiAgICBsZXQgbWF0Y2hpbmdPcHRpb24gPSBmaW5kT3B0aW9uTWF0Y2hpbmdDdXJyZW50KGN1cnJlbnRWYWx1ZSwgY3VycmVudFRleHQsIG9wdGlvbnMpO1xuICAgIGlmIChtYXRjaGluZ09wdGlvbikge1xuICAgICAgc3RhdGVVcGRhdGUudGV4dCA9IG1hdGNoaW5nT3B0aW9uLmxhYmVsO1xuICAgICAgc3RhdGVVcGRhdGUudmFsdWUgPSBtYXRjaGluZ09wdGlvbi52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuZGVmYXVsdFRvQWxsKSB7XG4gICAgICAgIHN0YXRlVXBkYXRlLnZhbHVlID0gQUxMX1ZBUklBQkxFX1ZBTFVFO1xuICAgICAgICBzdGF0ZVVwZGF0ZS50ZXh0ID0gQUxMX1ZBUklBQkxFX1RFWFQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGF0ZVVwZGF0ZS52YWx1ZSA9IG9wdGlvbnNbMF0udmFsdWU7XG4gICAgICAgIHN0YXRlVXBkYXRlLnRleHQgPSBvcHRpb25zWzBdLmxhYmVsO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3RhdGVVcGRhdGU7XG4gIH1cbiAgaW50ZXJjZXB0U3RhdGVVcGRhdGVBZnRlclZhbGlkYXRpb24oc3RhdGVVcGRhdGUpIHtcbiAgICBjb25zdCBpc0FsbFZhbHVlRml4ID0gc3RhdGVVcGRhdGUudmFsdWUgPT09IEFMTF9WQVJJQUJMRV9WQUxVRSAmJiB0aGlzLnN0YXRlLnRleHQgPT09IEFMTF9WQVJJQUJMRV9URVhUO1xuICAgIGlmICh0aGlzLnNraXBOZXh0VmFsaWRhdGlvbiAmJiBzdGF0ZVVwZGF0ZS52YWx1ZSAhPT0gdGhpcy5zdGF0ZS52YWx1ZSAmJiBzdGF0ZVVwZGF0ZS50ZXh0ICE9PSB0aGlzLnN0YXRlLnRleHQgJiYgIWlzQWxsVmFsdWVGaXgpIHtcbiAgICAgIHN0YXRlVXBkYXRlLnZhbHVlID0gdGhpcy5zdGF0ZS52YWx1ZTtcbiAgICAgIHN0YXRlVXBkYXRlLnRleHQgPSB0aGlzLnN0YXRlLnRleHQ7XG4gICAgfVxuICAgIHRoaXMuc2tpcE5leHRWYWxpZGF0aW9uID0gZmFsc2U7XG4gIH1cbiAgZ2V0VmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuaGFzQWxsVmFsdWUoKSkge1xuICAgICAgaWYgKHRoaXMuc3RhdGUuYWxsVmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDdXN0b21BbGxWYWx1ZSh0aGlzLnN0YXRlLmFsbFZhbHVlLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnN0YXRlLm9wdGlvbnMubWFwKCh4KSA9PiB4LnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUudmFsdWU7XG4gIH1cbiAgZ2V0VmFsdWVUZXh0KCkge1xuICAgIGlmICh0aGlzLmhhc0FsbFZhbHVlKCkpIHtcbiAgICAgIHJldHVybiBBTExfVkFSSUFCTEVfVEVYVDtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5zdGF0ZS50ZXh0KSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhdGUudGV4dC5qb2luKFwiICsgXCIpO1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nKHRoaXMuc3RhdGUudGV4dCk7XG4gIH1cbiAgaGFzQWxsVmFsdWUoKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnN0YXRlLnZhbHVlO1xuICAgIHJldHVybiB2YWx1ZSA9PT0gQUxMX1ZBUklBQkxFX1ZBTFVFIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlWzBdID09PSBBTExfVkFSSUFCTEVfVkFMVUU7XG4gIH1cbiAgZ2V0RGVmYXVsdE11bHRpU3RhdGUob3B0aW9ucykge1xuICAgIGlmICh0aGlzLnN0YXRlLmRlZmF1bHRUb0FsbCkge1xuICAgICAgcmV0dXJuIHsgdmFsdWU6IFtBTExfVkFSSUFCTEVfVkFMVUVdLCB0ZXh0OiBbQUxMX1ZBUklBQkxFX1RFWFRdIH07XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB7IHZhbHVlOiBbb3B0aW9uc1swXS52YWx1ZV0sIHRleHQ6IFtvcHRpb25zWzBdLmxhYmVsXSB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4geyB2YWx1ZTogW10sIHRleHQ6IFtdIH07XG4gICAgfVxuICB9XG4gIGNoYW5nZVZhbHVlVG8odmFsdWUsIHRleHQpIHtcbiAgICBpZiAodmFsdWUgPT09IHRoaXMuc3RhdGUudmFsdWUgJiYgdGV4dCA9PT0gdGhpcy5zdGF0ZS50ZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHRleHQgPSB2YWx1ZS5tYXAoKHYpID0+IHRoaXMuZmluZExhYmVsVGV4dEZvclZhbHVlKHYpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRleHQgPSB0aGlzLmZpbmRMYWJlbFRleHRGb3JWYWx1ZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0RGVmYXVsdE11bHRpU3RhdGUodGhpcy5zdGF0ZS5vcHRpb25zKTtcbiAgICAgICAgdmFsdWUgPSBzdGF0ZS52YWx1ZTtcbiAgICAgICAgdGV4dCA9IHN0YXRlLnRleHQ7XG4gICAgICB9XG4gICAgICBpZiAodmFsdWVbdmFsdWUubGVuZ3RoIC0gMV0gPT09IEFMTF9WQVJJQUJMRV9WQUxVRSkge1xuICAgICAgICB2YWx1ZSA9IFtBTExfVkFSSUFCTEVfVkFMVUVdO1xuICAgICAgICB0ZXh0ID0gW0FMTF9WQVJJQUJMRV9URVhUXTtcbiAgICAgIH0gZWxzZSBpZiAodmFsdWVbMF0gPT09IEFMTF9WQVJJQUJMRV9WQUxVRSAmJiB2YWx1ZS5sZW5ndGggPiAxKSB7XG4gICAgICAgIHZhbHVlLnNoaWZ0KCk7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRleHQpKSB7XG4gICAgICAgICAgdGV4dC5zaGlmdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc0VxdWFsKHZhbHVlLCB0aGlzLnN0YXRlLnZhbHVlKSAmJiBpc0VxdWFsKHRleHQsIHRoaXMuc3RhdGUudGV4dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZUhlbHBlcih7IHZhbHVlLCB0ZXh0LCBsb2FkaW5nOiBmYWxzZSB9KTtcbiAgICB0aGlzLnB1Ymxpc2hFdmVudChuZXcgU2NlbmVWYXJpYWJsZVZhbHVlQ2hhbmdlZEV2ZW50KHRoaXMpLCB0cnVlKTtcbiAgfVxuICBmaW5kTGFiZWxUZXh0Rm9yVmFsdWUodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IEFMTF9WQVJJQUJMRV9WQUxVRSkge1xuICAgICAgcmV0dXJuIEFMTF9WQVJJQUJMRV9URVhUO1xuICAgIH1cbiAgICBjb25zdCBvcHRpb24gPSB0aGlzLnN0YXRlLm9wdGlvbnMuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gdmFsdWUpO1xuICAgIGlmIChvcHRpb24pIHtcbiAgICAgIHJldHVybiBvcHRpb24ubGFiZWw7XG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbkJ5TGFiZWwgPSB0aGlzLnN0YXRlLm9wdGlvbnMuZmluZCgoeCkgPT4geC5sYWJlbCA9PT0gdmFsdWUpO1xuICAgIGlmIChvcHRpb25CeUxhYmVsKSB7XG4gICAgICByZXR1cm4gb3B0aW9uQnlMYWJlbC5sYWJlbDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHNldFN0YXRlSGVscGVyKHN0YXRlKSB7XG4gICAgc2V0QmFzZUNsYXNzU3RhdGUodGhpcywgc3RhdGUpO1xuICB9XG4gIGdldE9wdGlvbnNGb3JTZWxlY3QoKSB7XG4gICAgbGV0IG9wdGlvbnMgPSB0aGlzLnN0YXRlLm9wdGlvbnM7XG4gICAgaWYgKHRoaXMuc3RhdGUuaW5jbHVkZUFsbCkge1xuICAgICAgb3B0aW9ucyA9IFt7IHZhbHVlOiBBTExfVkFSSUFCTEVfVkFMVUUsIGxhYmVsOiBBTExfVkFSSUFCTEVfVEVYVCB9LCAuLi5vcHRpb25zXTtcbiAgICB9XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuc3RhdGUudmFsdWUpKSB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gb3B0aW9ucy5maW5kKCh4KSA9PiB4LnZhbHVlID09PSB0aGlzLnN0YXRlLnZhbHVlKTtcbiAgICAgIGlmICghY3VycmVudCkge1xuICAgICAgICBvcHRpb25zID0gW3sgdmFsdWU6IHRoaXMuc3RhdGUudmFsdWUsIGxhYmVsOiBTdHJpbmcodGhpcy5zdGF0ZS50ZXh0KSB9LCAuLi5vcHRpb25zXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbiAgcmVmcmVzaE9wdGlvbnMoKSB7XG4gICAgdGhpcy5nZXRWYWx1ZU9wdGlvbnMoe30pLnN1YnNjcmliZSgob3B0aW9ucykgPT4ge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZUdpdmVuTmV3T3B0aW9ucyhvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxufVxuZnVuY3Rpb24gZmluZE9wdGlvbk1hdGNoaW5nQ3VycmVudChjdXJyZW50VmFsdWUsIGN1cnJlbnRUZXh0LCBvcHRpb25zKSB7XG4gIGxldCB0ZXh0TWF0Y2g7XG4gIGZvciAoY29uc3QgaXRlbSBvZiBvcHRpb25zKSB7XG4gICAgaWYgKGl0ZW0udmFsdWUgPT09IGN1cnJlbnRWYWx1ZSkge1xuICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuICAgIGlmIChpdGVtLmxhYmVsID09PSBjdXJyZW50VGV4dCkge1xuICAgICAgdGV4dE1hdGNoID0gaXRlbTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRleHRNYXRjaDtcbn1cbmNsYXNzIE11bHRpVmFsdWVVcmxTeW5jSGFuZGxlciB7XG4gIGNvbnN0cnVjdG9yKF9zY2VuZU9iamVjdCkge1xuICAgIHRoaXMuX3NjZW5lT2JqZWN0ID0gX3NjZW5lT2JqZWN0O1xuICB9XG4gIGdldEtleSgpIHtcbiAgICByZXR1cm4gYHZhci0ke3RoaXMuX3NjZW5lT2JqZWN0LnN0YXRlLm5hbWV9YDtcbiAgfVxuICBnZXRLZXlzKCkge1xuICAgIGlmICh0aGlzLl9zY2VuZU9iamVjdC5zdGF0ZS5za2lwVXJsU3luYykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICByZXR1cm4gW3RoaXMuZ2V0S2V5KCldO1xuICB9XG4gIGdldFVybFN0YXRlKCkge1xuICAgIGlmICh0aGlzLl9zY2VuZU9iamVjdC5zdGF0ZS5za2lwVXJsU3luYykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBsZXQgdXJsVmFsdWUgPSBudWxsO1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuX3NjZW5lT2JqZWN0LnN0YXRlLnZhbHVlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdXJsVmFsdWUgPSB2YWx1ZS5tYXAoU3RyaW5nKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3NjZW5lT2JqZWN0LnN0YXRlLmlzTXVsdGkpIHtcbiAgICAgIHVybFZhbHVlID0gW1N0cmluZyh2YWx1ZSldO1xuICAgIH0gZWxzZSB7XG4gICAgICB1cmxWYWx1ZSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB7IFt0aGlzLmdldEtleSgpXTogdXJsVmFsdWUgfTtcbiAgfVxuICB1cGRhdGVGcm9tVXJsKHZhbHVlcykge1xuICAgIGxldCB1cmxWYWx1ZSA9IHZhbHVlc1t0aGlzLmdldEtleSgpXTtcbiAgICBpZiAodXJsVmFsdWUgIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuX3NjZW5lT2JqZWN0LnN0YXRlLmluY2x1ZGVBbGwpIHtcbiAgICAgICAgdXJsVmFsdWUgPSBoYW5kbGVMZWdhY3lVcmxBbGxWYWx1ZSh1cmxWYWx1ZSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fc2NlbmVPYmplY3Quc3RhdGUuYWxsVmFsdWUgJiYgdGhpcy5fc2NlbmVPYmplY3Quc3RhdGUuYWxsVmFsdWUgPT09IHVybFZhbHVlKSB7XG4gICAgICAgIHVybFZhbHVlID0gQUxMX1ZBUklBQkxFX1ZBTFVFO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLl9zY2VuZU9iamVjdC5pc0FjdGl2ZSkge1xuICAgICAgICB0aGlzLl9zY2VuZU9iamVjdC5za2lwTmV4dFZhbGlkYXRpb24gPSB0cnVlO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2NlbmVPYmplY3QuY2hhbmdlVmFsdWVUbyh1cmxWYWx1ZSk7XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBoYW5kbGVMZWdhY3lVcmxBbGxWYWx1ZSh2YWx1ZSkge1xuICBpZiAoaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWVbMF0gPT09IEFMTF9WQVJJQUJMRV9URVhUKSB7XG4gICAgcmV0dXJuIFtBTExfVkFSSUFCTEVfVkFMVUVdO1xuICB9IGVsc2UgaWYgKHZhbHVlID09PSBBTExfVkFSSUFCTEVfVEVYVCkge1xuICAgIHJldHVybiBBTExfVkFSSUFCTEVfVkFMVUU7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuY2xhc3MgQ3VzdG9tQWxsVmFsdWUge1xuICBjb25zdHJ1Y3RvcihfdmFsdWUsIF92YXJpYWJsZSkge1xuICAgIHRoaXMuX3ZhbHVlID0gX3ZhbHVlO1xuICAgIHRoaXMuX3ZhcmlhYmxlID0gX3ZhcmlhYmxlO1xuICB9XG4gIGZvcm1hdHRlcihmb3JtYXROYW1lT3JGbikge1xuICAgIGlmIChmb3JtYXROYW1lT3JGbiA9PT0gVmFyaWFibGVGb3JtYXRJRC5UZXh0KSB7XG4gICAgICByZXR1cm4gQUxMX1ZBUklBQkxFX1RFWFQ7XG4gICAgfVxuICAgIGlmIChmb3JtYXROYW1lT3JGbiA9PT0gVmFyaWFibGVGb3JtYXRJRC5QZXJjZW50RW5jb2RlKSB7XG4gICAgICByZXR1cm4gZm9ybWF0UmVnaXN0cnkuZ2V0KFZhcmlhYmxlRm9ybWF0SUQuUGVyY2VudEVuY29kZSkuZm9ybWF0dGVyKHRoaXMuX3ZhbHVlLCBbXSwgdGhpcy5fdmFyaWFibGUpO1xuICAgIH1cbiAgICBpZiAoZm9ybWF0TmFtZU9yRm4gPT09IFZhcmlhYmxlRm9ybWF0SUQuUXVlcnlQYXJhbSkge1xuICAgICAgcmV0dXJuIGZvcm1hdFJlZ2lzdHJ5LmdldChWYXJpYWJsZUZvcm1hdElELlF1ZXJ5UGFyYW0pLmZvcm1hdHRlcihBTExfVkFSSUFCTEVfVEVYVCwgW10sIHRoaXMuX3ZhcmlhYmxlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCB7IEN1c3RvbUFsbFZhbHVlLCBNdWx0aVZhbHVlVXJsU3luY0hhbmRsZXIsIE11bHRpVmFsdWVWYXJpYWJsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lUWFZzZEdsV1lXeDFaVlpoY21saFlteGxMbXB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdmRtRnlhV0ZpYkdWekwzWmhjbWxoYm5SekwwMTFiSFJwVm1Gc2RXVldZWEpwWVdKc1pTNTBjeUpkTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCcGMwRnljbUY1TENCcGMwVnhkV0ZzSUgwZ1puSnZiU0FuYkc5a1lYTm9KenRjYm1sdGNHOXlkQ0I3SUcxaGNDd2dUMkp6WlhKMllXSnNaU0I5SUdaeWIyMGdKM0o0YW5Nbk8xeHVYRzVwYlhCdmNuUWdleUJCVEV4ZlZrRlNTVUZDVEVWZlZFVllWQ3dnUVV4TVgxWkJVa2xCUWt4RlgxWkJURlZGSUgwZ1puSnZiU0FuTGk0dlkyOXVjM1JoYm5Sekp6dGNibHh1YVcxd2IzSjBJSHNnVTJObGJtVlBZbXBsWTNSQ1lYTmxJSDBnWm5KdmJTQW5MaTR2TGk0dlkyOXlaUzlUWTJWdVpVOWlhbVZqZEVKaGMyVW5PMXh1YVcxd2IzSjBJSHNnVTJObGJtVlBZbXBsWTNSVmNteFRlVzVqU0dGdVpHeGxjaXdnVTJObGJtVlBZbXBsWTNSVmNteFdZV3gxWlhNZ2ZTQm1jbTl0SUNjdUxpOHVMaTlqYjNKbEwzUjVjR1Z6Snp0Y2JtbHRjRzl5ZENCN1hHNGdJRk5qWlc1bFZtRnlhV0ZpYkdVc1hHNGdJRk5qWlc1bFZtRnlhV0ZpYkdWV1lXeDFaVU5vWVc1blpXUkZkbVZ1ZEN4Y2JpQWdVMk5sYm1WV1lYSnBZV0pzWlZOMFlYUmxMRnh1SUNCV1lXeHBaR0YwWlVGdVpGVndaR0YwWlZKbGMzVnNkQ3hjYmlBZ1ZtRnlhV0ZpYkdWV1lXeDFaU3hjYmlBZ1ZtRnlhV0ZpYkdWV1lXeDFaVTl3ZEdsdmJpeGNiaUFnVm1GeWFXRmliR1ZXWVd4MVpWTnBibWRzWlN4Y2JpQWdRM1Z6ZEc5dFZtRnlhV0ZpYkdWV1lXeDFaU3hjYmlBZ1ZtRnlhV0ZpYkdWRGRYTjBiMjFHYjNKdFlYUjBaWEpHYml4Y2JuMGdabkp2YlNBbkxpNHZkSGx3WlhNbk8xeHVhVzF3YjNKMElIc2dabTl5YldGMFVtVm5hWE4wY25rZ2ZTQm1jbTl0SUNjdUxpOXBiblJsY25CdmJHRjBhVzl1TDJadmNtMWhkRkpsWjJsemRISjVKenRjYm1sdGNHOXlkQ0I3SUZaaGNtbGhZbXhsUm05eWJXRjBTVVFnZlNCbWNtOXRJQ2RBWjNKaFptRnVZUzl6WTJobGJXRW5PMXh1YVcxd2IzSjBJSHNnVTJObGJtVldZWEpwWVdKc1pWTmxkQ0I5SUdaeWIyMGdKeTR1TDNObGRITXZVMk5sYm1WV1lYSnBZV0pzWlZObGRDYzdYRzVwYlhCdmNuUWdleUJ6WlhSQ1lYTmxRMnhoYzNOVGRHRjBaU0I5SUdaeWIyMGdKeTR1THk0dUwzVjBhV3h6TDNWMGFXeHpKenRjYmx4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCTmRXeDBhVlpoYkhWbFZtRnlhV0ZpYkdWVGRHRjBaU0JsZUhSbGJtUnpJRk5qWlc1bFZtRnlhV0ZpYkdWVGRHRjBaU0I3WEc0Z0lIWmhiSFZsT2lCV1lYSnBZV0pzWlZaaGJIVmxPeUF2THlCdmJHUWdZM1Z5Y21WdWRDNTBaWGgwWEc0Z0lIUmxlSFE2SUZaaGNtbGhZbXhsVm1Gc2RXVTdJQzh2SUc5c1pDQmpkWEp5Wlc1MExuWmhiSFZsWEc0Z0lHOXdkR2x2Ym5NNklGWmhjbWxoWW14bFZtRnNkV1ZQY0hScGIyNWJYVHRjYmlBZ1lXeHNiM2REZFhOMGIyMVdZV3gxWlQ4NklHSnZiMnhsWVc0N1hHNGdJR2x6VFhWc2RHay9PaUJpYjI5c1pXRnVPMXh1SUNCcGJtTnNkV1JsUVd4c1B6b2dZbTl2YkdWaGJqdGNiaUFnWkdWbVlYVnNkRlJ2UVd4c1B6b2dZbTl2YkdWaGJqdGNiaUFnWVd4c1ZtRnNkV1UvT2lCemRISnBibWM3WEc0Z0lIQnNZV05sYUc5c1pHVnlQem9nYzNSeWFXNW5PMXh1SUNBdktpcGNiaUFnSUNvZ1JtOXlJRzExYkhScElIWmhiSFZsSUhaaGNtbGhZbXhsY3l3Z2RHaHBjeUJ2Y0hScGIyNGdZMjl1ZEhKdmJITWdhRzkzSUcxaGJua2dkbUZzZFdWeklIUnZJSE5vYjNjZ1ltVm1iM0psSUhSb1pYa2dZWEpsSUdOdmJHeGhjSE5sWkNCcGJuUnZJQ3RPTGx4dUlDQWdLaUJFWldaaGRXeDBjeUIwYnlBMVhHNGdJQ0FxTDF4dUlDQnRZWGhXYVhOcFlteGxWbUZzZFdWelB6b2diblZ0WW1WeU8xeHVJQ0J1YjFaaGJIVmxUMjVEYkdWaGNqODZJR0p2YjJ4bFlXNDdYRzRnSUdselVtVmhaRTl1YkhrL09pQmliMjlzWldGdU8xeHVmVnh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUZaaGNtbGhZbXhsUjJWMFQzQjBhVzl1YzBGeVozTWdlMXh1SUNCelpXRnlZMmhHYVd4MFpYSS9PaUJ6ZEhKcGJtYzdYRzU5WEc1Y2JtVjRjRzl5ZENCaFluTjBjbUZqZENCamJHRnpjeUJOZFd4MGFWWmhiSFZsVm1GeWFXRmliR1U4VkZOMFlYUmxJR1Y0ZEdWdVpITWdUWFZzZEdsV1lXeDFaVlpoY21saFlteGxVM1JoZEdVZ1BTQk5kV3gwYVZaaGJIVmxWbUZ5YVdGaWJHVlRkR0YwWlQ1Y2JpQWdaWGgwWlc1a2N5QlRZMlZ1WlU5aWFtVmpkRUpoYzJVOFZGTjBZWFJsUGx4dUlDQnBiWEJzWlcxbGJuUnpJRk5qWlc1bFZtRnlhV0ZpYkdVOFZGTjBZWFJsUGx4dWUxeHVJQ0J3Y205MFpXTjBaV1FnWDNWeWJGTjVibU02SUZOalpXNWxUMkpxWldOMFZYSnNVM2x1WTBoaGJtUnNaWElnUFNCdVpYY2dUWFZzZEdsV1lXeDFaVlZ5YkZONWJtTklZVzVrYkdWeUtIUm9hWE1wTzF4dVhHNGdJQzhxS2x4dUlDQWdLaUJUWlhRZ2RHOGdkSEoxWlNCMGJ5QnphMmx3SUc1bGVIUWdkbUZzZFdVZ2RtRnNhV1JoZEdsdmJpQjBieUJ0WVdsdWRHRnBiaUIwYUdVZ1kzVnljbVZ1ZENCMllXeDFaU0JsZG1WdUlHbDBJR2wwSjNNZ2JtOTBJR0Z0YjI1bklIUm9aU0J2Y0hScGIyNXpJQ2hwWlNCMllXeHBaQ0IyWVd4MVpYTXBYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdjMnRwY0U1bGVIUldZV3hwWkdGMGFXOXVQem9nWW05dmJHVmhianRjYmx4dUlDQXZLaXBjYmlBZ0lDb2dWR2hsSUhOdmRYSmpaU0J2WmlCMllXeDFaU0J2Y0hScGIyNXpMbHh1SUNBZ0tpOWNiaUFnY0hWaWJHbGpJR0ZpYzNSeVlXTjBJR2RsZEZaaGJIVmxUM0IwYVc5dWN5aGhjbWR6T2lCV1lYSnBZV0pzWlVkbGRFOXdkR2x2Ym5OQmNtZHpLVG9nVDJKelpYSjJZV0pzWlR4V1lYSnBZV0pzWlZaaGJIVmxUM0IwYVc5dVcxMCtPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR2x6SUdaMWJtTjBhVzl1SUdseklHTmhiR3hsWkNCdmJpQjNhR1Z1SUZOalpXNWxWbUZ5YVdGaWJHVlRaWFFnYVhNZ1lXTjBhWFpoZEdWa0lHOXlJSGRvWlc0Z1lTQmtaWEJsYm1SbGJtTjVJR05vWVc1blpYTXVYRzRnSUNBcUwxeHVJQ0J3ZFdKc2FXTWdkbUZzYVdSaGRHVkJibVJWY0dSaGRHVW9LVG9nVDJKelpYSjJZV0pzWlR4V1lXeHBaR0YwWlVGdVpGVndaR0YwWlZKbGMzVnNkRDRnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1kbGRGWmhiSFZsVDNCMGFXOXVjeWg3ZlNrdWNHbHdaU2hjYmlBZ0lDQWdJRzFoY0Nnb2IzQjBhVzl1Y3lrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0IwYUdsekxuVndaR0YwWlZaaGJIVmxSMmwyWlc1T1pYZFBjSFJwYjI1ektHOXdkR2x2Ym5NcE8xeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2UzMDdYRzRnSUNBZ0lDQjlLVnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdiMjVEWVc1alpXd29LVG9nZG05cFpDQjdYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaVWhsYkhCbGNpaDdJR3h2WVdScGJtYzZJR1poYkhObElIMHBPMXh1SUNBZ0lHTnZibk4wSUhOalpXNWxWbUZ5VTJWMElEMGdkR2hwY3k1d1lYSmxiblFnWVhNZ1UyTmxibVZXWVhKcFlXSnNaVk5sZER0Y2JpQWdJQ0J6WTJWdVpWWmhjbE5sZEQ4dVkyRnVZMlZzS0hSb2FYTXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOb1pXTnJJR2xtSUdOMWNuSmxiblFnZG1Gc2RXVWdhWE1nZG1Gc2FXUWdaMmwyWlc0Z2JtVjNJRzl3ZEdsdmJuTXVJRWxtSUc1dmRDQjFjR1JoZEdVZ2RHaGxJSFpoYkhWbExseHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQjFjR1JoZEdWV1lXeDFaVWRwZG1WdVRtVjNUM0IwYVc5dWN5aHZjSFJwYjI1ek9pQldZWEpwWVdKc1pWWmhiSFZsVDNCMGFXOXVXMTBwSUh0Y2JpQWdJQ0F2THlCU1pXMWxiV0psY2lCamRYSnlaVzUwSUhaaGJIVmxJR0Z1WkNCMFpYaDBYRzRnSUNBZ1kyOXVjM1FnZXlCMllXeDFaVG9nWTNWeWNtVnVkRlpoYkhWbExDQjBaWGgwT2lCamRYSnlaVzUwVkdWNGRDd2diM0IwYVc5dWN6b2diMnhrVDNCMGFXOXVjeUI5SUQwZ2RHaHBjeTV6ZEdGMFpUdGNibHh1SUNBZ0lHTnZibk4wSUhOMFlYUmxWWEJrWVhSbElEMGdkR2hwY3k1blpYUlRkR0YwWlZWd1pHRjBaVWRwZG1WdVRtVjNUM0IwYVc5dWN5aHZjSFJwYjI1ekxDQmpkWEp5Wlc1MFZtRnNkV1VzSUdOMWNuSmxiblJVWlhoMEtUdGNibHh1SUNBZ0lIUm9hWE11YVc1MFpYSmpaWEIwVTNSaGRHVlZjR1JoZEdWQlpuUmxjbFpoYkdsa1lYUnBiMjRvYzNSaGRHVlZjR1JoZEdVcE8xeHVYRzRnSUNBZ0x5OGdVR1Z5Wm05eWJTQnpkR0YwWlNCamFHRnVaMlZjYmlBZ0lDQjBhR2x6TG5ObGRGTjBZWFJsU0dWc2NHVnlLSE4wWVhSbFZYQmtZWFJsS1R0Y2JseHVJQ0FnSUM4dklGQjFZbXhwYzJnZ2RtRnNkV1VnWTJoaGJtZGxaQ0JsZG1WdWRDQnZibXg1SUdsbUlIWmhiSFZsSUdOb1lXNW5aV1JjYmlBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0J6ZEdGMFpWVndaR0YwWlM1MllXeDFaU0FoUFQwZ1kzVnljbVZ1ZEZaaGJIVmxJSHg4WEc0Z0lDQWdJQ0J6ZEdGMFpWVndaR0YwWlM1MFpYaDBJQ0U5UFNCamRYSnlaVzUwVkdWNGRDQjhmRnh1SUNBZ0lDQWdLSFJvYVhNdWFHRnpRV3hzVm1Gc2RXVW9LU0FtSmlBaGFYTkZjWFZoYkNodmNIUnBiMjV6TENCdmJHUlBjSFJwYjI1ektTbGNiaUFnSUNBcElIdGNiaUFnSUNBZ0lIUm9hWE11Y0hWaWJHbHphRVYyWlc1MEtHNWxkeUJUWTJWdVpWWmhjbWxoWW14bFZtRnNkV1ZEYUdGdVoyVmtSWFpsYm5Rb2RHaHBjeWtzSUhSeWRXVXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdaMlYwVTNSaGRHVlZjR1JoZEdWSGFYWmxiazVsZDA5d2RHbHZibk1vWEc0Z0lDQWdiM0IwYVc5dWN6b2dWbUZ5YVdGaWJHVldZV3gxWlU5d2RHbHZibHRkTEZ4dUlDQWdJR04xY25KbGJuUldZV3gxWlRvZ1ZtRnlhV0ZpYkdWV1lXeDFaU3hjYmlBZ0lDQmpkWEp5Wlc1MFZHVjRkRG9nVm1GeWFXRmliR1ZXWVd4MVpWeHVJQ0FwT2lCUVlYSjBhV0ZzUEUxMWJIUnBWbUZzZFdWV1lYSnBZV0pzWlZOMFlYUmxQaUI3WEc0Z0lDQWdZMjl1YzNRZ2MzUmhkR1ZWY0dSaGRHVTZJRkJoY25ScFlXdzhUWFZzZEdsV1lXeDFaVlpoY21saFlteGxVM1JoZEdVK0lEMGdlMXh1SUNBZ0lDQWdiM0IwYVc5dWN5eGNiaUFnSUNBZ0lHeHZZV1JwYm1jNklHWmhiSE5sTEZ4dUlDQWdJQ0FnZG1Gc2RXVTZJR04xY25KbGJuUldZV3gxWlN4Y2JpQWdJQ0FnSUhSbGVIUTZJR04xY25KbGJuUlVaWGgwTEZ4dUlDQWdJSDA3WEc1Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1c1pXNW5kR2dnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbk4wWVhSbExtUmxabUYxYkhSVWIwRnNiQ0I4ZkNCMGFHbHpMbk4wWVhSbExtbHVZMngxWkdWQmJHd3BJSHRjYmlBZ0lDQWdJQ0FnYzNSaGRHVlZjR1JoZEdVdWRtRnNkV1VnUFNCQlRFeGZWa0ZTU1VGQ1RFVmZWa0ZNVlVVN1hHNGdJQ0FnSUNBZ0lITjBZWFJsVlhCa1lYUmxMblJsZUhRZ1BTQkJURXhmVmtGU1NVRkNURVZmVkVWWVZEdGNiaUFnSUNBZ0lIMGdaV3h6WlNCcFppQW9kR2hwY3k1emRHRjBaUzVwYzAxMWJIUnBLU0I3WEc0Z0lDQWdJQ0FnSUhOMFlYUmxWWEJrWVhSbExuWmhiSFZsSUQwZ1cxMDdYRzRnSUNBZ0lDQWdJSE4wWVhSbFZYQmtZWFJsTG5SbGVIUWdQU0JiWFR0Y2JpQWdJQ0FnSUgwZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUhOMFlYUmxWWEJrWVhSbExuWmhiSFZsSUQwZ0p5YzdYRzRnSUNBZ0lDQWdJSE4wWVhSbFZYQmtZWFJsTG5SbGVIUWdQU0FuSnp0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2NtVjBkWEp1SUhOMFlYUmxWWEJrWVhSbE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaDBhR2x6TG1oaGMwRnNiRlpoYkhWbEtDa3BJSHRjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbk4wWVhSbExtbHVZMngxWkdWQmJHd3BJSHRjYmlBZ0lDQWdJQ0FnTHk4Z1UyOXRaWFJwYldWeklIUm9aU0IwWlhoMElISmxjSEpsYzJWdWRHRjBhVzl1SUdseklHRnNjMjhnYzJWMElIUm9aU0JCVEV4ZlZrRlNTVUZDVEVWZlZrRk1WVVVzSUhSb2FYTWdabWw0WlhNZ2RHaGhkRnh1SUNBZ0lDQWdJQ0J6ZEdGMFpWVndaR0YwWlM1MFpYaDBJRDBnUVV4TVgxWkJVa2xCUWt4RlgxUkZXRlE3WEc0Z0lDQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdJQ0J6ZEdGMFpWVndaR0YwWlM1MllXeDFaU0E5SUc5d2RHbHZibk5iTUYwdWRtRnNkV1U3WEc0Z0lDQWdJQ0FnSUhOMFlYUmxWWEJrWVhSbExuUmxlSFFnUFNCdmNIUnBiMjV6V3pCZExteGhZbVZzTzF4dUlDQWdJQ0FnSUNBdkx5QkpaaUJ0ZFd4MGFTQnpkMmwwWTJnZ2RHOGdZWEp5WVhselhHNGdJQ0FnSUNBZ0lHbG1JQ2gwYUdsekxuTjBZWFJsTG1selRYVnNkR2twSUh0Y2JpQWdJQ0FnSUNBZ0lDQnpkR0YwWlZWd1pHRjBaUzUyWVd4MVpTQTlJRnR6ZEdGMFpWVndaR0YwWlM1MllXeDFaVjA3WEc0Z0lDQWdJQ0FnSUNBZ2MzUmhkR1ZWY0dSaGRHVXVkR1Y0ZENBOUlGdHpkR0YwWlZWd1pHRjBaUzUwWlhoMFhUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlITjBZWFJsVlhCa1lYUmxPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2gwYUdsekxuTjBZWFJsTG1selRYVnNkR2twSUh0Y2JpQWdJQ0FnSUM4dklFbG1JSGRsSUdGeVpTQmhJRzExYkhScElIWmhiSFZsWkNCMllYSnBZV0pzWlNCMllXeHBaR0YwWlNCMGFHVWdZM1Z5Y21WdWRDQjJZV3gxWlhNZ1lYSmxJR0Z0YjI1bklIUm9aU0J2Y0hScGIyNXpYRzRnSUNBZ0lDQmpiMjV6ZENCamRYSnlaVzUwVm1Gc2RXVnpJRDBnUVhKeVlYa3VhWE5CY25KaGVTaGpkWEp5Wlc1MFZtRnNkV1VwSUQ4Z1kzVnljbVZ1ZEZaaGJIVmxJRG9nVzJOMWNuSmxiblJXWVd4MVpWMDdYRzRnSUNBZ0lDQmpiMjV6ZENCMllXeHBaRlpoYkhWbGN5QTlJR04xY25KbGJuUldZV3gxWlhNdVptbHNkR1Z5S0NoMktTQTlQaUJ2Y0hScGIyNXpMbVpwYm1Rb0tHOHBJRDArSUc4dWRtRnNkV1VnUFQwOUlIWXBLVHRjYmlBZ0lDQWdJR052Ym5OMElIWmhiR2xrVkdWNGRITWdQU0IyWVd4cFpGWmhiSFZsY3k1dFlYQW9LSFlwSUQwK0lHOXdkR2x2Ym5NdVptbHVaQ2dvYnlrZ1BUNGdieTUyWVd4MVpTQTlQVDBnZGlraExteGhZbVZzS1R0Y2JseHVJQ0FnSUNBZ0x5OGdTV1lnYm04Z2RtRnNhV1FnZG1Gc2RXVnpJSEJwWTJzZ2RHaGxJR1pwY25OMElHOXdkR2x2Ymx4dUlDQWdJQ0FnYVdZZ0tIWmhiR2xrVm1Gc2RXVnpMbXhsYm1kMGFDQTlQVDBnTUNrZ2UxeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCa1pXWmhkV3gwVTNSaGRHVWdQU0IwYUdsekxtZGxkRVJsWm1GMWJIUk5kV3gwYVZOMFlYUmxLRzl3ZEdsdmJuTXBPMXh1SUNBZ0lDQWdJQ0J6ZEdGMFpWVndaR0YwWlM1MllXeDFaU0E5SUdSbFptRjFiSFJUZEdGMFpTNTJZV3gxWlR0Y2JpQWdJQ0FnSUNBZ2MzUmhkR1ZWY0dSaGRHVXVkR1Y0ZENBOUlHUmxabUYxYkhSVGRHRjBaUzUwWlhoME8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ0x5OGdWMlVnYUdGMlpTQjJZV3hwWkNCMllXeDFaWE1zSUdsbUlHbDBKM01nWkdsbVptVnlaVzUwSUdaeWIyMGdZM1Z5Y21WdWRDQjJZV3hwWkNCMllXeDFaWE1nZFhCa1lYUmxJR04xY25KbGJuUWdkbUZzZFdWelhHNGdJQ0FnSUNBZ0lHbG1JQ2doYVhORmNYVmhiQ2gyWVd4cFpGWmhiSFZsY3l3Z1kzVnljbVZ1ZEZaaGJIVmxLU2tnZTF4dUlDQWdJQ0FnSUNBZ0lITjBZWFJsVlhCa1lYUmxMblpoYkhWbElEMGdkbUZzYVdSV1lXeDFaWE03WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLQ0ZwYzBWeGRXRnNLSFpoYkdsa1ZHVjRkSE1zSUdOMWNuSmxiblJVWlhoMEtTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhOMFlYUmxWWEJrWVhSbExuUmxlSFFnUFNCMllXeHBaRlJsZUhSek8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQnlaWFIxY200Z2MzUmhkR1ZWY0dSaGRHVTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdVMmx1WjJ4bElIWmhiSFZsSUhaaGNtbGhZbXhsSUhaaGJHbGtZWFJwYjI1Y2JseHVJQ0FnSUM4dklGUnllU0JtYVc1a0lHSjVJSFpoYkhWbElIUm9aVzRnZEdWNGRGeHVJQ0FnSUd4bGRDQnRZWFJqYUdsdVowOXdkR2x2YmlBOUlHWnBibVJQY0hScGIyNU5ZWFJqYUdsdVowTjFjbkpsYm5Rb1kzVnljbVZ1ZEZaaGJIVmxMQ0JqZFhKeVpXNTBWR1Y0ZEN3Z2IzQjBhVzl1Y3lrN1hHNGdJQ0FnYVdZZ0tHMWhkR05vYVc1blQzQjBhVzl1S1NCN1hHNGdJQ0FnSUNBdkx5QlhhR1Z1SUhWd1pHRjBhVzVuSUhSb1pTQnBibWwwYVdGc0lITjBZWFJsSUdaeWIyMGdWVkpNSUhSb1pTQjBaWGgwSUhCeWIzQmxjblI1SUdseklITmxkQ0IwYUdVZ2MyRnRaU0JoY3lCMllXeDFaVnh1SUNBZ0lDQWdMeThnU0dWeVpTQjNaU0JqWVc0Z1kyOXljbVZqZENCMGFHVWdkR1Y0ZENCMllXeDFaU0J6ZEdGMFpWeHVJQ0FnSUNBZ2MzUmhkR1ZWY0dSaGRHVXVkR1Y0ZENBOUlHMWhkR05vYVc1blQzQjBhVzl1TG14aFltVnNPMXh1SUNBZ0lDQWdjM1JoZEdWVmNHUmhkR1V1ZG1Gc2RXVWdQU0J0WVhSamFHbHVaMDl3ZEdsdmJpNTJZV3gxWlR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdMeThnUTNWeWNtVnVkQ0IyWVd4MVpTQnBjeUJtYjNWdVpDQnBiaUJ2Y0hScGIyNXpYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlM1a1pXWmhkV3gwVkc5QmJHd3BJSHRjYmlBZ0lDQWdJQ0FnYzNSaGRHVlZjR1JoZEdVdWRtRnNkV1VnUFNCQlRFeGZWa0ZTU1VGQ1RFVmZWa0ZNVlVVN1hHNGdJQ0FnSUNBZ0lITjBZWFJsVlhCa1lYUmxMblJsZUhRZ1BTQkJURXhmVmtGU1NVRkNURVZmVkVWWVZEdGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lDOHZJRU4xY25KbGJuUWdkbUZzZFdVZ2FYTWdibTkwSUhaaGJHbGtMaUJUWlhRZ2RHOGdabWx5YzNRZ2IyWWdkR2hsSUdGMllXbHNZV0pzWlNCdmNIUnBiMjV6WEc0Z0lDQWdJQ0FnSUhOMFlYUmxWWEJrWVhSbExuWmhiSFZsSUQwZ2IzQjBhVzl1YzFzd1hTNTJZV3gxWlR0Y2JpQWdJQ0FnSUNBZ2MzUmhkR1ZWY0dSaGRHVXVkR1Y0ZENBOUlHOXdkR2x2Ym5OYk1GMHViR0ZpWld3N1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSE4wWVhSbFZYQmtZWFJsTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGWmhiSFZsY3lCelpYUWdZbmtnYVc1cGRHbGhiQ0JWVWt3Z2MzbHVZeUJ1WldWa2N5QjBieUJ6ZFhKMmFYWmxJSFJvWlNCdVpYaDBJSFpoYkdsa1lYUnBiMjRnWVc1a0lIVndaR0YwWlM1Y2JpQWdJQ29nVkdocGN5Qm1kVzVqZEdsdmJpQmpZVzRnYVc1MFpYSmpaWEIwSUdGdVpDQnRZV3RsSUhOMWNtVWdkR2h2YzJVZ2RtRnNkV1Z6SUdGeVpTQndjbVZ6WlhKMlpXUXVYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnYVc1MFpYSmpaWEIwVTNSaGRHVlZjR1JoZEdWQlpuUmxjbFpoYkdsa1lYUnBiMjRvYzNSaGRHVlZjR1JoZEdVNklGQmhjblJwWVd3OFRYVnNkR2xXWVd4MVpWWmhjbWxoWW14bFUzUmhkR1UrS1RvZ2RtOXBaQ0I3WEc0Z0lDQWdMeThnU1dZZ2RHaGxJSFpoYkdsa1lYUnBiMjRnZDJGdWRITWdkRzhnWm1sNElIUm9aU0JoYkd3Z2RtRnNkV1VnS0VGc2JDQTlQVDRnSkY5ZllXeHNLU0IwYUdWdUlIZGxJSE5vYjNWc1pDQnNaWFFnZEdoaGRDQndZWE56WEc0Z0lDQWdZMjl1YzNRZ2FYTkJiR3hXWVd4MVpVWnBlQ0E5SUhOMFlYUmxWWEJrWVhSbExuWmhiSFZsSUQwOVBTQkJURXhmVmtGU1NVRkNURVZmVmtGTVZVVWdKaVlnZEdocGN5NXpkR0YwWlM1MFpYaDBJRDA5UFNCQlRFeGZWa0ZTU1VGQ1RFVmZWRVZZVkR0Y2JseHVJQ0FnSUdsbUlDaGNiaUFnSUNBZ0lIUm9hWE11YzJ0cGNFNWxlSFJXWVd4cFpHRjBhVzl1SUNZbVhHNGdJQ0FnSUNCemRHRjBaVlZ3WkdGMFpTNTJZV3gxWlNBaFBUMGdkR2hwY3k1emRHRjBaUzUyWVd4MVpTQW1KbHh1SUNBZ0lDQWdjM1JoZEdWVmNHUmhkR1V1ZEdWNGRDQWhQVDBnZEdocGN5NXpkR0YwWlM1MFpYaDBJQ1ltWEc0Z0lDQWdJQ0FoYVhOQmJHeFdZV3gxWlVacGVGeHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2MzUmhkR1ZWY0dSaGRHVXVkbUZzZFdVZ1BTQjBhR2x6TG5OMFlYUmxMblpoYkhWbE8xeHVJQ0FnSUNBZ2MzUmhkR1ZWY0dSaGRHVXVkR1Y0ZENBOUlIUm9hWE11YzNSaGRHVXVkR1Y0ZER0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0IwYUdsekxuTnJhWEJPWlhoMFZtRnNhV1JoZEdsdmJpQTlJR1poYkhObE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHZGxkRlpoYkhWbEtDazZJRlpoY21saFlteGxWbUZzZFdVZ2UxeHVJQ0FnSUdsbUlDaDBhR2x6TG1oaGMwRnNiRlpoYkhWbEtDa3BJSHRjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbk4wWVhSbExtRnNiRlpoYkhWbEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUTNWemRHOXRRV3hzVm1Gc2RXVW9kR2hwY3k1emRHRjBaUzVoYkd4V1lXeDFaU3dnZEdocGN5azdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5OMFlYUmxMbTl3ZEdsdmJuTXViV0Z3S0NoNEtTQTlQaUI0TG5aaGJIVmxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV6ZEdGMFpTNTJZV3gxWlR0Y2JpQWdmVnh1WEc0Z0lIQjFZbXhwWXlCblpYUldZV3gxWlZSbGVIUW9LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnBaaUFvZEdocGN5NW9ZWE5CYkd4V1lXeDFaU2dwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnUVV4TVgxWkJVa2xCUWt4RlgxUkZXRlE3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0VGeWNtRjVMbWx6UVhKeVlYa29kR2hwY3k1emRHRjBaUzUwWlhoMEtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11YzNSaGRHVXVkR1Y0ZEM1cWIybHVLQ2NnS3lBbktUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnVTNSeWFXNW5LSFJvYVhNdWMzUmhkR1V1ZEdWNGRDazdYRzRnSUgxY2JseHVJQ0J3ZFdKc2FXTWdhR0Z6UVd4c1ZtRnNkV1VvS1NCN1hHNGdJQ0FnWTI5dWMzUWdkbUZzZFdVZ1BTQjBhR2x6TG5OMFlYUmxMblpoYkhWbE8xeHVJQ0FnSUhKbGRIVnliaUIyWVd4MVpTQTlQVDBnUVV4TVgxWkJVa2xCUWt4RlgxWkJURlZGSUh4OElDaEJjbkpoZVM1cGMwRnljbUY1S0haaGJIVmxLU0FtSmlCMllXeDFaVnN3WFNBOVBUMGdRVXhNWDFaQlVrbEJRa3hGWDFaQlRGVkZLVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhSRVpXWmhkV3gwVFhWc2RHbFRkR0YwWlNodmNIUnBiMjV6T2lCV1lYSnBZV0pzWlZaaGJIVmxUM0IwYVc5dVcxMHBJSHRjYmlBZ0lDQnBaaUFvZEdocGN5NXpkR0YwWlM1a1pXWmhkV3gwVkc5QmJHd3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjdJSFpoYkhWbE9pQmJRVXhNWDFaQlVrbEJRa3hGWDFaQlRGVkZYU3dnZEdWNGREb2dXMEZNVEY5V1FWSkpRVUpNUlY5VVJWaFVYU0I5TzF4dUlDQWdJSDBnWld4elpTQnBaaUFvYjNCMGFXOXVjeTVzWlc1bmRHZ2dQaUF3S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZXlCMllXeDFaVG9nVzI5d2RHbHZibk5iTUYwdWRtRnNkV1ZkTENCMFpYaDBPaUJiYjNCMGFXOXVjMXN3WFM1c1lXSmxiRjBnZlR0Y2JpQWdJQ0I5SUdWc2MyVWdlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIc2dkbUZzZFdVNklGdGRMQ0IwWlhoME9pQmJYU0I5TzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCRGFHRnVaMlVnZEdobElIWmhiSFZsSUdGdVpDQndkV0pzYVhOb0lGTmpaVzVsVm1GeWFXRmliR1ZXWVd4MVpVTm9ZVzVuWldSRmRtVnVkQ0JsZG1WdWRDNWNiaUFnSUNvdlhHNGdJSEIxWW14cFl5QmphR0Z1WjJWV1lXeDFaVlJ2S0haaGJIVmxPaUJXWVhKcFlXSnNaVlpoYkhWbExDQjBaWGgwUHpvZ1ZtRnlhV0ZpYkdWV1lXeDFaU2tnZTF4dUlDQWdJQzh2SUVsbmJtOXlaU0JwWmlCMGFHVnlaU0JwY3lCdWJ5QmphR0Z1WjJWY2JpQWdJQ0JwWmlBb2RtRnNkV1VnUFQwOUlIUm9hWE11YzNSaGRHVXVkbUZzZFdVZ0ppWWdkR1Y0ZENBOVBUMGdkR2hwY3k1emRHRjBaUzUwWlhoMEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200N1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tDRjBaWGgwS1NCN1hHNGdJQ0FnSUNCcFppQW9RWEp5WVhrdWFYTkJjbkpoZVNoMllXeDFaU2twSUh0Y2JpQWdJQ0FnSUNBZ2RHVjRkQ0E5SUhaaGJIVmxMbTFoY0Nnb2Rpa2dQVDRnZEdocGN5NW1hVzVrVEdGaVpXeFVaWGgwUm05eVZtRnNkV1VvZGlrcE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2RHVjRkQ0E5SUhSb2FYTXVabWx1WkV4aFltVnNWR1Y0ZEVadmNsWmhiSFZsS0haaGJIVmxLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvUVhKeVlYa3VhWE5CY25KaGVTaDJZV3gxWlNrcElIdGNiaUFnSUNBZ0lDOHZJRWxtSUhkbElHRnlaU0JoSUcxMWJIUnBJSFpoYkhWbFpDQjJZWEpwWVdKc1pTQnBjeUJqYkdWaGNtVmtJQ2hsYlhCMGVTQmhjbkpoZVNrZ2QyVWdibVZsWkNCMGJ5QnpaWFFnZEdobElHUmxabUYxYkhRZ1pXMXdkSGtnYzNSaGRHVmNiaUFnSUNBZ0lHbG1JQ2gyWVd4MVpTNXNaVzVuZEdnZ1BUMDlJREFwSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYzNSaGRHVWdQU0IwYUdsekxtZGxkRVJsWm1GMWJIUk5kV3gwYVZOMFlYUmxLSFJvYVhNdWMzUmhkR1V1YjNCMGFXOXVjeWs3WEc0Z0lDQWdJQ0FnSUhaaGJIVmxJRDBnYzNSaGRHVXVkbUZzZFdVN1hHNGdJQ0FnSUNBZ0lIUmxlSFFnUFNCemRHRjBaUzUwWlhoME8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQXZMeUJKWmlCc1lYTjBJSFpoYkhWbElHbHpJSFJvWlNCQmJHd2dkbUZzZFdVZ2RHaGxiaUJ5WlhCc1lXTmxJR0ZzYkNCM2FYUm9JR2wwWEc0Z0lDQWdJQ0JwWmlBb2RtRnNkV1ZiZG1Gc2RXVXViR1Z1WjNSb0lDMGdNVjBnUFQwOUlFRk1URjlXUVZKSlFVSk1SVjlXUVV4VlJTa2dlMXh1SUNBZ0lDQWdJQ0IyWVd4MVpTQTlJRnRCVEV4ZlZrRlNTVUZDVEVWZlZrRk1WVVZkTzF4dUlDQWdJQ0FnSUNCMFpYaDBJRDBnVzBGTVRGOVdRVkpKUVVKTVJWOVVSVmhVWFR0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUM4dklFbG1JSFJvWlNCbWFYSnpkQ0IyWVd4MVpTQnBjeUIwYUdVZ1FVeE1JSFpoYkhWbElHRnVaQ0IzWlNCb1lYWmxJRzkwYUdWeUlIWmhiSFZsY3l3Z2RHaGxiaUJ5WlcxdmRtVWdkR2hsSUVGc2JDQjJZV3gxWlZ4dUlDQWdJQ0FnWld4elpTQnBaaUFvZG1Gc2RXVmJNRjBnUFQwOUlFRk1URjlXUVZKSlFVSk1SVjlXUVV4VlJTQW1KaUIyWVd4MVpTNXNaVzVuZEdnZ1BpQXhLU0I3WEc0Z0lDQWdJQ0FnSUhaaGJIVmxMbk5vYVdaMEtDazdYRzRnSUNBZ0lDQWdJR2xtSUNoQmNuSmhlUzVwYzBGeWNtRjVLSFJsZUhRcEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdWNGRDNXphR2xtZENncE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ0x5OGdSRzhnYm05MGFHbHVaeUJwWmlCMllXeDFaU0JoYm1RZ2RHVjRkQ0JoY21VZ2RHaGxJSE5oYldWY2JpQWdJQ0JwWmlBb2FYTkZjWFZoYkNoMllXeDFaU3dnZEdocGN5NXpkR0YwWlM1MllXeDFaU2tnSmlZZ2FYTkZjWFZoYkNoMFpYaDBMQ0IwYUdsekxuTjBZWFJsTG5SbGVIUXBLU0I3WEc0Z0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaVWhsYkhCbGNpaDdJSFpoYkhWbExDQjBaWGgwTENCc2IyRmthVzVuT2lCbVlXeHpaU0I5S1R0Y2JpQWdJQ0IwYUdsekxuQjFZbXhwYzJoRmRtVnVkQ2h1WlhjZ1UyTmxibVZXWVhKcFlXSnNaVlpoYkhWbFEyaGhibWRsWkVWMlpXNTBLSFJvYVhNcExDQjBjblZsS1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1ptbHVaRXhoWW1Wc1ZHVjRkRVp2Y2xaaGJIVmxLSFpoYkhWbE9pQldZWEpwWVdKc1pWWmhiSFZsVTJsdVoyeGxLVG9nVm1GeWFXRmliR1ZXWVd4MVpWTnBibWRzWlNCN1hHNGdJQ0FnYVdZZ0tIWmhiSFZsSUQwOVBTQkJURXhmVmtGU1NVRkNURVZmVmtGTVZVVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQkJURXhmVmtGU1NVRkNURVZmVkVWWVZEdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J2Y0hScGIyNGdQU0IwYUdsekxuTjBZWFJsTG05d2RHbHZibk11Wm1sdVpDZ29lQ2tnUFQ0Z2VDNTJZV3gxWlNBOVBUMGdkbUZzZFdVcE8xeHVJQ0FnSUdsbUlDaHZjSFJwYjI0cElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdmNIUnBiMjR1YkdGaVpXdzdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYjNCMGFXOXVRbmxNWVdKbGJDQTlJSFJvYVhNdWMzUmhkR1V1YjNCMGFXOXVjeTVtYVc1a0tDaDRLU0E5UGlCNExteGhZbVZzSUQwOVBTQjJZV3gxWlNrN1hHNGdJQ0FnYVdZZ0tHOXdkR2x2YmtKNVRHRmlaV3dwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ2Y0hScGIyNUNlVXhoWW1Wc0xteGhZbVZzTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQjJZV3gxWlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlVhR2x6SUdobGJIQmxjaUJtZFc1amRHbHZiaUJwY3lCMGJ5QmpiM1Z1ZEdWeUlIUm9aU0JqYjI1MGNtRjJZWEpwWVc1alpTQnZaaUJ6WlhSVGRHRjBaVnh1SUNBZ0tpOWNiaUFnY0hKcGRtRjBaU0J6WlhSVGRHRjBaVWhsYkhCbGNpaHpkR0YwWlRvZ1VHRnlkR2xoYkR4TmRXeDBhVlpoYkhWbFZtRnlhV0ZpYkdWVGRHRjBaVDRwSUh0Y2JpQWdJQ0J6WlhSQ1lYTmxRMnhoYzNOVGRHRjBaVHhOZFd4MGFWWmhiSFZsVm1GeWFXRmliR1ZUZEdGMFpUNG9kR2hwY3l3Z2MzUmhkR1VwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdkbGRFOXdkR2x2Ym5OR2IzSlRaV3hsWTNRb0tUb2dWbUZ5YVdGaWJHVldZV3gxWlU5d2RHbHZibHRkSUh0Y2JpQWdJQ0JzWlhRZ2IzQjBhVzl1Y3lBOUlIUm9hWE11YzNSaGRHVXViM0IwYVc5dWN6dGNibHh1SUNBZ0lHbG1JQ2gwYUdsekxuTjBZWFJsTG1sdVkyeDFaR1ZCYkd3cElIdGNiaUFnSUNBZ0lHOXdkR2x2Ym5NZ1BTQmJleUIyWVd4MVpUb2dRVXhNWDFaQlVrbEJRa3hGWDFaQlRGVkZMQ0JzWVdKbGJEb2dRVXhNWDFaQlVrbEJRa3hGWDFSRldGUWdmU3dnTGk0dWIzQjBhVzl1YzEwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tDRkJjbkpoZVM1cGMwRnljbUY1S0hSb2FYTXVjM1JoZEdVdWRtRnNkV1VwS1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JqZFhKeVpXNTBJRDBnYjNCMGFXOXVjeTVtYVc1a0tDaDRLU0E5UGlCNExuWmhiSFZsSUQwOVBTQjBhR2x6TG5OMFlYUmxMblpoYkhWbEtUdGNiaUFnSUNBZ0lHbG1JQ2doWTNWeWNtVnVkQ2tnZTF4dUlDQWdJQ0FnSUNCdmNIUnBiMjV6SUQwZ1czc2dkbUZzZFdVNklIUm9hWE11YzNSaGRHVXVkbUZzZFdVc0lHeGhZbVZzT2lCVGRISnBibWNvZEdocGN5NXpkR0YwWlM1MFpYaDBLU0I5TENBdUxpNXZjSFJwYjI1elhUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnYjNCMGFXOXVjenRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ5WldaeVpYTm9UM0IwYVc5dWN5Z3BJSHRjYmlBZ0lDQjBhR2x6TG1kbGRGWmhiSFZsVDNCMGFXOXVjeWg3ZlNrdWMzVmljMk55YVdKbEtDaHZjSFJwYjI1ektTQTlQaUI3WEc0Z0lDQWdJQ0IwYUdsekxuVndaR0YwWlZaaGJIVmxSMmwyWlc1T1pYZFBjSFJwYjI1ektHOXdkR2x2Ym5NcE8xeHVJQ0FnSUgwcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU5oYmlCaVpTQjFjMlZrSUdKNUlITjFZbU5zWVhOelpYTWdkRzhnWkc4Z1kzVnpkRzl0SUdoaGJtUnNhVzVuSUc5bUlHOXdkR2x2YmlCelpXRnlZMmdnWW1GelpXUWdiMjRnYzJWaGNtTm9JR2x1Y0hWMFhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ2IyNVRaV0Z5WTJoRGFHRnVaMlUvS0hObFlYSmphRVpwYkhSbGNqb2djM1J5YVc1bktUb2dkbTlwWkR0Y2JuMWNibHh1THlvcVhHNGdLaUJNYjI5cmN5Qm1iM0lnYldGMFkyaHBibWNnYjNCMGFXOXVMQ0JtYVhKemRDQmllU0IyWVd4MVpTQmlkWFFnWVhNZ1lTQm1ZV3hzWW1GamF5QmllU0IwWlhoMElDaHNZV0psYkNrdVhHNGdLaTljYm1aMWJtTjBhVzl1SUdacGJtUlBjSFJwYjI1TllYUmphR2x1WjBOMWNuSmxiblFvWEc0Z0lHTjFjbkpsYm5SV1lXeDFaVG9nVm1GeWFXRmliR1ZXWVd4MVpTeGNiaUFnWTNWeWNtVnVkRlJsZUhRNklGWmhjbWxoWW14bFZtRnNkV1VzWEc0Z0lHOXdkR2x2Ym5NNklGWmhjbWxoWW14bFZtRnNkV1ZQY0hScGIyNWJYVnh1S1NCN1hHNGdJR3hsZENCMFpYaDBUV0YwWTJnNklGWmhjbWxoWW14bFZtRnNkV1ZQY0hScGIyNGdmQ0IxYm1SbFptbHVaV1E3WEc1Y2JpQWdabTl5SUNoamIyNXpkQ0JwZEdWdElHOW1JRzl3ZEdsdmJuTXBJSHRjYmlBZ0lDQnBaaUFvYVhSbGJTNTJZV3gxWlNBOVBUMGdZM1Z5Y21WdWRGWmhiSFZsS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYVhSbGJUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdkx5Qk9ieUJsWVhKc2VTQnlaWFIxY200Z2FHVnlaU0JoY3lCM1lXNTBJSFJ2SUdOdmJuUnBiblZsSUhSdklHeHZiMnNnWVNCMllXeDFaU0J0WVhSamFGeHVJQ0FnSUdsbUlDaHBkR1Z0TG14aFltVnNJRDA5UFNCamRYSnlaVzUwVkdWNGRDa2dlMXh1SUNBZ0lDQWdkR1Y0ZEUxaGRHTm9JRDBnYVhSbGJUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQnlaWFIxY200Z2RHVjRkRTFoZEdOb08xeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdUWFZzZEdsV1lXeDFaVlZ5YkZONWJtTklZVzVrYkdWeVBGUlRkR0YwWlNCbGVIUmxibVJ6SUUxMWJIUnBWbUZzZFdWV1lYSnBZV0pzWlZOMFlYUmxJRDBnVFhWc2RHbFdZV3gxWlZaaGNtbGhZbXhsVTNSaGRHVStYRzRnSUdsdGNHeGxiV1Z1ZEhNZ1UyTmxibVZQWW1wbFkzUlZjbXhUZVc1alNHRnVaR3hsY2x4dWUxeHVJQ0J3ZFdKc2FXTWdZMjl1YzNSeWRXTjBiM0lvY0hKcGRtRjBaU0JmYzJObGJtVlBZbXBsWTNRNklFMTFiSFJwVm1Gc2RXVldZWEpwWVdKc1pUeFVVM1JoZEdVK0tTQjdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1oyVjBTMlY1S0NrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJR0IyWVhJdEpIdDBhR2x6TGw5elkyVnVaVTlpYW1WamRDNXpkR0YwWlM1dVlXMWxmV0E3WEc0Z0lIMWNibHh1SUNCd2RXSnNhV01nWjJWMFMyVjVjeWdwT2lCemRISnBibWRiWFNCN1hHNGdJQ0FnYVdZZ0tIUm9hWE11WDNOalpXNWxUMkpxWldOMExuTjBZWFJsTG5OcmFYQlZjbXhUZVc1aktTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z1cxMDdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2NtVjBkWEp1SUZ0MGFHbHpMbWRsZEV0bGVTZ3BYVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJuWlhSVmNteFRkR0YwWlNncE9pQlRZMlZ1WlU5aWFtVmpkRlZ5YkZaaGJIVmxjeUI3WEc0Z0lDQWdhV1lnS0hSb2FYTXVYM05qWlc1bFQySnFaV04wTG5OMFlYUmxMbk5yYVhCVmNteFRlVzVqS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZTMwN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYkdWMElIVnliRlpoYkhWbE9pQnpkSEpwYm1jZ2ZDQnpkSEpwYm1kYlhTQjhJRzUxYkd3Z1BTQnVkV3hzTzF4dUlDQWdJR3hsZENCMllXeDFaU0E5SUhSb2FYTXVYM05qWlc1bFQySnFaV04wTG5OMFlYUmxMblpoYkhWbE8xeHVYRzRnSUNBZ2FXWWdLRUZ5Y21GNUxtbHpRWEp5WVhrb2RtRnNkV1VwS1NCN1hHNGdJQ0FnSUNCMWNteFdZV3gxWlNBOUlIWmhiSFZsTG0xaGNDaFRkSEpwYm1jcE8xeHVJQ0FnSUgwZ1pXeHpaU0JwWmlBb0tIUm9hWE1zSUhSb2FYTXVYM05qWlc1bFQySnFaV04wTG5OMFlYUmxMbWx6VFhWc2RHa3BLU0I3WEc0Z0lDQWdJQ0F2THlCSlppQjNaU0JoY21VZ2FXNU5kV3gwYVNCdGIyUmxJSGRsSUcxMWMzUWdjbVYwZFhKdUlHRnVJR0Z5Y21GNUlHaGxjbVVnWVhNZ2IzUm9aWEozYVhObElGVnliRk41Ym1OTllXNWhaMlZ5SUhkcGJHd2dibTkwSUhCaGMzTWdZV3hzSUhaaGJIVmxjeUFvYVc0Z1lXNGdZWEp5WVhrcElHbHVJSFZ3WkdGMFpVWnliMjFWY214Y2JpQWdJQ0FnSUhWeWJGWmhiSFZsSUQwZ1cxTjBjbWx1WnloMllXeDFaU2xkTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQjFjbXhXWVd4MVpTQTlJRk4wY21sdVp5aDJZV3gxWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSHNnVzNSb2FYTXVaMlYwUzJWNUtDbGRPaUIxY214V1lXeDFaU0I5TzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUhWd1pHRjBaVVp5YjIxVmNtd29kbUZzZFdWek9pQlRZMlZ1WlU5aWFtVmpkRlZ5YkZaaGJIVmxjeWs2SUhadmFXUWdlMXh1SUNBZ0lHeGxkQ0IxY214V1lXeDFaU0E5SUhaaGJIVmxjMXQwYUdsekxtZGxkRXRsZVNncFhUdGNibHh1SUNBZ0lHbG1JQ2gxY214V1lXeDFaU0FoUFNCdWRXeHNLU0I3WEc0Z0lDQWdJQ0F2THlCVWFHbHpJR2x6SUhSdklHSmxJR0poWTJ0M1lYSmtjeUJqYjIxd1lYUnBZbXhsSUhkcGRHZ2diMnhrSUhWeWJDQmhiR3dnZG1Gc2RXVmNiaUFnSUNBZ0lHbG1JQ2gwYUdsekxsOXpZMlZ1WlU5aWFtVmpkQzV6ZEdGMFpTNXBibU5zZFdSbFFXeHNLU0I3WEc0Z0lDQWdJQ0FnSUhWeWJGWmhiSFZsSUQwZ2FHRnVaR3hsVEdWbllXTjVWWEpzUVd4c1ZtRnNkV1VvZFhKc1ZtRnNkV1VwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBdkx5QkdiM0lnWldSblpTQmpZWE5sY3lCM2FHVnlaU0JrWVhSaElHeHBibXR6SUdsdVkyeDFaR1VnZG1GeWFXRmliR1Z6SUhkcGRHZ2dZM1Z6ZEc5dElHRnNiQ0IyWVd4MVpTNWNiaUFnSUNBZ0lDOHZJRmRsSUhkaGJuUWdkR2hsSUhaaGNtbGhZbXhsSUhSdklHMWhhVzUwWVdsdUlIUm9aU0JjSWtGc2JGd2lJRzFsZEdFZ2RtRnNkV1VnYm05MElIUm9aU0JoWTNSMVlXd2dZM1Z6ZEc5dElIWmhiR3dnZG1Gc2RXVXVJQ2hHYVhobGN5Qm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZaM0poWm1GdVlTOW5jbUZtWVc1aEwybHpjM1ZsY3k4eU9EWXpOU2xjYmlBZ0lDQWdJR2xtSUNoMGFHbHpMbDl6WTJWdVpVOWlhbVZqZEM1emRHRjBaUzVoYkd4V1lXeDFaU0FtSmlCMGFHbHpMbDl6WTJWdVpVOWlhbVZqZEM1emRHRjBaUzVoYkd4V1lXeDFaU0E5UFQwZ2RYSnNWbUZzZFdVcElIdGNiaUFnSUNBZ0lDQWdkWEpzVm1Gc2RXVWdQU0JCVEV4ZlZrRlNTVUZDVEVWZlZrRk1WVVU3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUM4cUtseHVJQ0FnSUNBZ0lDb2dTVzVwZEdsaGJDQlZVa3dnVTNsdVl5Qm9ZWEJ3Wlc1eklHSmxabTl5WlNCelkyVnVaU0J2WW1wbFkzUnpJR0Z5WlNCaFkzUnBkbUYwWldRdVhHNGdJQ0FnSUNBZ0tpQlhaU0J1WldWa0lIUnZJSE5yYVhBZ2RtRnNhV1JoZEdsdmJpQnBiaUIwYUdseklHTmhjMlVnZEc4Z2JXRnJaU0J6ZFhKbElIWmhiSFZsY3lCelpYUWdkbWxoSUZWU1RDQmhjbVVnYldGcGJuUmhhVzVsWkM1Y2JpQWdJQ0FnSUNBcUwxeHVJQ0FnSUNBZ2FXWWdLQ0YwYUdsekxsOXpZMlZ1WlU5aWFtVmpkQzVwYzBGamRHbDJaU2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbDl6WTJWdVpVOWlhbVZqZEM1emEybHdUbVY0ZEZaaGJHbGtZWFJwYjI0Z1BTQjBjblZsTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCMGFHbHpMbDl6WTJWdVpVOWlhbVZqZEM1amFHRnVaMlZXWVd4MVpWUnZLSFZ5YkZaaGJIVmxLVHRjYmlBZ0lDQjlYRzRnSUgxY2JuMWNibHh1Wm5WdVkzUnBiMjRnYUdGdVpHeGxUR1ZuWVdONVZYSnNRV3hzVm1Gc2RXVW9kbUZzZFdVNklITjBjbWx1WnlCOElITjBjbWx1WjF0ZEtTQjdYRzRnSUdsbUlDaHBjMEZ5Y21GNUtIWmhiSFZsS1NBbUppQjJZV3gxWlZzd1hTQTlQVDBnUVV4TVgxWkJVa2xCUWt4RlgxUkZXRlFwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdXMEZNVEY5V1FWSkpRVUpNUlY5V1FVeFZSVjA3WEc0Z0lIMGdaV3h6WlNCcFppQW9kbUZzZFdVZ1BUMDlJRUZNVEY5V1FWSkpRVUpNUlY5VVJWaFVLU0I3WEc0Z0lDQWdjbVYwZFhKdUlFRk1URjlXUVZKSlFVSk1SVjlXUVV4VlJUdGNiaUFnZlZ4dVhHNGdJSEpsZEhWeWJpQjJZV3gxWlR0Y2JuMWNibHh1THlvcVhHNGdLaUJXWVhKcFlXSnNaU0JuWlhSV1lXeDFaU0JqWVc0Z2NtVjBkWEp1SUhSb2FYTWdkRzhnYzJ0cGNDQmhibmtnYzNWaWMyVnhkV1Z1ZENCbWIzSnRZWFIwYVc1bkxseHVJQ29nVkdocGN5QnBjeUIxYzJWbWRXd2dabTl5SUdOMWMzUnZiU0JoYkd3Z2RtRnNkV1Z6SUhSb1lYUWdjMmh2ZFd4a0lHNXZkQ0JpWlNCbGMyTmhjR1ZrTDJadmNtMWhkSFJsWkM1Y2JpQXFMMXh1Wlhod2IzSjBJR05zWVhOeklFTjFjM1J2YlVGc2JGWmhiSFZsSUdsdGNHeGxiV1Z1ZEhNZ1EzVnpkRzl0Vm1GeWFXRmliR1ZXWVd4MVpTQjdYRzRnSUhCMVlteHBZeUJqYjI1emRISjFZM1J2Y2lod2NtbDJZWFJsSUY5MllXeDFaVG9nYzNSeWFXNW5MQ0J3Y21sMllYUmxJRjkyWVhKcFlXSnNaVG9nVTJObGJtVldZWEpwWVdKc1pTa2dlMzFjYmx4dUlDQndkV0pzYVdNZ1ptOXliV0YwZEdWeUtHWnZjbTFoZEU1aGJXVlBja1p1UHpvZ2MzUnlhVzVuSUh3Z1ZtRnlhV0ZpYkdWRGRYTjBiMjFHYjNKdFlYUjBaWEpHYmlrNklITjBjbWx1WnlCN1hHNGdJQ0FnYVdZZ0tHWnZjbTFoZEU1aGJXVlBja1p1SUQwOVBTQldZWEpwWVdKc1pVWnZjbTFoZEVsRUxsUmxlSFFwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJCVEV4ZlZrRlNTVUZDVEVWZlZFVllWRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvWm05eWJXRjBUbUZ0WlU5eVJtNGdQVDA5SUZaaGNtbGhZbXhsUm05eWJXRjBTVVF1VUdWeVkyVnVkRVZ1WTI5a1pTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWnZjbTFoZEZKbFoybHpkSEo1TG1kbGRDaFdZWEpwWVdKc1pVWnZjbTFoZEVsRUxsQmxjbU5sYm5SRmJtTnZaR1VwTG1admNtMWhkSFJsY2loMGFHbHpMbDkyWVd4MVpTd2dXMTBzSUhSb2FYTXVYM1poY21saFlteGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvWm05eWJXRjBUbUZ0WlU5eVJtNGdQVDA5SUZaaGNtbGhZbXhsUm05eWJXRjBTVVF1VVhWbGNubFFZWEpoYlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUdadmNtMWhkRkpsWjJsemRISjVMbWRsZENoV1lYSnBZV0pzWlVadmNtMWhkRWxFTGxGMVpYSjVVR0Z5WVcwcExtWnZjbTFoZEhSbGNpaEJURXhmVmtGU1NVRkNURVZmVkVWWVZDd2dXMTBzSUhSb2FYTXVYM1poY21saFlteGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVmZG1Gc2RXVTdYRzRnSUgxY2JuMWNiaUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUU0UTA4c1RVRkJaU3d5UWtGRFdpeGxRVVZXTEVOQlFVRTdRVUZCUVN4RlFVaFBMRmRCUVVFc1IwRkJRVHRCUVVGQkxFbEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNVMEZCUVN4RFFVRkJMRU5CUVVFN1FVRkpUQ3hKUVVGVkxFbEJRVUVzUTBGQlFTeFJRVUZCTEVkQlFYTkRMRWxCUVVrc2QwSkJRVUVzUTBGQmVVSXNTVUZCU1N4RFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVGQk8wRkJRVUVzUlVGbE1VVXNhVUpCUVhsRUxFZEJRVUU3UVVGRE9VUXNTVUZCUVN4UFFVRlBMRWxCUVVzc1EwRkJRU3hsUVVGQkxFTkJRV2RDTEVWQlFVVXNRMEZCUlN4RFFVRkJMRWxCUVVFN1FVRkJRU3hOUVVNNVFpeEhRVUZCTEVOQlFVa3NRMEZCUXl4UFFVRlpMRXRCUVVFN1FVRkRaaXhSUVVGQkxFbEJRVUVzUTBGQlN5d3lRa0ZCTWtJc1QwRkJUeXhEUVVGQkxFTkJRVUU3UVVGRGRrTXNVVUZCUVN4UFFVRlBMRVZCUVVNc1EwRkJRVHRCUVVGQkxFOUJRMVFzUTBGQlFUdEJRVUZCTEV0QlEwZ3NRMEZCUVR0QlFVRkJMRWRCUTBZN1FVRkJRU3hGUVVWUExGRkJRV2xDTEVkQlFVRTdRVUZEZEVJc1NVRkJRU3hKUVVGQkxFTkJRVXNzWTBGQlpTeERRVUZCTEVWQlFVVXNUMEZCVXl4RlFVRkJMRXRCUVVFc1JVRkJUeXhEUVVGQkxFTkJRVUU3UVVGRGRFTXNTVUZCUVN4TlFVRk5MR05CUVdNc1NVRkJTeXhEUVVGQkxFMUJRVUVzUTBGQlFUdEJRVU42UWl4SlFVRkJMRmRCUVVFc1NVRkJRU3hKUVVGQkxFZEJRVUVzUzBGQlFTeERRVUZCTEVkQlFVRXNWMEZCUVN4RFFVRmhMRTFCUVU4c1EwRkJRU3hKUVVGQkxFTkJRVUVzUTBGQlFUdEJRVUZCTEVkQlEzUkNPMEZCUVVFc1JVRkxVU3d5UWtGQk1rSXNUMEZCWjBNc1JVRkJRVHRCUVVWcVJTeEpRVUZOTEUxQlFVRXNSVUZCUlN4UFFVRlBMRmxCUVdNc1JVRkJRU3hKUVVGQkxFVkJRVTBzWVVGQllTeFBRVUZUTEVWQlFVRXNWVUZCUVN4TFFVRmxMRWxCUVVzc1EwRkJRU3hMUVVGQkxFTkJRVUU3UVVGRk4wVXNTVUZCUVN4TlFVRk5MRmRCUVdNc1IwRkJRU3hKUVVGQkxFTkJRVXNzTmtKQlFUaENMRU5CUVVFc1QwRkJRU3hGUVVGVExHTkJRV01zVjBGQlZ5eERRVUZCTEVOQlFVRTdRVUZGZWtZc1NVRkJRU3hKUVVGQkxFTkJRVXNzYjBOQlFXOURMRmRCUVZjc1EwRkJRU3hEUVVGQk8wRkJSM0JFTEVsQlFVRXNTVUZCUVN4RFFVRkxMR1ZCUVdVc1YwRkJWeXhEUVVGQkxFTkJRVUU3UVVGSEwwSXNTVUZCUVN4SlFVTkZMRmRCUVZrc1EwRkJRU3hMUVVGQkxFdEJRVlVzV1VGRGRFSXNTVUZCUVN4WFFVRkJMRU5CUVZrc1NVRkJVeXhMUVVGQkxGZEJRVUVzU1VGRGNFSXNTVUZCU3l4RFFVRkJMRmRCUVVFc1JVRkJhVUlzU1VGQlFTeERRVUZETEU5QlFWRXNRMEZCUVN4UFFVRkJMRVZCUVZNc1ZVRkJWU3hEUVVOdVJDeEZRVUZCTzBGQlEwRXNUVUZCUVN4SlFVRkJMRU5CUVVzc1dVRkJZU3hEUVVGQkxFbEJRVWtzT0VKQlFTdENMRU5CUVVFc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZEYkVVN1FVRkJRU3hIUVVOR08wRkJRVUVzUlVGRlVTdzJRa0ZCUVN4RFFVTk9MRTlCUTBFc1JVRkJRU3haUVVGQkxFVkJRMEVzVjBGRGEwTXNSVUZCUVR0QlFVTnNReXhKUVVGQkxFMUJRVTBzVjBGQlowUXNSMEZCUVR0QlFVRkJMRTFCUTNCRUxFOUJRVUU3UVVGQlFTeE5RVU5CTEU5QlFWTXNSVUZCUVN4TFFVRkJPMEZCUVVFc1RVRkRWQ3hMUVVGUExFVkJRVUVzV1VGQlFUdEJRVUZCTEUxQlExQXNTVUZCVFN4RlFVRkJMRmRCUVVFN1FVRkJRU3hMUVVOU0xFTkJRVUU3UVVGRlFTeEpRVUZKTEVsQlFVRXNUMEZCUVN4RFFVRlJMRmRCUVZjc1EwRkJSeXhGUVVGQk8wRkJRM2hDTEUxQlFVRXNTVUZCU1N4SlFVRkxMRU5CUVVFc1MwRkJRU3hEUVVGTkxGbEJRV2RDTEVsQlFVRXNTVUZCUVN4RFFVRkxMRTFCUVUwc1ZVRkJXU3hGUVVGQk8wRkJRM0JFTEZGQlFVRXNWMEZCUVN4RFFVRlpMRXRCUVZFc1IwRkJRU3hyUWtGQlFTeERRVUZCTzBGQlEzQkNMRkZCUVVFc1YwRkJRU3hEUVVGWkxFbEJRVThzUjBGQlFTeHBRa0ZCUVN4RFFVRkJPMEZCUVVFc1QwRkRja0lzVFVGQlFTeEpRVUZYTEVsQlFVc3NRMEZCUVN4TFFVRkJMRU5CUVUwc1QwRkJVeXhGUVVGQk8wRkJRemRDTEZGQlFVRXNWMEZCUVN4RFFVRlpMRkZCUVZFc1JVRkJReXhEUVVGQk8wRkJRM0pDTEZGQlFVRXNWMEZCUVN4RFFVRlpMRTlCUVU4c1JVRkJReXhEUVVGQk8wRkJRVUVzVDBGRFppeE5RVUZCTzBGQlEwd3NVVUZCUVN4WFFVRkJMRU5CUVZrc1MwRkJVU3hIUVVGQkxFVkJRVUVzUTBGQlFUdEJRVU53UWl4UlFVRkJMRmRCUVVFc1EwRkJXU3hKUVVGUExFZEJRVUVzUlVGQlFTeERRVUZCTzBGQlFVRXNUMEZEY2tJN1FVRkZRU3hOUVVGUExFOUJRVUVzVjBGQlFTeERRVUZCTzBGQlFVRXNTMEZEVkR0QlFVVkJMRWxCUVVrc1NVRkJRU3hKUVVGQkxFTkJRVXNzWVVGQlpTeEZRVUZCTzBGQlEzUkNMRTFCUVVrc1NVRkJRU3hKUVVGQkxFTkJRVXNzVFVGQlRTeFZRVUZaTEVWQlFVRTdRVUZGZWtJc1VVRkJRU3hYUVVGQkxFTkJRVmtzU1VGQlR5eEhRVUZCTEdsQ1FVRkJMRU5CUVVFN1FVRkJRU3hQUVVOa0xFMUJRVUU3UVVGRFRDeFJRVUZaTEZkQlFVRXNRMEZCUVN4TFFVRkJMRWRCUVZFc1VVRkJVU3hEUVVGSExFTkJRVUVzUTBGQlFTeExRVUZCTEVOQlFVRTdRVUZETDBJc1VVRkJXU3hYUVVGQkxFTkJRVUVzU1VGQlFTeEhRVUZQTEZGQlFWRXNRMEZCUnl4RFFVRkJMRU5CUVVFc1MwRkJRU3hEUVVGQk8wRkJSVGxDTEZGQlFVa3NTVUZCUVN4SlFVRkJMRU5CUVVzc1RVRkJUU3hQUVVGVExFVkJRVUU3UVVGRGRFSXNWVUZCV1N4WFFVRkJMRU5CUVVFc1MwRkJRU3hIUVVGUkxFTkJRVU1zVjBGQlFTeERRVUZaTEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUTNSRExGVkJRVmtzVjBGQlFTeERRVUZCTEVsQlFVRXNSMEZCVHl4RFFVRkRMRmRCUVVFc1EwRkJXU3hKUVVGSkxFTkJRVUVzUTBGQlFUdEJRVUZCTEZOQlEzUkRPMEZCUVVFc1QwRkRSanRCUVVOQkxFMUJRVThzVDBGQlFTeFhRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTlVPMEZCUlVFc1NVRkJTU3hKUVVGQkxFbEJRVUVzUTBGQlN5eE5RVUZOTEU5QlFWTXNSVUZCUVR0QlFVVjBRaXhOUVVGQkxFMUJRVTBzWjBKQlFXZENMRXRCUVUwc1EwRkJRU3hQUVVGQkxFTkJRVkVzV1VGQldTeERRVUZKTEVkQlFVRXNXVUZCUVN4SFFVRmxMRU5CUVVNc1dVRkJXU3hEUVVGQkxFTkJRVUU3UVVGRGFFWXNUVUZCUVN4TlFVRk5MRmRCUVdNc1IwRkJRU3hoUVVGQkxFTkJRV01zVFVGQlR5eERRVUZCTEVOQlFVTXNRMEZCVFN4TFFVRkJMRTlCUVVFc1EwRkJVU3hKUVVGTExFTkJRVUVzUTBGQlF5eERRVUZOTEV0QlFVRXNRMEZCUVN4RFFVRkZMRXRCUVZVc1MwRkJRU3hEUVVGRExFTkJRVU1zUTBGQlFTeERRVUZCTzBGQlEyeEdMRTFCUVVFc1RVRkJUU3hWUVVGaExFZEJRVUVzVjBGQlFTeERRVUZaTEVkQlFVa3NRMEZCUVN4RFFVRkRMRU5CUVUwc1MwRkJRU3hQUVVGQkxFTkJRVkVzU1VGQlN5eERRVUZCTEVOQlFVTXNRMEZCVFN4TFFVRkJMRU5CUVVFc1EwRkJSU3hMUVVGVkxFdEJRVUVzUTBGQlF5eEZRVUZITEV0QlFVc3NRMEZCUVN4RFFVRkJPMEZCUjI1R0xFMUJRVWtzU1VGQlFTeFhRVUZCTEVOQlFWa3NWMEZCVnl4RFFVRkhMRVZCUVVFN1FVRkROVUlzVVVGQlRTeE5RVUZCTEZsQlFVRXNSMEZCWlN4SlFVRkxMRU5CUVVFc2IwSkJRVUVzUTBGQmNVSXNUMEZCVHl4RFFVRkJMRU5CUVVFN1FVRkRkRVFzVVVGQlFTeFhRVUZCTEVOQlFWa3NVVUZCVVN4WlFVRmhMRU5CUVVFc1MwRkJRU3hEUVVGQk8wRkJRMnBETEZGQlFVRXNWMEZCUVN4RFFVRlpMRTlCUVU4c1dVRkJZU3hEUVVGQkxFbEJRVUVzUTBGQlFUdEJRVUZCTEU5QlF6TkNMRTFCUVVFN1FVRkZUQ3hSUVVGQkxFbEJRVWtzUTBGQlF5eFBRVUZCTEVOQlFWRXNWMEZCWVN4RlFVRkJMRmxCUVZrc1EwRkJSeXhGUVVGQk8wRkJRM1pETEZWQlFVRXNWMEZCUVN4RFFVRlpMRXRCUVZFc1IwRkJRU3hYUVVGQkxFTkJRVUU3UVVGQlFTeFRRVU4wUWp0QlFVTkJMRkZCUVVFc1NVRkJTU3hEUVVGRExFOUJRVUVzUTBGQlVTeFZRVUZaTEVWQlFVRXNWMEZCVnl4RFFVRkhMRVZCUVVFN1FVRkRja01zVlVGQlFTeFhRVUZCTEVOQlFWa3NTVUZCVHl4SFFVRkJMRlZCUVVFc1EwRkJRVHRCUVVGQkxGTkJRM0pDTzBGQlFVRXNUMEZEUmp0QlFVTkJMRTFCUVU4c1QwRkJRU3hYUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5VTzBGQlMwRXNTVUZCUVN4SlFVRkpMR05CUVdsQ0xFZEJRVUVzZVVKQlFVRXNRMEZCTUVJc1dVRkJZeXhGUVVGQkxGZEJRVUVzUlVGQllTeFBRVUZQTEVOQlFVRXNRMEZCUVR0QlFVTnFSaXhKUVVGQkxFbEJRVWtzWTBGQlowSXNSVUZCUVR0QlFVZHNRaXhOUVVGQkxGZEJRVUVzUTBGQldTeFBRVUZQTEdOQlFXVXNRMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkRiRU1zVFVGQlFTeFhRVUZCTEVOQlFWa3NVVUZCVVN4alFVRmxMRU5CUVVFc1MwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRE9VSXNUVUZCUVR0QlFVVk1MRTFCUVVrc1NVRkJRU3hKUVVGQkxFTkJRVXNzVFVGQlRTeFpRVUZqTEVWQlFVRTdRVUZETTBJc1VVRkJRU3hYUVVGQkxFTkJRVmtzUzBGQlVTeEhRVUZCTEd0Q1FVRkJMRU5CUVVFN1FVRkRjRUlzVVVGQlFTeFhRVUZCTEVOQlFWa3NTVUZCVHl4SFFVRkJMR2xDUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU5rTEUxQlFVRTdRVUZGVEN4UlFVRlpMRmRCUVVFc1EwRkJRU3hMUVVGQkxFZEJRVkVzVVVGQlVTeERRVUZITEVOQlFVRXNRMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkRMMElzVVVGQldTeFhRVUZCTEVOQlFVRXNTVUZCUVN4SFFVRlBMRkZCUVZFc1EwRkJSeXhEUVVGQkxFTkJRVUVzUzBGQlFTeERRVUZCTzBGQlFVRXNUMEZEYUVNN1FVRkJRU3hMUVVOR08wRkJSVUVzU1VGQlR5eFBRVUZCTEZkQlFVRXNRMEZCUVR0QlFVRkJMRWRCUTFRN1FVRkJRU3hGUVUxVkxHOURRVUZ2UXl4WFFVRnhSQ3hGUVVGQk8wRkJSV3BITEVsQlFVRXNUVUZCVFN4blFrRkJaMElzVjBGQldTeERRVUZCTEV0QlFVRXNTMEZCVlN4clFrRkJjMElzU1VGQlFTeEpRVUZCTEVOQlFVc3NUVUZCVFN4SlFVRlRMRXRCUVVFc2FVSkJRVUVzUTBGQlFUdEJRVVYwUml4SlFVRkJMRWxCUTBVc1NVRkJTeXhEUVVGQkxHdENRVUZCTEVsQlEwd3NWMEZCV1N4RFFVRkJMRXRCUVVFc1MwRkJWU3hKUVVGTExFTkJRVUVzUzBGQlFTeERRVUZOTEV0QlEycERMRWxCUVVFc1YwRkJRU3hEUVVGWkxFbEJRVk1zUzBGQlFTeEpRVUZCTEVOQlFVc3NTMEZCVFN4RFFVRkJMRWxCUVVFc1NVRkRhRU1zUTBGQlF5eGhRVU5FTEVWQlFVRTdRVUZEUVN4TlFVRlpMRmRCUVVFc1EwRkJRU3hMUVVGQkxFZEJRVkVzUzBGQlN5eExRVUZOTEVOQlFVRXNTMEZCUVN4RFFVRkJPMEZCUXk5Q0xFMUJRVmtzVjBGQlFTeERRVUZCTEVsQlFVRXNSMEZCVHl4TFFVRkxMRXRCUVUwc1EwRkJRU3hKUVVGQkxFTkJRVUU3UVVGQlFTeExRVU5vUXp0QlFVVkJMRWxCUVVFc1NVRkJRU3hEUVVGTExHdENRVUZ4UWl4SFFVRkJMRXRCUVVFc1EwRkJRVHRCUVVGQkxFZEJRelZDTzBGQlFVRXNSVUZGVHl4UlFVRXdRaXhIUVVGQk8wRkJReTlDTEVsQlFVa3NTVUZCUVN4SlFVRkJMRU5CUVVzc1lVRkJaU3hGUVVGQk8wRkJRM1JDTEUxQlFVa3NTVUZCUVN4SlFVRkJMRU5CUVVzc1RVRkJUU3hSUVVGVkxFVkJRVUU3UVVGRGRrSXNVVUZCUVN4UFFVRlBMRWxCUVVrc1kwRkJRU3hEUVVGbExFbEJRVXNzUTBGQlFTeExRVUZCTEVOQlFVMHNWVUZCVlN4SlFVRkpMRU5CUVVFc1EwRkJRVHRCUVVGQkxFOUJRM0pFTzBGQlJVRXNUVUZCUVN4UFFVRlBMRXRCUVVzc1MwRkJUU3hEUVVGQkxFOUJRVUVzUTBGQlVTeEpRVUZKTEVOQlFVTXNRMEZCUVN4TFFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU01UXp0QlFVVkJMRWxCUVVFc1QwRkJUeXhMUVVGTExFdEJRVTBzUTBGQlFTeExRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTndRanRCUVVGQkxFVkJSVThzV1VGQmRVSXNSMEZCUVR0QlFVTTFRaXhKUVVGSkxFbEJRVUVzU1VGQlFTeERRVUZMTEdGQlFXVXNSVUZCUVR0QlFVTjBRaXhOUVVGUExFOUJRVUVzYVVKQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTFRN1FVRkZRU3hKUVVGQkxFbEJRVWtzUzBGQlRTeERRVUZCTEU5QlFVRXNRMEZCVVN4SlFVRkxMRU5CUVVFc1MwRkJRU3hEUVVGTkxFbEJRVWtzUTBGQlJ5eEZRVUZCTzBGQlEyeERMRTFCUVVFc1QwRkJUeXhKUVVGTExFTkJRVUVzUzBGQlFTeERRVUZOTEVsQlFVc3NRMEZCUVN4SlFVRkJMRU5CUVVzc1MwRkJTeXhEUVVGQkxFTkJRVUU3UVVGQlFTeExRVU51UXp0QlFVVkJMRWxCUVU4c1QwRkJRU3hOUVVGQkxFTkJRVThzU1VGQlN5eERRVUZCTEV0QlFVRXNRMEZCVFN4SlFVRkpMRU5CUVVFc1EwRkJRVHRCUVVGQkxFZEJReTlDTzBGQlFVRXNSVUZGVHl4WFFVRmpMRWRCUVVFN1FVRkRia0lzU1VGQlRTeE5RVUZCTEV0QlFVRXNSMEZCVVN4TFFVRkxMRXRCUVUwc1EwRkJRU3hMUVVGQkxFTkJRVUU3UVVGRGVrSXNTVUZCUVN4UFFVRlBMRlZCUVZVc2EwSkJRWFZDTEVsQlFVRXNTMEZCUVN4RFFVRk5MRkZCUVZFc1MwRkJTeXhEUVVGQkxFbEJRVXNzVFVGQlRTeERRVUZQTEVOQlFVRXNTMEZCUVN4clFrRkJRU3hEUVVGQk8wRkJRVUVzUjBGREwwVTdRVUZCUVN4RlFVVlBMSEZDUVVGeFFpeFBRVUZuUXl4RlFVRkJPMEZCUXpGRUxFbEJRVWtzU1VGQlFTeEpRVUZCTEVOQlFVc3NUVUZCVFN4WlFVRmpMRVZCUVVFN1FVRkRNMElzVFVGQlR5eFBRVUZCTEVWQlFVVXNUMEZCVHl4RFFVRkRMR3RDUVVGclFpeEhRVUZITEVsQlFVMHNSVUZCUVN4RFFVRkRMR2xDUVVGcFFpeERRVUZGTEVWQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTJ4RkxFMUJRVUVzU1VGQlZ5eFBRVUZSTEVOQlFVRXNUVUZCUVN4SFFVRlRMRU5CUVVjc1JVRkJRVHRCUVVNM1FpeE5RVUZCTEU5QlFVOHNSVUZCUlN4TFFVRkJMRVZCUVU4c1EwRkJReXhQUVVGQkxFTkJRVkVzUTBGQlJ5eERRVUZCTEVOQlFVRXNTMEZCU3l4RFFVRkhMRVZCUVVFc1NVRkJRU3hGUVVGTkxFTkJRVU1zVDBGQlFTeERRVUZSTEVOQlFVY3NRMEZCUVN4RFFVRkJMRXRCUVVzc1EwRkJSU3hGUVVGQkxFTkJRVUU3UVVGQlFTeExRVU40UkN4TlFVRkJPMEZCUTB3c1RVRkJRU3hQUVVGUExFVkJRVVVzUzBGQlR5eEZRVUZCTEVWQlFVa3NSVUZCUVN4SlFVRkJMRVZCUVUwc1JVRkJSeXhGUVVGQkxFTkJRVUU3UVVGQlFTeExRVU12UWp0QlFVRkJMRWRCUTBZN1FVRkJRU3hGUVV0UExHRkJRVUVzUTBGQll5eFBRVUZ6UWl4SlFVRnpRaXhGUVVGQk8wRkJSUzlFTEVsQlFVRXNTVUZCU1N4VlFVRlZMRWxCUVVzc1EwRkJRU3hMUVVGQkxFTkJRVTBzVTBGQlV5eEpRVUZUTEV0QlFVRXNTVUZCUVN4RFFVRkxMRTFCUVUwc1NVRkJUU3hGUVVGQk8wRkJRekZFTEUxQlFVRXNUMEZCUVR0QlFVRkJMRXRCUTBZN1FVRkZRU3hKUVVGQkxFbEJRVWtzUTBGQlF5eEpRVUZOTEVWQlFVRTdRVUZEVkN4TlFVRkpMRWxCUVVFc1MwRkJRU3hEUVVGTkxFOUJRVkVzUTBGQlFTeExRVUZMTEVOQlFVY3NSVUZCUVR0QlFVTjRRaXhSUVVGQkxFbEJRVUVzUjBGQlR5eE5RVUZOTEVkQlFVa3NRMEZCUVN4RFFVRkRMRTFCUVUwc1NVRkJTeXhEUVVGQkxIRkNRVUZCTEVOQlFYTkNMRU5CUVVNc1EwRkJReXhEUVVGQkxFTkJRVUU3UVVGQlFTeFBRVU5vUkN4TlFVRkJPMEZCUTB3c1VVRkJUeXhKUVVGQkxFZEJRVUVzU1VGQlFTeERRVUZMTEhOQ1FVRnpRaXhMUVVGTExFTkJRVUVzUTBGQlFUdEJRVUZCTEU5QlEzcERPMEZCUVVFc1MwRkRSanRCUVVWQkxFbEJRVWtzU1VGQlFTeExRVUZCTEVOQlFVMHNUMEZCVVN4RFFVRkJMRXRCUVVzc1EwRkJSeXhGUVVGQk8wRkJSWGhDTEUxQlFVa3NTVUZCUVN4TFFVRkJMRU5CUVUwc1YwRkJWeXhEUVVGSExFVkJRVUU3UVVGRGRFSXNVVUZCUVN4TlFVRk5MRXRCUVZFc1IwRkJRU3hKUVVGQkxFTkJRVXNzYjBKQlFYRkNMRU5CUVVFc1NVRkJRU3hEUVVGTExFMUJRVTBzVDBGQlR5eERRVUZCTEVOQlFVRTdRVUZETVVRc1VVRkJRU3hMUVVGQkxFZEJRVkVzUzBGQlRTeERRVUZCTEV0QlFVRXNRMEZCUVR0QlFVTmtMRkZCUVVFc1NVRkJRU3hIUVVGUExFdEJRVTBzUTBGQlFTeEpRVUZCTEVOQlFVRTdRVUZCUVN4UFFVTm1PMEZCUjBFc1RVRkJRU3hKUVVGSkxFdEJRVTBzUTBGQlFTeExRVUZCTEVOQlFVMHNUVUZCVXl4SFFVRkJMRU5CUVVFc1EwRkJRU3hMUVVGUExHdENRVUZ2UWl4RlFVRkJPMEZCUTJ4RUxGRkJRVUVzUzBGQlFTeEhRVUZSTEVOQlFVTXNhMEpCUVd0Q0xFTkJRVUVzUTBGQlFUdEJRVU16UWl4UlFVRkJMRWxCUVVFc1IwRkJUeXhEUVVGRExHbENRVUZwUWl4RFFVRkJMRU5CUVVFN1FVRkJRU3hwUWtGSGJFSXNTMEZCVFN4RFFVRkJMRU5CUVVFc1EwRkJRU3hMUVVGUExHdENRVUZ6UWl4SlFVRkJMRXRCUVVFc1EwRkJUU3hUUVVGVExFTkJRVWNzUlVGQlFUdEJRVU0xUkN4UlFVRkJMRXRCUVVFc1EwRkJUU3hMUVVGTkxFVkJRVUVzUTBGQlFUdEJRVU5hTEZGQlFVa3NTVUZCUVN4TFFVRkJMRU5CUVUwc1QwRkJVU3hEUVVGQkxFbEJRVWtzUTBGQlJ5eEZRVUZCTzBGQlEzWkNMRlZCUVVFc1NVRkJRU3hEUVVGTExFdEJRVTBzUlVGQlFTeERRVUZCTzBGQlFVRXNVMEZEWWp0QlFVRkJMRTlCUTBZN1FVRkJRU3hMUVVOR08wRkJSMEVzU1VGQlNTeEpRVUZCTEU5QlFVRXNRMEZCVVN4TFFVRlBMRVZCUVVFc1NVRkJRU3hEUVVGTExFdEJRVTBzUTBGQlFTeExRVUZMTEVOQlFVc3NTVUZCUVN4UFFVRkJMRU5CUVZFc1NVRkJUU3hGUVVGQkxFbEJRVUVzUTBGQlN5eExRVUZOTEVOQlFVRXNTVUZCU1N4RFFVRkhMRVZCUVVFN1FVRkRkRVVzVFVGQlFTeFBRVUZCTzBGQlFVRXNTMEZEUmp0QlFVVkJMRWxCUVVFc1NVRkJRU3hEUVVGTExHVkJRV1VzUlVGQlJTeExRVUZCTEVWQlFVOHNTVUZCVFN4RlFVRkJMRTlCUVVFc1JVRkJVeXhQUVVGUExFTkJRVUVzUTBGQlFUdEJRVU51UkN4SlFVRkJMRWxCUVVFc1EwRkJTeXhaUVVGaExFTkJRVUVzU1VGQlNTdzRRa0ZCSzBJc1EwRkJRU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZCTEVOQlFVRTdRVUZCUVN4SFFVTnNSVHRCUVVGQkxFVkJSVkVzYzBKQlFYTkNMRXRCUVdsRUxFVkJRVUU3UVVGRE4wVXNTVUZCUVN4SlFVRkpMRlZCUVZVc2EwSkJRVzlDTEVWQlFVRTdRVUZEYUVNc1RVRkJUeXhQUVVGQkxHbENRVUZCTEVOQlFVRTdRVUZCUVN4TFFVTlVPMEZCUlVFc1NVRkJUU3hOUVVGQkxFMUJRVUVzUjBGQlV5eExRVUZMTEV0QlFVMHNRMEZCUVN4UFFVRkJMRU5CUVZFc1MwRkJTeXhEUVVGRExFTkJRVUVzUzBGQlRTeERRVUZGTEVOQlFVRXNTMEZCUVN4TFFVRlZMRXRCUVVzc1EwRkJRU3hEUVVGQk8wRkJReTlFTEVsQlFVRXNTVUZCU1N4TlFVRlJMRVZCUVVFN1FVRkRWaXhOUVVGQkxFOUJRVThzVFVGQlR5eERRVUZCTEV0QlFVRXNRMEZCUVR0QlFVRkJMRXRCUTJoQ08wRkJSVUVzU1VGQlRTeE5RVUZCTEdGQlFVRXNSMEZCWjBJc1MwRkJTeXhMUVVGTkxFTkJRVUVzVDBGQlFTeERRVUZSTEV0QlFVc3NRMEZCUXl4RFFVRkJMRXRCUVUwc1EwRkJSU3hEUVVGQkxFdEJRVUVzUzBGQlZTeExRVUZMTEVOQlFVRXNRMEZCUVR0QlFVTjBSU3hKUVVGQkxFbEJRVWtzWVVGQlpTeEZRVUZCTzBGQlEycENMRTFCUVVFc1QwRkJUeXhoUVVGakxFTkJRVUVzUzBGQlFTeERRVUZCTzBGQlFVRXNTMEZEZGtJN1FVRkZRU3hKUVVGUExFOUJRVUVzUzBGQlFTeERRVUZCTzBGQlFVRXNSMEZEVkR0QlFVRkJMRVZCUzFFc1pVRkJaU3hMUVVGNVF5eEZRVUZCTzBGQlF6bEVMRWxCUVVFc2FVSkJRVUVzUTBGQk1rTXNUVUZCVFN4TFFVRkxMRU5CUVVFc1EwRkJRVHRCUVVGQkxFZEJRM2hFTzBGQlFVRXNSVUZGVHl4dFFrRkJOa01zUjBGQlFUdEJRVU5zUkN4SlFVRkpMRWxCUVVFc1QwRkJRU3hIUVVGVkxFdEJRVXNzUzBGQlRTeERRVUZCTEU5QlFVRXNRMEZCUVR0QlFVVjZRaXhKUVVGSkxFbEJRVUVzU1VGQlFTeERRVUZMTEUxQlFVMHNWVUZCV1N4RlFVRkJPMEZCUTNwQ0xFMUJRVlVzVDBGQlFTeEhRVUZCTEVOQlFVTXNSVUZCUlN4TFFVRlBMRVZCUVVFc2EwSkJRVUVzUlVGQmIwSXNUMEZCVHl4cFFrRkJhMElzUlVGQlFTeEZRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOb1JqdEJRVVZCTEVsQlFVRXNTVUZCU1N4RFFVRkRMRXRCUVUwc1EwRkJRU3hQUVVGQkxFTkJRVkVzU1VGQlN5eERRVUZCTEV0QlFVRXNRMEZCVFN4TFFVRkxMRU5CUVVjc1JVRkJRVHRCUVVOd1F5eE5RVUZOTEUxQlFVRXNUMEZCUVN4SFFVRlZMRkZCUVZFc1NVRkJTeXhEUVVGQkxFTkJRVU1zVFVGQlRTeERRVUZGTEVOQlFVRXNTMEZCUVN4TFFVRlZMRWxCUVVzc1EwRkJRU3hMUVVGQkxFTkJRVTBzUzBGQlN5eERRVUZCTEVOQlFVRTdRVUZEYUVVc1RVRkJRU3hKUVVGSkxFTkJRVU1zVDBGQlV5eEZRVUZCTzBGQlExb3NVVUZCUVN4UFFVRkJMRWRCUVZVc1EwRkJReXhGUVVGRkxFdEJRVThzUlVGQlFTeEpRVUZCTEVOQlFVc3NUVUZCVFN4TFFVRlBMRVZCUVVFc1MwRkJRU3hGUVVGUExFMUJRVThzUTBGQlFTeEpRVUZCTEVOQlFVc3NTMEZCVFN4RFFVRkJMRWxCUVVrc1EwRkJSU3hGUVVGQkxFVkJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVRXNRMEZCUVR0QlFVRkJMRTlCUTNCR08wRkJRVUVzUzBGRFJqdEJRVVZCTEVsQlFVOHNUMEZCUVN4UFFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOVU8wRkJRVUVzUlVGRlR5eGpRVUZwUWl4SFFVRkJPMEZCUTNSQ0xFbEJRVUVzU1VGQlFTeERRVUZMTEdkQ1FVRm5RaXhGUVVGRkxFTkJRVVVzUTBGQlFTeFRRVUZCTEVOQlFWVXNRMEZCUXl4UFFVRlpMRXRCUVVFN1FVRkRPVU1zVFVGQlFTeEpRVUZCTEVOQlFVc3NNa0pCUVRKQ0xFOUJRVThzUTBGQlFTeERRVUZCTzBGQlFVRXNTMEZEZUVNc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFNEdEJRVTFHTEVOQlFVRTdRVUZMUVN4VFFVRlRMSGxDUVVGQkxFTkJRMUFzV1VGRFFTeEZRVUZCTEZkQlFVRXNSVUZEUVN4UFFVTkJMRVZCUVVFN1FVRkRRU3hGUVVGSkxFbEJRVUVzVTBGQlFTeERRVUZCTzBGQlJVb3NSVUZCUVN4TFFVRkJMRTFCUVZjc1VVRkJVU3hQUVVGVExFVkJRVUU3UVVGRE1VSXNTVUZCU1N4SlFVRkJMRWxCUVVFc1EwRkJTeXhWUVVGVkxGbEJRV01zUlVGQlFUdEJRVU12UWl4TlFVRlBMRTlCUVVFc1NVRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFZEdEJRVWRCTEVsQlFVa3NTVUZCUVN4SlFVRkJMRU5CUVVzc1ZVRkJWU3hYUVVGaExFVkJRVUU3UVVGRE9VSXNUVUZCV1N4VFFVRkJMRWRCUVVFc1NVRkJRU3hEUVVGQk8wRkJRVUVzUzBGRFpEdEJRVUZCTEVkQlEwWTdRVUZGUVN4RlFVRlBMRTlCUVVFc1UwRkJRU3hEUVVGQk8wRkJRMVFzUTBGQlFUdEJRVVZQTEUxQlFVMHNkMEpCUldJc1EwRkJRVHRCUVVGQkxFVkJRMU1zV1VGQmIwSXNXVUZCTUVNc1JVRkJRVHRCUVVFeFF5eEpRVUZCTEVsQlFVRXNRMEZCUVN4WlFVRkJMRWRCUVVFc1dVRkJRU3hEUVVGQk8wRkJRVUVzUjBGQk1rTTdRVUZCUVN4RlFVVTVSQ3hOUVVGcFFpeEhRVUZCTzBGQlEzWkNMRWxCUVU4c1QwRkJRU3hEUVVGQkxFbEJRVUVzUlVGQlR5eEpRVUZMTEVOQlFVRXNXVUZCUVN4RFFVRmhMRXRCUVUwc1EwRkJRU3hKUVVGQkxFTkJRVUVzUTBGQlFTeERRVUZCTzBGQlFVRXNSMEZEZUVNN1FVRkJRU3hGUVVWUExFOUJRVzlDTEVkQlFVRTdRVUZEZWtJc1NVRkJTU3hKUVVGQkxFbEJRVUVzUTBGQlN5eFpRVUZoTEVOQlFVRXNTMEZCUVN4RFFVRk5MRmRCUVdFc1JVRkJRVHRCUVVOMlF5eE5RVUZCTEU5QlFVOHNSVUZCUXl4RFFVRkJPMEZCUVVFc1MwRkRWanRCUVVWQkxFbEJRVThzVDBGQlFTeERRVUZETEVsQlFVc3NRMEZCUVN4TlFVRkJMRVZCUVZFc1EwRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGRrSTdRVUZCUVN4RlFVVlBMRmRCUVc5RExFZEJRVUU3UVVGRGVrTXNTVUZCU1N4SlFVRkJMRWxCUVVFc1EwRkJTeXhaUVVGaExFTkJRVUVzUzBGQlFTeERRVUZOTEZkQlFXRXNSVUZCUVR0QlFVTjJReXhOUVVGQkxFOUJRVThzUlVGQlF5eERRVUZCTzBGQlFVRXNTMEZEVmp0QlFVVkJMRWxCUVVFc1NVRkJTU3hSUVVGeFF5eEhRVUZCTEVsQlFVRXNRMEZCUVR0QlFVTjZReXhKUVVGSkxFbEJRVUVzUzBGQlFTeEhRVUZSTEVsQlFVc3NRMEZCUVN4WlFVRkJMRU5CUVdFc1MwRkJUU3hEUVVGQkxFdEJRVUVzUTBGQlFUdEJRVVZ3UXl4SlFVRkpMRWxCUVVFc1MwRkJRU3hEUVVGTkxFOUJRVkVzUTBGQlFTeExRVUZMTEVOQlFVY3NSVUZCUVR0QlFVTjRRaXhOUVVGWExGRkJRVUVzUjBGQlFTeExRVUZCTEVOQlFVMHNTVUZCU1N4TlFVRk5MRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRMnBDTEUxQlFVRXNTVUZCVFN4SlFVRkxMRU5CUVVFc1dVRkJRU3hEUVVGaExFMUJRVTBzVDBGQlZTeEZRVUZCTzBGQlJXeEVMRTFCUVZjc1VVRkJRU3hIUVVGQkxFTkJRVU1zVFVGQlR5eERRVUZCTEV0QlFVc3NRMEZCUXl4RFFVRkJMRU5CUVVFN1FVRkJRU3hMUVVOd1FpeE5RVUZCTzBGQlEwd3NUVUZCUVN4UlFVRkJMRWRCUVZjc1QwRkJUeXhMUVVGTExFTkJRVUVzUTBGQlFUdEJRVUZCTEV0QlEzcENPMEZCUlVFc1NVRkJRU3hQUVVGUExFVkJRVVVzUTBGQlF5eEpRVUZMTEVOQlFVRXNUVUZCUVN4TFFVRlhMRkZCUVZNc1JVRkJRU3hEUVVGQk8wRkJRVUVzUjBGRGNrTTdRVUZCUVN4RlFVVlBMR05CUVdNc1RVRkJiME1zUlVGQlFUdEJRVU4yUkN4SlFVRkpMRWxCUVVFc1VVRkJRU3hIUVVGWExFMUJRVThzUTBGQlFTeEpRVUZCTEVOQlFVc3NUVUZCVHl4RlFVRkJMRU5CUVVFc1EwRkJRVHRCUVVWc1F5eEpRVUZCTEVsQlFVa3NXVUZCV1N4SlFVRk5MRVZCUVVFN1FVRkZjRUlzVFVGQlNTeEpRVUZCTEVsQlFVRXNRMEZCU3l4WlFVRmhMRU5CUVVFc1MwRkJRU3hEUVVGTkxGVkJRVmtzUlVGQlFUdEJRVU4wUXl4UlFVRkJMRkZCUVVFc1IwRkJWeXgzUWtGQmQwSXNVVUZCVVN4RFFVRkJMRU5CUVVFN1FVRkJRU3hQUVVNM1F6dEJRVWxCTEUxQlFVa3NTVUZCUVN4SlFVRkJMRU5CUVVzc1lVRkJZU3hMUVVGTkxFTkJRVUVzVVVGQlFTeEpRVUZaTEV0QlFVc3NXVUZCWVN4RFFVRkJMRXRCUVVFc1EwRkJUU3hoUVVGaExGRkJRVlVzUlVGQlFUdEJRVU55Uml4UlFVRlhMRkZCUVVFc1IwRkJRU3hyUWtGQlFTeERRVUZCTzBGQlFVRXNUMEZEWWp0QlFVMUJMRTFCUVVrc1NVRkJRU3hEUVVGRExFbEJRVXNzUTBGQlFTeFpRVUZCTEVOQlFXRXNVVUZCVlN4RlFVRkJPMEZCUXk5Q0xGRkJRVUVzU1VGQlFTeERRVUZMTEdGQlFXRXNhMEpCUVhGQ0xFZEJRVUVzU1VGQlFTeERRVUZCTzBGQlFVRXNUMEZEZWtNN1FVRkZRU3hOUVVGTExFbEJRVUVzUTBGQlFTeFpRVUZCTEVOQlFXRXNZMEZCWXl4UlFVRlJMRU5CUVVFc1EwRkJRVHRCUVVGQkxFdEJRekZETzBGQlFVRXNSMEZEUmp0QlFVTkdMRU5CUVVFN1FVRkZRU3hUUVVGVExIZENRVUYzUWl4TFFVRXdRaXhGUVVGQk8wRkJRM3BFTEVWQlFVRXNTVUZCU1N4UFFVRlJMRU5CUVVFc1MwRkJTeXhEUVVGTExFbEJRVUVzUzBGQlFTeERRVUZOTEU5QlFVOHNhVUpCUVcxQ0xFVkJRVUU3UVVGRGNFUXNTVUZCUVN4UFFVRlBMRU5CUVVNc2EwSkJRV3RDTEVOQlFVRXNRMEZCUVR0QlFVRkJMRWRCUXpWQ0xFMUJRVUVzU1VGQlZ5eFZRVUZWTEdsQ1FVRnRRaXhGUVVGQk8wRkJRM1JETEVsQlFVOHNUMEZCUVN4clFrRkJRU3hEUVVGQk8wRkJRVUVzUjBGRFZEdEJRVVZCTEVWQlFVOHNUMEZCUVN4TFFVRkJMRU5CUVVFN1FVRkRWQ3hEUVVGQk8wRkJUVThzVFVGQlRTeGpRVUU0UXl4RFFVRkJPMEZCUVVFc1JVRkRiRVFzVjBGQlFTeERRVUZ2UWl4UlFVRjNRaXhUUVVFd1FpeEZRVUZCTzBGQlFXeEVMRWxCUVVFc1NVRkJRU3hEUVVGQkxFMUJRVUVzUjBGQlFTeE5RVUZCTEVOQlFVRTdRVUZCZDBJc1NVRkJRU3hKUVVGQkxFTkJRVUVzVTBGQlFTeEhRVUZCTEZOQlFVRXNRMEZCUVR0QlFVRkJMRWRCUVRKQ08wRkJRVUVzUlVGRmRrVXNWVUZCVlN4alFVRTJSQ3hGUVVGQk8wRkJRelZGTEVsQlFVa3NTVUZCUVN4alFVRkJMRXRCUVcxQ0xHbENRVUZwUWl4SlFVRk5MRVZCUVVFN1FVRkROVU1zVFVGQlR5eFBRVUZCTEdsQ1FVRkJMRU5CUVVFN1FVRkJRU3hMUVVOVU8wRkJSVUVzU1VGQlNTeEpRVUZCTEdOQlFVRXNTMEZCYlVJc2FVSkJRV2xDTEdGQlFXVXNSVUZCUVR0QlFVTnlSQ3hOUVVGUExFOUJRVUVzWTBGQlFTeERRVUZsTEVkQlFVa3NRMEZCUVN4blFrRkJRU3hEUVVGcFFpeGhRVUZoTEVOQlFVRXNRMEZCUlN4VFFVRlZMRU5CUVVFc1NVRkJRU3hEUVVGTExFMUJRVkVzUlVGQlFTeEZRVUZKTEVWQlFVRXNTVUZCUVN4RFFVRkxMRk5CUVZNc1EwRkJRU3hEUVVGQk8wRkJRVUVzUzBGRGNrYzdRVUZGUVN4SlFVRkpMRWxCUVVFc1kwRkJRU3hMUVVGdFFpeHBRa0ZCYVVJc1ZVRkJXU3hGUVVGQk8wRkJRMnhFTEUxQlFVOHNUMEZCUVN4alFVRkJMRU5CUVdVc1IwRkJTU3hEUVVGQkxHZENRVUZCTEVOQlFXbENMRlZCUVZVc1EwRkJRU3hEUVVGRkxGVkJRVlVzYVVKQlFXMUNMRVZCUVVFc1JVRkJTU3hGUVVGQkxFbEJRVUVzUTBGQlN5eFRRVUZUTEVOQlFVRXNRMEZCUVR0QlFVRkJMRXRCUTNoSE8wRkJSVUVzU1VGQlFTeFBRVUZQTEVsQlFVc3NRMEZCUVN4TlFVRkJMRU5CUVVFN1FVRkJRU3hIUVVOa08wRkJRMFk3T3pzN0luMD1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUE4Q08sTUFBZSwyQkFDWixlQUVWLENBQUE7RUFITyxXQUFBLEdBQUE7QUFBQSxJQUFBLEtBQUEsQ0FBQSxHQUFBLFNBQUEsQ0FBQSxDQUFBO0FBSUssSUFBQSxJQUFBLENBQUEsUUFBQSxHQUFzQyxJQUFJLHdCQUFBLENBQXlCLElBQUksQ0FBQSxDQUFBO0FBQUEsR0FBQTtFQWUxRSxpQkFBeUQsR0FBQTtBQUM5RCxJQUFBLE9BQU8sSUFBSyxDQUFBLGVBQUEsQ0FBZ0IsRUFBRSxDQUFFLENBQUEsSUFBQTtBQUM5QixNQUFBLEdBQUEsQ0FBSSxDQUFDLE9BQVksS0FBQTtBQUNmLFFBQUEsSUFBQSxDQUFLLDJCQUEyQixPQUFPLENBQUEsQ0FBQTtBQUN2QyxRQUFBLE9BQU8sRUFBQSxDQUFBO09BQ1IsQ0FBQTtBQUFBLEtBQUEsQ0FBQTtBQUNILEdBQUE7RUFHSyxRQUFpQixHQUFBO0FBQ3RCLElBQUEsSUFBQSxDQUFLLGNBQWUsQ0FBQSxFQUFFLE9BQVMsRUFBQSxLQUFBLEVBQU8sQ0FBQSxDQUFBO0FBQ3RDLElBQUEsTUFBTSxjQUFjLElB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