@vertigis/arcgis-extensions 54.14.6 → 54.16.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 (410) hide show
  1. package/data/Feature.js +1 -1
  2. package/data/support/_featureCopy.d.ts +106 -0
  3. package/data/support/_featureCopy.js +1 -0
  4. package/declarations/arcgis-js-api-extensions/index.d.ts +0 -29
  5. package/docs/html/assets/hierarchy.js +1 -1
  6. package/docs/html/assets/navigation.js +1 -1
  7. package/docs/html/assets/search.js +1 -1
  8. package/docs/html/classes/data_support__featureCopy.CopyFeatureGeometryProjectionError.html +85 -0
  9. package/docs/html/classes/layer-preset_LayerPreset.LayerPreset.html +1 -1
  10. package/docs/html/classes/layer-preset_LayerPresetSettings.LayerPresetSetting.html +1 -1
  11. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerExtension.html +1 -1
  12. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerRelationshipCollection.html +1 -1
  13. package/docs/html/classes/mapping_BasemapExtension.BasemapExtension.html +1 -1
  14. package/docs/html/classes/mapping_Bookmark.Bookmark.html +1 -1
  15. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtension.html +1 -1
  16. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerSchema.html +1 -1
  17. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtension.html +1 -1
  18. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerSchema.html +1 -1
  19. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtension.html +1 -1
  20. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerReadOnlySchema.html +1 -1
  21. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerExtension.html +1 -1
  22. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerSchema.html +1 -1
  23. package/docs/html/classes/mapping_CSVLayerExtension.CSVLayerExtension.html +1 -1
  24. package/docs/html/classes/mapping_ElevationLayerExtension.ElevationLayerExtension.html +1 -1
  25. package/docs/html/classes/mapping_FeatureCollectionLayerExtension.FeatureCollectionLayerExtension.html +1 -1
  26. package/docs/html/classes/mapping_FeatureLayerExtension.FeatureLayerExtension.html +1 -1
  27. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBase.html +1 -1
  28. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerReadOnlySchema.html +1 -1
  29. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerSchema.html +1 -1
  30. package/docs/html/classes/mapping_GeoJSONLayerExtension.GeoJSONLayerExtension.html +1 -1
  31. package/docs/html/classes/mapping_GeoRSSLayerExtension.GeoRSSLayerExtension.html +1 -1
  32. package/docs/html/classes/mapping_GraphicsLayerExtension.GraphicsLayerExtension.html +1 -1
  33. package/docs/html/classes/mapping_GroundExtension.GroundExtension.html +1 -1
  34. package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtension.html +1 -1
  35. package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtensionCollection.html +1 -1
  36. package/docs/html/classes/mapping_ImageryLayerExtension.ImageryLayerExtension.html +1 -1
  37. package/docs/html/classes/mapping_ImageryTileLayerExtension.ImageryTileLayerExtension.html +1 -1
  38. package/docs/html/classes/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtension.html +1 -1
  39. package/docs/html/classes/mapping_KMLLayerExtension.KMLLayerExtension.html +1 -1
  40. package/docs/html/classes/mapping_KMLSublayerExtension.KMLSublayerExtension.html +1 -1
  41. package/docs/html/classes/mapping_MapConstraints.MapConstraints.html +1 -1
  42. package/docs/html/classes/mapping_MapExtension.MapExtension.html +1 -1
  43. package/docs/html/classes/mapping_MapImageLayerExtension.MapImageLayerExtension.html +1 -1
  44. package/docs/html/classes/mapping_MapImageSublayerExtension.MapImageSublayerExtension.html +1 -1
  45. package/docs/html/classes/mapping_MapNotesLayerExtension.MapNotesLayerExtension.html +1 -1
  46. package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtension.html +1 -1
  47. package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionSchema.html +1 -1
  48. package/docs/html/classes/mapping_MediaLayerExtension.MediaLayerExtension.html +1 -1
  49. package/docs/html/classes/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtension.html +1 -1
  50. package/docs/html/classes/mapping_PointCloudLayerExtension.PointCloudLayerExtension.html +1 -1
  51. package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtension.html +1 -1
  52. package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtensionSchema.html +1 -1
  53. package/docs/html/classes/mapping_SceneLayerExtension.SceneLayerExtension.html +1 -1
  54. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerExtension.html +1 -1
  55. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerSchema.html +1 -1
  56. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerExtension.html +1 -1
  57. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerRelationshipCollection.html +1 -1
  58. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerSchema.html +1 -1
  59. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerExtension.html +1 -1
  60. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerRelationshipCollection.html +1 -1
  61. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerSchema.html +1 -1
  62. package/docs/html/classes/mapping_TileLayerExtension.TileLayerExtension.html +1 -1
  63. package/docs/html/classes/mapping_TileSublayerExtension.TileSublayerExtension.html +1 -1
  64. package/docs/html/classes/mapping_UnsupportedLayerExtension.UnsupportedLayerExtension.html +1 -1
  65. package/docs/html/classes/mapping_VectorTileLayerExtension.VectorTileLayerExtension.html +1 -1
  66. package/docs/html/classes/mapping_WFSLayerExtension.WFSLayerExtension.html +1 -1
  67. package/docs/html/classes/mapping_WMSLayerExtension.WMSLayerExtension.html +1 -1
  68. package/docs/html/classes/mapping_WMSSublayerExtension.WMSSublayerExtension.html +1 -1
  69. package/docs/html/classes/mapping_WMTSLayerExtension.WMTSLayerExtension.html +1 -1
  70. package/docs/html/classes/mapping_WebTileLayerExtension.WebTileLayerExtension.html +1 -1
  71. package/docs/html/classes/mapping__LayerExtension.LayerExtension.html +1 -1
  72. package/docs/html/classes/mapping__LayerExtension.LayerExtensionReadOnlySchema.html +1 -1
  73. package/docs/html/classes/mapping__LayerExtension.LayerExtensionSchema.html +1 -1
  74. package/docs/html/classes/mapping__LayerExtensionCollectionImpl.LayerExtensionCollectionImpl.html +1 -1
  75. package/docs/html/classes/mapping__SublayerExtension.SubSublayerExtensionCollection.html +1 -1
  76. package/docs/html/classes/mapping__SublayerExtension.SublayerExtension.html +1 -1
  77. package/docs/html/classes/mapping__SublayerExtension.SublayerSchema.html +1 -1
  78. package/docs/html/classes/mapping_support_ArrayWrappedCollection.ArrayWrappedCollection.html +1 -1
  79. package/docs/html/classes/mapping_support_LayerListSettings.ExtensionBaseLayerListSettings.html +1 -1
  80. package/docs/html/classes/mapping_support_LayerListSettings.LayerListSettings.html +1 -1
  81. package/docs/html/classes/mapping_support__LayerExtensionCollection.LayerExtensionCollectionBase.html +1 -1
  82. package/docs/html/classes/mapping_support__SublayerExtensionCollection.SublayerExtensionCollectionBase.html +1 -1
  83. package/docs/html/classes/menus_Menu.Menu.html +1 -1
  84. package/docs/html/classes/menus_MenuItem.MenuItem.html +1 -1
  85. package/docs/html/classes/support_FormatSettings.FormatSettings.html +1 -1
  86. package/docs/html/classes/support_InitializableBase.InitializableBase.html +1 -1
  87. package/docs/html/classes/support_InitializableCollectionProxy.InitializableCollectionProxy.html +1 -1
  88. package/docs/html/classes/support_InitializeError.InitializeError.html +1 -1
  89. package/docs/html/classes/support_ReadOnlyInitializableCollection.ReadOnlyInitializableCollection.html +1 -1
  90. package/docs/html/classes/support_Serializable.SerializableBase.html +1 -1
  91. package/docs/html/classes/support_Settings.Settings.html +1 -1
  92. package/docs/html/classes/support__ArcGISRelationshipCollection.ArcGISRelationshipCollection.html +1 -1
  93. package/docs/html/classes/support_observableUtils.ObservableMixin.html +1 -1
  94. package/docs/html/classes/tasks_geocoding_ArcGISGeocoder.ArcGISGeocoder.html +1 -1
  95. package/docs/html/classes/tasks_geocoding_Geocoder.Geocoder.html +1 -1
  96. package/docs/html/classes/tasks_identify_ArcGISSublayerIdentifyProvider.ArcGISSublayerIdentifyProvider.html +1 -1
  97. package/docs/html/classes/tasks_identify_ArcGISSublayerQueryIdentifyProvider.ArcGISSublayerQueryIdentifyProvider.html +1 -1
  98. package/docs/html/classes/tasks_identify_BuildingComponentSublayerClientSideIdentifyProvider.BuildingComponentSublayerClientSideIdentifyProvider.html +1 -1
  99. package/docs/html/classes/tasks_identify_BuildingComponentSublayerHitTestIdentifyProvider.BuildingComponentSublayerHitTestIdentifyProvider.html +1 -1
  100. package/docs/html/classes/tasks_identify_CSVLayer3DHitTestIdentifyProvider.CSVLayer3DHitTestIdentifyProvider.html +1 -1
  101. package/docs/html/classes/tasks_identify_CSVLayerClientSideQueryIdentifyProvider.CSVLayerClientSideQueryIdentifyProvider.html +1 -1
  102. package/docs/html/classes/tasks_identify_ClientSideIdentifyProvider.ClientSideIdentifyProvider.html +1 -1
  103. package/docs/html/classes/tasks_identify_FeatureLayer3DHitTestIdentifyProvider.FeatureLayer3DHitTestIdentifyProvider.html +1 -1
  104. package/docs/html/classes/tasks_identify_FeatureLayerClientSideIdentifyProvider.FeatureLayerClientSideIdentifyProvider.html +1 -1
  105. package/docs/html/classes/tasks_identify_FeatureLayerQueryIdentifyProvider.FeatureLayerQueryIdentifyProvider.html +1 -1
  106. package/docs/html/classes/tasks_identify_GeoJSONLayer3DHitTestIdentifyProvider.GeoJSONLayer3DHitTestIdentifyProvider.html +1 -1
  107. package/docs/html/classes/tasks_identify_GeoJSONLayerClientSideQueryIdentifyProvider.GeoJSONLayerClientSideQueryIdentifyProvider.html +1 -1
  108. package/docs/html/classes/tasks_identify_GeoRSSLayerIdentifyProvider.GeoRSSLayerIdentifyProvider.html +1 -1
  109. package/docs/html/classes/tasks_identify_GraphicsLayerQueryIdentifyProvider.GraphicsLayerQueryIdentifyProvider.html +1 -1
  110. package/docs/html/classes/tasks_identify_HitTestIdentifyProvider.HitTestIdentifyProvider.html +1 -1
  111. package/docs/html/classes/tasks_identify_IdentifyError.IdentifyError.html +1 -1
  112. package/docs/html/classes/tasks_identify_IdentifyProviderBase.IdentifyProviderBase.html +1 -1
  113. package/docs/html/classes/tasks_identify_IdentifyService.IdentifyService.html +1 -1
  114. package/docs/html/classes/tasks_identify_ImageryLayerIdentifyProvider.ImageryLayerIdentifyProvider.html +1 -1
  115. package/docs/html/classes/tasks_identify_KMLLayerQueryIdentifyProvider.KMLLayerQueryIdentifyProvider.html +1 -1
  116. package/docs/html/classes/tasks_identify_MapNotesSublayerQueryIdentifyProvider.MapNotesSublayerQueryIdentifyProvider.html +1 -1
  117. package/docs/html/classes/tasks_identify_PointCloudLayerHitTestIdentifyProvider.PointCloudLayerHitTestIdentifyProvider.html +1 -1
  118. package/docs/html/classes/tasks_identify_RouteLayerQueryIdentifyProvider.RouteLayerQueryIdentifyProvider.html +1 -1
  119. package/docs/html/classes/tasks_identify_SceneLayerClientSideIdentifyProvider.SceneLayerClientSideIdentifyProvider.html +1 -1
  120. package/docs/html/classes/tasks_identify_SceneLayerHitTestIdentifyProvider.SceneLayerHitTestIdentifyProvider.html +1 -1
  121. package/docs/html/classes/tasks_identify_SceneLayerQueryIdentifyProvider.SceneLayerQueryIdentifyProvider.html +1 -1
  122. package/docs/html/classes/tasks_identify_StreamLayerClientSideQueryIdentifyProvider.StreamLayerClientSideQueryIdentifyProvider.html +1 -1
  123. package/docs/html/classes/tasks_identify_SubtypeSublayerClientSideIdentifyProvider.SubtypeSublayerClientSideIdentifyProvider.html +1 -1
  124. package/docs/html/classes/tasks_identify_SubtypeSublayerQueryIdentifyProvider.SubtypeSublayerQueryIdentifyProvider.html +1 -1
  125. package/docs/html/classes/tasks_identify_WFSLayerClientSideIdentifyProvider.WFSLayerClientSideIdentifyProvider.html +1 -1
  126. package/docs/html/classes/tasks_identify_WFSLayerQueryIdentifyProvider.WFSLayerQueryIdentifyProvider.html +1 -1
  127. package/docs/html/classes/tasks_identify_WMSLayerFeatureInfoIdentifyProvider.WMSLayerFeatureInfoIdentifyProvider.html +1 -1
  128. package/docs/html/classes/tasks_identify_WMSSublayerIdentifyProvider.WMSSublayerIdentifyProvider.html +1 -1
  129. package/docs/html/classes/tasks_query_ArcGISRelationship.ArcGISRelationship.html +1 -1
  130. package/docs/html/classes/tasks_query_ArcGISServiceTableQueryProvider.ArcGISServiceTableQueryProvider.html +1 -1
  131. package/docs/html/classes/tasks_query_ArcGISSublayerQueryProvider.ArcGISSublayerQueryProvider.html +1 -1
  132. package/docs/html/classes/tasks_query_BuildingComponentSublayerClientSideQueryProvider.BuildingComponentSublayerClientSideQueryProvider.html +1 -1
  133. package/docs/html/classes/tasks_query_CSVLayerClientSideQueryProvider.CSVLayerClientSideQueryProvider.html +1 -1
  134. package/docs/html/classes/tasks_query_ClientSideQueryProvider.ClientSideQueryProvider.html +1 -1
  135. package/docs/html/classes/tasks_query_FeatureLayerQueryProvider.FeatureLayerQueryProvider.html +1 -1
  136. package/docs/html/classes/tasks_query_GeoJSONLayerClientSideQueryProvider.GeoJSONLayerClientSideQueryProvider.html +1 -1
  137. package/docs/html/classes/tasks_query_GeoRSSLayerQueryProvider.GeoRSSLayerQueryProvider.html +1 -1
  138. package/docs/html/classes/tasks_query_GraphicsLayerQueryProvider.GraphicsLayerQueryProvider.html +1 -1
  139. package/docs/html/classes/tasks_query_ImageryLayerQueryProvider.ImageryLayerQueryProvider.html +1 -1
  140. package/docs/html/classes/tasks_query_KMLLayerQueryProvider.KMLLayerQueryProvider.html +1 -1
  141. package/docs/html/classes/tasks_query_MapNotesSublayerQueryProvider.MapNotesSublayerQueryProvider.html +1 -1
  142. package/docs/html/classes/tasks_query_QueryBasedRelationship.QueryBasedRelationship.html +1 -1
  143. package/docs/html/classes/tasks_query_QueryError.QueryError.html +1 -1
  144. package/docs/html/classes/tasks_query_QueryProviderBase.QueryProviderBase.html +1 -1
  145. package/docs/html/classes/tasks_query_QueryService.QueryService.html +1 -1
  146. package/docs/html/classes/tasks_query_RouteLayerQueryProvider.RouteLayerQueryProvider.html +1 -1
  147. package/docs/html/classes/tasks_query_SceneLayerClientSideQueryProvider.SceneLayerClientSideQueryProvider.html +1 -1
  148. package/docs/html/classes/tasks_query_SceneLayerQueryProvider.SceneLayerQueryProvider.html +1 -1
  149. package/docs/html/classes/tasks_query_StreamLayerClientSideQueryProvider.StreamLayerClientSideQueryProvider.html +1 -1
  150. package/docs/html/classes/tasks_query_SubtypeSublayerQueryProvider.SubtypeSublayerQueryProvider.html +1 -1
  151. package/docs/html/classes/tasks_query_WFSLayerQueryProvider.WFSLayerQueryProvider.html +1 -1
  152. package/docs/html/classes/tasks_search_ArcGISGeocoderSearchProvider.ArcGISGeocoderSearchProvider.html +1 -1
  153. package/docs/html/classes/tasks_search_GeocoderSearchProvider.GeocoderSearchProvider.html +1 -1
  154. package/docs/html/classes/tasks_search_QuerySearchProvider.QuerySearchProvider.html +1 -1
  155. package/docs/html/classes/tasks_search_SearchError.SearchError.html +1 -1
  156. package/docs/html/classes/tasks_search_SearchProviderBase.SearchProviderBase.html +1 -1
  157. package/docs/html/classes/tasks_search_SearchService.SearchService.html +1 -1
  158. package/docs/html/classes/tasks_search_SubtypeSublayerQuerySearchProvider.SubtypeSublayerQuerySearchProvider.html +1 -1
  159. package/docs/html/classes/utilities_CaseInsensitiveObservableMap.CaseInsensitiveObservableMap.html +1 -1
  160. package/docs/html/classes/utilities_CollectionProxy.CollectionProxy.html +1 -1
  161. package/docs/html/classes/utilities_CopyOnWriteCollection.CopyOnWriteCollection.html +1 -1
  162. package/docs/html/classes/utilities_GeometryServiceError.GeometryServiceError.html +1 -1
  163. package/docs/html/classes/utilities_MapTransformCollection.MapTransformCollection.html +1 -1
  164. package/docs/html/classes/utilities_ObservableMap.ObservableMap.html +1 -1
  165. package/docs/html/classes/utilities_ObservableSet.ObservableSet.html +1 -1
  166. package/docs/html/classes/utilities_ReadOnlyCollection.ReadOnlyCollection.html +1 -1
  167. package/docs/html/classes/utilities_ReadOnlyMap.ReadOnlyMap.html +1 -1
  168. package/docs/html/classes/utilities_format_date.DateFormatter.html +1 -1
  169. package/docs/html/classes/utilities_format_number.NumberFormatter.html +1 -1
  170. package/docs/html/classes/utilities_format_time.TimeFormatter.html +1 -1
  171. package/docs/html/classes/utilities_log.ConsoleLogger.html +1 -1
  172. package/docs/html/classes/utilities_log.LoggerBase.html +1 -1
  173. package/docs/html/functions/data_support__featureCopy.copyFeatures.html +51 -0
  174. package/docs/html/functions/utilities_arcade.constructProfile.html +43 -0
  175. package/docs/html/functions/utilities_arcade.createExecutorForExpression.html +53 -0
  176. package/docs/html/functions/utilities_arcade.isArcadeScriptAsync.html +7 -2
  177. package/docs/html/functions/utilities_arcade.isExpressionAsyncOnly.html +43 -0
  178. package/docs/html/functions/utilities_arcade.runArcadeExpression.html +9 -3
  179. package/docs/html/functions/utilities_arcade.runAsyncArcadeExpression.html +7 -2
  180. package/docs/html/functions/utilities_arcade.runAsyncExpression.html +47 -0
  181. package/docs/html/functions/utilities_arcade.runSyncExpression.html +52 -0
  182. package/docs/html/functions/utilities_arcade.toArcadeVariable.html +57 -0
  183. package/docs/html/hierarchy.html +409 -409
  184. package/docs/html/interfaces/data_support__featureCopy.CopyFeatureRequiredFieldSummary.html +61 -0
  185. package/docs/html/interfaces/data_support__featureCopy.CopyFeaturesOptions.html +61 -0
  186. package/docs/html/interfaces/data_support__featureCopy.CopyFeaturesResult.html +61 -0
  187. package/docs/html/interfaces/data_support__featureCopy.RequiredFieldResolution.html +73 -0
  188. package/docs/html/interfaces/data_support__featureCopy.ResolveRequiredFieldsResult.html +73 -0
  189. package/docs/html/interfaces/json_AnnotationLayerJson.AnnotationLayerJson.html +1 -1
  190. package/docs/html/interfaces/json_BasemapJson.BasemapJson.html +1 -1
  191. package/docs/html/interfaces/json_BasemapLayerJson.BasemapLayerJsonBase.html +1 -1
  192. package/docs/html/interfaces/json_BingLayerJson.BingLayerJson.html +1 -1
  193. package/docs/html/interfaces/json_BuildingSceneLayerJson.BuildingSceneLayerJson.html +1 -1
  194. package/docs/html/interfaces/json_BuildingSceneSublayerJson.BuildingSceneSublayerJson.html +1 -1
  195. package/docs/html/interfaces/json_CSVLayerJson.CSVLayerJson.html +1 -1
  196. package/docs/html/interfaces/json_DomainJson.CodedValueDomainJson.html +1 -1
  197. package/docs/html/interfaces/json_DomainJson.DomainJsonBase.html +1 -1
  198. package/docs/html/interfaces/json_DomainJson.InheritedDomainJson.html +1 -1
  199. package/docs/html/interfaces/json_DomainJson.RangeDomainJson.html +1 -1
  200. package/docs/html/interfaces/json_FeatureLayerJson.FeatureLayerJson.html +1 -1
  201. package/docs/html/interfaces/json_GeoJSONLayerJson.GeoJSONLayerJson.html +1 -1
  202. package/docs/html/interfaces/json_GeoRSSLayerJson.GeoRSSLayerJson.html +1 -1
  203. package/docs/html/interfaces/json_GeometryJson.ExtentJson.html +1 -1
  204. package/docs/html/interfaces/json_GeometryJson.GeometryJsonBase.html +1 -1
  205. package/docs/html/interfaces/json_GeometryJson.MultipointJson.html +1 -1
  206. package/docs/html/interfaces/json_GeometryJson.PointJson.html +1 -1
  207. package/docs/html/interfaces/json_GeometryJson.PolygonJson.html +1 -1
  208. package/docs/html/interfaces/json_GeometryJson.PolylineJson.html +1 -1
  209. package/docs/html/interfaces/json_GroundJson.GroundJson.html +1 -1
  210. package/docs/html/interfaces/json_GroupLayerJson.GroupLayerJson.html +1 -1
  211. package/docs/html/interfaces/json_ImageServiceLayerJson.ImageServiceLayerJson.html +1 -1
  212. package/docs/html/interfaces/json_ImageServiceVectorLayerJson.ImageServiceVectorLayerJson.html +1 -1
  213. package/docs/html/interfaces/json_IntegratedMeshLayerJson.IntegratedMeshLayerJson.html +1 -1
  214. package/docs/html/interfaces/json_KMLLayerJson.KMLLayerJson.html +1 -1
  215. package/docs/html/interfaces/json_LayerDefinitionJson.DataSourceJsonBase.html +1 -1
  216. package/docs/html/interfaces/json_LayerDefinitionJson.JoinTableDataSourceJson.html +1 -1
  217. package/docs/html/interfaces/json_LayerDefinitionJson.QueryTableDataSourceJson.html +1 -1
  218. package/docs/html/interfaces/json_LayerDefinitionJson.RasterDataSourceJson.html +1 -1
  219. package/docs/html/interfaces/json_LayerDefinitionJson.TableDataSourceJson.html +1 -1
  220. package/docs/html/interfaces/json_LayerJson.BrightnessEffectFunctionJson.html +1 -1
  221. package/docs/html/interfaces/json_LayerJson.ContrastEffectFunctionJson.html +1 -1
  222. package/docs/html/interfaces/json_LayerJson.GrayscaleEffectFunctionJson.html +1 -1
  223. package/docs/html/interfaces/json_LayerJson.InvertEffectFunctionJson.html +1 -1
  224. package/docs/html/interfaces/json_LayerJson.LayerJsonBase.html +1 -1
  225. package/docs/html/interfaces/json_LayerJson.OpacityEffectFunctionJson.html +1 -1
  226. package/docs/html/interfaces/json_LayerJson.SaturateEffectFunctionJson.html +1 -1
  227. package/docs/html/interfaces/json_LayerJson.SepiaEffectFunctionJson.html +1 -1
  228. package/docs/html/interfaces/json_MapServiceLayerJson.MapServiceLayerJson.html +1 -1
  229. package/docs/html/interfaces/json_MediaLayerJson.MediaLayerJson.html +1 -1
  230. package/docs/html/interfaces/json_OpenStreetMapLayerJson.OpenStreetMapLayerJson.html +1 -1
  231. package/docs/html/interfaces/json_OperationalLayerJson.OperationalLayerJsonBase.html +1 -1
  232. package/docs/html/interfaces/json_PointCloudLayerJson.PointCloudLayerJson.html +1 -1
  233. package/docs/html/interfaces/json_PopupInfoJson.PopupElementJson.html +1 -1
  234. package/docs/html/interfaces/json_RasterDataElevationLayerJson.RasterDataElevationLayerJson.html +1 -1
  235. package/docs/html/interfaces/json_RendererJson.ClassBreaksRendererJson.html +1 -1
  236. package/docs/html/interfaces/json_RendererJson.ColorInfoJson.html +1 -1
  237. package/docs/html/interfaces/json_RendererJson.HeatmapRendererJson.html +1 -1
  238. package/docs/html/interfaces/json_RendererJson.PointCloudClassBreaksRendererJson.html +1 -1
  239. package/docs/html/interfaces/json_RendererJson.PointCloudRGBRendererJson.html +1 -1
  240. package/docs/html/interfaces/json_RendererJson.PointCloudRendererJsonBase.html +1 -1
  241. package/docs/html/interfaces/json_RendererJson.PointCloudStretchRendererJson.html +1 -1
  242. package/docs/html/interfaces/json_RendererJson.PointCloudUniqueValueRendererJson.html +1 -1
  243. package/docs/html/interfaces/json_RendererJson.PredominanceRendererJson.html +1 -1
  244. package/docs/html/interfaces/json_RendererJson.RendererJsonBase.html +1 -1
  245. package/docs/html/interfaces/json_RendererJson.RotationInfoJson.html +1 -1
  246. package/docs/html/interfaces/json_RendererJson.SimpleRendererJson.html +1 -1
  247. package/docs/html/interfaces/json_RendererJson.SizeInfoJson.html +1 -1
  248. package/docs/html/interfaces/json_RendererJson.TemporalRendererJson.html +1 -1
  249. package/docs/html/interfaces/json_RendererJson.TransparencyInfoJson.html +1 -1
  250. package/docs/html/interfaces/json_RendererJson.UniqueValueFromStyleRendererJson.html +1 -1
  251. package/docs/html/interfaces/json_RendererJson.UniqueValueRendererJson.html +1 -1
  252. package/docs/html/interfaces/json_RendererJson.VectorFieldRendererJson.html +1 -1
  253. package/docs/html/interfaces/json_RendererJson.VisualVariableJsonBase.html +1 -1
  254. package/docs/html/interfaces/json_SceneLayerJson.SceneLayerJson.html +1 -1
  255. package/docs/html/interfaces/json_StreamLayerJson.StreamLayerJson.html +1 -1
  256. package/docs/html/interfaces/json_SublayerJson.SublayerJson.html +1 -1
  257. package/docs/html/interfaces/json_SubtypeGroupLayerJson.SubtypeGroupLayerJson.html +1 -1
  258. package/docs/html/interfaces/json_SubtypeGroupLayerJson.SubtypeSubtypeGroupLayerJson.html +1 -1
  259. package/docs/html/interfaces/json_SubtypeSublayerJson.SubtypeSublayerJson.html +1 -1
  260. package/docs/html/interfaces/json_SymbolJson.CIMSymbolJson.html +1 -1
  261. package/docs/html/interfaces/json_SymbolJson.CIMSymbolReferenceJson.html +1 -1
  262. package/docs/html/interfaces/json_SymbolJson.ExtrudeSymbol3DLayerJson.html +1 -1
  263. package/docs/html/interfaces/json_SymbolJson.FillSymbol3DLayerJson.html +1 -1
  264. package/docs/html/interfaces/json_SymbolJson.IconSymbol3DLayerJson.html +1 -1
  265. package/docs/html/interfaces/json_SymbolJson.LabelSymbol3DJson.html +1 -1
  266. package/docs/html/interfaces/json_SymbolJson.LineSymbol3DJson.html +1 -1
  267. package/docs/html/interfaces/json_SymbolJson.LineSymbol3DLayerJson.html +1 -1
  268. package/docs/html/interfaces/json_SymbolJson.MeshSymbol3DJson.html +1 -1
  269. package/docs/html/interfaces/json_SymbolJson.ObjectSymbol3DLayerJson.html +1 -1
  270. package/docs/html/interfaces/json_SymbolJson.PathSymbol3DLayerJson.html +1 -1
  271. package/docs/html/interfaces/json_SymbolJson.PictureFillSymbolJson.html +1 -1
  272. package/docs/html/interfaces/json_SymbolJson.PictureMarkerSymbolJson.html +1 -1
  273. package/docs/html/interfaces/json_SymbolJson.PointSymbol3DJson.html +1 -1
  274. package/docs/html/interfaces/json_SymbolJson.PolygonSymbol3DJson.html +1 -1
  275. package/docs/html/interfaces/json_SymbolJson.SimpleFillSymbolJson.html +1 -1
  276. package/docs/html/interfaces/json_SymbolJson.SimpleLineSymbolJson.html +1 -1
  277. package/docs/html/interfaces/json_SymbolJson.SimpleMarkerSymbolJson.html +1 -1
  278. package/docs/html/interfaces/json_SymbolJson.SketchEdgesJson.html +1 -1
  279. package/docs/html/interfaces/json_SymbolJson.SolidEdgesJson.html +1 -1
  280. package/docs/html/interfaces/json_SymbolJson.Symbol3DJsonBase.html +1 -1
  281. package/docs/html/interfaces/json_SymbolJson.Symbol3DLayerJsonBase.html +1 -1
  282. package/docs/html/interfaces/json_SymbolJson.SymbolJsonBase.html +1 -1
  283. package/docs/html/interfaces/json_SymbolJson.TextSymbol3DLayerJson.html +1 -1
  284. package/docs/html/interfaces/json_SymbolJson.TextSymbolJson.html +1 -1
  285. package/docs/html/interfaces/json_TableJson.TableJson.html +1 -1
  286. package/docs/html/interfaces/json_TiledElevationServiceLayerJson.TiledElevationServiceLayerJson.html +1 -1
  287. package/docs/html/interfaces/json_TiledImageServiceLayerJson.TiledImageServiceLayerJson.html +1 -1
  288. package/docs/html/interfaces/json_TiledMapServiceLayerJson.TiledMapServiceLayerJson.html +1 -1
  289. package/docs/html/interfaces/json_VectorTileLayerJson.VectorTileLayerJson.html +1 -1
  290. package/docs/html/interfaces/json_WFSLayerJson.WFSLayerJson.html +1 -1
  291. package/docs/html/interfaces/json_WMSLayerJson.WMSLayerJson.html +1 -1
  292. package/docs/html/interfaces/json_WMSSublayerJson.WMSSublayerJson.html +1 -1
  293. package/docs/html/interfaces/json_WebMapJson.WebMapJson.html +1 -1
  294. package/docs/html/interfaces/json_WebMapJson.WebMapJsonBase.html +1 -1
  295. package/docs/html/interfaces/json_WebSceneJson.WebSceneJson.html +1 -1
  296. package/docs/html/interfaces/json_WebTileLayerJson.WebTileLayerJson.html +1 -1
  297. package/docs/html/interfaces/layer-preset_LayerPreset.LayerPresetProperties.html +1 -1
  298. package/docs/html/interfaces/mapping_ArcGISSublayerExtension.ArcGISSublayerExtensionCollection.html +1 -1
  299. package/docs/html/interfaces/mapping_ArcGISSublayerExtension.ArcGISSublayerExtensionProperties.html +1 -1
  300. package/docs/html/interfaces/mapping_ArcGISSublayerExtension.ArcGISSublayerProperties.html +1 -1
  301. package/docs/html/interfaces/mapping_BasemapExtension.BasemapExtensionProperties.html +1 -1
  302. package/docs/html/interfaces/mapping_BasemapExtension.BasemapProperties.html +1 -1
  303. package/docs/html/interfaces/mapping_Bookmark.BookmarkProperties.html +1 -1
  304. package/docs/html/interfaces/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtensionProperties.html +1 -1
  305. package/docs/html/interfaces/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtensionProperties.html +1 -1
  306. package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtensionProperties.html +1 -1
  307. package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSceneLayerProperties.html +1 -1
  308. package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSublayerExtensionCollection.html +1 -1
  309. package/docs/html/interfaces/mapping_BuildingSublayerExtension.BuildingSublayerExtensionProperties.html +1 -1
  310. package/docs/html/interfaces/mapping_BuildingSublayerExtension.BuildingSublayerProperties.html +1 -1
  311. package/docs/html/interfaces/mapping_CSVLayerExtension.CSVLayerExtensionProperties.html +1 -1
  312. package/docs/html/interfaces/mapping_ElevationLayerExtension.ElevationLayerExtensionProperties.html +1 -1
  313. package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerExtensionProperties.html +1 -1
  314. package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerProperties.html +1 -1
  315. package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerBaseProperties.html +1 -1
  316. package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBaseProperties.html +1 -1
  317. package/docs/html/interfaces/mapping_GeoJSONLayerExtension.GeoJSONLayerExtensionProperties.html +1 -1
  318. package/docs/html/interfaces/mapping_GeoRSSLayerExtension.GeoRSSLayerExtensionProperties.html +1 -1
  319. package/docs/html/interfaces/mapping_GraphicsLayerExtension.GraphicsLayerExtensionProperties.html +1 -1
  320. package/docs/html/interfaces/mapping_GroundExtension.GroundExtensionProperties.html +1 -1
  321. package/docs/html/interfaces/mapping_GroundExtension.GroundProperties.html +1 -1
  322. package/docs/html/interfaces/mapping_GroupLayerExtension.GroupLayerExtensionProperties.html +1 -1
  323. package/docs/html/interfaces/mapping_ImageryLayerExtension.ImageryLayerExtensionProperties.html +1 -1
  324. package/docs/html/interfaces/mapping_ImageryTileLayerExtension.ImageryTileLayerExtensionProperties.html +1 -1
  325. package/docs/html/interfaces/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtensionProperties.html +1 -1
  326. package/docs/html/interfaces/mapping_KMLLayerExtension.KMLLayerExtensionProperties.html +1 -1
  327. package/docs/html/interfaces/mapping_KMLSublayerExtension.KMLSublayerExtensionCollection.html +1 -1
  328. package/docs/html/interfaces/mapping_KMLSublayerExtension.KMLSublayerExtensionProperties.html +1 -1
  329. package/docs/html/interfaces/mapping_MapExtension.MapExtensionEvents.html +1 -1
  330. package/docs/html/interfaces/mapping_MapExtension.MapExtensionProperties.html +1 -1
  331. package/docs/html/interfaces/mapping_MapExtension.TableExtensionCollection.html +1 -1
  332. package/docs/html/interfaces/mapping_MapImageLayerExtension.MapImageLayerExtensionProperties.html +1 -1
  333. package/docs/html/interfaces/mapping_MapImageSublayerExtension.MapImageSublayerExtensionProperties.html +1 -1
  334. package/docs/html/interfaces/mapping_MapImageSublayerExtension.MapImageSublayerProperties.html +1 -1
  335. package/docs/html/interfaces/mapping_MapNotesLayerExtension.MapNotesLayerExtensionProperties.html +1 -1
  336. package/docs/html/interfaces/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionCollection.html +1 -1
  337. package/docs/html/interfaces/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionProperties.html +1 -1
  338. package/docs/html/interfaces/mapping_MediaLayerExtension.MediaLayerExtensionProperties.html +1 -1
  339. package/docs/html/interfaces/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtensionProperties.html +1 -1
  340. package/docs/html/interfaces/mapping_PointCloudLayerExtension.PointCloudLayerExtensionProperties.html +1 -1
  341. package/docs/html/interfaces/mapping_PointCloudLayerExtension.PointCloudLayerProperties.html +1 -1
  342. package/docs/html/interfaces/mapping_RouteLayerExtension.RouteLayerExtensionProperties.html +1 -1
  343. package/docs/html/interfaces/mapping_SceneLayerExtension.SceneLayerExtensionProperties.html +1 -1
  344. package/docs/html/interfaces/mapping_StreamLayerExtension.StreamLayerExtensionProperties.html +1 -1
  345. package/docs/html/interfaces/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerExtensionProperties.html +1 -1
  346. package/docs/html/interfaces/mapping_SubtypeSublayerExtension.SubtypeSublayerExtensionCollection.html +1 -1
  347. package/docs/html/interfaces/mapping_SubtypeSublayerExtension.SubtypeSublayerExtensionProperties.html +1 -1
  348. package/docs/html/interfaces/mapping_SubtypeSublayerExtension.SubtypeSublayerProperties.html +1 -1
  349. package/docs/html/interfaces/mapping_TileLayerExtension.TileLayerExtensionProperties.html +1 -1
  350. package/docs/html/interfaces/mapping_TileSublayerExtension.TileSublayerExtensionProperties.html +1 -1
  351. package/docs/html/interfaces/mapping_TileSublayerExtension.TileSublayerProperties.html +1 -1
  352. package/docs/html/interfaces/mapping_VectorTileLayerExtension.VectorTileLayerExtensionProperties.html +1 -1
  353. package/docs/html/interfaces/mapping_WFSLayerExtension.WFSLayerExtensionProperties.html +1 -1
  354. package/docs/html/interfaces/mapping_WMSLayerExtension.WMSLayerExtensionProperties.html +1 -1
  355. package/docs/html/interfaces/mapping_WMSSublayerExtension.WMSSublayerExtensionCollection.html +1 -1
  356. package/docs/html/interfaces/mapping_WMSSublayerExtension.WMSSublayerExtensionProperties.html +1 -1
  357. package/docs/html/interfaces/mapping_WMSSublayerExtension.WMSSublayerProperties.html +1 -1
  358. package/docs/html/interfaces/mapping_WMTSLayerExtension.WMTSLayerExtensionProperties.html +1 -1
  359. package/docs/html/interfaces/mapping_WebTileLayerExtension.WebTileLayerExtensionProperties.html +1 -1
  360. package/docs/html/interfaces/mapping__LayerExtension.LayerExtensionProperties.html +1 -1
  361. package/docs/html/interfaces/mapping__SublayerExtension.SublayerExtensionProperties.html +1 -1
  362. package/docs/html/interfaces/mapping__SublayerExtension.SublayerProperties.html +1 -1
  363. package/docs/html/interfaces/mapping_support__LayerExtensionCollection.LayerExtensionCollection.html +1 -1
  364. package/docs/html/interfaces/mapping_support__SublayerExtensionCollection.SublayerExtensionCollection.html +1 -1
  365. package/docs/html/interfaces/menus_Menu.MenuProperties.html +1 -1
  366. package/docs/html/interfaces/menus_MenuItem.MenuItemProperties.html +1 -1
  367. package/docs/html/interfaces/support_ArcGISRequestHelper.ArcGISRequestHelperResponse.html +1 -1
  368. package/docs/html/interfaces/support_InitializableBase.Initializable.html +1 -1
  369. package/docs/html/interfaces/support_InitializableBase.InitializableBaseEvents.html +1 -1
  370. package/docs/html/interfaces/support_InitializableBase.InitializableBaseProperties.html +1 -1
  371. package/docs/html/interfaces/support_InitializableCollectionProxy.InitializableCollection.html +1 -1
  372. package/docs/html/interfaces/support_Serializable.Serializable.html +1 -1
  373. package/docs/html/interfaces/support_Settings.SettingsEvents.html +1 -1
  374. package/docs/html/interfaces/support__restApiJson.RestApiMapServiceTimeInfo.html +1 -1
  375. package/docs/html/interfaces/support__restApiJson.RestApiServiceTimeInfo.html +1 -1
  376. package/docs/html/interfaces/support_esri.LayerWithSublayers.html +1 -1
  377. package/docs/html/interfaces/support_esri.SublayerLike.html +1 -1
  378. package/docs/html/interfaces/support_observableUtils.WatchEachOptions.html +1 -1
  379. package/docs/html/interfaces/support_observableUtils.WatchOptions.html +1 -1
  380. package/docs/html/interfaces/tasks_geocoding_ArcGISGeocoder.ArcGISGeocoderProperties.html +1 -1
  381. package/docs/html/interfaces/tasks_geocoding_Geocoder.GeocoderCapabilities.html +1 -1
  382. package/docs/html/interfaces/tasks_geocoding_Geocoder.GeocoderProperties.html +1 -1
  383. package/docs/html/interfaces/tasks_query_ArcGISRelationship.ArcGISRelationshipProperties.html +1 -1
  384. package/docs/html/interfaces/tasks_query_QueryBasedRelationship.QueryBasedRelationshipProperties.html +1 -1
  385. package/docs/html/interfaces/utilities_ObservableMap.MapAfterItemEvent.html +1 -1
  386. package/docs/html/interfaces/utilities_ObservableSet.SetAfterItemEvent.html +1 -1
  387. package/docs/html/interfaces/utilities__layers.LayerWithLegendEnabledProperty.html +1 -1
  388. package/docs/html/interfaces/utilities__layers.TimeAwareLayer.html +1 -1
  389. package/docs/html/interfaces/utilities_arcade.RunArcadeExpressionParams.html +15 -6
  390. package/docs/html/interfaces/utilities_collection.AfterItemChangeEvent.html +1 -1
  391. package/docs/html/interfaces/utilities_format_FormatSettings.FormatSettings.html +1 -1
  392. package/docs/html/interfaces/utilities_format_date.DateFormatterProperties.html +1 -1
  393. package/docs/html/interfaces/utilities_format_date.DateSettings.html +1 -1
  394. package/docs/html/interfaces/utilities_format_number.NumberFormatterProperties.html +1 -1
  395. package/docs/html/interfaces/utilities_format_number.NumberSettings.html +1 -1
  396. package/docs/html/interfaces/utilities_format_string.FormatOptions.html +1 -1
  397. package/docs/html/interfaces/utilities_format_time.TimeFormatterProperties.html +1 -1
  398. package/docs/html/interfaces/utilities_format_time.TimeSettings.html +1 -1
  399. package/docs/html/interfaces/utilities_log.LogMessageOptions.html +1 -1
  400. package/docs/html/interfaces/utilities_log.LogMessageResourceOptions.html +1 -1
  401. package/docs/html/modules/data_support__featureCopy.html +43 -0
  402. package/docs/html/modules/utilities_arcade.html +6 -2
  403. package/docs/html/modules.html +2 -2
  404. package/docs/html/types/utilities_arcade.ArcadeVariable.html +39 -0
  405. package/docs/html/variables/version.version.html +1 -1
  406. package/package.json +1 -1
  407. package/utilities/arcade.d.ts +98 -4
  408. package/utilities/arcade.js +1 -1
  409. package/version.d.ts +1 -1
  410. package/version.js +1 -1
package/data/Feature.js CHANGED
@@ -1 +1 @@
1
- var e;import{__decorate as t}from"tslib";import s from"@arcgis/core/Graphic";import i from"@arcgis/core/core/Collection";import{fromJSON as r}from"@arcgis/core/geometry/support/jsonUtils";import{EntityBase as a}from"../Entity.js";import{Hyperlink as n}from"../Hyperlink.js";import{InvalidOperationError as o}from"../InvalidOperationError.js";import{isLayerExtension as l,isSublayerExtension as h,isTableExtension as u,ItemType as c}from"../ItemType.js";import{handles as p}from"../support/HandlesMixin.js";import{serializable as m}from"../support/Serializable.js";import{createIHandle as f,notifyChange as d,onWatch as g,watch as _,watchEvent as y}from"../support/observableUtils.js";import{CaseInsensitiveObservableMap as b}from"../utilities/CaseInsensitiveObservableMap.js";import{MapTransformCollection as F}from"../utilities/MapTransformCollection.js";import{ObservableMap as x}from"../utilities/ObservableMap.js";import{ReadOnlyMap as v}from"../utilities/ReadOnlyMap.js";import{Time as w}from"../utilities/Time.js";import{flatten as S,groupBy as A}from"../utilities/array.js";import{checkArg as I}from"../utilities/checkArg.js";import{compare as z}from"../utilities/collection.js";import{isCodedValueDomain as E,isGeometry as j}from"../utilities/esri.js";import{getArcadeExpressionFromField as k,getRelationshipFromField as T,isArcadeExpressionField as R}from"../utilities/field.js";import{esriFormatToGeocortexFormat as O,parse as M}from"../utilities/format/date.js";import{NumberFormat as V}from"../utilities/format/formats.js";import{parse as D}from"../utilities/format/number.js";import{format as N}from"../utilities/format/string.js";import{esriFormatToGeocortexFormat as U,parse as P}from"../utilities/format/time.js";import{find as C,map as G}from"../utilities/iterable.js";import{getLogger as B}from"../utilities/log.js";import{map as H}from"../utilities/promise.js";import{caseInsensitiveEquals as L}from"../utilities/string.js";import{FeatureSettings as Z}from"./FeatureSettings.js";import{Schema as $}from"./Schema.js";const K=B("geocortex.api.data.Feature"),J=new FinalizationRegistry(async e=>{await e.destroy()});export const defaultFeatureFactory={create:e=>new Q(e)};export const SCORE_FIELD="_score";export const SCORE_FIELD_ORIGINAL="_score_original";let Q=class extends a{static{e=this}static factory=defaultFeatureFactory;_itemType=c.FEATURE;get attachments(){return this._attachments??=new i,this._attachments}get attachmentsInitialized(){return!this.source||this._attachmentsInitialized}get attributes(){return this._attributes??=new b,this._attributes}get description(){return this.format(this._description)}get expressionFieldValues(){return this._expressionFieldValues??=new X(this._expressionFieldValuesBacking,this),this._expressionFieldValues}get expressionsInitialized(){return!this.settings.popupTemplate?.expressionInfos?.length||this._expressionsInitialized}get geometry(){return this._geometry}set geometry(e){this._geometry=j(e)||!e?e:r(e),this.schema.spatialReference=this._geometry?.spatialReference,d(this,"geometryType")}get geometryType(){return this.geometry?this.geometry.type:void 0}get globalId(){const e=this.schema.fields.find(e=>"global-id"===e.type);return e?this.attributes.get(e.name):void 0}set globalId(e){const t=this.schema.fields.find(e=>"global-id"===e.type);if(!t)throw new o("Cannot set global ID on feature -- no global ID field.");this.attributes.set(t.name,e)}get hasGlobalId(){return!!this.schema.fields.find(e=>"global-id"===e.type)}get hyperlinks(){return this._hyperlinks??=new ne(this._self),this._hyperlinks}get presentableAttributes(){return this._presentableAttributes??=new Y(this._self),this._presentableAttributes}get primaryKey(){const{primaryKeyField:e}=this.schema;if(!e)return;const t=this.attributes.get(e);return null!=t?`${t}`:void 0}get relatedFeatures(){return this._relatedFeatures}get relatedFeaturesInitialized(){return!this.source||this.source.relationships.every(e=>this._initializedRelationships.has(e))}get schema(){return this._schema||this._initializeSchemaAndSettings(),this._schema}set schema(e){this._schema?.destroy(),this._schema=e}get settings(){return this._settings||this._initializeSchemaAndSettings(),this._settings}set settings(e){this._settings?.destroy(),this._settings=e}get source(){return this._source}set source(e){this._source===e||null==this._source&&null==e||(this._settings&&(this.settings.parent===this._source?.featureSettings&&(this.settings.parent=void 0),this.schema.parent===this._source?.schema&&(this.schema.parent=void 0)),this._source=e,this._settings&&(this.settings.parent||(this.settings.parent=e?.featureSettings),this.schema.parent||(this.schema.parent=e?.schema)),d(this,"attachmentsInitialized"),d(this,"relatedFeaturesInitialized"))}get subtype(){if(this.schema.subtypeField&&this.attributes.has(this.schema.subtypeField)){const e=this.attributes.get(this.schema.subtypeField);return this.schema.subtypes.find(t=>t.code===e)}}get title(){return this.format(this._title||"")}get type(){if(this.schema.typeIdField&&this.attributes.has(this.schema.typeIdField)){const e=this.attributes.get(this.schema.typeIdField);return this.schema.types.find(t=>t.id===e)}}get _hydrationStatus(){return this._featureHydrationStatus?this._featureHydrationStatus:this.source?.capabilities?.supportsQuery&&1===this.attributes.size&&void 0!==this.primaryKey?"dehydrated":"hydrated"}set _hydrationStatus(e){this._featureHydrationStatus=e}get _key(){return`${this.source?.id}//${this.primaryKey??this.globalId??this.id}`}get _title(){let e;return this.settings.popupTemplate&&(e="function"==typeof this.settings.popupTemplate.title?this.settings.popupTemplate.title():this.settings.popupTemplate.title),e||this.schema.displayField&&this.presentableAttributes.get(this.schema.displayField)||""}get _description(){if(this.settings.popupTemplate?.content){if("string"==typeof this.settings.popupTemplate.content)return this.settings.popupTemplate.content;if(Array.isArray(this.settings.popupTemplate.content)){const e=this.settings.popupTemplate.content.find(e=>"text"===e.type);if(e)return e.text}}return""}_attachments;_attachmentsInitialized=!1;_attributes;_expressionFieldValues;_expressionsInitialized=!1;_expressionValuesUpdatePending=!1;_featureHydrationStatus;_geometry;_hyperlinks;_presentableAttributes;_schema;_settings;_source;_expressionFieldValuesBacking=new x;_initializedRelationships=new WeakSet;_relatedFeatures=new x;_self=this;constructor(e){super(e);const t=this._self;this._handles.add([g(this,"title",()=>{const e=_(t.settings,"popupTemplate.title",()=>d(t,"title"),{sync:!0}),s=t.presentableAttributes.on("change",()=>d(t,"title"));return f([e,s])}),g(this,"description",()=>{const e=_(t.settings,"popupTemplate.content",()=>d(t,"description"),{sync:!0}),s=t.presentableAttributes.on("change",()=>d(t,"description"));return f([e,s])}),g(this,"relatedFeaturesInitialized",()=>y(t,"source.relationships",["after-changes",()=>{d(t,"relatedFeaturesInitialized")}]))])}static create(t){if(!e.factory)throw new o("Cannot create feature: no feature factory has been registered.");const s=e.factory.create(t),i=new Proxy(s,{});return J.register(i,s,s),i}format(e,...t){let s="string"==typeof e?{format:e}:e;I("options",s).isNotMissing();const{format:i}=s;I("format",i).isNotMissing();let r=s.format.replace(se,ie);return r=r.replace(ee,(e,t,i,r,a)=>le(this,t||i,r,{...s,format:a?`{0:${a}}`:"{0}"})),r=r.replace(re,"{{"),s={...s},s.format=r,N(s,...t)}clearExpressionInfos(){this._expressionFieldValuesBacking.clear()}toGraphic(){return toGraphic(this)}async fetchExpressionInfos(e=!1){const{expressionInfos:t}=this.settings.popupTemplate??{};if(!t)return;const{runAsyncArcadeExpression:s}=await import("../utilities/arcade.js");if(await Promise.all(t.map(async e=>{try{const t=this.source?.layer??this.source?.sublayer;let i=this.source?.mapExtension;if(!i){const e=this.source?.layerExtension;i=e?.mapExtension}this._expressionFieldValuesBacking.set(e.name,await s(e.expression,{layer:t,map:i?.map,feature:this,spatialReference:this.schema.spatialReference}))}catch(t){t instanceof Error&&K.error({message:"Error evaluating expression '{0}': {1}.",error:t},e.name,t.message),this._expressionFieldValuesBacking.set(e.name,ae)}})),e)return this.attributes.on("change",async e=>{this._expressionValuesUpdatePending||(this._expressionValuesUpdatePending=!0,setTimeout(async()=>{this._expressionValuesUpdatePending=!1,await this.fetchExpressionInfos()},0))});this._expressionsInitialized=!0,d(this,"expressionsInitialized")}async fetchRelatedFeatures(e,t){if(!this.source)return;let s=[];if(e){const t=new Set(Array.isArray(e)?e:[e]);for(const e of t){const t="string"==typeof e?this.source.relationships.find(t=>t.id===e):e;if(!t||!this.source.relationships.includes(t))throw new o("Relationship not found in feature source.");s.push(t)}}else s=this.source.relationships.toArray();const i=await H(s,async e=>[e,await(async()=>{const s=await e.getRelatedFeatures(this,t);return this._initializedRelationships.add(e),s})()]);for(const e of i)this._relatedFeatures.set(e[0],e[1]);d(this,"relatedFeaturesInitialized")}async fetchAttachments(){if(this.source){const e=await this.source.getAttachments(this);z(this.attachments,e,{equals:(e,t)=>e.id===t.id,onMissing:(e,t)=>{this.attachments.remove(e)},onNew:(e,t)=>{this.attachments.add(e)},onMatch:(e,t,s,i)=>{this.attachments.splice(s,1,t)}}),this._attachmentsInitialized=!0,d(this,"attachmentsInitialized")}}async addAttachment(e){return this.source?.addAttachment(this,e)}async deleteAttachments(e){return this.source?.deleteAttachments(this,e)}async _onDestroy(){J.unregister(this),await super._onDestroy(),this._attributes?.destroy(),this._attributes=void 0,this._attachments?.destroy(),this._attachments=void 0,this._hyperlinks?.destroy(),this._hyperlinks=void 0,this._relatedFeatures?.destroy(),this._expressionFieldValues?.destroy(),this._expressionFieldValues=void 0,this._expressionFieldValuesBacking?.destroy(),this._source=void 0,this._settings?.destroy(),this._settings=void 0,this._schema?.destroy(),this._schema=void 0,this._presentableAttributes?.destroy(),this._presentableAttributes=void 0}_getSerializableProperties(){return{...super._getSerializableProperties(),attributes:{serializeModes:["project"],serialize:e=>{const t={};if("project"===e&&this.primaryKey&&(this.source?.capabilities).supportsQuery)t[this.schema.primaryKeyField]=this.primaryKey;else for(const[e,s]of this.attributes.entries())t[e]=s;return t},deserialize:e=>{if(this.attributes.clear(),e instanceof Map||e instanceof x)e.forEach((e,t)=>{this.attributes.set(t,e)});else for(const[t,s]of Object.entries(e))this.attributes.set(t,s)}},geometry:{serializeModes:["project"],serialize:e=>"project"===e&&(this.source?.capabilities).supportsQuery?this.getDefault("geometry"):this.geometry?.toJSON(),deserialize:e=>{j(e)?this.geometry=e:this.geometry=e?r(e):void 0}},settings:{serializeModes:["project"],serialize:e=>"project"===e&&(this.source?.capabilities).supportsQuery?this.getDefault("settings"):this.settings.toJSON(e)},schema:{serializeModes:["project"],serialize:e=>"project"===e&&(this.source?.capabilities).supportsQuery?this.getDefault("schema"):this.schema.toJSON(e)},source:["project"]}}async _onInitialize(){const e=this._findRelationshipIds(this._title,this._description),t=this.source?this.source.relationships.map(e=>e.id).toArray():[],s=[];for(const i of e)t.includes(i)?s.push(this.fetchRelatedFeatures(i)):K.error("Could not find relationship '{0}' referenced in feature title or description.",i);await Promise.all(s)}_initializeSchemaAndSettings(){if(!this._schema){this._settings=new Z,this._settings._setFeature(this._self),this._settings.parent=this._source?.featureSettings,this._schema=new $,this._schema.parent=this._source?.schema,this._schema._featureSettings=this._settings;const e=this._self;this._handles.add(_(this._settings,"popupTemplate",()=>{e._expressionsInitialized=!1,d(e,"expressionsInitialized")},{sync:!0}))}}_findRelationshipIds(...e){const t=[];for(const s of e){let e;const i=s.replace(se,ie);for(;e=te.exec(i),null!==e;){const s=e[0];t.includes(s)||t.push(e[1])}}return t}};Q=e=t([m],Q);export{Q as Feature};export function toFeature(e,t){const s=Q.create(t);if(e.attributes){const t=e.attributes;for(const[e,i]of Object.entries(t))s.attributes.set(e,i)}return s.geometry=e.geometry,e.popupTemplate&&(s.settings.popupTemplate=e.popupTemplate),s}export function toGraphic(e){const t=new s;t.attributes={};for(const s of e.attributes.keys())t.attributes[s]=e.attributes.get(s);return l(e.source)&&e.source.layer?t.layer=e.source.layer:h(e.source)&&e.source.sublayer&&(t.layer=e.source.sublayer),u(e.source)&&e.source.table&&(t.layer=e.source.table),t.geometry=e.geometry,e.settings.popupTemplate&&(t.popupTemplate=e.settings.popupTemplate),t}const W="Presentable attributes are read-only.",q="Feature hyperlinks are read-only. Modify the feature's hyperlink templates instead.";class X extends v{_feature;_pending=new Set;constructor(e,t){super(e),this._feature=t}get(e){return super.has(e)||this._calcExpressionValue(e),super.get(e)}async _calcExpressionValue(e){if(!this._pending.has(e)){this._pending.add(e);try{const{spatialReference:t}=this._feature.schema,s=this._feature.settings.popupTemplate?.expressionInfos?.find(t=>t.name===e);if(!s)return;const{isArcadeScriptAsync:i,runAsyncArcadeExpression:r,arcadeScriptUsesGeometry:a,runArcadeExpression:n}=await import("../utilities/arcade.js");try{if(i(s.expression,t)){const i=this._feature.source?.layer??this._feature.source?.sublayer;let a=this._feature.source?.mapExtension;if(!a){const e=this._feature.source?.layerExtension;a=e?.mapExtension}this._originalMap.set(e,await r(s.expression,{feature:this._feature,layer:i,map:a?.map,spatialReference:t}))}else{if(a(s.expression,t)){const{enableGeometrySupport:e}=await import("@arcgis/core/arcade/arcade.js");await e()}this._originalMap.set(e,n(s.expression,{feature:this._feature,spatialReference:t}))}}catch(t){t instanceof Error&&K.error({message:"Error evaluating expression '{0}': {1}.",error:t},e,t.message),this._originalMap.set(e,ae)}}finally{this._pending.delete(e)}}}}class Y extends v{get size(){return this._feature.attributes.size+this._feature.schema.fields._expressionFieldsLength}_feature;_numObservers=0;_onAllObserversRemoved;constructor(e){super(new b),this._feature=e,this._handles.add([g(this,"size",()=>_(this._feature.attributes,"size",()=>d(this,"size"),{sync:!0})),g(this,"size",()=>_(this._feature.schema.fields,"_expressionFieldsLength",()=>d(this,"size"),{sync:!0}))])}destroy(){this._onAllObserversRemoved?.(),this._numObservers=0,super.destroy()}clear(){throw new o(W)}delete(e){throw new o(W)}forEach(e,t){I("callback",e).isNotMissing();for(const s of this.keys())e.call(t,this.get(s),s,this)}get(e){const t=this._getFieldExtensionFormat(e);return this._formatAttribute(e,t)}has(e){for(const t of this.keys())if(L(t,e))return!0;return!1}set(...e){throw new o(W)}*entries(){yield*G(this.keys(),e=>[e,this.get(e)])}*keys(){yield*this._feature.attributes.keys();for(const e of this._feature.schema.fields.expressionFields)yield e.name;if(null!=this._feature.source?.relationships)for(const e of this._feature.source.relationships)if("one-to-one"===e.cardinality||"many-to-one"===e.cardinality)for(const t of e.relatedSource.schema.fields)yield`relationships/${e.id}/${t.name}`}*values(){yield*G(this.keys(),e=>this.get(e))}[Symbol.iterator](){return this.entries()}toJSON(){return Array.from(this.entries())}on(e,t){if(I("callback",t).isNotMissing(),!this._numObservers){const e=new Map,t=new Set,s=()=>{for(const e of t)e.remove();t.clear()};let i;const r=()=>{const t=()=>{i&&(window.clearTimeout(i),i=void 0)};t(),i=window.setTimeout(()=>{const s=[],i=[];for(const[t,i]of this.entries())i!==e.get(t)&&s.push([t,i]);for(const[t,s]of e.entries())this.has(t)&&s===this.get(t)||i.push([t,s]);if(s.length||i.length){const e={added:s,removed:i,target:this};if(this.hasEventListener("after-add"))for(const e of s)this.emit("after-add",{target:this,item:e});if(this.hasEventListener("after-remove"))for(const e of i)this.emit("after-remove",{target:this,item:e});this.emit("change",e),a()}t()})},a=()=>{e.clear(),s();for(const s of this.keys()){const i=this._getFieldExtension(s);let a="{0}";if(i){const e=_(i,"format",r);t.add(e),i.format&&(a=i.format)}e.set(s,this._formatAttribute(s,a))}};a();const n=this._feature.attributes.on("change",r),o=this._feature.schema.fieldExtensions.on("change",r),l=[_(this._feature.settings.formatSettings,"numberFormat",r),_(this._feature.settings.formatSettings,"dateFormat",r),_(this._feature.settings.formatSettings,"timeFormat",r),_(this._feature.settings.formatSettings,"locale",r)],h=this._feature.expressionFieldValues.on("change",r),u=this._feature.schema.fields.on("change",e=>{(e.added?.some(e=>R(e.name))||e.removed?.some(e=>R(e.name)))&&r()}),c=_(this._feature.settings,"popupTemplate",r);this._onAllObserversRemoved=()=>{h.remove(),n.remove(),o.remove(),u.remove();for(const e of l)e.remove();c.remove(),e.clear(),s()}}const s=super.on(e,t);return this._numObservers++,{remove:()=>{s.remove(),this._numObservers>0&&this._numObservers--,!this._numObservers&&this._onAllObserversRemoved&&(this._onAllObserversRemoved(),this._onAllObserversRemoved=void 0)}}}_getFieldExtension(e){const t=this._feature.schema.findFieldByName(e);if(t)return this._feature.schema.fieldExtensions.forField(t)}_getFieldExtensionFormat(e){const t=this._getFieldExtension(e);return t?t.format:"{0}"}_formatAttribute(e,t){const s=k(e);if(null!=s)return le(this._feature,"expression",s,{format:t});const[i,r]=T(e);return null!=i?le(this._feature,i,r,{format:t}):le(this._feature,void 0,e,{format:t})}}const ee=/\{(?:relationships[\\/]([\w-]*)[\\/])?(?:(expression)[\\/])?([_a-zA-ZÀ-ÖØ-öø-ÿ][._a-zA-ZÀ-ÖØ-öø-ÿ0-9()]*)(?::([^}]*))?\}/gi,te=/\{relationships\/([\w-]*)[\\/]([^}]*)\}/gi,se=/{{/g,ie="\0MAGIC\0",re=new RegExp(ie,"g"),ae="#INVALID";class ne extends F{_feature;_hyperlinks;constructor(e){super(e.settings.hyperlinkTemplates,e=>this._getHyperlink(e)),this._feature=e}destroy(){for(const e of this)e.destroy();super.destroy()}_getHyperlink(e){return null==this._hyperlinks&&(this._hyperlinks=new WeakMap),this._hyperlinks.has(e)||this._hyperlinks.set(e,new oe(this._feature,e)),this._hyperlinks.get(e)}}let oe=class extends(p(n)){get url(){return this._template.url?this._feature.format(this._template.url):this._template.url}set url(e){throw new o(q)}get text(){return this._template.text?this._feature.format(this._template.text):this._template.text}set text(e){throw new o(q)}get iconUrl(){return this._template.iconUrl?this._feature.format(this._template.iconUrl):this._template.iconUrl}set iconUrl(e){throw new o(q)}get target(){return this._template.target?this._feature.format(this._template.target):this._template.target}set target(e){throw new o(q)}get tooltip(){return this._template.tooltip?this._feature.format(this._template.tooltip):this._template.tooltip}set tooltip(e){throw new o(q)}_feature;_template;constructor(e,t){super(t.toJSON()),this._feature=e,this._template=t,this._handles.add(g(this,e=>{const t=_(this._template,e,()=>d(this,e),{sync:!0}),s=this._feature.presentableAttributes.on("change",()=>{d(this,e)}),i=this._feature.relatedFeatures.on("change",()=>{d(this,e)});return f([t,s,i])}))}_getSerializableProperties(){return{}}};function le(e,t,s,i={format:"{0}"}){if(!L(t,"expression")){if(t){const r=C(e.relatedFeatures.keys(),e=>L(e.id,t));if(!r)return K.debug("Could not resolve related field '{0}/{1}",t,s),ae;const a=Array.from(e.relatedFeatures.get(r));return"many-to-one"===r.cardinality||"one-to-one"===r.cardinality?a.length<1?(K.debug("Could not resolve related field '{0}/{1}",t,s),ae):he(a[0],s,i):a.map(e=>he(e,s,i)).filter(e=>""!==e).join(",")}return he(e,s,i)}if(!e.settings.popupTemplate?.expressionInfos?.find(e=>L(e.name,s)))return K.debug("Could not find expression '{0}'.",s),ae;try{const t=e.expressionFieldValues.get(s)??i.defaultExpressionValue??"",r=e.schema.findFieldByName(`expression/${s}`),a=null==r?void 0:e.schema.fieldExtensions.forField(r);return ue(e,t,s,a?.formatSettings,i)}catch(e){if(e instanceof Error)return K.error({message:"Error evaluating expression '{0}': {1}.",error:e},s,e.message),ae;throw e}}function he(e,t,s){let i;if(i=e.attributes.get(t),null==i)return"";const r=e.schema.findFieldByName(t);let a,n;if(void 0===e.schema.subtypeField){a=e.schema.typeIdField;const t=e.schema.types;n=t.filter(t=>t?.id?.toString()===e.type?.id?.toString())?.getItemAt(0)}else{a=e.schema.subtypeField;const t=e.schema.subtypes;n=t.filter(t=>t?.code?.toString()===e.subtype?.code?.toString())?.getItemAt(0)}const o=n?.domains?.[r?.name??t],l=e=>e.codedValues?.find(e=>e.code.toString()===i.toString())?.name??i;let h;if(L(t,a)){const e=o&&"inherited"!==o.type?o:r?.domain;i="coded-value"===e?.type?l(e):n?.name??i}else if(o&&E(o))i=l(o);else if(r?.domain&&E(r.domain))i=l(r.domain);else if(r){switch(r.type){case"integer":case"small-integer":case"big-integer":case"single":case"double":i=D(i);break;case"date":i=M({timeZone:e.schema.timeZone},i);break;case"timestamp-offset":case"date-only":i=M({},i),"date-only"===r.type&&(s.isDateOnly=!0);break;case"time-only":i=P(i);break;default:i=`${i.toString()}`}const t=e.schema.fieldExtensions.forField(r);t&&(h=t.formatSettings)}return ue(e,i,t,h,s)}function ue(e,t,s,i,r){if("string"==typeof t&&(null==r.format||"{0}"===r.format))return t;const a={...r};if("number"==typeof t||t instanceof Date||t instanceof w){null==a.locale&&(a.locale=i?.locale??e.settings.formatSettings.locale);const r=e.settings.popupTemplate?.fieldInfos?.find(e=>L(e.fieldName,s))?.format;"number"==typeof t?function(e,t,s,i){null==e.currency&&(e.currency=t?.currency??i.settings.formatSettings.currency);null==e.numberFormat&&(e.numberFormat=t?.numberFormat,null==e.numberFormat&&(e.numberFormat=null==s?i.settings.formatSettings.numberFormat:s.digitSeparator?V.NUMBER:V.FIXED_POINT));null==e.fractionalDigits&&(e.fractionalDigits=t?.fractionalDigits,null==e.fractionalDigits&&(e.fractionalDigits=null==s?i.settings.formatSettings.fractionalDigits:s.places))}(a,i,r,e):t instanceof Date?function(e,t,s,i){null==e.dateFormat&&(e.dateFormat=t?.dateFormat,null==e.dateFormat&&(e.dateFormat=null==s?i.settings.formatSettings.dateFormat:O(s.dateFormat)));null==e.timeZone&&(e.timeZone=t?.timeZone??i.settings.formatSettings.timeZone)}(a,i,r,e):function(e,t,s,i){null==e.timeFormat&&(e.timeFormat=t?.timeFormat,null==e.timeFormat&&(e.timeFormat=null==s?i.settings.formatSettings.timeFormat:U(s.dateFormat)))}(a,i,r,e)}return N(a,t)}oe=t([m],oe);export async function resolveRelatedFeatures(e){const t=A(e,e=>e.source);await Promise.all(S([...t.keys()].map(e=>e.relationships.toArray())).map(e=>(async e=>{[...(await e.getAllRelatedFeatures(t.get(e.source))).entries()].forEach(([t,s])=>{t.relatedFeatures.set(e,s)})})(e)))}
1
+ var t;import{__decorate as e}from"tslib";import s from"@arcgis/core/Graphic";import i from"@arcgis/core/core/Collection";import{fromJSON as r}from"@arcgis/core/geometry/support/jsonUtils";import{EntityBase as a}from"../Entity.js";import{Hyperlink as n}from"../Hyperlink.js";import{InvalidOperationError as o}from"../InvalidOperationError.js";import{isLayerExtension as l,isSublayerExtension as h,isTableExtension as u,ItemType as c}from"../ItemType.js";import{handles as p}from"../support/HandlesMixin.js";import{serializable as m}from"../support/Serializable.js";import{createIHandle as f,notifyChange as d,onWatch as g,watch as _,watchEvent as y}from"../support/observableUtils.js";import{CaseInsensitiveObservableMap as b}from"../utilities/CaseInsensitiveObservableMap.js";import{MapTransformCollection as F}from"../utilities/MapTransformCollection.js";import{ObservableMap as x}from"../utilities/ObservableMap.js";import{ReadOnlyMap as v}from"../utilities/ReadOnlyMap.js";import{Time as w}from"../utilities/Time.js";import{flatten as S,groupBy as I}from"../utilities/array.js";import{checkArg as z}from"../utilities/checkArg.js";import{compare as A}from"../utilities/collection.js";import{isCodedValueDomain as E,isGeometry as k}from"../utilities/esri.js";import{getArcadeExpressionFromField as j,getRelationshipFromField as T,isArcadeExpressionField as R}from"../utilities/field.js";import{esriFormatToGeocortexFormat as O,parse as M}from"../utilities/format/date.js";import{NumberFormat as V}from"../utilities/format/formats.js";import{parse as D}from"../utilities/format/number.js";import{format as N}from"../utilities/format/string.js";import{esriFormatToGeocortexFormat as P,parse as U}from"../utilities/format/time.js";import{find as C,map as B}from"../utilities/iterable.js";import{getLogger as G}from"../utilities/log.js";import{map as H}from"../utilities/promise.js";import{caseInsensitiveEquals as L}from"../utilities/string.js";import{FeatureSettings as Z}from"./FeatureSettings.js";import{Schema as $}from"./Schema.js";const K=G("geocortex.api.data.Feature"),J=new FinalizationRegistry(async t=>{await t.destroy()});export const defaultFeatureFactory={create:t=>new Q(t)};export const SCORE_FIELD="_score";export const SCORE_FIELD_ORIGINAL="_score_original";let Q=class extends a{static{t=this}static factory=defaultFeatureFactory;_itemType=c.FEATURE;get attachments(){return this._attachments??=new i,this._attachments}get attachmentsInitialized(){return!this.source||this._attachmentsInitialized}get attributes(){return this._attributes??=new b,this._attributes}get description(){return this.format(this._description)}get expressionFieldValues(){return this._expressionFieldValues??=new X(this._expressionFieldValuesBacking,this),this._expressionFieldValues}get expressionsInitialized(){return!this.settings.popupTemplate?.expressionInfos?.length||this._expressionsInitialized}get geometry(){return this._geometry}set geometry(t){this._geometry=k(t)||!t?t:r(t),this.schema.spatialReference=this._geometry?.spatialReference,d(this,"geometryType")}get geometryType(){return this.geometry?this.geometry.type:void 0}get globalId(){const t=this.schema.fields.find(t=>"global-id"===t.type);return t?this.attributes.get(t.name):void 0}set globalId(t){const e=this.schema.fields.find(t=>"global-id"===t.type);if(!e)throw new o("Cannot set global ID on feature -- no global ID field.");this.attributes.set(e.name,t)}get hasGlobalId(){return!!this.schema.fields.find(t=>"global-id"===t.type)}get hyperlinks(){return this._hyperlinks??=new nt(this._self),this._hyperlinks}get presentableAttributes(){return this._presentableAttributes??=new Y(this._self),this._presentableAttributes}get primaryKey(){const{primaryKeyField:t}=this.schema;if(!t)return;const e=this.attributes.get(t);return null!=e?`${e}`:void 0}get relatedFeatures(){return this._relatedFeatures}get relatedFeaturesInitialized(){return!this.source||this.source.relationships.every(t=>this._initializedRelationships.has(t))}get schema(){return this._schema||this._initializeSchemaAndSettings(),this._schema}set schema(t){this._schema?.destroy(),this._schema=t}get settings(){return this._settings||this._initializeSchemaAndSettings(),this._settings}set settings(t){this._settings?.destroy(),this._settings=t}get source(){return this._source}set source(t){this._source===t||null==this._source&&null==t||(this._settings&&(this.settings.parent===this._source?.featureSettings&&(this.settings.parent=void 0),this.schema.parent===this._source?.schema&&(this.schema.parent=void 0)),this._source=t,this._settings&&(this.settings.parent||(this.settings.parent=t?.featureSettings),this.schema.parent||(this.schema.parent=t?.schema)),d(this,"attachmentsInitialized"),d(this,"relatedFeaturesInitialized"))}get subtype(){if(this.schema.subtypeField&&this.attributes.has(this.schema.subtypeField)){const t=this.attributes.get(this.schema.subtypeField);return this.schema.subtypes.find(e=>e.code===t)}}get title(){return this.format(this._title||"")}get type(){if(this.schema.typeIdField&&this.attributes.has(this.schema.typeIdField)){const t=this.attributes.get(this.schema.typeIdField);return this.schema.types.find(e=>e.id===t)}}get _hydrationStatus(){return this._featureHydrationStatus?this._featureHydrationStatus:this.source?.capabilities?.supportsQuery&&1===this.attributes.size&&void 0!==this.primaryKey?"dehydrated":"hydrated"}set _hydrationStatus(t){this._featureHydrationStatus=t}get _key(){return`${this.source?.id}//${this.primaryKey??this.globalId??this.id}`}get _title(){let t;return this.settings.popupTemplate&&(t="function"==typeof this.settings.popupTemplate.title?this.settings.popupTemplate.title():this.settings.popupTemplate.title),t||this.schema.displayField&&this.presentableAttributes.get(this.schema.displayField)||""}get _description(){if(this.settings.popupTemplate?.content){if("string"==typeof this.settings.popupTemplate.content)return this.settings.popupTemplate.content;if(Array.isArray(this.settings.popupTemplate.content)){const t=this.settings.popupTemplate.content.find(t=>"text"===t.type);if(t)return t.text}}return""}_attachments;_attachmentsInitialized=!1;_attributes;_expressionFieldValues;_expressionsInitialized=!1;_expressionValuesUpdatePending=!1;_featureHydrationStatus;_geometry;_hyperlinks;_presentableAttributes;_schema;_settings;_source;_expressionFieldValuesBacking=new x;_initializedRelationships=new WeakSet;_relatedFeatures=new x;_self=this;constructor(t){super(t);const e=this._self;this._handles.add([g(this,"title",()=>{const t=_(e.settings,"popupTemplate.title",()=>d(e,"title"),{sync:!0}),s=e.presentableAttributes.on("change",()=>d(e,"title"));return f([t,s])}),g(this,"description",()=>{const t=_(e.settings,"popupTemplate.content",()=>d(e,"description"),{sync:!0}),s=e.presentableAttributes.on("change",()=>d(e,"description"));return f([t,s])}),g(this,"relatedFeaturesInitialized",()=>y(e,"source.relationships",["after-changes",()=>{d(e,"relatedFeaturesInitialized")}]))])}static create(e){if(!t.factory)throw new o("Cannot create feature: no feature factory has been registered.");const s=t.factory.create(e),i=new Proxy(s,{});return J.register(i,s,s),i}format(t,...e){let s="string"==typeof t?{format:t}:t;z("options",s).isNotMissing();const{format:i}=s;z("format",i).isNotMissing();let r=s.format.replace(st,it);return r=r.replace(tt,(t,e,i,r,a)=>lt(this,e||i,r,{...s,format:a?`{0:${a}}`:"{0}"})),r=r.replace(rt,"{{"),s={...s},s.format=r,N(s,...e)}clearExpressionInfos(){this._expressionFieldValuesBacking.clear()}toGraphic(){return toGraphic(this)}async fetchExpressionInfos(t=!1){const{expressionInfos:e}=this.settings.popupTemplate??{};if(!e)return;const{runAsyncExpression:s}=await import("../utilities/arcade.js");if(await Promise.all(e.map(async t=>{try{const e=this.source?.layer??this.source?.sublayer;let i=this.source?.mapExtension;if(!i){const t=this.source?.layerExtension;i=t?.mapExtension}this._expressionFieldValuesBacking.set(t.name,await s(t.expression,{layer:e,map:i?.map,feature:this,spatialReference:this.schema.spatialReference}))}catch(e){e instanceof Error&&K.error({message:"Error evaluating expression '{0}': {1}.",error:e},t.name,e.message),this._expressionFieldValuesBacking.set(t.name,at)}})),t)return this.attributes.on("change",async t=>{this._expressionValuesUpdatePending||(this._expressionValuesUpdatePending=!0,setTimeout(async()=>{this._expressionValuesUpdatePending=!1,await this.fetchExpressionInfos()},0))});this._expressionsInitialized=!0,d(this,"expressionsInitialized")}async fetchRelatedFeatures(t,e){if(!this.source)return;let s=[];if(t){const e=new Set(Array.isArray(t)?t:[t]);for(const t of e){const e="string"==typeof t?this.source.relationships.find(e=>e.id===t):t;if(!e||!this.source.relationships.includes(e))throw new o("Relationship not found in feature source.");s.push(e)}}else s=this.source.relationships.toArray();const i=await H(s,async t=>[t,await(async()=>{const s=await t.getRelatedFeatures(this,e);return this._initializedRelationships.add(t),s})()]);for(const t of i)this._relatedFeatures.set(t[0],t[1]);d(this,"relatedFeaturesInitialized")}async fetchAttachments(){if(this.source){const t=await this.source.getAttachments(this);A(this.attachments,t,{equals:(t,e)=>t.id===e.id,onMissing:(t,e)=>{this.attachments.remove(t)},onNew:(t,e)=>{this.attachments.add(t)},onMatch:(t,e,s,i)=>{this.attachments.splice(s,1,e)}}),this._attachmentsInitialized=!0,d(this,"attachmentsInitialized")}}async addAttachment(t){return this.source?.addAttachment(this,t)}async deleteAttachments(t){return this.source?.deleteAttachments(this,t)}async _onDestroy(){J.unregister(this),await super._onDestroy(),this._attributes?.destroy(),this._attributes=void 0,this._attachments?.destroy(),this._attachments=void 0,this._hyperlinks?.destroy(),this._hyperlinks=void 0,this._relatedFeatures?.destroy(),this._expressionFieldValues?.destroy(),this._expressionFieldValues=void 0,this._expressionFieldValuesBacking?.destroy(),this._source=void 0,this._settings?.destroy(),this._settings=void 0,this._schema?.destroy(),this._schema=void 0,this._presentableAttributes?.destroy(),this._presentableAttributes=void 0}_getSerializableProperties(){return{...super._getSerializableProperties(),attributes:{serializeModes:["project"],serialize:t=>{const e={};if("project"===t&&this.primaryKey&&(this.source?.capabilities).supportsQuery)e[this.schema.primaryKeyField]=this.primaryKey;else for(const[t,s]of this.attributes.entries())e[t]=s;return e},deserialize:t=>{if(this.attributes.clear(),t instanceof Map||t instanceof x)t.forEach((t,e)=>{this.attributes.set(e,t)});else for(const[e,s]of Object.entries(t))this.attributes.set(e,s)}},geometry:{serializeModes:["project"],serialize:t=>"project"===t&&(this.source?.capabilities).supportsQuery?this.getDefault("geometry"):this.geometry?.toJSON(),deserialize:t=>{k(t)?this.geometry=t:this.geometry=t?r(t):void 0}},settings:{serializeModes:["project"],serialize:t=>"project"===t&&(this.source?.capabilities).supportsQuery?this.getDefault("settings"):this.settings.toJSON(t)},schema:{serializeModes:["project"],serialize:t=>"project"===t&&(this.source?.capabilities).supportsQuery?this.getDefault("schema"):this.schema.toJSON(t)},source:["project"]}}async _onInitialize(){const t=this._findRelationshipIds(this._title,this._description),e=this.source?this.source.relationships.map(t=>t.id).toArray():[],s=[];for(const i of t)e.includes(i)?s.push(this.fetchRelatedFeatures(i)):K.error("Could not find relationship '{0}' referenced in feature title or description.",i);await Promise.all(s)}_initializeSchemaAndSettings(){if(!this._schema){this._settings=new Z,this._settings._setFeature(this._self),this._settings.parent=this._source?.featureSettings,this._schema=new $,this._schema.parent=this._source?.schema,this._schema._featureSettings=this._settings;const t=this._self;this._handles.add(_(this._settings,"popupTemplate",()=>{t._expressionsInitialized=!1,d(t,"expressionsInitialized")},{sync:!0}))}}_findRelationshipIds(...t){const e=[];for(const s of t){let t;const i=s.replace(st,it);for(;t=et.exec(i),null!==t;){const s=t[0];e.includes(s)||e.push(t[1])}}return e}};Q=t=e([m],Q);export{Q as Feature};export function toFeature(t,e){const s=Q.create(e);if(t.attributes){const e=t.attributes;for(const[t,i]of Object.entries(e))s.attributes.set(t,i)}return s.geometry=t.geometry,t.popupTemplate&&(s.settings.popupTemplate=t.popupTemplate),s}export function toGraphic(t){const e=new s;e.attributes={};for(const s of t.attributes.keys())e.attributes[s]=t.attributes.get(s);return l(t.source)&&t.source.layer?e.layer=t.source.layer:h(t.source)&&t.source.sublayer&&(e.layer=t.source.sublayer),u(t.source)&&t.source.table&&(e.layer=t.source.table),e.geometry=t.geometry,t.settings.popupTemplate&&(e.popupTemplate=t.settings.popupTemplate),e}const W="Presentable attributes are read-only.",q="Feature hyperlinks are read-only. Modify the feature's hyperlink templates instead.";class X extends v{_feature;_pending=new Set;constructor(t,e){super(t),this._feature=e}get(t){return super.has(t)||this._calcExpressionValue(t),super.get(t)}async _calcExpressionValue(t){if(!this._pending.has(t)){this._pending.add(t);try{const{spatialReference:e}=this._feature.schema,s=this._feature.settings.popupTemplate?.expressionInfos?.find(e=>e.name===t);if(!s)return;const{runAsyncExpression:i}=await import("../utilities/arcade.js");try{const r=this._feature.source?.layer??this._feature.source?.sublayer;let a=this._feature.source?.mapExtension;if(!a){const t=this._feature.source?.layerExtension;a=t?.mapExtension}this._originalMap.set(t,await i(s.expression,{feature:this._feature,layer:r,map:a?.map,spatialReference:e}))}catch(e){e instanceof Error&&K.error({message:"Error evaluating expression '{0}': {1}.",error:e},t,e.message),this._originalMap.set(t,at)}}finally{this._pending.delete(t)}}}}class Y extends v{get size(){return this._feature.attributes.size+this._feature.schema.fields._expressionFieldsLength}_feature;_numObservers=0;_onAllObserversRemoved;constructor(t){super(new b),this._feature=t,this._handles.add([g(this,"size",()=>_(this._feature.attributes,"size",()=>d(this,"size"),{sync:!0})),g(this,"size",()=>_(this._feature.schema.fields,"_expressionFieldsLength",()=>d(this,"size"),{sync:!0}))])}destroy(){this._onAllObserversRemoved?.(),this._numObservers=0,super.destroy()}clear(){throw new o(W)}delete(t){throw new o(W)}forEach(t,e){z("callback",t).isNotMissing();for(const s of this.keys())t.call(e,this.get(s),s,this)}get(t){const e=this._getFieldExtensionFormat(t);return this._formatAttribute(t,e)}has(t){for(const e of this.keys())if(L(e,t))return!0;return!1}set(...t){throw new o(W)}*entries(){yield*B(this.keys(),t=>[t,this.get(t)])}*keys(){yield*this._feature.attributes.keys();for(const t of this._feature.schema.fields.expressionFields)yield t.name;if(null!=this._feature.source?.relationships)for(const t of this._feature.source.relationships)if("one-to-one"===t.cardinality||"many-to-one"===t.cardinality)for(const e of t.relatedSource.schema.fields)yield`relationships/${t.id}/${e.name}`}*values(){yield*B(this.keys(),t=>this.get(t))}[Symbol.iterator](){return this.entries()}toJSON(){return Array.from(this.entries())}on(t,e){if(z("callback",e).isNotMissing(),!this._numObservers){const t=new Map,e=new Set,s=()=>{for(const t of e)t.remove();e.clear()};let i;const r=()=>{const e=()=>{i&&(window.clearTimeout(i),i=void 0)};e(),i=window.setTimeout(()=>{const s=[],i=[];for(const[e,i]of this.entries())i!==t.get(e)&&s.push([e,i]);for(const[e,s]of t.entries())this.has(e)&&s===this.get(e)||i.push([e,s]);if(s.length||i.length){const t={added:s,removed:i,target:this};if(this.hasEventListener("after-add"))for(const t of s)this.emit("after-add",{target:this,item:t});if(this.hasEventListener("after-remove"))for(const t of i)this.emit("after-remove",{target:this,item:t});this.emit("change",t),a()}e()})},a=()=>{t.clear(),s();for(const s of this.keys()){const i=this._getFieldExtension(s);let a="{0}";if(i){const t=_(i,"format",r);e.add(t),i.format&&(a=i.format)}t.set(s,this._formatAttribute(s,a))}};a();const n=this._feature.attributes.on("change",r),o=this._feature.schema.fieldExtensions.on("change",r),l=[_(this._feature.settings.formatSettings,"numberFormat",r),_(this._feature.settings.formatSettings,"dateFormat",r),_(this._feature.settings.formatSettings,"timeFormat",r),_(this._feature.settings.formatSettings,"locale",r)],h=this._feature.expressionFieldValues.on("change",r),u=this._feature.schema.fields.on("change",t=>{(t.added?.some(t=>R(t.name))||t.removed?.some(t=>R(t.name)))&&r()}),c=_(this._feature.settings,"popupTemplate",r);this._onAllObserversRemoved=()=>{h.remove(),n.remove(),o.remove(),u.remove();for(const t of l)t.remove();c.remove(),t.clear(),s()}}const s=super.on(t,e);return this._numObservers++,{remove:()=>{s.remove(),this._numObservers>0&&this._numObservers--,!this._numObservers&&this._onAllObserversRemoved&&(this._onAllObserversRemoved(),this._onAllObserversRemoved=void 0)}}}_getFieldExtension(t){const e=this._feature.schema.findFieldByName(t);if(e)return this._feature.schema.fieldExtensions.forField(e)}_getFieldExtensionFormat(t){const e=this._getFieldExtension(t);return e?e.format:"{0}"}_formatAttribute(t,e){const s=j(t);if(null!=s)return lt(this._feature,"expression",s,{format:e});const[i,r]=T(t);return null!=i?lt(this._feature,i,r,{format:e}):lt(this._feature,void 0,t,{format:e})}}const tt=/\{(?:relationships[\\/]([\w-]*)[\\/])?(?:(expression)[\\/])?([_a-zA-ZÀ-ÖØ-öø-ÿ][._a-zA-ZÀ-ÖØ-öø-ÿ0-9()]*)(?::([^}]*))?\}/gi,et=/\{relationships\/([\w-]*)[\\/]([^}]*)\}/gi,st=/{{/g,it="\0MAGIC\0",rt=new RegExp(it,"g"),at="#INVALID";class nt extends F{_feature;_hyperlinks;constructor(t){super(t.settings.hyperlinkTemplates,t=>this._getHyperlink(t)),this._feature=t}destroy(){for(const t of this)t.destroy();super.destroy()}_getHyperlink(t){return null==this._hyperlinks&&(this._hyperlinks=new WeakMap),this._hyperlinks.has(t)||this._hyperlinks.set(t,new ot(this._feature,t)),this._hyperlinks.get(t)}}let ot=class extends(p(n)){get url(){return this._template.url?this._feature.format(this._template.url):this._template.url}set url(t){throw new o(q)}get text(){return this._template.text?this._feature.format(this._template.text):this._template.text}set text(t){throw new o(q)}get iconUrl(){return this._template.iconUrl?this._feature.format(this._template.iconUrl):this._template.iconUrl}set iconUrl(t){throw new o(q)}get target(){return this._template.target?this._feature.format(this._template.target):this._template.target}set target(t){throw new o(q)}get tooltip(){return this._template.tooltip?this._feature.format(this._template.tooltip):this._template.tooltip}set tooltip(t){throw new o(q)}_feature;_template;constructor(t,e){super(e.toJSON()),this._feature=t,this._template=e,this._handles.add(g(this,t=>{const e=_(this._template,t,()=>d(this,t),{sync:!0}),s=this._feature.presentableAttributes.on("change",()=>{d(this,t)}),i=this._feature.relatedFeatures.on("change",()=>{d(this,t)});return f([e,s,i])}))}_getSerializableProperties(){return{}}};function lt(t,e,s,i={format:"{0}"}){if(!L(e,"expression")){if(e){const r=C(t.relatedFeatures.keys(),t=>L(t.id,e));if(!r)return K.debug("Could not resolve related field '{0}/{1}",e,s),at;const a=Array.from(t.relatedFeatures.get(r));return"many-to-one"===r.cardinality||"one-to-one"===r.cardinality?a.length<1?(K.debug("Could not resolve related field '{0}/{1}",e,s),at):ht(a[0],s,i):a.map(t=>ht(t,s,i)).filter(t=>""!==t).join(",")}return ht(t,s,i)}if(!t.settings.popupTemplate?.expressionInfos?.find(t=>L(t.name,s)))return K.debug("Could not find expression '{0}'.",s),at;try{const e=t.expressionFieldValues.get(s)??i.defaultExpressionValue??"",r=t.schema.findFieldByName(`expression/${s}`),a=null==r?void 0:t.schema.fieldExtensions.forField(r);return ut(t,e,s,a?.formatSettings,i)}catch(t){if(t instanceof Error)return K.error({message:"Error evaluating expression '{0}': {1}.",error:t},s,t.message),at;throw t}}function ht(t,e,s){let i;if(i=t.attributes.get(e),null==i)return"";const r=t.schema.findFieldByName(e);let a,n;if(void 0===t.schema.subtypeField){a=t.schema.typeIdField;const e=t.schema.types;n=e.filter(e=>e?.id?.toString()===t.type?.id?.toString())?.getItemAt(0)}else{a=t.schema.subtypeField;const e=t.schema.subtypes;n=e.filter(e=>e?.code?.toString()===t.subtype?.code?.toString())?.getItemAt(0)}const o=n?.domains?.[r?.name??e],l=t=>t.codedValues?.find(t=>t.code.toString()===i.toString())?.name??i;let h;if(L(e,a)){const t=o&&"inherited"!==o.type?o:r?.domain;i="coded-value"===t?.type?l(t):n?.name??i}else if(o&&E(o))i=l(o);else if(r?.domain&&E(r.domain))i=l(r.domain);else if(r){switch(r.type){case"integer":case"small-integer":case"big-integer":case"single":case"double":i=D(i);break;case"date":i=M({timeZone:t.schema.timeZone},i);break;case"timestamp-offset":case"date-only":i=M({},i),"date-only"===r.type&&(s.isDateOnly=!0);break;case"time-only":i=U(i);break;default:i=`${i.toString()}`}const e=t.schema.fieldExtensions.forField(r);e&&(h=e.formatSettings)}return ut(t,i,e,h,s)}function ut(t,e,s,i,r){if("string"==typeof e&&(null==r.format||"{0}"===r.format))return e;const a={...r};if("number"==typeof e||e instanceof Date||e instanceof w){null==a.locale&&(a.locale=i?.locale??t.settings.formatSettings.locale);const r=t.settings.popupTemplate?.fieldInfos?.find(t=>L(t.fieldName,s))?.format;"number"==typeof e?function(t,e,s,i){null==t.currency&&(t.currency=e?.currency??i.settings.formatSettings.currency);null==t.numberFormat&&(t.numberFormat=e?.numberFormat,null==t.numberFormat&&(t.numberFormat=null==s?i.settings.formatSettings.numberFormat:s.digitSeparator?V.NUMBER:V.FIXED_POINT));null==t.fractionalDigits&&(t.fractionalDigits=e?.fractionalDigits,null==t.fractionalDigits&&(t.fractionalDigits=null==s?i.settings.formatSettings.fractionalDigits:s.places))}(a,i,r,t):e instanceof Date?function(t,e,s,i){null==t.dateFormat&&(t.dateFormat=e?.dateFormat,null==t.dateFormat&&(t.dateFormat=null==s?i.settings.formatSettings.dateFormat:O(s.dateFormat)));null==t.timeZone&&(t.timeZone=e?.timeZone??i.settings.formatSettings.timeZone)}(a,i,r,t):function(t,e,s,i){null==t.timeFormat&&(t.timeFormat=e?.timeFormat,null==t.timeFormat&&(t.timeFormat=null==s?i.settings.formatSettings.timeFormat:P(s.dateFormat)))}(a,i,r,t)}return N(a,e)}ot=e([m],ot);export async function resolveRelatedFeatures(t){const e=I(t,t=>t.source);await Promise.all(S([...e.keys()].map(t=>t.relationships.toArray())).map(t=>(async t=>{[...(await t.getAllRelatedFeatures(e.get(t.source))).entries()].forEach(([e,s])=>{e.relatedFeatures.set(t,s)})})(t)))}
@@ -0,0 +1,106 @@
1
+ import type FeatureLayer from "@arcgis/core/layers/FeatureLayer.js";
2
+ import { Feature } from "../Feature.js";
3
+ import type { FeatureSet } from "../FeatureSet.js";
4
+ /**
5
+ * Options used when cloning features for a target layer.
6
+ */
7
+ export interface CopyFeaturesOptions {
8
+ /**
9
+ * Field mappings from target attribute name to source attribute name.
10
+ */
11
+ fieldMappings?: {
12
+ targetAttribute: string;
13
+ sourceAttribute: string | null;
14
+ }[];
15
+ /**
16
+ * Called after required fields have been populated for each feature.
17
+ */
18
+ onRequiredFieldsResolved?: (summary: CopyFeatureRequiredFieldSummary) => void;
19
+ }
20
+ /**
21
+ * Summary of required-field resolution for a copied feature.
22
+ */
23
+ export interface CopyFeatureRequiredFieldSummary {
24
+ /**
25
+ * Fields that were filled using defaults or placeholders.
26
+ */
27
+ resolvedFieldNames: string[];
28
+ /**
29
+ * Whether a later bulk update is required for placeholder values.
30
+ */
31
+ bulkUpdateRequired: boolean;
32
+ }
33
+ /**
34
+ * Features cloned and prepared for an add operation.
35
+ */
36
+ export interface CopyFeaturesResult {
37
+ /**
38
+ * The cloned features, ready to be added to the target feature source.
39
+ */
40
+ features: Feature[];
41
+ /**
42
+ * Whether a later bulk update is required for placeholder values.
43
+ */
44
+ bulkUpdateRequired: boolean;
45
+ }
46
+ /**
47
+ * Describes how a required field value was resolved.
48
+ */
49
+ export interface RequiredFieldResolution {
50
+ /**
51
+ * Name of the required field.
52
+ */
53
+ fieldName: string;
54
+ /**
55
+ * Value assigned to the field.
56
+ */
57
+ value: unknown;
58
+ /**
59
+ * Whether the target layer's default value was used.
60
+ */
61
+ usedDefault: boolean;
62
+ /**
63
+ * Whether a type-derived placeholder was used.
64
+ */
65
+ usedPlaceholder: boolean;
66
+ }
67
+ /**
68
+ * Result of resolving required fields for a set of attributes.
69
+ */
70
+ export interface ResolveRequiredFieldsResult {
71
+ /**
72
+ * Attributes including resolved required fields.
73
+ */
74
+ attributes: Record<string, unknown>;
75
+ /**
76
+ * Details of fields that were resolved.
77
+ */
78
+ resolved: RequiredFieldResolution[];
79
+ /**
80
+ * Required fields for which no value could be generated.
81
+ */
82
+ unresolved: string[];
83
+ /**
84
+ * Whether a later bulk update is required for placeholder values.
85
+ */
86
+ bulkUpdateRequired: boolean;
87
+ }
88
+ /**
89
+ * Error raised when source geometry cannot be projected to the target spatial
90
+ * reference.
91
+ */
92
+ export declare class CopyFeatureGeometryProjectionError extends Error {
93
+ readonly sourceWkid: number | undefined;
94
+ readonly targetWkid: number | undefined;
95
+ constructor(sourceWkid: number | undefined, targetWkid: number | undefined);
96
+ }
97
+ /**
98
+ * Clones features and prepares their geometry and attributes for a target
99
+ * layer. This function does not persist edits; pass the returned features to
100
+ * the target feature source's `addFeature` or `addFeatures` operation.
101
+ *
102
+ * @param featureSet Features to clone.
103
+ * @param targetLayer Layer whose schema and spatial reference should be used.
104
+ * @param options Attribute mapping and required-field options.
105
+ */
106
+ export declare function copyFeatures(featureSet: FeatureSet, targetLayer: FeatureLayer, options?: CopyFeaturesOptions): Promise<CopyFeaturesResult>;
@@ -0,0 +1 @@
1
+ import{checkArg as e}from"../../utilities/checkArg.js";import{project as t}from"../../utilities/geometry.js";import{generateUuid as r}from"../../utilities/uuid.js";import{Feature as n}from"../Feature.js";const o=new Set(["oid","global-id","geometry"]);export class CopyFeatureGeometryProjectionError extends Error{sourceWkid;targetWkid;constructor(e,t){super(`Could not project geometry from WKID ${e??"unknown"} to WKID ${t??"unknown"}.`),this.name="CopyFeatureGeometryProjectionError",this.sourceWkid=e,this.targetWkid=t}}export async function copyFeatures(t,r,o){e("featureSet",t).isNotMissing(),e("targetLayer",r).isNotMissing();const s=[];let a=!1;for(const e of t){const t=resolveRequiredFields(mapAttributes(e,o),r);if(t.unresolved.length>0)throw new Error(`Cannot copy feature: unresolved required fields: ${t.unresolved.join(", ")}`);a||=t.bulkUpdateRequired,o?.onRequiredFieldsResolved?.({resolvedFieldNames:t.resolved.map(e=>e.fieldName),bulkUpdateRequired:t.bulkUpdateRequired});const u=await i(e.geometry,r);s.push(n.create({attributes:t.attributes,geometry:u}))}return{features:s,bulkUpdateRequired:a}}export function mapAttributes(e,t){if(!t?.fieldMappings)return Object.fromEntries(e.attributes.entries());const r={};for(const{targetAttribute:n,sourceAttribute:o}of t.fieldMappings){if(!n||!o)continue;const t=e.attributes.get(o);null!=t&&(r[n]=t)}return r}export function resolveRequiredFields(e,t){const r={...e},n=[],i=[];let u=!1;for(const e of t.fields??[]){if(o.has(e.type)||!1!==e.nullable||a(r[e.name]))continue;const t=null!=e.defaultValue&&""!==e.defaultValue,c=t?e.defaultValue:s(e);if(void 0===c){i.push(e.name);continue}r[e.name]=c;const d=!t;n.push({fieldName:e.name,value:c,usedDefault:t,usedPlaceholder:d}),u||=l(c,e)}return{attributes:r,resolved:n,unresolved:i,bulkUpdateRequired:u}}async function i(e,r){if(r.geometryType&&!e)throw new Error("Cannot copy feature: source feature has no geometry.");if(!e?.spatialReference||!r.spatialReference||e.spatialReference.equals(r.spatialReference))return e?.clone();const n=(await t([e],r.spatialReference))[0];if(!n)throw new CopyFeatureGeometryProjectionError(e.spatialReference.wkid??void 0,r.spatialReference.wkid??void 0);return n}function s(e){switch(e.type){case"string":return u("<REQUIRED>",e.length);case"date":case"timestamp-offset":return(new Date).toISOString();case"date-only":{const e=new Date;return`${e.getUTCFullYear()}-${String(e.getUTCMonth()+1).padStart(2,"0")}-${String(e.getUTCDate()).padStart(2,"0")}`}case"time-only":return"00:00:00";case"small-integer":case"integer":case"long":case"big-integer":case"single":case"double":return 0;case"xml":return"<root/>";case"guid":if(!1===e.editable)return;return r().toUpperCase();case"blob":return new Blob;default:return}}function a(e){return null!=e&&""!==e}function u(e,t){return null!=t&&t>0?e.slice(0,t):e}function l(e,t){const r=u("<REQUIRED>",t.length);return String(e).includes("<REQUIRED>")||"string"===t.type&&"<REQUIRED>"!==r&&e===r}
@@ -16,11 +16,6 @@ declare module "@arcgis/core/core/accessorSupport/tracking.js" {
16
16
  }
17
17
 
18
18
  declare module "@arcgis/core/arcade/arcade.js" {
19
- export function parseAndExecuteScript(
20
- script: string,
21
- parameters: unknown,
22
- spatialReference: import("@arcgis/core/geometry/SpatialReference.js").default
23
- ): unknown | Promise<unknown>;
24
19
  export function parseScript(
25
20
  script: string,
26
21
  spatialReference?: import("@arcgis/core/geometry/SpatialReference.js").default
@@ -33,7 +28,6 @@ declare module "@arcgis/core/arcade/arcade.js" {
33
28
  ): boolean;
34
29
  export function enableAsyncSupport(): Promise<void>;
35
30
  export function enableGeometrySupport(): Promise<void>;
36
- export function load(): Promise<void>;
37
31
  }
38
32
 
39
33
  declare module "@arcgis/core/support/arcadeUtils.js" {
@@ -49,7 +43,6 @@ declare module "@arcgis/core/support/arcadeUtils.js" {
49
43
  vars: Record<string, unknown>;
50
44
  }
51
45
 
52
- export function createSyntaxTree(expression: string): __esri.ArcadeScript;
53
46
  export function hasVariable(syntaxTree: __esri.ArcadeScript, variable: string): boolean;
54
47
  export function loadScriptDependencies(
55
48
  syntaxTree: __esri.ArcadeScript,
@@ -60,7 +53,6 @@ declare module "@arcgis/core/support/arcadeUtils.js" {
60
53
  spatialReference?: import("@arcgis/core/geometry/SpatialReference.js").default;
61
54
  }): ArcadeViewInfo;
62
55
  export function createFunction(syntaxTree: __esri.ArcadeScript, context: ArcadeContext): ArcadeFunction;
63
- export function executeAsyncFunction(arcadeFunction: ArcadeFunction, context: ArcadeContext): Promise<string>;
64
56
  export function createExecContext(
65
57
  graphic: import("@arcgis/core/Graphic.js").default | undefined,
66
58
  info: ArcadeViewInfo
@@ -90,26 +82,6 @@ declare module "@arcgis/core/support/basemapDefinitions.js" {
90
82
  export const esriBasemapDefinitions: Record<string, BasemapDefinition>;
91
83
  }
92
84
 
93
- declare module "@arcgis/core/arcade/featureset/sources/FeatureLayerMemory.js" {
94
- interface createFeatureLayerMemoryParams {
95
- layerDefinition: {
96
- geometryType: string;
97
- fields: import("@arcgis/core/layers/support/Field.js").default[];
98
- spatialReference: import("@arcgis/core/geometry/SpatialReference.js").default;
99
- };
100
- featureSet: {
101
- geometryType: string;
102
- features: any[];
103
- };
104
- }
105
-
106
- interface FeatureLayerMemory {}
107
- export function create(
108
- a: createFeatureLayerMemoryParams,
109
- b: import("@arcgis/core/geometry/SpatialReference.js").default
110
- ): Promise<FeatureLayerMemory>;
111
- }
112
-
113
85
  declare module "@arcgis/core/arcade/functions/featuresetbase.js";
114
86
 
115
87
  declare module "@arcgis/core/arcade/Feature.js" {
@@ -131,7 +103,6 @@ declare module "@arcgis/core/arcade/Dictionary.js" {
131
103
  attributes: any;
132
104
  immutable: boolean;
133
105
  setField(key: string, value: unknown): void;
134
- castAsJsonAsync(abortSignal?: AbortSignal): Promise<Object>;
135
106
  }
136
107
 
137
108
  interface DictionaryProperties {
@@ -1 +1 @@
1
- window.hierarchyData = "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"
1
+ window.hierarchyData = "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"
@@ -1 +1 @@
1
- window.navigationData = "eJy1vVlzI8mxJfxful51NVdqzXxz9cbiUkU1UaQIVFXrjsloSSAIZjORCWUmWGSPzX//LHKNxcP9RAB6aLNqws85Hh5Lxh7/5//+1Kq39qe//nS2XqumuVBlrjaXdV3VP/3hp33WPv/015921eZQqOZ/eCZ/fG53xU9/+OklLzc//fXPf/hp/ZwXm1qVP/31/yDE6yJrGpJYkPrTn//3//vn//vDrFFvDztVtiHHzZ8xp2nCyWGLkKEPObrImyYvt4K/plWU2zS9671FL2uG0nJ7aG+f7rNyq4TkOIZRKQqKuIlyRSBxN2nrqnzKt35K+r9Djp87FHnZqvopW88s5xTZ//xfjBuvWZ1nj4YjlD8//9lKyiZrs59oFx/uVZG1eVU2z/neT6xGPlg2UMKjScMKf6EVnrJ1W9XvVFwk+gHqRcyIea2yVs3cT4dy3cFF7h5pU/+vv1iZQcfGKBpR4bELi2l3V1d7Vbe5alJUZjSnd57Vm7zMirw1cqJ939P8hrVD+p//9f/96X+aOfBJVZrgMWtUnAYNlORMitX7XgFCLkSSeKqr3WVT52f7nEwRW8ZosFfMZrW2StaioGyBfljpenf51qqyyasyVN9tK6gZCRGP7T1JzOnoNv4PNv2VytpDrZaqbfNy28SIOFBRarl+VrssRqFHiMQTCqrzbLywet9hksUiNO7Vk6pVuVaREhPOV7C7L+tP18ulql/ztYKKMYMA+zKAolUwOEXYG7vQMDAkUxM94rLdypS2zdbPur8WyoPJAAs5wWdHeOYLUTvxm6yuy6eKCRRFrCFcuZ8tobygJLAK1lZUZJxvg8Fv2rMfhPNsnz3mRW57bmWhaYJ1pUlONxoWLaPhlLh1Vb6qOlTchl8hNz+paqfa+v2qqneZQajKw86hs01tdrOwnauiuOg78IFUj4yjJZfpF29Pq+ome1f1VC+b232X4bIAA+Y0r7abx3RRDs2q1tXuvHnFdSx7iXn5nO3VU16oKH4XJan8erP8NUrAAHDcN/uXt/Qc4dDsF72KyQ/TmmeNzwsfwytE5YNlzvF+3RdVttE1Fub2IBz/Mt/tC7V83z1WBTmiGVlNQ2kcc3V9eXPx8OVscflwf/np8tfgCHwqlg6AGXdvhyZRj6c+q2yj6kakJzDcyL55XVVzvz342RvZHXtmxNVZztmDMc/2DPOGaHVFegrEaDxRjawoQqIYla1qL9RTdihat1AGBFwAw/2yKz6rt1U3eD2vCnN6MEDuIXj2+PBQIEajoJpVUYREMSr7rG7UL4ub86rqhvetkjUIDKAA5rFtzvA2Y5MdVYNJFKYSUZtJFDs/c968iqydFcvyaf8GsHzav7Es08cQ4JpsWUb9BQTItBnDc5hCGZXlNIzReSuatygFFyByRxQlF8Bwf1LVXV3pVTK10d1kmz84iPmwVdV+xOk2fFgfGCbc//Rff/n5P+0R3ZDSAPfwKzRA8piskfjIRDLaY/DBBBkjO6zY6PhKtevnbmJUbQag3EOelYJgVrMbCuIqpjnHe1erRpWt7j2dtW2dPx5aJF4kjNPZ9N/qAX8lLNGMMiSK6cMtz2/vLx+6bqXIbdgyjLVqquJVORkWrKkjOQ1j20Wv+AeoJ0u+9a+z/XO+BtgGS3baZrC+yZvQTIhhEVPZbUaqwneMQXay4muziMrvKoCNQF60qj4vskPDzEBbEgaCHZtVdRvDO9vzjVaHOK92+6xWV0NpIMd+RFwcmDgSHJtTtcnX1nopLzMBJAGd5ou8VlgiLGuamijty+w1tGXBVJjMYso9wU0V/pmbF3M3KFD9FdJ3t38ieK2Eyqr5QtRkVV2q9vJVla1cS23qHgSU96WKaQpsEXRVIrhOGAg5sSQoxp1bgXSZIxYfHdO4UJFqWOt5V+0P+/OqbPW+qHFsel4VhVujJXWBCMu46lCvhR5sbxOTafcq23j9NYbah0G7XS4ur86+3qyWUn8nrDIyML0gvckgECy6XxFW86iQjgcZy1DRwMJJtxZO4iAJsmiE2WPqGKGDDlE6yPc6b+Wpb1LNhEbUoo9ZA9UkbRfVBBLsZCM4swt6dkNo7nOh2iFBi4YjLe/EEV0u6ETGfrTaWmU7Icc6m6jccljJ6PWsjAYdsM4wJliEDhykXBUbad+HbYSFKcBrx8nm5WScSFmWUKg4KXQ8pIpNqhaaH+TXPpAtpC2UO4KKlUm0CqBtZ9lgi8SP5vYI2L2ZvfG9ekqUuVdP0b279LQJdHyR+ftB1e998whsPglYQ8VGVHJTGxLDnHDSCeyrjt6rTe4Q5Sk/rC2MPW98nLcfahuEcFOFLkJlb8IRPXuHcIRS2wPD8+wmnOlkuWbRe/KZLpbHzYu5kxLuHlfLb2o7a8Bbdq/swCPvju2+O8iIc6By7MVPYdSo1tSARrFuVKVJFCss8uRJb4e02BYx9vVpOtvPWbM8PHYTdsHB5EDuAbjdCjqE3/P2+axeZxv1673aqje5zH3ocD/y9jnrcG/1gAtV+knHrAPRYmYLQCuaFag57PdVtxeRPK6zeXs675fyrM0xlhcDxYNtDFW7i7eny7LN2/dhXTE4dxnQ8PFc9ez2E45zuHoHw11VvG+rcpHt9ypemeESvfikqr81VXldNqpuPxbV+iXZiRAV6sNNXqpjxWcOVHWl3tpjVWcOTnWX7S9+vdIe6g9pv/8m2DoEVCkOdo5J48eFDaTeTLbY16rbQHeVF8WyfS/olRCa3UFKSyLfzm6uLx6urm9uHparf9xchmcEaTkPz8wHblSdv6qzsqzarv1a5OVynTGbRGjJEA3Tvudlu6ruP32MVBphDPMu032YfD2WnEgFF84rpZVyS00u5JbidVPdZW2rambjWFDLAPMqo0eDdbySQ8ColXqLQ5H/TtUtSM0nQNS0g7eHtsjLZD2DgtttlpV5m/8+7L39nm/a50hBgkFsCK+n/h3QEs7GaA+i++aFe5MB8hEonF7ouxcp7D1SoNefMb0OXpXgTE1YL0AlOHBX5eZxHFyuAwrkTvuNkxMttk1+fdbqrbqJuWOhWRk9Au2OlcVrTFBW4OLtiT9tE6IfgBK5VSq6+a63+OwOEbHiXa84XqqDycRNYq4YYFlEfzSOEpoJeLG8VH1h7AbqG7VJ0PM4REm7RxIjRJxAd+h/7KvivThFugJMrPxCDw1SGwcDzIrcnSiFNA8r3RWp+K/EgOOpp8Snp8jnYCW/5erHXVUntEsjEqJPrMgWnBPSFcPpM4IaE5Kjv9eBrKeJhsuyreMLN0XCTtrN48Wuw/e35e2XaFGKRBZdZPWLqnvExa9XiaoOCyerS+2wcVXvP44WdPBIXt4+/qbW7Y3V7w+M4YlMnNHSON5GOH2+WEGq5ycqdsXtGM2OQN5n+aAPGEwzN9J4wzLGxhvvZbbL193XfaHaTPPdq2ZfldzW2oAgR8YVH/4gBihOkXCi/V1D2tLp2YXGjbacA2cGqeqtrbN123eg8hYZg9tSHgEjtlXtPFd0kz2qIi+39jULmGiQCBXXzUe3WHOU8sTCyw7HHDs/74psrdhbGcLCJA8vPV5EcFFnP+7qvKq5u4LCyhQNL9yVhyNVPQ5+8mO7f7t821fBux4mockQaoQ+7d+GpQdxHx6h4KHZpubu14cvwLSvQd8hmIneb5GE33g6vQBQjvsxV9VlAZblWYBmYArT4yEvNp/2b6s6M2eeZCULiAo4n+tIFeJrTUp9z973qUIjlpHpm/9P+7eLan2IzSAPLLQwGiieaCZ0XKwo00X4QjXrOt/bq/GomMuASV4DHwlS6Vr4Lox2X7Id8NklJTQUE1nlySIays1zqzrvpsUTCxyF51t6fS4e7nZaxlCL39cAfRMK2PmyJRw4n5TpcDmcHh+BLWN+Pru7vLq+GU5MPlxdh09YcloEj/e9MFOYTfdKSQsShiWUorPNZr60Cv42myoUA/d9no0vSx2uDTjtammSHKzqanV2/nlx+WX1sPrH3eXD5f397b1wQQupHObhvvhmjMSqYOpZSKb92KhCteqMKieAiofm1p6b2U7PqjoH+AA1koFrG3sOA3W5yfXBpyjVIEuUclxcCTyjZt4fd8VdNkFJuWC2xRwGQeauLe8wOtm8hIHYXASgS+6pYXRRl9yNmAPOvoIxKgokNCYOgjYXCVobd8yNxra/Fhhe+Pbssa3U/RfwXjWHApg890UsAn4ruO5PwMmxjbG0XC/0BPFN/gJMozn8BpY/oVBUw3RivMSMZde8jQm9aA0TjM7+6S4dNvvniFEk/DzAt6w4xOfNgGPXTdRWlZvrVu2i2WeoLJCWKQZWlsAngkkVZOpX59V5vjumLPsUgGA3w3eum9BUvZkBkBtn/1PFRnyE1FGJs0giRD/V1YG5lh8T7UgA0X4VDLjjmpd1aFjh97ofcV6op1xvHOMOLIRUfQ5JEv0iEkqhb+EfzC9Vt17bRcH+XhGrWv6nygZL62jn14tuBi9ZzkFDet1a2xGKDh7QXFZFvvE7AJCehUW1lm1dvahUtRmN6HWB0DvyGn24I/jgA6PpMwC6eimoR9rnryBJGyyq6W/JWV1n9JsZXKeqQ0H81+X+wC9bU/wdCuLvOipNtEAPkxT0Zuplz6I2zB25ASUCnqDYlaAjZTsOSdvsYsTombgYjfis89GgntW6JShaeFBzauES9CZsjFbfvqWq9WhULzWQURGcm7MEpRksqd3la72uam46Sm73JS7JF3fXVbIjLBHmxdznOdKLABHmxUmyRaCSPJnLUrIHAQp5b1T8BGXqzCSrFOqNU2KyA848VcoEZPrMo6AWSiktiLjRpTac3kBCT/gWlsT7obu/VRnAXsY/7Sw/BBSpBV2sEHxKChPDNYhhNiZRG0Bbwc735kW4HNA0AfOc4rTmzS3OsID7aNhsh5xxCorw97OY4XH3/o+BIbf109HoTemrKwaa2YRLPnMOweLhJh1mJSGAnmfYSbDpFD3MjfFuVanqrFXmhhUiLz6MdvmGLfVXWV7oPlG1IaqV8SOUwSRZ//k1qcK0xCf28/te1UVevvjuTT9BzhFEY+GbiQKUdvGbjITcJWjR+5Cuy9esyDe3e52HeVUGbrglzaBoCAJjZGgBQNZdv9MrCvS1O+MvmNseTf8w10RCs5m5Z67uUyvYE4NpyO430I3CLtsT33aS1TXnuavqZZfV5J5Ik3MwY7mYu8sNKvne8snGvhecY/PvBKcZA283+IT8mw2zmXPFIUtJXG7osgZuBKRpmasAHd5PqlpXG3oXmsE4mvFcdXUoYScda5b5Jiu3h2yr7lXTXXtG7jUxuD17gd18AUekNo1l3u4lBKloGZYs4wKv6wu0ni9UeZC4VHkQOexF3yCPv8DrcAm3K5LEwH2Kjgp9wRxJHr4Wz+FcHh6LmKLk2bPsoVEcSc2NEp0dT781HRu5BdI4BPOu6r811OhR4x8IS2yTJadgdGiCIrKw078ZvoFMWgwLKA0ko+u7SRoWsPrb2X5fvHd3I1UDgsp0j92HcScGeotVZXvP0FsIhvm3aMd/Y30m8lAqlK5ZTG5OIHvQGMjWWYKCc5kcTko/esFU5MHMx7zcivEybbBg0axelCxiTsatrPpQSl5ul2tVKtF90hhrhg7tc1UPh/z6d1i6C2WEZNGCHBm7EdvH6db8VD6MXGxpFOINqkM5QbyWY3l9/qzWL4/VW5IHAp/sSnr2R+R4b3qECiagpzu6xbwjlCwOTPJ7XqurOtulleAADyYdbkklMbA1NWnGbhzaNJn2WCsrq7FBtQRRV5yW+Hz5TWp/TRNsnzDJ6SbFomU07J1j1brrFOqKH0HvwviYzJvY9HmJiosNZYruh2c03MSQMoC2fcmK3mWToDPhOPK7TNdksdUjBSyskDXVLstLLkMmA3B7/kZtur0lFLPn/UxOAfmN7aN9goREPoP4Xq1BbkP4YvOs9Jswm8gIEThO5j4rt7GZ4GCwEJHfDzIy0j6B2ZLaHhDmxXYC6BsMhi4OV95tK6ztCTF7oXbIeTG7oTZu14gTcZFsq6M3zp4X1WHzMW+727WRrperyLFg6veqPdTlcdouB6bctQ/HCTsUmC4laZb7oFpQiKgCl4V6haapfENs+ZjhNxJDsIuCVGrK17yuSr34wyXFtsK+Yjqw799V1j5LxcCl96D8R6yo6o/Z+mXbzfFHKvlgfrU7EC1Jhw+g87jydpsWNhfJf9nyMk3FRXIqy7L6kabiIlmVQ3mTb5/1To9IERsoaCTGy0VyKt/yuj1kRVpqCDA/GUhXGbONcRTYiuLvoCVTwdAznnvkZFYw3OEMCL+5O795wjSNpC22jYRXcbObFkLk6cf25DTFpgTy3/RaKqLb/lJEYcHAJLMQ4oIB8y65x2wh2AUD83EPOchxnYMwdyDcxrQTrxd8RlhOwmAUkwCPN+D+SM0qUe8kcl6Pv2MO+2yerxNhiNp/kYkdoBGE2PDsqqp3wtjMNMECUNU747KO/o4zISCmRhDPd4Lq3ces1ttAluusLFUNTBR5sgEGSfi82j1WH6u3FEkPK4ldZK3Sl1Ld5euXtFQGGCThy7d9rZoGmrf0NH2wJNdvE0oqPS5UkuqONadJuVBJKiF0aMDus01efTy0bVU2KcWCxIuixvaTtAgGGCTh5Y+8XT+npNNBSkL6EMxZrbIUKQ+LiCU2JC6U/+bph62Wt1+kPodrBn0AwtxuIjx6Qc9PRHczK5+AyQSbTdHbkoTYW6QzgMtcE8JPb1vkLoyTWByKNu9ux4zw3gaJs2YRzHcYaXdGNYp2QkjE+qmDSOYRgmYl2RsL5qA0RjVtg329IDtyKHA72PfvbrGjJEvHx8ljJQOCifg4dtj0SVX3yyXQgplWaANGMxPlxyLnxdzWi5hLsV0PzZwEvAamMw3KIHtom18PCGflzOeB+HzUXSgxGy0jOB4ULxUTg5pVco+j7LKtWqr6NV+Lw3fSFkqIoOKmhxZC5ImXI/Jye38ohGaU5vYI8Fh+U/pIakxEHUR0XIOKXFpdUdwh71hTq7b6VNpmoZpnMd20NZZmSclLb0AMc8JNZ6t2XMKGn7GUeFye6yNdgNdx7pfFjRR50wRykuZ0HbVoGQ3HYeeuKsZvwhJbY8/abNmdUZH7rZSGj2d3N/TXEmoQEDRSj2AAFBfkFucIwUV4t7O9HDguuMrTAJSaB2eHk/0MaMysDaUZpAG079Xm0HURzotDI67tM+oUUYz+UkErJogHFpU4a3v7quo6d7d8QrounNP6W5WX3aEau8LFKQZI+P0xTAuEaMoNk6+npy7TyrIH57Ru642qP76fF9mhSYimB+e0/n5Q9fvRGRhiETespUXTgvIaus4ekzKKgVM8OpSRURzLVP+ow3CZfoJqiIb9hgWSaUwZyJ9mad5g+vKMu9CD0xPsd8tES5JuwxuVOgosCer2LzppJkgSWKndvqqz4muZt9FCFFhe35M6tJEHqoqq2l0+Pal1O77TDRTyjj4AZfebFIc6VYxCslq13kpSqqZJVGTw/F60sq2zpk1TDaPZBqOu9svnbFP9SFPl8Oy8aZ29N/q57TRZBs6pfj6oe30GN1GVgfPbzfV192mSIazYMQLHaHNXCBmU3e6ztX5eNykpQTC7c0433ckZFkazmrpgXSj9Opvec9BhYcUAltVT+zxLTCANZYedjJD72ek/2BK930EgQsZQI5T8dmaiKMOE/IfXJkU+7Ddqm63f3WPPiEoQiElONw1lRbxsCCxJG7P7HS64IjALuhBm8Wh8+tJPSpDdhYhLU6jbv0Eed2cUhcW0mdOwZldFFtkeXFggLKHeHKvgtj+UiCzsTFgu1Canpvbs5FhG6HrddJehkAyb3AWyy+sB5wUJNjlufKomy9f+eosdH8sIy+kAr+e6Tc0qOa7f7lWpL4pSLT2ZaiWBNoaSIum4SQpIQR74SfTay3ACPVM0eR6Q79KRUiEavqPHJc/4jsCK8vB0PlAlRZSwhALKKrixpERkYaeYdLc9CXtqLRt8V7E8T2cTWyBp61kmdHgd6gkhtpmxXlsgYIa2S6Uw22YreEB+J9Ee3Bxqi7g4WSNipYaSilqhCZRSQAea8dV7OtXmXq2retPEytBoTg84km5LYAfSs1bN5TzYr7aZfZDUn+7Ke4SCZS+R913Y4fK5YPfUFrAwbCd1npeHD7lyEKglxDTd7GdlI3xyGvvxYSwuwYYJlEDrXiAhVSa3h2MnHvVFth9rlb1EqvhATKahQwVqNUwU/cO96Ymj0aJgigxMfp/thOv7fPIRI5Iv2yqafMSI5F/L/F8H1bW1OrXCN9oXovDsXK/K2l22TyhpBFLcC911Co8r4CIP5sRV/qY2y/x3dVZsqzpvn4WNUQEfaBrMBZOSH7AExF0CUPbTx6PC7uAx0eW+yNrjQu1TgNJtrdr181FpJjgwcaM6HuVAgId1olabapeXWblO0g7A5f2v0SU6phzfD5fDRn4+XBi70NA9IpQQMh/Iy/wO7CJxBH6Hdo9ou0hahDLyw2dC2J0gwzJ9QsQpKCtVZ2Wzz/Tk5Xtk7CkoKhUZOArKSRmNQ/dNjJCioKDUVV3tlu17Uk2RaEAXunMHabITFJSKLC0EEhQ6LppoEPut9t1sToJgAM0K5s0hK75lda63iUV+IGgwJ+cN7IITBfx4EHrNVVec/Cnvb5pcqPa54q8e8AdsAbQ4DZJty7w9bJS4PcqSJGGSFt3tlMVonKQWp5HKjIXLRYgKQ18jQsFBSAp+fZA1fEy8CpYaGievbEB3gifcBY7efe1QS3ddW67vszbP5mfXuQQQplgyWA0vMZQMoO0mrHvIRswU2wpLTojZS4lDzou5/stXOUff3oxd2GzR8tcyk/tERkhwAtriJIDilo44hd9Q8mYwEbZ3WOQ2hp0/Xx4edcMDnYAlbdE85lSIzCaEEHnnArwOcEpx0AciwljVcS1jogtXJE9EFnbT1D3JyyVlMsC2dVd6PVRwfKaczdkJ4KwoKukSE4PVsGdprxdU8jliE+FR/6F/0u+nv/60UftarfXC40+UHvqpIoSFT5SxifKtrQ+b4dnpny+Q6jLLhcDsuv/01HasGonktxhIy+cmeyWvmV+vx7ftY30nkfzu6kc1pRaW8VCsxPTceIyCA0IF4sJFItldH1mr6jzDq6gJ4LeTNM/RQXJB7I6Sx9/Uuk0LUwDLyh1a+Y4aU2K2ZyfLs/Y5LQ0kkpXK1/qc1dwa4FIUEpBaZPWLqtPEXKy47BFd2DwUL9FdZZQg4uH4hYz+mcm52YOVaCgiZtaGaDkXLC9wJBRACigLzY1hpJANlIWSyjkNZcVe9Frg5WarhJl2U8XGsPT6UaZIdgvCkuuZ9tTeWQjMCho1jp/xNYUcECIA7v0lVODtvjM2UgMh13cRpn2BSCQmlaAhkX/Tb5Kvs+L26amRLiA2GH2YuFXG5jZmI80BxWgoTXYSFY5mDFUzj7HH/PkCITVtMV7328fxkt+7IC+/k52rP9EKwflkTgWZIKdKN0ePex/nNu+vOUGx8mfyrfmJVWDWnp6eINjcujcThqhDM5OdfXBeb2ZzIeKEJEr8G8TZ6t+FSciZ07Bmpx/1jgO91ZrLKsMEyy2S08swk5bRcGa+VnmhNtMeXfB8HA/CEgXqesnkpaM8o0IRc/9gGICHIPImQkYS9oZKNn42MmSOJznqlGRQDvTDTaz3wK6dOPrN3EBixMd6J7rwW7z/tPpGet+ETpiUCYQl5DKr4HpPicjCbppy9YO4QdlOjWkDpeM826k6E9y3WGcEvw2F9Jan5tx3ovFdPS7Yt+hnA+xgw35fDFtD7upqrzvJ0rjQUAiiuRB9rKqXXVYLbyUbKiaAnc7O1nmRt+9dwZL3UxkKJJKVKiq9P0l+HM8UsTHsPLq+ZCgrlq340Tb4XRA786xeVREfJx/GzznvuzRHSbggQQC8K80WgG9Ju6tVo8p57wwk4ILYqTntCcw8WfNTVa2Kz1kPxUoU4vWJJnUB3Jaor1nrDPH6ZEOErbJrdV6VT/n2UMdlJg1lt1q2XVPyRbU/qohGzodxItRngCEPfhQCpPz0E0ksTT99zzdb1eKfFsMeHDb24OBQzOD2QMwo70dnIAzzDG7Tnh3ofVeP3Q4w/ls+mUBf889KX3mmb/QroNo/sxNIoagQzrMKTGKYHO0gXNxnTgLI52tnIufsrGBjpNxFuuGuGTwGgrLXpjZhQt6C/XtPQkiOLbNYLRNSYcKErvKV+BCFaQKF/vsV4rPJaiDYaJDOSszgEOr7Qo7EIjYSJKfnsEnLaPgOA7vDHCvUbWxXmEvOi3X+25d8lttDtlXj8mnjp8EzgRLAEHe7pkhiQepPf/7fnOvz0I4MFyA3M/D53oX3P/SdGUpfjECn/13Vd6OFE1IT/2BYgpElmMeYBpmDKm5QJzMhnIgSF09S0y7r/YoCIkQU9dCNtj1gqVr9+i9R3ENyIyI2jwYcnlWTkP83MOcG68QMZPSx/Bzbn/gsnaR9ilDuWtWy0tdpElna/R3LuM70XjWHoqWj1nOZduwMyZdvZ/fXZ19WM9nrcCBk4ppsbKKfzUW3jWrVur1xEjh3Agcq04zpVG4VeZ/LQLJ1mwgXu8ja9XNebnudhqdyjBnmfVY3SkyiYcVtvmdT6DWCTq94l+33fZ2lykhfYru3+/SVSX55G+APjiHechDcY6sR4uakiIZisrxX2ea2LN6X62e1y1L1bBZc/TjVWDWhQcREI75pjqMD8v1jXm7ycjvc0X+EKxyt6Ny0cynegQl6ZATcz8IRqZY2LQwfGT//AeVgjvubZ+7vH5bnny8XZw/3l2cXD7dfbv5BNfwhOQrvfRTMhsohOK+K4YWZ692+gBsmG5bQTIV0hers6OJO6UpuhWHsLyCNsmcLJZhR8FLpKwiadqM1GouNY1hHbhmXh0cPPoc8VpShQlIa3UIDEY7tqx4rHKcHtr5hOagNHo2pjVqABvYqbEurzJ0uRslBs52ys3r96XoZUdMDAGy9WRJz60VIDHLCrhU2xHzjHKmgmCM0K+4V22YQJTkyPCGXnMstaDBYlyNdwuq3DT6pJ+jk1PAkAFBBXEuoZoTp3ZLo0fN6dnFzbcFQippYNg6oI0UxrY16yg5F65JcZXoD0jvXffR0eSq2JzluXmFKy2CBlRKPzisdIx3N65SGwQbNEJcbzPXBun/bLPTB9Mh7c3n68eMhL/RY5bza7atSlW3Et0zGYtkS4YKXYbILsV46mRxCSx3hYzyTe8oyO1oqTxFA+CswMHUXHiQUNBoXVcgk6VA2BqRjPKNz0EKihSrGG7ww0ayRBSkpULEFaL7+J6L0EKCoosOKhnKKEoUdorNphqHzpHHO4POmDG9kqYkME/jp9Aj+LV5FOpM4WIF8ihmykPUqvk0+rjlOaInDbUtS+zuChhdW/TXYdD8cyhhv4BotOhFRi49s+SMyJq3KnNwf9LOzrronLMOVYTCAiv66eV1VQ9Gg6r4/RzWy00huwfE526unXJ+dSxLk8IxsW503rwh/Z8gSLUcPMLrJnCX99Wb5K8anLRmqt6J5SwxtAMqIfVLVTrX1e/8YC1YWP2wH0NMI6on/8qf/+svP/2myr3RWeKt/LHdbrZvXaoKEmadcieWfyh+iovMqVkDnQojbbADOl9/Q3qZnih2pCgu4Tb8vIEjarb1nDLaqgCzanNqP0gAxDQCgyIpibnxDYpATdqwDEDDikY6g0ffaHDQXBCCUG7C4myuSeJRzdi5dXZ6tvt5fPpzf3txcnq+ub7883Jz94/L+YfWPu0tuqlP0iSNmJz4H5sicSc+PyFygYx8RcQoA1ooIF7Bepgk9mQ+RldFmsk8QQZlNnCCKyHBbEMr0ThB0JZz56AQG5gI+cWGiTqMdp6nhx5Q1T94mRIu7xXdSfwLMfGX4pKq/LW+/oK0eaQ5VAkHILQG0ECBvFwASAEY9woWIaN8vlxHB9qzRWDMyRKh9GVnbC7Rnj8cZ08cq28Xl1dnXm9XDp8vbh/vl8uHr6vrmesVuvyM9CPCwfYhPdbZ/ztcNnMOkPZbHgpSXy7QU4oGT0yQCzesYL7D8/nR/dvf5+nwJdiBDHvgsQk5Xh3IDZbFlCOZtgNzPVJucFXOz0TKF848VBHOsAx2lGCN0k78E1/Bpdo2Q9rsNWywcAmCzhivJEollcI83NZ4xXBaDIlR5dEVEYb9cOubIbjdQGdviRgAjSivgBtpf6C63qt/RPCbNoVwWhNxo00KAvB1nEgBGOsKFyGhP57fxiPuQmKhzgoHIE4KgK2QO+KC4XIhxB2u6Xbh8ZAN3RTrHYZWJslXbWr/ooO+Ah4sFg8JKBiTrFQ5OFvfJKSIMDi0lqX6hNfeXxQ2aNZ4plB+MgJsJvoAgaYfbMwZjDMjGjZ9+WdwgYydflyBguzG/LG4i9kBQ1mgWRux8IGVkbS8vU7eewPrYDnkKiRcszBO0sqI1NaGantV19v69zvZ7taECDUh8yDTHj55jbXKElkGPSM+HLoLKwGIiVNbFy+1NFkzYnbiNF21GhhjB4HnRVP0h6e+PEyHrzlHxxsNMHAaDVWoDG15UX2T786ps2jrLy5ZJjG0H1b0QtduyOtSckt2a2pZg68WqYR9Efdvp8r1ck6mTJQk43z4uoDM7i9jzOjQtkTszbVjDy5nJ7vJVAQGiNXoslxeL+JNAQTUs97sb0WO/3pZmiAFYMepPlNzVaqNvrQ3OYllyNFSazlrQh5wYnQVzrol4Olf90Jf1QcyjsUTa32LITe9ZtLM5QNxv+Y2gngDymHKR7bshKdpxoO3RSs9KEdWfkkI88JoEAoFXWdwLrBpbWKikix7ETCOMwIiBThASlfERQ56wIOgKXQJSxx0J7sQVhcgtzrg/6EBoke2/VK2CVwtpe7Q4sFJEWaCkEA+8UkAg8JDjXoCZf3b38OV2dYkuF4ZcIGjYSY6RJ64BoCFROR7XAAQEQVforPdA0u6fBD/krUBBKN6li3UK6+oF4ZGVJMIxuIFSmzyDWyffGCuonIhXNAgRUdgpCL45GmlMHI3u7V6Vy7ZW+mo8eBmXAUHRhkTdqHOisEN2LjAwMDcSnUJzp3uF9byoDhs0a0IIKF9kOTdTgnKYH3Z2hDBgXkT7gn2sHfSJnUFLwn11aOGxGmEM5T8r4mY9JSIK2xlOmEufZVBV/hQTIDBrQRew0nV/+3V1CXYDSWEHz/b/ok7Pp56ajzotT4lEno5PP4MOiqNVVLf12Q4OL2GNxZeV8QJMycjaTohne6l+SnrAXYAEA5qhaGLhLMUHSmkDpOCFdRj9B/3ay/BL2+NDaztHJ+XDKISsFELjiFRdaC2Lm1iJFI7SA5bPBLnwIpqvJi2FClLiOuhRhRMvmdB4GFf1SgyzhO5Ud+1r1JbWMAZrzQFJr40NS6LeeDef2qjYax5jPIq/7NGjED9CEe5Al9MG2NDPUkp+RXyiNENc804iYsprxIReUA7zg8yL1OtIUV+Syyh6jQvqCFw6U2cUo3MHm08MoeNqDO4VfN+xiT6xM2iNbQ77fVWHnup5eOmggbo7YB+0laNiKARvNgeIQ1CodQiB+XPGsjbHy1UOOQ5Efqe7w+f7w76uftMPomi0frmS6ZFOPngYJteTelGTEl7TwTvpo7Of80BgF1rIpKbxWL/40hC7S3T0hsadZGNqKGMCkogn7q3dFAJshpO8Sb2m2jtCF8oO6HZj8PJqT5SJQkgX8yfpyueUEHwYyB97m2lA9jSRh0djFz3Ubmxhrzg0lDuYfKjOsPK4b+7bIgPSa3ViwxIiiImM7IQQnKATUU66IXoaL1+sX3NuFmZ0xrbHGlL9aO7lJm/vsjrbYc2WI+NQcPUzG03Jt80EnRlsSzjPWUgniEPBQw4MY+fLYxq/gCrkDNX0/RtSPzZ8284kqt1LbPDSWzpBkMkIWhPxhDqOc5M3zFOYpLYJgdI6uaW/WoxqqOnyVXlGcXRyrPxxilTf6wjtUHfL9uKprnYT1N6QHW7XfHWPhm3h+vluuVj1duFRVrVdyyTVdg2Vxh9PjXeX3HQ5KNTcayWehY3KXbU/7Fdqty+yVgVvQg4lk0OHI5jeeTmq1yLLMg1dUBl0yXvqOuZ8f+LB/pgT/YRE3Bn+5MP7kDJ4SgY/p8+pxmyp16CIqXfSHM7MiEl3WgiQ93M1dQ43wgU8eyOnbmUf0AmCr+XQFCh4K14QAmU4IOhmelgQdMUdSn1Tui2LaapCCCjJspyb4qAc5odd2EMYsKxF+4IWve/qMSYLSHMo/oKQG3xaCJC3w04CwJhHuABH+wq+GtEzxaIcFvAi7AkIkk5kXWM0qrIsHM0FHk3XFItmWMCLpicgSDrRdI3RaMqyEdGM6GxQ1mhMI7oapIys7QU3dZkG1sdWrikkntOYJ1h/x0CeyAG8nK0iqq1rC5axsIRfwjwJSdUtXa41HFBAmY+qGdedKg9NYN1/ocoDEWWNeNC/gceYTJIpjjOJz+SeSyoPUmxsNvwYV3m4btWOS6P+HU6nTeantSOjWf00axs43RZzbPqXrXWHAh2EzigqEg5t0O+emdOJ2q2iicLTN53yOIVimMIpY6doguxhpUCeRKTAMI/Kn7iUmCq86tDGmKn6UrVX3bpEXVe1nybrZygNAcKxytmEDL07vLyr6jYrvta57+T0E3huzSManZuJApR2W5A3V4eieP/7ISvyp1xtCOZ5LnZmDMK8yVdTCiZH6NoqyfMgjJ02Fraw9U+FS5szx7ye9tlwMHCDC6I7Fg1MF3fKLd4PqqlzfbFkXWbElr5J3jRjdncNC7t6LZchM6wYru1w//jfD4pq9iY2y47h+5fA8y8CH3gkb7ygqpNc5bv+0qJ2VekLeaiy7IjwBGypfqjVvw6qac+z9TPxiZ6ETDMsUYXKaoeVSIDFO2OYSr9VrrMS7YiQAtG0Z/v8bw1bXw0rKAz3vf15tVGbb1lxoPsrJL0HZc9UusYX1S7L6VEkptYTAJqLbD/svNAl77p8qqJVfQpA9z4rt6nJNLCA0rHJi0/bsM06XqnHAQpu4Pq1Io6bDBexPnQmfPPO8I/bR92rcvmIUAyUhjkXAZfQTvqAJ2m8C8t6qy/ZzruujKTThhJl9/J8k7cKctOxlsiX+W5fYMymKZDpQ5eha3Y/q2KviG74vJ3VM47ZhMdquT0dSivMw+/kZWSpQknQyym3S6pvfq+afVU2fNMASo9csAvek6Mp2gMJP0w9z8q1Kgp9GUC4HBlGUPkhSd0CY5IGBZxnRgczvs9NEUu7x3u7VfWigtXVp+3MpZZg3ZnmT+9cP8rkngBM32yy+Z63z2ePVd0u8601EgA1HDzbc9NjiXAZ0b+CK4FF8UtZ/SiHvd0zpSoPO4fQNbYVrBx81l2N7oJVttp0tIYxVye7uVgdonGSm6+RHbWP4RScG1u67vNGz5zlTZuvATmB4Ajtq65vX7ZdJ/V4T2y6I/z6nDdtta2z3dEuTUxHeHOTPariaE86lmO9OD6Pepoj/ND/Ot6NjoXzYqxa9vW1ITXTmmP9eMgLfVd6d00LfTmB/UXo2IMosf85t0HnWVE8ZusXVoiwByTqtrvAzR5O0eyGqUh8vbjJS7V83z1WBc9rWgK0XdHAeA1TiLh431YlSm0YA+S9IXE9B03vmMsjldBkA0XPTywQ5OOM49lTq+qzzaYrYp+zclOYHW9SioNGCjtfblmO+npLInqtI1poAkWK3atd9apSo+mjcfmP6qmqVVpWkthY6eSkh+C4A2Q/kNUMdwYxmbgU+kBcNCZVkemJrRlwpbjQ2/erepfxzLOZSJg3rR6+fC1zgdIwFEnlhhVrTnsrsdcwm4mEdfYjL7erSvhqGXYSpV7AUZvhTMW9ag4FH0jCPkHC+pO3eV4StNGI/FWuik0jdnxsU4S4AUPWgKEq1Gs3PyEcL7D5AyBYjHqrglZAHqq4bOrcWcGnKEcrmO5CtZl1lwXHOhiL5HCPO6qvDX8KYpr+q3nFFSh0nnU0vZyHNAQUut6ostVbASCN2Rqk7+rCGXGiOazhQNKEUtWOkPQmiGFRelaYlbWvWBGU/BtTePLzbJ895kUuNnkhUIwY2LrSEFDIuxwgLEDfCyAQJ5Q7Ghkne6+a7sGl5uNBN10Rsg5SlNUfYzSjbFuIWuybTVYS3SdV7VRbv4uMpqFI2m+L+Sx0bmczidB8MRoMKw0RhcpnVeteGtCZdmxlau8JXTQpHFKUbdUO6imYhhBptdtntcK5bXtEQj/Sh9Ibtgj1vdoc1rjztjkisOq2FIH0prFE3k1w3xXZWu2koa5tKhO/q1pvAjuvVdYC0w8UABa5UE1bV+8RKiZClFHltn0Wh9ezmUiYlyqrtSVfVw07kvIP/VJvd7fKvlb61b/NT5aOe+UDKUJd6EA4XWXdksRB8HkykwiLap21lZ4lrZVer15VN/ovujPmXvVD6IjoOPljxFOll4ftVjVtgjCNlGTBF/Eswaj37ywp6yEiScMyBsh1Fdb/Sb0C21Qk1ss9YudlshLpqibL1wvVPldyJ8s1xshv96ruigDIb9lLEl+y13zbWc8v2Yo6IZAk5j/gA5ZQDiiKHtr9ob3L31QhJsyxlaiBl2wIEfTBGkLOuB0GFiMxspQ+tRA6xEXq+ABcRMwY21QkrlWjyjYLXYZJCZAQSYjcJUywh3cEE5RNq+qrYScT6H0IhImJ08WzmUhoHOvozgugCQjjYiTvK2GQ7hrL5PTWRJKa2YAYIvY3XIaZAxsq/W2404s7YPApACSiP7ng0J2whyU+5+2qT780GUxDRKF+ygZd5vDNsY3RV3lR9Jsglu27UE5JhChT5Bv1LW/yx+GuDiHbPXNRYH75By1aFEKU6ZIsfhNmM4kQuMfKYoZvrjIl9PGLVtWvWSEP+jxrid658gZMRxAlyuXqx58v5s6dIONaI/RSgwF257XZXneoRLLOSqZr8m6O/V0cU9umEnH/TD2Yb64xRq4LVVen69tHfcU9IOFCMKHv+UY/kwWrWPaARNeK46FyzAGB2HpEQ0ShqyW8zuPYAtTDcoPYStqmAHGXSrFLaBriG25myvkxxsBeG5v0Z3Ee7IezaX6Vt4UZ9IAgDXPFrSMB/Y6d8KWeI79tBx0TCFG7pz0cak7JPvJhWwoXdEBq6HUd/eJ/s8jfcub4nmkFRYymdeNl0YY17Fg993Yzq3+8xKbq/8emdI6TXJd5m2dF/rsuivYSsxsKzxSKByPgBsUXECTt8FjGbPkRhLjt6R60m8zniyuQrp4lShisK4A4dlnVBDPuIEZOyDEO+EyYA9+zuszLrXzMiNM2SeJlpYUxVBldM8uJmHENga9PMeBNg/XgyhtzEwSHim8wgrJs2+HK4j4xLYpwWd0xjvAfqrngBO778aQVfvNPkDwY4IGcFXMvSqkeGz20fCxU4FWsUcUxhJJwO2GEj65L7gDZktB/WNmcd+kHDNe2fM/a9fNltn5GGlKX3wWLQskigEDXmK2yequCAzCX2oCISyYTFCWfETj38B18v9MC0TomWpyc6VKtxz9XdbWL0fOR4gyCPoWUIuUBxbHas/J7BLyGAZHY190WDa8i+p8+V8MCel+8WaCs2vzpvT8ZEsNv4hj6iijDMnkVKMc2tXXaDSD1jrs5dF2tj2PsIAzpj1jKHwihbv6iSTVIJLb7liiz35m0qZ8V22vzSJ/dqw08utvIvB8xbNfvXmWb27J4FztA7vdbAELfc1jc/b5L4lHOuV2YpaqJwaWbftMKSqwJ4EfHFrUL4/ou44fpQj2xn35LwABxn306KhI5EyX7nPvsRPCLEvJaXuyfbUcOxc2xh4QsMLCyN5e8bvoQUfNQqAyeoKhUZE2Tb8mtAH77Y6m4QKZtc03PmvdynSzUoRm1p7xoVf235e2XhFRRYEZrq9rhSiZYYYZAvLjrBoZnNlEJIQoyMKp5ExumCcGy0m2WSB1utCz+JoW9Abmfq0OxuXxbF4eNis5rEs2otRX55RBULBTbyZAXLKKWKuRFiokOWZgYbYD5XY83NJtrpv7QestwbvInEyj9eUNfzOXn18xrY4jcMj1us+YldLf9eXUovf0wY3o64INhAqWHpDSi77OGFZzYb1W1rvR1MYHU9Be4feqsqJv9eumJ5cG2h1IXkhjLrCDBKVL3+I2WwqJBlCq2bHB2cXF/uVw+XF1f3lwkhfJD1u94f3jSR8ImmfFhVaPKnt/eXx4j1KyrWgVkrLd04ZIRVSYGY28KRSS3gbbWXwKXS15enX29WS2p9WhUZ+TwFqeNflVd7cZziN3xQ6pdQvU8MvbzgtctV4+tT6FMYmoRlE92rRkh9H6NCC3ukC6pGNlCeHpgq9BXafvqsH54ElQwMNIAJdDoAEXcQrK7LpgPuMse+yEPfRzCVcb8pHPfBu+jnvfH+99DF/2LqRwJHoKp9D5G45Gb4WoBvbX6NWea00mCh0d8d2UP7LYC9SDGQXeCycZ2e86PDBDJkRAlwRcoVLQv0f66QRvv/esuhi5V2Y5c50Wu/y/fqOggJnBCQT3K10CQU3w9On1wJgyb3k+XAwHC48Ivehkb+5CXxyXLjfoRJfzIgnxEeWWUY0ofE4XuAx96d87sYST5RLCLm01JDub5xdM4KT0MSdxqf7781iXt54vUiisyYOUL9yNUzEQ/Ij31Kt8An2Of9sEGeaLCBvskBE/yKcl3N5Cbfh5yNJa7mS7gpL2+GM0PWb3e5k0zkI7G+5k0NE9xip4e4lL3XFKEX/+OzhTt5+OgtB6VRpfXnVKTb9Qp/E5txiKdfs7bVjVthMfHt7S0i+vmtfPo5026T8c2abxncwbHlk7zOrBTx214Uy05dtataKeuLKZzSfXD9O6UeWo6Fpubn1SlF0z/Lbm5VdVvTVUm56bp27+nNpgepteIT6q6Xw6nnk7mV900sd+z4QR1c/ICNj5OmFTCzOvTTuRP3lPGxueXxc3JQ/OyK5Ki4l57c0qfdtm+1Nyp/Q/nHpLTNgrdadu1Jk/8Zt9Xh/b0bWitWZOiNV+ScPIvTqOp0783s2enzcLZrfjcm306Ze7NHkXn3nwPwb/nE9N0Akd+YYYHFv9t44Cm5z+q9+/4eNIY2u7FRm88knzysP14atLjNXp1ykCNDkVHaNH7Mt41XT5Vp/Jo13s09FHz8qmK8+vEkwU/dvhMwT9PPuqBWKCZlEh/AlNMmD8JXrvTSycamGE00QE8YiId9CjFcS6GaY2GyBAdubSZTdmPSE/dUJ1mVAuxoDuKYvwJhA3zJ8FrLnzH9ooiuKJDeewMe4xvyekggps8W8Bg0eDJ2uFgBbVhv7xgHD9lIVNgoYnwJBQh2ZNYZ914pTZlxzReqc1VSBNukrxkRy0nC/LI4rF1+n/gCZz9d8QtayjKAf5AbG1+Rs0tQKOpsLnVE6L3SvJJSdVgNZP30cJyp91OC8vG7aoNxtjbI5oWZu/yi9gWJ6mpCavIyZqEBGUhYfTdS4ImfgsTqyZUdktNdiFU9b0neYRE0u/y8OnzNISkjRqspv1NyBtzm01EBRy5bQK+th2zhsGBsaBC6qEIc+q4a25hOm4thUVDMQH1A0Hh9SO8c8NymmUdiAUKU6Q/gXBh/iR47YbvRCtPGA0UwFiPAhEEPUpx3I3hsetjAh6KGuxDIFySD1E+ejdInGLBDiHBjstGeROIF+RNvMvhyKXWTJEhMmap9VH2I9LTcKjSaqGAjwxTWi2UfIjy0QvQ6RZecSosbAmehSKIe5aaCC+uJ1sqhpmwqMb7FQoq7FdiCoSQJhZSgCQlkIkFE/Em3mU3cidYeZcpoKjFeBKIGeBJrLOheKUVMRYdFaW0QsXrR3jnheUE2xMADixEMb6EAgX4Eu0vEbTkvRMMFg1S8tFeThv2qw+GGY5uSwx7z4j5BFQoQh3Lg28fcfqFlrGDEZSRlKk7R0xr6FaBCHX0kv/hqE0/87bS823jY15sgTQ9CYJjTh7JDoQzIuxAlIPAefOosFDA1MPlUeEghWGnEk6QR8Qmlu1UB8cjohjt4nFpCh9bjgjrMdFLClJIEE5yMMHo8eQoP445lTwRgEeSox074iRyWmHhwcecpQULj+BAlIOpB2Z7V445LZv20WQPpvaUrabsrNMOy57AEXNH92lOxh7tGXAmFnX3qOoTdX4z5fThMW54Rw6PO853jCvMGb64s3un8GQ8tYfKmwuwR+ubx+JQB6y1zmPErYNwqQfgjnGAPPUWf57sGBecQ2SJh8eOdoM6Nhbv0AndgMWDc+BH+RE8gZV4qukoZ4ijTLGHhY7Rt04IRZ98iZAPwtLOGGA9vrAo6E7ETngsDADBsdvesdAgjkQ7y+xtj4sRiYrd0h4XDVoS80Xexg6mPIhL3LMOpj4si3rkbS5M68gEYdEb4yKSHxYF3WE3w2EJJyHxO9+wBNNigAvQ9jYswSw0fS8bFgBePMI1NyCdqd56u8FXD2gMFAJJjkp7QA7xwp5AoxERKwpRnqArCx2aPZRhiOPHMSjaYHR72pACWWaEsxEGeczJi0TqsE7yaQtJ5bSHLCS1uLMVdBS5Qi0Hkiy2WMsZ31IGyLkUTPycGpcG7twEoQOfmGBEgvXREhFkydopHJEwpGIOR9DUwVSM1GEdon2+UE/dA8OB13F5kRnMZ3zSlEkAlLKfGPvohwQhR5BNwxGJF+HJe4UjAiI7EemmsOk1NjTHBCQpDKHExyT5yCkrGX/knlUwJrIbsZ4iuyjBGDHI5C2TYFw4adwvdp8fFgQSEr+pD0s2LQa44O+7alRWd2/Dpj1r0cMjHrUY39tYdkAptgM9B41YqpW07VAj2rhjqevTgxdHLFAnRZxbFd4OhL0ptoh3Kg+itYde1NHCXcUTVKlnlaKkjyjhSWU7oJdSnuPjTCBiuukRyaSURHX/YWNty85kDHKGJfb5o5jJhJjMQRXacWHWwRKImdJIZ2e0kqc1AKHTzmwAgnGTG4F4emPE2JC6Y8SoqppQS0P8fELmvhunyCaFm+ggteCpDk6Hqa6WjiRNV15hvsOSi5nxCLAziRnZGS33GojelL8EgtQwoUCdWR62W33ZrTm1wsVpMo8JFaHBl2hDRtB1SzUxeomrtCJB8uAs6usL+BHrqltLhhd7/0c/PLKRX9u8kD5M44u/QTwUqcu3fVZuevRZrTLxUV5YnWamyg8ZlXqaUeODMfrh2IeHdKuseeFfM54toBBShF7YDM4gvRcMcyRLDnW3qvpbQ7UdE/JhtInaEZKXatnW/SPKfooIcg/oJ83bALM4FG2eLOWgUb3uNowUqQ6IqxTv20B7K+p0UEApJSloKtISgPvuHj8Ic0qHHVRT56vKo50/1gS1hfG+0jP3trdYVZdNnYPcFobtATxsu9+YmrsrsFq7K7i+t8M4W3P5NITI9JBO9q7442TLhXJXYGHcFX+cbPnwdZ/d/9jXqlFEU25wmoZQQNe1ylp1VWRtq0rV35vz603etILzllCQhIlSj7lXT/FC9+qJLcntx2z9kpfbzo8YegfKiOTNdavqUKc5xD+jWOpO/F49Xf7rkEmF0uG3oKzI2JlL03HRjFRbLbI9cRhLlrGRQA0huk4uN9ZV7ML4PW+fb9RWlZvLUufZZthT8y41PYMQT8K1SKt8p85+ZMN+W1DOBnH0j1mjdtm+OavV5b8O+WtWqBKq780fSShfGSe79fvqfa+uqvrGyStOkCHgZfv+cQ2V605mBHC0dXUoNylxo5CM0HPWLHbZHm7Amj+aCLbef8zL7SLbNxHcDoinDx0xg6VCBJDsp7o67FMlLTAkN695x2rNSFZoPAKH0o/2LOlloV67jYJR1DaKFTBPC6D0JgYmtyf5cAF/Ys8RMbfyowImRiK/b+IqoAHhqc395zC5CRLoq0NMq2Qi+N6UsXMcpTYxCPkqL+KKpIvjRcpWbeusVZuFap7jdHwoKzXuPEf5R3uJNLbdNCByfxYllT1FO2eADtg7cxxYZPuuaESlywJB9LHZ4eIkkW7TfmwaZhBEn5AGC8eLqE2exSVgQrDEt3tV6v1aql1EdcIoJCvkXFiLqjgwVmLeromyzwh+ABnd9wH7PMZOOZh5hkCDXpgXKYbD6kj8t9EDIjIJSTBhrIT+0m36NqRf44tKDo2WBRfZPlnOwYpi0QoILT1Yl7jDo3VH4Jtat1Ud7b0DYyW+q8dofhPDkw/7HmHiwZ4nXUSSLjDS2OplQATqVazDK8jjVYLLK8Tn3j5hroMA8nN35WH3SC2XG9S9CTR3lzdfDjtV5+vrstt+JLo9cPs43utqu2ZdrrZryN/b7fpLtlPNPjP3eKjysPPoTFOb29zS8WlXfFM1dfOVQzcbSitP358ajHI2lCh/qMeFqtdZW9VnRZ415h7meduYQ++DmG1ieupw32zPq400R6CpDWt+YvHTrviyxAg7U67+lk+qprIrSOog+MH6riAKVpjaAjDM1Xa9rJt+2WoptTqa2QbwtWpfV7+pNb/INdhAtcvjI70cGUlm18V79aRqVa7VeXUoW7X5nJWbgtj8ZfDTECgBw3ZnfxOPTD9A+b05D69u4SP8fyXrNO2wLvebR6xIj7wWho/+jxe+cPx4wQpGv5L7/ZeV4KLmm2yZWqFtvr/km1X1/UUqbiPnZC/yttos38C8gz3D+0PbAKvUmnOyZbMmq9fZhq0HvQWUPfeH8qyzvnzTq4G6XNxldbaT1v0HiSCcWxfLmx6zXNf5vj1r3ss1H5xBjMAxga991yAVAieoaEeSpSiwkP119s7nfp25y56Bayur3T6rFbbTo6e1IVwur58P5YsUBk3ZGXI7GHpJiKo3lcmgQmcwSoVtrT8IGN+BXZF86jd3IFSDqbCOuv8oTNX2ZIMpV9KzcgtlQmfIEald9YoxdZZ8bdAZ4+8RIWqFaQjVji7P/35QB2JLeIh3xnCbwTtzneTb2to37Hb1bW4bJfX711W5zqQiafH3CO4TudtL8/42YwfgCF/7y+5xQg3gak9etNIA3WbsESxlKXQHXMKS6w485bW058vlq9n9XViDYVOKDcdTVV9m3XFYnLSHcKR1tYtirKudQLfMy22hrlsVTTwjGYldto/h3WV7hqypdlKjZ7Fpe267V/YSRaft2d1jZ3a/AmDsIWzzPO5j4lrm0QZqlAfjz1nz8wWyv2ki94Hipsllm5WbrN587KGgEInlpzoc42uhwZmkKGiU0ur5sHsss7wQN3AxmiaJsOCUEk8PF6Px54tUlT9fMDrCzj6hjH8Y/y+rlTLhvRJ1jPo8a9R12egdmm3+qm4f9d3ouhYuMuIat1mXw2FDBEjY7xaxwrhX7izK+lmtX87qLZfm0Qbr5NXbw06V7bkGiXtAJ2oHxo2DdGTq9ovuuvBlcSI3EFwb5YWCJaWj4jTX66oo1Jo+O2hwTlZYiJ9aVesv7fmzHhlcvirxjImhQKHZYScyWjT4Tzlk9GmlcSMZEjHiH9YdTL1SzYZBHhjeA/w9spqQTMs0Qe/q6o2dmHBMwSmKAD3R5Dj0rJzz6Iptik2ICHrQ8fPzav9+W36v81adQ3WPBICRZKWoeFJSgAPeHS9Zyw7N9e/olPeiKttnvXrC18SO0jTnu0XflXrZZO84rwFgmC/0aZ2q3mVs5Z6S/0H/62m0D9XqmbTlF3Mp3pa9JMaipm5MhUX2JpiTW6q2zctthEYzI4LE/d0WD3dn98vrL58erm7vF2fmfRmsRr+a87DP6iYvtw99mji5y/v7h9X14vLhv2+/XD5cf/l2dnN9gYmpun5o8516+L0q1UNevmZFt/oQktKrDn0OdYcN11XdqreYIqYJhlyqtiOBWOaeIhREst5d4KvkcoY+R8bEWh/7h4uz1SXGPIT8YWijQsR5823IGYSzkbJxoNObk/67KrHGcaTVxeX3HhSi10UXJB1NQ1R3+veovOoY5azqzL627N4Oh/TQWYcIm6iWJNiKmB8uvTmEo9O/g3tlnOJDfVs6tsGS7aUrazWRcMtbQQx/T8+K4ipXxUY/3CpMpXS0LoT/rp4VxbRmvulA3cYHWIcCs8P/s7bN1s96ZNacV2Ur7qXqtCgYq6I3r2y+ZcVBXVS7LBcmXwcNFyQoFJUwXJxoC/fmK5fr0LTVLiYcFoLl1ovVt4/yzo+BeDbnWaeV0BivPZSgEUEsso0XWymMcTZHWPVpzBhabc/z6sqEMWpLmSuqslkIfmeVqnaqlZaIBtrRmGfsj2BhhL0ty9dtw+5OO+jWEKK1ISx7ZxUTWhMgMDfC6s7E2HBrOnnT3TCyt+8N4fgmc5b1DiYkrh/xuJyLR1g24roRgq/IS6xKjsYC4/6wj8lnEyAzr9RuX1hjcIl6RAjcdZsV8uLbRDyas6zm4xoxISFw/ELBPmvzbO5hQCIuiFVYqbc2JgWGPcv7LVc/8Ao3WTOcRZUhnwNtxu7ryDZIU93Z8R3c8S4KtjM/W4F9cP+hWvC6DEOJZWGzLXjgPsUJmQzyxTqJf4wfNBHkw3xa7RgHCBa+Uzwc4E/R9LBIJ26eLE3WFZgQL47VjlA0j+mnKJJ4SXE8vJ8o6MGFzuR4oDBJzkfLXc3hGH6KHolnFcfz7ClqHpbvRJqHtlPkaAJI85jmL8ghd+vTk+qj5a70fIg5RTJEwXewjmrXY9tz42RykhwB5/XcM8VJqkESRPuYghui4Du04zHUFEUfzGqNh1NTpDwsr7Q4QsnFSkrH5BkFF/RWxyTNBbNd9id7SsnvrT/5M0mBjnpnqW8M6Y9F/HqvtuptpqYOLfbkJNCWtO+3H+3NsWO8modmJPW0tnPY40rfiy9PyPWiHJ6fije9jJUksfw8vOskqhaAylOQ/PXqvowDYgWGA8sdRJ6MHRVcFDztEREsD8ZX0nFpNvjIETvg7uH9I0fMbdjSdo+BBt71Edjw4G9YMYktELf1R9zzQO79CUpx78FKOx8gpRHG0QdW2EV+C8cJ0KvCIr8JY8Mj7d8gW2UzUDQB0zDTOwckHRPFkPtL0xJxQ+ayRSrsOiFbDUOBhDNNFLTzRBJlSBhpd/eJpPIkEULL8SZjaFUe2NEBUo9ARsLZ1SERd+YSnbUBA2L82vorYv43BvmODJaR34CZ2L26w6GdIbaC2fh/6a4kiSQ2QWFqnaGRxDPEpf2n17gj++YGehsAhTukwbXwjgyrarX2Ua2jQxtsJ82IyffeDOQRt9+YhQDrlgzkDpDrmiR8xgcR+EPueBPb/6HThPWBelBcGbP0kLIV31EZJNCuSlThHbiBj3vEJ28gFT96+OdjYKQ/INbLOs4rK8GK1VAPqgSfCM7LbUzFGsgd4Ikr1iACV6yIDByoxQxENjj68cZ2OupNpQCvNoNycf6UYXnYEVugE+dfJ/BvHN90/GijYSU0ts31Q4W1txoS19pOSkhLe8yYrROKH7NFtb2dBtDyHjvO6XT+7eOcTuWETX7HF2rw03qfJ+x2QuTDIQHgeAjSkFICUEu69fYs+uRbcqti8NxWVW/yUk/9vDet2n3sXrjg2tSJnoZyLesnVW37bY+rOiubPqR5VdpPwpGNxqTKcXAtSAi3bNX+FPojD+vD5e2n+7O7z9fnDx9vv365ENqvWdPFMS3M98uPD4vL+/Oz1e19nAqBZHQeD09P0pnjibo3ZtqS/lqD87pqGj2Z/bUUl5MmbgrKKG1UqbOsyH9XyCbtScbDCbNZ4BNvEz/6xBv4zpnLy751Bt6i53Ce7CY9i/fEt+k53PKNehFP6E3c/BN61kKZ274KvC3VqHrXbqxrpcqo0uygOH7sHbyZOfgWntFzQK7znBhD13mae0P1TV7/3R1/QWNrYRhu8IbFiTd8y6L1LbJbBuEj/mGrqt/6b1So18E8hAqS633k05BbkAm+hApq7TQ+WtDZth+jNe5oxmScHf1xQiNYkEpLDJiO1CQA3hNPd4rku0I+semfmZJo80aNiDCpf8hHpjU62WFi+4yLTLrr7RlC4qgLQIuUbu/Ei8yLUEaWMU0qFS/q/AvGO2BCxHZnHSdvXVx4bDYWtWHz/mVdV+yyAGUPjdl4IX/ERgrJ6u5FGzlwD2YecwUmcolkjt8fKV/3mJ/ypsf8hJc85qe73zE/6dWO+YlvdczjLnREb2DMoy9fLFS5bVFne2OGTbxvLsducazV5iAdFpuoemNuSl+8EzIHr4P0rr0Sav6HGRBqkPHro0hm5PIo9L3txOe2rVevAdYPPazuYKGwBN+9RgS2qn3sweNTMuHvLHKrsa+QN8ZXIEweePsaU+j+VqsnNYDDMuHXrzGlZsADYqH3rxGhttple2VghSLL1oaI96/J95NZRl2Cuv891Fww6IeNeebnrNntsr1cMIG3h3mlvHkcKNYjRTNTyMKB14dR0e6u8yhB6g0+VK3RWFnKf4FYElg3rzJt6A1iiVyNOFmCfoVYEnjqUXH09jvEMRKPGXvNUeglYklinJkRU0G+RQyw100DkNOvEYv0AwwR8N9clNmrA9CY0C8SS+R5j4LpiVf3QIk2L4BCyr5KLCpNYD0FIYv57xJLCi+7AqKNb1NfdgXUkkY6DBICrxNDSj/y9rnoeFTPs595mPkg+n1iSXGX7buyJacx/EIxqgHlDfcMryRU7VXZdFio6xB8iFfS6Wa71hooi6R8rcGvNPlmrsjdgQDy6GyGspd5Nxfg11CwKQ++nAvKQKmR3s6VtHR7vunrRo8HJYOv50KC+rb3GLkEDZk4+MCtRP/aATER+olbSeGHegTpvfdoReod8DUhX6QFmKEiS7xJK1O3kNfUq7QIN+A3+y4tr9H/G3/doKjYBcqiwrYO31TbG/WqjKG0e+BCM41WNqV9G3jZVIW6qbZbfvOqprOMua1VvYU9gqEpZ0uBb5GVGeDibCnwXZbWOhy5zWog7Ey5nVRu9DgyzzOPaqGaJtuCW3LHNFsYTOBeNdWhXicJOVg5OFeZblaNgLvvf83hGUwdTu/Rr5tq63keIKW99Bj1DJWTk9Q0tSadTNnp80a6IlNTERO97lb4QAhDjC5CJHdaEp6XaFCcoxK7bL8X9mEMJujEoe6QRN1hN/LTWCYgeQO92DPyT+Yspe6OSotuM2NvzRIucP+8Z2bcizPUYwRbby0RdoOSCMrOni1Si2w/rZljj0fQCKjASWL+lycghvjgrmvvspbdyaF/h1KRvao6k16x7NgGS3ab6rZWqllV99kmz0phV1tH6kK4hrK3WFUXPQZgdyFcEze8dXWhXnNnu0WQ3sNw/AdhObhndG9Pdwq4fG4z4sDmdB8H79jAOFnzy+nCowiGeyd8FsFnlfdu0Qedee7+36LfwZOwODv/KglwRjVKCnqbJHQ6FVECjqCILzSYrKd6o8HjlMsNclTGpIWOyFTOhfE+ZUXcER+o1/118s7Ixe3zDnyGrdTvrSZTq6BRxzMGcgth0//sM/+i3mNotTnDuVFqf9Y0+VZoyAfO2Zz9vqn9eSHeZWFQdtYCY3/j0lm5mToBML0PjdYC3nBjBaXn3JBdaYOAuCdtq9pxNeNCNd2T99KTEAM1iWT7p5fyy84D92DLst0VWV4ir0JMnAbimD1cAx8/9GiBMz8DUUsf9THbMvglzvinN+G3Nm1q4TVNa/wwPa6IPMpoE3tobr5jke3xxx89HfDlR739R9tIszYef4/yqel8XvJb1SzDyHy2qLl81tSMkJ3PS9Um5rMm9tBcFixVm5LPgw6Yz0vVRubzwI/k8757pYDL4N4Cytn5yQPzSWe3czIQmsZS72S2vcnNZ8BFam2Ok1vb0kRu7/lncjZxtv/c7uR3pwcVCsh/g8jQMwo2BOS2ow+y+3kQ5EfD42DYyc06747Ioq93DAoEjv3GRtKbAPZ7u6+rXc4PnQYTbEJId+iuiqwV5/tGVhPB9j+LTOhRjYydKUOlxD37I5Pi9+uL/aeRh+9A7bM6KwpVyGcJRj4TwRHX1V6Y6JoYtSm7ziBv0x+5xF36+nKM6iD0ZUe2wZgtxP86KP68W2cAFeB1dZCOFPdknSGTSMenMBHhm93C9AsLV8BQqKeyAGzc7lW2uS2Ld2y227eGIsqJ+H0yQkTSdWe3R3thAGGYRaVDGDyYtEEJ1+XauHaYnRuyDMF52r/rUqGXkDbm7cZ8SbJ1Qhxs4ar17r9a2Ns/GYFpOdfx/lir7KW5H6BSQkYBEsz2Gy7yji6r3+O1fCwvVbUX+rBEmyLlYVmpz6r71sbrOEBWJJ4dol3mu32h4sltHCvxtcz/dVDdJQnxOgRYaID/dVBN+1kVe36m3zKE6spF/+x2QIFqt0wFCs2NiQMy5DjSJuVS5owlm3VWqHs9pmXbFMMMitRyshccN4lnEDu01lbcWNWjlMeqP1RR/FJWP8olFQ5q5tsUodDMRLh622flpr+nYFV1GL42mFoEmJ+f/aLe2kgNE8WTU9kMsIcy2r26k5/FQs9ZbvInaO+J5pttj5xB12QnONLd0/C7SnS1atxeYIjMtGZID/LVWZrtQF6TFXf9asS9q+tsp4pV9Yt6zB7PM+nawIHYBTGpXmeNui6b7sOfv6pz97wyq0JBca3u5KkwsKSleiQ3Nm/W2V7dq+3lm9BDHQRMAMP7oiO6qs51fOHccEFH7V0wr5A93d4Fn/U0a9DQhbfGdy50ybDA3P07vGfBqpzvu8eKnUjuLdCBxPWiu83JYSVLQ8/rYNhO5Pn1ojuZE0tvgGT+7maZeAUDxmvkuzjy0d5l/UPf2+wm8fa1WuuDeT+5yYlNR2//H3/il2Hf2vqwGTLs5wvnzAArQUFZrau8KFKEPByrcr0e8y5OxcOxKjfZo5qcAhUsDM8+1SGc3IDA3DHx8XD81ljVPE+3CcUUXB8o6kRGyoSw3P3ugJRYEUh++SVrn1N0PByvkq/14fS5OqEqLg5RWWT1i6pTdEyksGiVl21SISOQslJkMbMwAnv3wUlMCYFF1KJTY6FEBX3zWnKCfDAw5RVdrF0YoBHdH3JhgEZCxfGBvE4UN8oHFyWoDK30jEWMnzOA5f1WFQddrqRN2RPvDGB59fGJ9r2IKx02iB14r4TXMlYxz2Rwk5yr8QUGfjnGuwIx6JltifkYICenHB3+FSfnzJYezAt8fc8P7n29AXe/mjR+RDXNV5fKnhvONptu+eguq7OdEmejNKMHYYvn2WNTFYdWfZWuLNbUlrnQb1m/ZFuUdbYWFkb08tkrymqYs6vz+mbn2CBTKHYPSlScLXO29h8OOfvSsf4dKqpbVSp97cvXg3RHekdpmrMO/sjaNXteqjOAXKzKeRV73FPcb9PjHe4Vwmgm36pS3lgy0gsbSqryVpyZHqluqXlp++2TV1XTV8sNP0AR9UjmFZCRhqTr3rT75/8P7Mwl2w=="
1
+ window.navigationData = "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"